diff --git "a/(\354\226\221\354\213\2351)\343\200\2162026 \352\264\200\352\264\221\353\215\260\354\235\264\355\204\260 \355\231\234\354\232\251 \352\263\265\353\252\250\354\240\204\343\200\217 \354\240\234\354\225\210\354\204\234_K-gun(\352\271\200\353\217\231\352\267\234).pdf" "b/(\354\226\221\354\213\2351)\343\200\2162026 \352\264\200\352\264\221\353\215\260\354\235\264\355\204\260 \355\231\234\354\232\251 \352\263\265\353\252\250\354\240\204\343\200\217 \354\240\234\354\225\210\354\204\234_K-gun(\352\271\200\353\217\231\352\267\234).pdf" new file mode 100644 index 0000000..b69b7bd Binary files /dev/null and "b/(\354\226\221\354\213\2351)\343\200\2162026 \352\264\200\352\264\221\353\215\260\354\235\264\355\204\260 \355\231\234\354\232\251 \352\263\265\353\252\250\354\240\204\343\200\217 \354\240\234\354\225\210\354\204\234_K-gun(\352\271\200\353\217\231\352\267\234).pdf" differ diff --git a/.env.example b/.env.example index af7a2c0..d0258fa 100644 --- a/.env.example +++ b/.env.example @@ -23,7 +23,6 @@ SEOUL_DATA_API_KEY= NAVER_API_KEY= # --- 캐시 (선택) --- -REDIS_URL= # --- API 운영 보호 --- ENVIRONMENT=development diff --git a/.gitignore b/.gitignore index 139d286..d2437eb 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,7 @@ chroma_db/ *.db *.sqlite3 -# 지식그래프 빌드 산출물 (scripts/build_knowledge_graph.py로 재생성 가능) +# 사용하지 않는 과거 지식그래프 빌드 산출물 data/graph/ # IDE @@ -61,3 +61,7 @@ gun/data/_checkpoint.json gun/data/_qa/ gun/data/~$* gun/data/*.tmp + +# graphify 로컬 분석 캐시 — 재생성 가능하며 소스 그래프 JSON만 추적 +graphify-out/.graphify_analysis.json +graphify-out/cache/ast/ diff --git a/Dockerfile b/Dockerfile index f501498..361b96d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,6 +20,6 @@ EXPOSE 8000 # 컨테이너 헬스체크 — 기동 후 /health 200 확인 HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \ - CMD python -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://localhost:8000/health').status==200 else 1)" +CMD python -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://localhost:8000/health', timeout=4).status==200 else 1)" CMD ["uvicorn", "src.api.main:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/README.md b/README.md index 51143a5..ce1abee 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - + # 관광 일정 QA 엔진 — Explainable Travel Plan Validator @@ -20,6 +20,18 @@ cp .env.example .env # 실제 API 키 입력 docker compose up --build ``` +### 웹 배포 + +컨테이너를 지원하는 호스팅 서비스에서는 이 저장소의 `Dockerfile`을 그대로 사용한다. 운영 환경변수는 반드시 다음처럼 설정한다. + +```text +ENVIRONMENT=production +API_AUTH_TOKEN=<강한 랜덤 토큰> +CORS_ALLOWED_ORIGINS=https://<실제-웹-도메인> +``` + +`API_AUTH_TOKEN`이 production에서 빠지면 API는 503으로 fail-closed하고, `CORS_ALLOWED_ORIGINS`에는 `*`를 사용하지 않는다. 컨테이너 프로브는 `/health`를 사용하며 필수 데이터가 없으면 503을 반환한다. + ### 방법 B — 로컬 (Python 3.11+ 필요) ```bash @@ -43,6 +55,8 @@ make run # 개발 서버 > `/health` 는 시크릿 노출 없이 어떤 외부 API가 연동됐는지(bool)와 > POI·혼잡도 데이터 적재 건수를 반환한다 — 연동 검증용. +> 운영 프로브는 로컬 필수 데이터 준비 상태를 검사하며, 외부 API의 실제 연결성까지 보장하는 probe는 아니다. + ### 활용 공공데이터 | 데이터 | 출처 | 용도 | @@ -402,7 +416,7 @@ ValidatorPipeline.run() — src/explain/pipeline.py ## 향후 발전 방향 -1. **경량화** — 1회 호출 200ms 이하, Redis 캐싱 전략 적용으로 여행 앱 임베딩 가능 형태로 최적화 +1. **경량화** — Kakao Mobility 결과를 로컬 JSON 캐시로 재사용해 여행 앱 임베딩 가능 형태로 최적화 2. **B2B 배포** — AI 생성 일정 자동 QA 게이트 + 검증 점수 배지 표시 3. **대중교통 통합** — 자차 단일 가정에서 지하철·버스 환승 시간 복합 이동 모델 확장 4. **체류시간 자동 보정** — EXIF 위치 메타데이터로 실제 체류 패턴 학습, 장소별 자동 보정 diff --git a/data/route_cache.json b/data/route_cache.json new file mode 100644 index 0000000..994d7f2 --- /dev/null +++ b/data/route_cache.json @@ -0,0 +1 @@ +{"126.5125,33.5148|126.4993,33.5190": 204, "126.5125,33.5148|126.5267,33.5175": 486, "126.5125,33.5148|126.4876,33.5183": 360, "126.5125,33.5148|126.5300,33.5170": 575, "126.5125,33.5148|126.2352,33.3835": 2880, "126.5125,33.5148|126.5092,33.5064": 411, "126.5125,33.5148|126.5042,33.5160": 150, "126.5125,33.5148|126.5270,33.5158": 350, "126.4993,33.5190|126.5300,33.5170": 764, "126.4993,33.5190|126.4876,33.5183": 157, "126.4993,33.5190|126.5092,33.5064": 290, "126.4993,33.5190|126.5042,33.5160": 101, "126.4993,33.5190|126.5267,33.5175": 744, "126.5300,33.5170|126.5267,33.5175": 201, "126.4993,33.5190|126.5270,33.5158": 664, "126.4993,33.5190|126.2352,33.3835": 2876, "126.5300,33.5170|126.4876,33.5183": 814, "126.5300,33.5170|126.5270,33.5158": 77, "126.5300,33.5170|126.5092,33.5064": 588, "126.5300,33.5170|126.5042,33.5160": 614, "126.5300,33.5170|126.2352,33.3835": 3150, "126.2352,33.3835|126.5300,33.5170": 3278, "126.2352,33.3835|126.5092,33.5064": 2832, "126.2352,33.3835|126.4876,33.5183": 2729, "126.2352,33.3835|126.5267,33.5175": 3263, "126.2352,33.3835|126.5042,33.5160": 2928, "126.5267,33.5175|126.4876,33.5183": 792, "126.2352,33.3835|126.5270,33.5158": 3200, "126.5267,33.5175|126.5042,33.5160": 593, "126.5267,33.5175|126.5092,33.5064": 565, "126.5267,33.5175|126.2352,33.3835": 3126, "126.5267,33.5175|126.5270,33.5158": 185, "126.4876,33.5183|126.5092,33.5064": 438, "126.4876,33.5183|126.5042,33.5160": 254, "126.4876,33.5183|126.5270,33.5158": 807, "126.5092,33.5064|126.5042,33.5160": 335, "126.5042,33.5160|126.5092,33.5064": 307, "126.5092,33.5064|126.4876,33.5183": 498, "126.5092,33.5064|126.5270,33.5158": 445, "126.5042,33.5160|126.5270,33.5158": 628, "126.5270,33.5158|126.5092,33.5064": 500, "126.5270,33.5158|126.5042,33.5160": 497, "126.4993,33.5190|126.4876,33.5184": 141, "126.5125,33.5148|126.4876,33.5184": 335, "126.5267,33.5175|126.4876,33.5184": 764, "126.5300,33.5170|126.4876,33.5184": 777, "126.2352,33.3835|126.4876,33.5184": 2586, "126.4876,33.5184|126.5125,33.5148": 361, "126.4876,33.5184|126.5300,33.5170": 837, "126.4876,33.5184|126.5092,33.5064": 399, "126.4876,33.5184|126.5042,33.5160": 224, "126.4876,33.5184|126.5270,33.5158": 755, "126.4876,33.5184|126.2352,33.3835": 2580, "126.5042,33.5160|126.4876,33.5184": 231, "126.5092,33.5064|126.4876,33.5184": 466, "126.5270,33.5158|126.4876,33.5184": 691} \ No newline at end of file diff --git a/data_construct.md b/data_construct.md index f081486..97ca2e3 100644 --- a/data_construct.md +++ b/data_construct.md @@ -1,6 +1,8 @@ - + -# 제주 Place 지식그래프 스키마 (Head - Relation - Tail) +# 제주 Place 지식그래프 스키마 (과거 설계 기록) + +> 이 문서는 외부 그래프 DB를 사용하던 과거 데이터 모델의 설계 기록이다. 현재 런타임은 `src/data/evidence_retriever.py`의 `LocalEvidenceRetriever`가 동일한 장소 CSV를 로컬에서 조회하며, 아래 그래프 DB 스키마를 직접 로드하지 않는다. ## 0. 개요 diff --git a/docker-compose.yml b/docker-compose.yml index 86f027c..9b3812a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: - .env restart: unless-stopped healthcheck: - test: ["CMD", "python", "-c", "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://localhost:8000/health').status==200 else 1)"] + test: ["CMD", "python", "-c", "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://localhost:8000/health', timeout=4).status==200 else 1)"] interval: 30s timeout: 5s start_period: 20s diff --git a/docs/ADR.md b/docs/ADR.md index a620d7b..45278db 100644 --- a/docs/ADR.md +++ b/docs/ADR.md @@ -1,71 +1,71 @@ - + # Architecture Decision Records ## 철학 -MVP 속도 최우선. 로컬 실행 가능하고 별도 인프라를 최소화하는 도구 우선. +MVP 속도 최우선. 로컬 실행 가능하고 별도 인프라를 최소화하는 도구 우선. 외부 API 의존성은 명확히 격리하고, 테스트에서 mock으로 대체 가능한 구조를 선택한다. --- ### ADR-001: POI 정규화 — Kakao Local API 선택 -**결정**: Kakao Local API (`/v2/local/search/keyword.json`) -**이유**: 장소명 → 정규화 좌표 변환에 가장 정확한 국내 서비스. TourAPI의 위치 데이터보다 정밀하고, 주소 기반 POI 검색 지원. +**결정**: Kakao Local API (`/v2/local/search/keyword.json`) +**이유**: 장소명 → 정규화 좌표 변환에 가장 정확한 국내 서비스. TourAPI의 위치 데이터보다 정밀하고, 주소 기반 POI 검색 지원. **트레이드오프**: Google Places 대비 영어 지원 약함. MVP는 한국어 전용이므로 문제없음. --- ### ADR-002: 이동시간 계산 — Kakao Mobility API + 직선거리 폴백 -**결정**: Kakao Mobility API (B2B) 우선, 키 없을 시 직선거리 × 속도계수 폴백 -**이유**: Kakao Mobility는 실제 도로 경로/대중교통 시간을 제공하는 국내 최고 정확도 서비스. 단, B2B 신청 필요. +**결정**: Kakao Mobility API (B2B) 우선, 키 없을 시 직선거리 × 속도계수 폴백 +**이유**: Kakao Mobility는 실제 도로 경로/대중교통 시간을 제공하는 국내 최고 정확도 서비스. 단, B2B 신청 필요. **폴백 공식**: `travel_min = (직선거리_km / 속도_kmh) × 60 × 경로계수` - transit: 속도 20km/h, 경로계수 1.3 -- car: 속도 40km/h, 경로계수 1.1 -- walk: 속도 4km/h, 경로계수 1.0 +- car: 속도 40km/h, 경로계수 1.1 +- walk: 속도 4km/h, 경로계수 1.0 **트레이드오프**: 폴백 사용 시 이동시간 정확도↓ → Confidence Level을 Medium-Low로 하향. --- ### ADR-003: 검증 방식 — 제약 기반 규칙 엔진 (vs ML 기반) -**결정**: 규칙 기반 Hard Fail/Warning 탐지 -**이유**: 운영시간 충돌·이동 불가 같은 명확한 제약은 규칙으로 표현이 완전하다. ML 모델은 레이블 데이터가 없고, "왜 실패하는지" 설명이 불가능하다. Explainability가 핵심 가치이므로 규칙 기반이 필수. +**결정**: 규칙 기반 Hard Fail/Warning 탐지 +**이유**: 운영시간 충돌·이동 불가 같은 명확한 제약은 규칙으로 표현이 완전하다. ML 모델은 레이블 데이터가 없고, "왜 실패하는지" 설명이 불가능하다. Explainability가 핵심 가치이므로 규칙 기반이 필수. **트레이드오프**: 복잡한 맥락적 판단(예: "이 일정은 여행자에게 피로할 것인가")은 규칙보다 LLM에게 위임. --- ### ADR-004: LLM — Claude claude-sonnet-4-6 선택 (Explanation 전용) -**결정**: Anthropic `claude-sonnet-4-6`, prompt caching 적용 -**이유**: 4단계 Evidence-based 설명 생성과 Repair 제안 문장화에 최적. 200K 토큰 컨텍스트로 전체 일정 맥락 제공 가능. `cache_control`로 시스템 프롬프트 캐싱. +**결정**: Anthropic `claude-sonnet-4-6`, prompt caching 적용 +**이유**: 4단계 Evidence-based 설명 생성과 Repair 제안 문장화에 최적. 200K 토큰 컨텍스트로 전체 일정 맥락 제공 가능. `cache_control`로 시스템 프롬프트 캐싱. **트레이드오프**: API 의존성. Validation 자체(Hard Fail/Warning/Score)는 LLM 없이 동작하므로 LLM 실패 시 부분 응답 가능. --- ### ADR-005: Graph DB — Neo4j 제거, Python 순수 구현으로 대체 (2026-04-30) -**결정**: Neo4j 제거 확정. 백트래킹·구역 재진입 탐지를 Python 규칙 기반 M3/M4 메트릭으로 완전 대체. -**이유**: `scripts/neo4j_coverage_analysis.py` 커버리지 검증 결과, Neo4j가 담당하던 7개 역할을 Python 로직이 100% 대체함을 확인. -- M3 `count_area_backtracks()`: 시군구 코드 기반 비연속 재진입, O(n) — Cypher 쿼리 완전 대체 -- M4 `count_geo_cluster_backtracks()`: DBSCAN(eps=2km), Neo4j가 잡지 못하던 대형 시군구 내부 분산까지 추가 탐지 -- 이동 행렬·시간 슬롯 저장 역할은 VRPTW 엔진 내부 Python 자료구조로 처리 +**결정**: Neo4j 제거 확정. 백트래킹·구역 재진입 탐지를 Python 규칙 기반 M3/M4 메트릭으로 완전 대체. +**이유**: 당시 커버리지 검증 결과, Neo4j가 담당하던 7개 역할을 Python 로직이 100% 대체함을 확인. +- M3 `count_area_backtracks()`: 시군구 코드 기반 비연속 재진입, O(n) — Cypher 쿼리 완전 대체 +- M4 `count_geo_cluster_backtracks()`: DBSCAN(eps=2km), Neo4j가 잡지 못하던 대형 시군구 내부 분산까지 추가 탐지 +- 이동 행렬·시간 슬롯 저장 역할은 VRPTW 엔진 내부 Python 자료구조로 처리 **트레이드오프**: 그래프 시각화·복잡 관계 쿼리는 불가하나, MVP 검증 범위 내에서는 불필요. --- ### ADR-006: API 프레임워크 — FastAPI 선택 -**결정**: `FastAPI` + `uvicorn` -**이유**: async 지원 (TourAPI/Kakao API 병렬 호출 필수). Pydantic 통합. Swagger UI 자동 생성. 타입 안전성. +**결정**: `FastAPI` + `uvicorn` +**이유**: async 지원 (TourAPI/Kakao API 병렬 호출 필수). Pydantic 통합. Swagger UI 자동 생성. 타입 안전성. **트레이드오프**: Flask 대비 복잡도 높지만 async + 자동 문서화가 더 중요. --- ### ADR-007: HTTP 클라이언트 — httpx 선택 -**결정**: `httpx` (async) -**이유**: TourAPI + Kakao API를 `asyncio.gather`로 병렬 호출. FastAPI lifespan에서 클라이언트 재사용. `httpx.AsyncClient`는 연결 풀 자동 관리. +**결정**: `httpx` (async) +**이유**: TourAPI + Kakao API를 `asyncio.gather`로 병렬 호출. FastAPI lifespan에서 클라이언트 재사용. `httpx.AsyncClient`는 연결 풀 자동 관리. **트레이드오프**: requests 대비 학습 곡선 있음. async I/O 이점이 압도적으로 크므로 선택. --- -### ADR-008: 의존성 관리 — pyproject.toml -**결정**: `pyproject.toml` + `setuptools` (editable install `pip install -e ".[dev]"`) -**이유**: 표준 Python 패키지 구조. `src/` 레이아웃으로 import 충돌 방지. +### ADR-008: 의존성 관리 — pyproject.toml + requirements.txt +**결정**: `pyproject.toml`을 프로젝트 선언의 기준으로 삼고, `requirements.txt`를 Docker·CI 배포용 미러로 유지한다. 개발 설치는 `pip install -e ".[dev]"`를 사용한다. +**이유**: 표준 Python 패키지 구조. `src/` 레이아웃으로 import 충돌을 방지하고, 배포 환경은 별도 빌드 메타데이터 없이 requirements 파일을 설치한다. 두 manifest의 런타임 패키지 집합은 테스트로 동기화한다. **트레이드오프**: Poetry/uv 대비 설정 약간 번거롭지만 추가 도구 설치 없이 동작. --- diff --git a/graphify-out/cache/last_query_stamp b/graphify-out/cache/last_query_stamp index d431cda..c3ce1f8 100644 --- a/graphify-out/cache/last_query_stamp +++ b/graphify-out/cache/last_query_stamp @@ -1 +1 @@ -1789203191.2654688 \ No newline at end of file +1789637903.455872 \ No newline at end of file diff --git a/graphify-out/cache/stat-index.json b/graphify-out/cache/stat-index.json index 7b16525..1bd2084 100644 --- a/graphify-out/cache/stat-index.json +++ b/graphify-out/cache/stat-index.json @@ -1 +1 @@ -{".codex/hooks.json":{"size":901,"mtime_ns":1785898952005275288,"word_count":82,"hashes":{".codex/hooks.json":"8c3ca9681b2d256e64895bb5cc29a0e4c9c7ab3f1640404744da993c24e32550"}},".github/workflows/ci.yml":{"size":785,"mtime_ns":1780630909494225541,"word_count":85,"hashes":{".github/workflows/ci.yml":"d203e480f677bc4c14c77a10c986fcc8ea2a0282765fcd4ed6f31f8b07f0cf6b"}},".impeccable/critique/2026-05-30T06-32-37Z__src-api-static-index-html.md":{"size":4012,"mtime_ns":1780122757280615535,"word_count":623,"hashes":{".impeccable/critique/2026-05-30t06-32-37z__src-api-static-index-html.md":"0d90e0ad7d10f9c8fc6d4f8c1edff48ed8b5a3e6e5b1e80481bb39fc506758c0"}},".impeccable/critique/2026-05-30T06-43-35Z__src-api-static-index-html.md":{"size":3210,"mtime_ns":1780123415848350885,"word_count":510,"hashes":{".impeccable/critique/2026-05-30t06-43-35z__src-api-static-index-html.md":"80f10c277b7624f5485f98b4fec8f189afa156fab639bc48eef2a10708193a15"}},".impeccable/critique/2026-06-09T16-23-22Z__src-api-static-index-html.md":{"size":5072,"mtime_ns":1781022202041674057,"word_count":777,"hashes":{".impeccable/critique/2026-06-09t16-23-22z__src-api-static-index-html.md":"cc21bfdb74cee1fe4f5fe5b7715d67c7eb7999fbf1249915a65b29dba94a63dc"}},".impeccable/critique/2026-06-09T16-52-59Z__src-api-static-index-html.md":{"size":4283,"mtime_ns":1781023979495552890,"word_count":564,"hashes":{".impeccable/critique/2026-06-09t16-52-59z__src-api-static-index-html.md":"1a4619f9d31421d3e741666a8808be078300e5153ddf6c0eb84c04dfe53a5a73"}},".serena/project.yml":{"size":61,"mtime_ns":1785637323943564412,"word_count":5,"hashes":{".serena/project.yml":"548f15c3bf9a3fc96e852fad5e026015d952a40f4e689ff7616430d6cc7b5314"}},"AGENTS.md":{"size":3974,"mtime_ns":1785898952003512281,"word_count":490,"hashes":{"agents.md":"4ea3c28a7d55d78c692fd35bf63bb0d9a9e3fb85e3e09ea9e8ca04a8eb70d06a"}},"CLAUDE.md":{"size":3979,"mtime_ns":1777520459390385988,"word_count":490,"hashes":{"claude.md":"4b53a5fdc066099b72f586d17b9c3b715eb1aade4d0aa9a45809c90a65732a45"}},"GEMINI.md":{"size":5588,"mtime_ns":1777524503816741681,"word_count":736,"hashes":{"gemini.md":"213bb4d19f8dcdfad0c5ccbfb0ce19e1c4ae9dbc3c121be1d1d5d1cada462406"}},"PRODUCT.md":{"size":2898,"mtime_ns":1780121642942688013,"word_count":426,"hashes":{"product.md":"d4a7ffa92bae49ada971e9f05975cd0dff591c6909e459994f392cb5eb366e03"}},"README.md":{"size":18141,"mtime_ns":1781013588628931807,"word_count":2511,"hashes":{"readme.md":"b5f7f9974cf86f3c91f14071590750d5be5d3e35d39d9b77bf003849f0e4d89e"}},"SUMMARY.md":{"size":35736,"mtime_ns":1778132197598392261,"word_count":2673,"hashes":{"summary.md":"8d9b6d74207184cbc36a956dba4ff3b833fd1e9949437944a337c0a42defd899"}},"api.md":{"size":1728,"mtime_ns":1777715514673590277,"word_count":172,"hashes":{"api.md":"c41821804c10e64135fe62a24a0a5806b93187c0d200f404237c87d0138e1900"}},"data/barrier_free_places.json":{"size":583842,"mtime_ns":1777871166071958080,"word_count":50845,"hashes":{"data/barrier_free_places.json":"22d7f531dff8fc4d5f17095ebfc8ddffbc0ba131fcefe44c51e17cef9ec67738"}},"data/jeju_hours.json":{"size":12024,"mtime_ns":1785587001302524123,"word_count":1367,"hashes":{"data/jeju_hours.json":"430c6b04400fecc36091d3ed6110355672851cb4f75c23c13b09760013f60b72"}},"data/naver/naver_metadata.json":{"size":570601,"mtime_ns":1777472848775867548,"word_count":44822,"hashes":{"data/naver/naver_metadata.json":"34f55b7f7bcd98f2ded56cebb0a0325c269ac72ca00b03657922d85dbeac4517"}},"data/naver/naver_progress.json":{"size":570601,"mtime_ns":1777472848768358587,"word_count":44822,"hashes":{"data/naver/naver_progress.json":"5dc4657a34dced0d6137fbed1fb01d9f4848e8dd3b126765028ad35dbea963c0"}},"data/supabase_migration_congestion.sql":{"size":1774,"mtime_ns":1777516043418635376,"word_count":209,"hashes":{"data/supabase_migration_congestion.sql":"0841a33fae3334025964e290dcba09d333bc8d20b05fa78fafa1c0e4a19bc36d"}},"data/wellness_places.json":{"size":43020,"mtime_ns":1777871146010441360,"word_count":3924,"hashes":{"data/wellness_places.json":"5602e63db75e0d4ab8596368a8c9680690f6669857a68d5f9393219293a7e423"}},"data_construct.md":{"size":6962,"mtime_ns":1785371055323068002,"word_count":847,"hashes":{"data_construct.md":"64cc08da9d377930c34849d167d51240cf87289b9ff4613f3e9eeb4f779bab79"}},"docker-compose.yml":{"size":449,"mtime_ns":1780630909494931784,"word_count":36,"hashes":{"docker-compose.yml":"3c08be6ae484cac1fe94d61ae92c7627fcb2d901f2caeb90007a6d5a80b2309e"}},"docs/ADR.md":{"size":5148,"mtime_ns":1777524250981362621,"word_count":591,"hashes":{"docs/adr.md":"eaee1c03d2d9f854720c2609372e137e9ec920fff607a3ffb8b8e6b13949eb43"}},"docs/ARCHITECTURE.md":{"size":10039,"mtime_ns":1777523474771753946,"word_count":1235,"hashes":{"docs/architecture.md":"75e2fd237ed68ad3fae3d136223c2365fa7f8f10c3167bfeb6e7af0c898da8a9"}},"docs/DATA_COLLECTION.md":{"size":5997,"mtime_ns":1777524464925312953,"word_count":711,"hashes":{"docs/data_collection.md":"4d3f1a0dbb52577e374bd6c87f5c0398022d0ad792d2d40a1f8292829e2dec8b"}},"docs/ENHANCEMENT_PLAN.md":{"size":13723,"mtime_ns":1777524391620629301,"word_count":1832,"hashes":{"docs/enhancement_plan.md":"f7896e2a677141bd8c08eb79353681f9c79e4fb3479526205c033139eba1f634"}},"docs/PRD.md":{"size":5674,"mtime_ns":1777524306578525432,"word_count":756,"hashes":{"docs/prd.md":"c945b57a4cdd9baff70d1e545c499eb480e9bcc11cf20935502ba70182144a60"}},"docs/UI_GUIDE.md":{"size":5315,"mtime_ns":1777524420389598098,"word_count":653,"hashes":{"docs/ui_guide.md":"3232f79089dfbbafd5d8e8e90be38845df47a2fe69066fb58a0137c24b1fa03f"}},"gun/data/kakao_route_cache.json":{"size":8542,"mtime_ns":1777722543919778095,"word_count":402,"hashes":{"gun/data/kakao_route_cache.json":"f30f2d72f97621f7275dd7102477b5083c4f47d7e88d4c0ec1fb6db023c0f719"}},"gun/docs/COLLECTION_GUIDE.md":{"size":7680,"mtime_ns":1777722543920450597,"word_count":1065,"hashes":{"gun/docs/collection_guide.md":"7dc0914c0f22e47cdab5a8d4ed401fbe6f35ab839d93babf2cd256e991c367f1"}},"gun/docs/DESIGN_RECONCILIATION.md":{"size":10769,"mtime_ns":1777722543920618139,"word_count":1395,"hashes":{"gun/docs/design_reconciliation.md":"7da145770f0042aed9e3bd02469e296c2ad10f35424fca9636fbdf7643f74d7a"}},"gun/docs/README.md":{"size":1610,"mtime_ns":1777722543920736722,"word_count":198,"hashes":{"gun/docs/readme.md":"f8302172c453a3eee6d9833fbe3f81bcf1756ac8beb6017ed92ee07e4e37068a"}},"gun/scripts/build_hours_db.py":{"size":35991,"mtime_ns":1777774502375675821,"word_count":2234,"hashes":{"gun/scripts/build_hours_db.py":"8c0bf46d9ea062ee35d3676e1e9130054bdf1a47a46b44385e691c603e8f1954"}},"gun/scripts/build_itinerary_excel.py":{"size":22228,"mtime_ns":1777774502376047611,"word_count":1849,"hashes":{"gun/scripts/build_itinerary_excel.py":"e7477d4a6751d5b8b73957d50ddd92e15872a1517a43cd2c5b4b3db626cf2e99"}},"gun/scripts/build_ppt.js":{"size":82683,"mtime_ns":1777722543921198265,"word_count":10539},"gun/scripts/build_travel_matrix.py":{"size":6679,"mtime_ns":1777722543921413724,"word_count":601,"hashes":{"gun/scripts/build_travel_matrix.py":"6214e09ef0a8a9abacff2ec6a9e7e0ca002d503a5a56ce005c26a6e59f6de5a7"}},"gun/scripts/create_input_template.py":{"size":7955,"mtime_ns":1777722543921626683,"word_count":674,"hashes":{"gun/scripts/create_input_template.py":"22feb272eb4e2fa6ddffb4f0f095a2fa27ad9af2b666d5f77397c3ca7c3f0686"}},"gun/scripts/curated_itineraries.py":{"size":34461,"mtime_ns":1777722543921766100,"word_count":2668,"hashes":{"gun/scripts/curated_itineraries.py":"86e9427e650fb2a467fb8b65ea37600d642a8d96f69d00b481a25699ae861c25"}},"gun/scripts/fetch_google_hours.py":{"size":8479,"mtime_ns":1777725821046097424,"word_count":708,"hashes":{"gun/scripts/fetch_google_hours.py":"62a1600bad85c2df3c9c7fe88f175da8c8214d38b62ce75d10d59f5e84a18582"}},"gun/scripts/fetch_tourapi_to_csv.py":{"size":40810,"mtime_ns":1777722543921929850,"word_count":3443,"hashes":{"gun/scripts/fetch_tourapi_to_csv.py":"39c8836f09762652402a903155e8f873e2d88c24e82f185923cddfbbc0384f52"}},"gun/scripts/inspect_json.py":{"size":6608,"mtime_ns":1777722543922128601,"word_count":640,"hashes":{"gun/scripts/inspect_json.py":"24ce014a6e4284ab10877ff8595735d01d7f820c595a5026c1b9b6e7fcfb18c7"}},"gun/scripts/preprocess_pois.py":{"size":11136,"mtime_ns":1777722543922292893,"word_count":1005,"hashes":{"gun/scripts/preprocess_pois.py":"1cf4b2953f79d03587cb233f060c575183ada7285a12f66cf1245f429bfef9f2"}},"gun/scripts/setup_and_test.py":{"size":2626,"mtime_ns":1777722543922385685,"word_count":241,"hashes":{"gun/scripts/setup_and_test.py":"651d7d4fbc67fb037ee51cee9f0b6685479d63aec7fba9f4f2fb473f7e2e9881"}},"gun/src/__init__.py":{"size":0,"mtime_ns":1777722543922457644,"word_count":0,"hashes":{"gun/src/__init__.py":"0bb2be7d2b7ff58a6bb19492dcd31a3e6152b7cc64e60b871552f18851f61336"}},"gun/src/validation/__init__.py":{"size":0,"mtime_ns":1777722543922543602,"word_count":0,"hashes":{"gun/src/validation/__init__.py":"b44a90018ceb78e047b4587cdd5b1784b241ff87045d4fc33005cf64e52c1db3"}},"gun/tests/__init__.py":{"size":0,"mtime_ns":1777722543922630144,"word_count":0,"hashes":{"gun/tests/__init__.py":"0bf71a6870f836354488c5ab12ae0e5d7568471a30d8f751caae22ac03b3c6a7"}},"package.json":{"size":54,"mtime_ns":1777722543922728728,"word_count":7,"hashes":{"package.json":"07cc7681576c2df22194b42d51211a47c33f22b37e3c0da8b74adb07764f0582"}},"phases/0-setup/analysis_result.json":{"size":45493,"mtime_ns":1777451253562237410,"word_count":3867,"hashes":{"phases/0-setup/analysis_result.json":"45c5b6d4fe137bc9eb1020984802a0e64f92b669beaa63f7b6287364c0bb39ea"}},"phases/0-setup/analyze.py":{"size":17133,"mtime_ns":1777451253562374408,"word_count":1606,"hashes":{"phases/0-setup/analyze.py":"01cbfd23b94cbd533ae354770d90475f7090879eea6324159c4bb235ff7071ee"}},"phases/0-setup/analyze_triple.py":{"size":18882,"mtime_ns":1777451253562494198,"word_count":1820,"hashes":{"phases/0-setup/analyze_triple.py":"746211cf1105bf95334ae8d58345e89cff39469079546d60fa716d745faa3af4"}},"phases/0-setup/cache_route.json":{"size":26160,"mtime_ns":1777451253562775444,"word_count":1238,"hashes":{"phases/0-setup/cache_route.json":"c92ac67e542aafa2269b2617a6acb424940df6f76052f6ec0c79fd8ca01be620"}},"phases/0-setup/index.json":{"size":220,"mtime_ns":1777451253563608391,"word_count":28,"hashes":{"phases/0-setup/index.json":"3a317bcb806cbeece881cf452206342c7fbcb5a687016048b27f2aad59db1bd6"}},"phases/0-setup/statistical_report.json":{"size":6510,"mtime_ns":1777451253563687349,"word_count":611,"hashes":{"phases/0-setup/statistical_report.json":"8a34e5e743cb42a2c0db1e705f56dae893eefd52186d6c989a3cf16eea4cb5d2"}},"phases/0-setup/statistical_report.py":{"size":13457,"mtime_ns":1777451253563792389,"word_count":1214,"hashes":{"phases/0-setup/statistical_report.py":"fdcd45f1447f5dd20fc2a4e9f6650fc1a7cf3b6654aac46d87b0b2520b9f85e4"}},"phases/0-setup/step0.md":{"size":2738,"mtime_ns":1777451253563893929,"word_count":256,"hashes":{"phases/0-setup/step0.md":"253c5045044e04833e5faa7117fb50f1cd83527bf6782443018c92ab9d463ac4"}},"phases/0-setup/step1.md":{"size":9518,"mtime_ns":1777451253564010511,"word_count":859,"hashes":{"phases/0-setup/step1.md":"0a7dde4c5628675d7fe174083a40106670f92c636b20be3c1965871cec061d7d"}},"phases/0-setup/triple_analysis_result.json":{"size":48344,"mtime_ns":1777451253564103760,"word_count":4069,"hashes":{"phases/0-setup/triple_analysis_result.json":"ca69c9cc19b4c2a650f0938c9c0b369844d79c621e6788b3fca81e9f9a1e8a33"}},"phases/0-setup/visualize.py":{"size":6948,"mtime_ns":1777451253564729793,"word_count":661,"hashes":{"phases/0-setup/visualize.py":"432695e40c8fc3be7a00f85d5f15e39a565f748c592825bfdc28e1eac22f3bbf"}},"phases/0-setup/visualize_combined.py":{"size":12852,"mtime_ns":1778043956778001721,"word_count":1198,"hashes":{"phases/0-setup/visualize_combined.py":"2d8e22a201939a2bafec1809a59ad56c137e2b82647dd3b47161e6ca92603bb9"}},"phases/1-data/index.json":{"size":295,"mtime_ns":1777451253565236494,"word_count":36,"hashes":{"phases/1-data/index.json":"eca291eef3e5656b6443e78ae33031b6bc63d85a19f4020d5ce2bfb8877c46f8"}},"phases/1-data/step0.md":{"size":2798,"mtime_ns":1777451253565321076,"word_count":318,"hashes":{"phases/1-data/step0.md":"e5ea0ec026800e6d35540b80a47f922cd6af90a1d62c96f9c793eadbcecb1a70"}},"phases/1-data/step1.md":{"size":3782,"mtime_ns":1777451253565398617,"word_count":368,"hashes":{"phases/1-data/step1.md":"3dc65245c95fd9ff9797048340b49e0e1594e9526b06bbfed69b61ae7cc9846f"}},"phases/1-data/step2.md":{"size":3903,"mtime_ns":1777451253565467866,"word_count":421,"hashes":{"phases/1-data/step2.md":"434366a39381920c53a1853a47ced0591be8bd177549ece29f38131356c4517b"}},"phases/1-data/step3.md":{"size":5105,"mtime_ns":1777451253565549490,"word_count":459,"hashes":{"phases/1-data/step3.md":"2f24ce47f28b019008107b98fa33e460653cf9710b3a322761b56e9af8e5d668"}},"phases/2-matrix/index.json":{"size":158,"mtime_ns":1777451253565660363,"word_count":20,"hashes":{"phases/2-matrix/index.json":"d2186113fc2b3e94b2c47b2c4982f8ebc3aa123d4b97a87689d2e60345cdd252"}},"phases/2-matrix/step0.md":{"size":4246,"mtime_ns":1777451253565728237,"word_count":413,"hashes":{"phases/2-matrix/step0.md":"8b970582db94a91aa842d38c5c0432939a302f56eb0ba8741ae951945c34c305"}},"phases/3-graph/index.json":{"size":287,"mtime_ns":1777451253565820028,"word_count":36,"hashes":{"phases/3-graph/index.json":"188330f39eabb7b1c38b1c971186c8158431bf9ceeb7a7ad9eacff36b9e5ae25"}},"phases/3-graph/step0.md":{"size":3496,"mtime_ns":1777451253565900110,"word_count":368,"hashes":{"phases/3-graph/step0.md":"1b3e1e78418fd7a958cbb9708b877bf136da2c1b195eb1f5dedadf15ffb725dd"}},"phases/3-graph/step1.md":{"size":3649,"mtime_ns":1777451253565973776,"word_count":376,"hashes":{"phases/3-graph/step1.md":"e016451cddb482532295b935e7c480b600401d0418a6cbc9594da529d7b5b2ff"}},"phases/3-graph/step2.md":{"size":2969,"mtime_ns":1777451253566046191,"word_count":316,"hashes":{"phases/3-graph/step2.md":"cf45de8a6d108946ec62da9118806621824ba4424cfa9098a12e2af5f3ff5ebf"}},"phases/4-validation/index.json":{"size":280,"mtime_ns":1777451253566143607,"word_count":36,"hashes":{"phases/4-validation/index.json":"b023f67f479e700b9df7220cc84f591db4130f24706cd725df16093647cd3f9d"}},"phases/4-validation/step0.md":{"size":4422,"mtime_ns":1777451253566208314,"word_count":462,"hashes":{"phases/4-validation/step0.md":"bf6d642c0eec5c799e8812d20a737bfc5862460f80f7c01f2fad700fe83e59bc"}},"phases/4-validation/step1.md":{"size":4254,"mtime_ns":1777451253566283521,"word_count":429,"hashes":{"phases/4-validation/step1.md":"216f3af9787af953e27490b6e48ce28b6496759d9b414f0391567e74158ef358"}},"phases/4-validation/step2.md":{"size":5212,"mtime_ns":1777451253566356354,"word_count":559,"hashes":{"phases/4-validation/step2.md":"d20407494a170bbd1b22c4bd2c132356e27f58cc70835c12422dbd7e5cf77b30"}},"phases/5-explain/index.json":{"size":292,"mtime_ns":1777451253566470185,"word_count":36,"hashes":{"phases/5-explain/index.json":"d6c1ca51e5fc771b8e13e5d5dce2c9a9a717fda347cc5b00e270834e331d4fe7"}},"phases/5-explain/step0.md":{"size":3730,"mtime_ns":1777451253566548934,"word_count":382,"hashes":{"phases/5-explain/step0.md":"643eb0c8947b0c93d807299b657d478741cd965ecf3d6fd1fb8c9d17b92ac59a"}},"phases/5-explain/step1.md":{"size":4291,"mtime_ns":1777451253566627600,"word_count":396,"hashes":{"phases/5-explain/step1.md":"af877f3f64d15695d17ac89eac3b77c851a455f054dc7d394d6eba442b2c474d"}},"phases/5-explain/step2.md":{"size":6251,"mtime_ns":1777451253566710599,"word_count":548,"hashes":{"phases/5-explain/step2.md":"c6388cc22474218a404ff1d69f61335fea749ef01fe8c917c54f623b4eda9853"}},"phases/6-api/index.json":{"size":216,"mtime_ns":1777451253566832472,"word_count":28,"hashes":{"phases/6-api/index.json":"e967e70bdefd006891255bbd5db174c5de09a968652ebb9edd2689aded4f5b19"}},"phases/6-api/step0.md":{"size":4937,"mtime_ns":1777451253566928554,"word_count":390,"hashes":{"phases/6-api/step0.md":"6583ccb91b1084186848fe30f75541c89ae46ea9b9980a253f716744be75a7aa"}},"phases/6-api/step1.md":{"size":5701,"mtime_ns":1777451253567004720,"word_count":560,"hashes":{"phases/6-api/step1.md":"3bf7687bc63bf490152f34d3e3141f3aeab604c10cc6f5cb5f211e6651a6441a"}},"phases/index.json":{"size":497,"mtime_ns":1777523379983558015,"word_count":57,"hashes":{"phases/index.json":"d71c65324a5606f6916c1c86e894546eb5436a91aa4cba5f321f02fd2b3965d6"}},"plan.md":{"size":29088,"mtime_ns":1777799274067425920,"word_count":2815,"hashes":{"plan.md":"97bd119efdb701b6468228b828c6d7fe69e7b65d26415d15f91bb73641fa054f"}},"pyproject.toml":{"size":1007,"mtime_ns":1786589332026793132,"word_count":98,"hashes":{"pyproject.toml":"27ad0975d768033562e94d9a8e572dc7fc7c16032a0ac9c746f5f89e4297eb02"}},"requirements.txt":{"size":452,"mtime_ns":1786853002875934231,"word_count":49,"hashes":{"requirements.txt":"3b81e24ceed57daaaa8aee9311bb547318c940b3a0e7da2ad54147f031749db2"}},"scripts/build_knowledge_graph.py":{"size":11064,"mtime_ns":1785584052306574707,"word_count":923,"hashes":{"scripts/build_knowledge_graph.py":"a54cd9190059c611c8dce01363dfda8f451357b1885d952180e373c1b649dcfa"}},"scripts/build_poi_dataset.py":{"size":3133,"mtime_ns":1777738552472917674,"word_count":256,"hashes":{"scripts/build_poi_dataset.py":"c7d3ca447b831b996c8fb62a4a4ed76d2e6c33051a260b10ed80d19489db1435"}},"scripts/collect_naver_full.py":{"size":24270,"mtime_ns":1777472360586854707,"word_count":2147,"hashes":{"scripts/collect_naver_full.py":"1d3d0b0e2a24fe31b116ad7acb19a4b3f223f5d1c6919444c5e50513ba40f413"}},"scripts/collect_naver_metadata.py":{"size":12179,"mtime_ns":1777456822351481026,"word_count":1058,"hashes":{"scripts/collect_naver_metadata.py":"3a9bd6c7ad75d25b1110fce15de4cb2832f8faaf4fff8e6ef76696702498eb4a"}},"scripts/collect_naver_only.py":{"size":19968,"mtime_ns":1777466784903237542,"word_count":1717,"hashes":{"scripts/collect_naver_only.py":"a240dd183a68608f5686056562433df371a49bf95788ce3f9b7f42212fce2d77"}},"scripts/demo_live_e2e.py":{"size":3088,"mtime_ns":1785585693723218510,"word_count":273,"hashes":{"scripts/demo_live_e2e.py":"94a5004c2d8e1e00fa7ae4f30103103917d240da2e7c76c342998dc36d2be81e"}},"scripts/execute.py":{"size":16360,"mtime_ns":1777451253584151277,"word_count":1338,"hashes":{"scripts/execute.py":"f59929f833fa418dc77a5b258351d6a6aba4284b524f8f0df7d9ffbac0b70c6c"}},"scripts/extract_visitor_stats.py":{"size":6376,"mtime_ns":1777515293761947263,"word_count":541,"hashes":{"scripts/extract_visitor_stats.py":"4cf1c4b0c5291bd340741c3fa44e0f44405c7c547a5d10188761bf1d76c4cf35"}},"scripts/fetch_jeju_hours.py":{"size":2483,"mtime_ns":1785586956137761903,"word_count":251,"hashes":{"scripts/fetch_jeju_hours.py":"197911bb59bc12c7128b036f9780c46be69ce81c37b55778a5a6f2d47a52f40b"}},"scripts/fetch_missing_pois.py":{"size":6273,"mtime_ns":1779312122043491942,"word_count":533,"hashes":{"scripts/fetch_missing_pois.py":"dcb76677107618c486fbfd6c36851965e380035eea5b2ba6219af356123c9ed6"}},"scripts/geocode_jeju_missing_coords.py":{"size":3340,"mtime_ns":1785334245581387135,"word_count":329,"hashes":{"scripts/geocode_jeju_missing_coords.py":"2654b4fea9fb08f631e2a9864c6a8dea8789361be229c10db1d65202bc033fd0"}},"scripts/load_knowledge_graph_neo4j.py":{"size":5938,"mtime_ns":1785583919120050175,"word_count":538,"hashes":{"scripts/load_knowledge_graph_neo4j.py":"caa1ad54c2c0b12774e306037a9557964a2e789ce4aad927bad2453e6758bedf"}},"scripts/neo4j_coverage_analysis.py":{"size":15888,"mtime_ns":1777520076568973863,"word_count":1311,"hashes":{"scripts/neo4j_coverage_analysis.py":"b3274ebc249bbd43ebfbaf6c94a018cf00c634bfc78ff54b6b05eb98109b8f21"}},"scripts/test_execute.py":{"size":21227,"mtime_ns":1777451253584262358,"word_count":1622,"hashes":{"scripts/test_execute.py":"3bfe2cb281217a98711c28f53692ffc22168193beae12b23f0c97df4a0f866fd"}},"scripts/test_pipeline.py":{"size":16326,"mtime_ns":1777735206533104289,"word_count":1453,"hashes":{"scripts/test_pipeline.py":"73da2dca800e902c041726e4a76f0e5458e6998686b640dfeee456a5e1e38df4"}},"src/__init__.py":{"size":0,"mtime_ns":1777451253584333732,"word_count":0,"hashes":{"src/__init__.py":"f2ddc4c32d3ace6eb5786bbe136168ec6286d22339b0c2b5fba5c5411ba3db33"}},"src/api/__init__.py":{"size":0,"mtime_ns":1777816109394578787,"word_count":0,"hashes":{"src/api/__init__.py":"cfcc66c4b0c6cdc64b680f4732791cca779f9666d52f94581cf457b821c9ef8a"}},"src/api/main.py":{"size":3766,"mtime_ns":1785587795130929415,"word_count":314,"hashes":{"src/api/main.py":"1725befc5a5f1c81a222a7385978af4fcaf030ecc866e5781e329cdc102a8315"}},"src/api/router.py":{"size":48358,"mtime_ns":1786783687653695077,"word_count":4380,"hashes":{"src/api/router.py":"1b6e66642d94020eed4e102b2beffcb988b24c4c62d5ba1f0956e1a373a8b250"}},"src/api/schemas.py":{"size":2351,"mtime_ns":1786783667349050119,"word_count":247,"hashes":{"src/api/schemas.py":"7086528e6754f06ea0cdfd2f5caf3899f17a27a890e9f30113e5e215c79944fb"}},"src/api/static/index.html":{"size":245517,"mtime_ns":1786861293229369672,"word_count":14089,"hashes":{"src/api/static/index.html":"bbfb9800b8a7fe3a8c1c4dae48d758f25af1ae4d36e6914a5c36226141a6ebda"}},"src/api/static/manifest.json":{"size":1387,"mtime_ns":1780124687450251357,"word_count":148,"hashes":{"src/api/static/manifest.json":"49889c0f0087e6353e14ea0f69192481591e6cc7e9df229041261395d4068170"}},"src/api/static/service-worker.js":{"size":1349,"mtime_ns":1780124696762896419,"word_count":128},"src/data/__init__.py":{"size":0,"mtime_ns":1777451253584417231,"word_count":0,"hashes":{"src/data/__init__.py":"5aab75a1df3ce4c322908ffe8170a42b246f3383126cff5f9f7629fed9baef8c"}},"src/data/barrier_free_api.py":{"size":8069,"mtime_ns":1777781991111676653,"word_count":676,"hashes":{"src/data/barrier_free_api.py":"48868fed2687a2f94002ad114dbdf582536015f24400c2b4cee54c1f9ff60414"}},"src/data/dwell_db.py":{"size":8586,"mtime_ns":1777451253584501813,"word_count":906,"hashes":{"src/data/dwell_db.py":"f2f82fb7d4e09432e8b04a83a983b4f9aced3d9249e58d9f36558841ac9aa8a6"}},"src/data/graph_retriever.py":{"size":4678,"mtime_ns":1786616520125143920,"word_count":397,"hashes":{"src/data/graph_retriever.py":"0b241600eaf24a807c9bbdaf99de1072b36ed93106e7bdf7ec6dd56972e42cf7"}},"src/data/hours_db.py":{"size":14236,"mtime_ns":1777774502376461859,"word_count":618,"hashes":{"src/data/hours_db.py":"56f4f33322b380c0dd91ac66850c13aa135ce059909117ffba257edda02e61df"}},"src/data/kakao_local.py":{"size":5911,"mtime_ns":1785334192934038414,"word_count":481,"hashes":{"src/data/kakao_local.py":"e6f41625a2ab2c40d1c03c6d87d4dd08f54c38cb277788d42c155b68b3ad26a0"}},"src/data/models.py":{"size":12323,"mtime_ns":1786783617984089668,"word_count":1269,"hashes":{"src/data/models.py":"f58d648f7d654e139b8981865f151ded76f0abe21e2d09b1dec2eb3f39771dc7"}},"src/data/party_config.py":{"size":1567,"mtime_ns":1777721907795654717,"word_count":146,"hashes":{"src/data/party_config.py":"3f270df90a3e3fee4caf266a91c83ad685240a6e0402cae96e0758a07a89a079"}},"src/data/region_config.py":{"size":3934,"mtime_ns":1777718481390864291,"word_count":320,"hashes":{"src/data/region_config.py":"b455e0d85674b0ac7990f236708d68ab16026bdb66cc972478dcd97863867932"}},"src/data/restaurant_catalog.py":{"size":2557,"mtime_ns":1786616398485766423,"word_count":226,"hashes":{"src/data/restaurant_catalog.py":"c6a1439abb298710266bf3f026fda27743a6aa0606c227edf47b45d4b4dbbe5b"}},"src/data/seoul_citydata_client.py":{"size":7071,"mtime_ns":1777523278371401393,"word_count":573,"hashes":{"src/data/seoul_citydata_client.py":"6bfe909c3cb46e05bb4831cf9bb32532e16fc50e4417204846a09bde95a514b4"}},"src/data/theme_taxonomy.py":{"size":6661,"mtime_ns":1777451253584637395,"word_count":598,"hashes":{"src/data/theme_taxonomy.py":"77a1d82310031c8c205fa05e8c15c3f0ed4a03d86a793af72917c43dfe6e48ee"}},"src/data/tour_api.py":{"size":5351,"mtime_ns":1777785284939497405,"word_count":446,"hashes":{"src/data/tour_api.py":"4ce63ec57dd4b7954fbf9fcfb160d38f6ebc5cda477b2b38124b88774a785215"}},"src/data/wellness_api.py":{"size":4229,"mtime_ns":1777869280292773430,"word_count":376,"hashes":{"src/data/wellness_api.py":"761476ae9d54730d0d583bff8af9a3a883c614698c0da15ae346c1b28e65827c"}},"src/explain/__init__.py":{"size":0,"mtime_ns":1777738407096040425,"word_count":0,"hashes":{"src/explain/__init__.py":"aebd9818bb704e3273f3ae2f096c24bbe8bc876e0edd6356fd016d0f6fb2ceac"}},"src/explain/explain_engine.py":{"size":23156,"mtime_ns":1786779975226671912,"word_count":1992,"hashes":{"src/explain/explain_engine.py":"1d132817dbc4971166d49423ee3dc87b14ba552ac4ed2305ec58514a78f3bdce"}},"src/explain/pipeline.py":{"size":17651,"mtime_ns":1786851619871097940,"word_count":1225,"hashes":{"src/explain/pipeline.py":"f50f70785c6271e4491a7a11522d57a9f692e307cfe5262e21fd624e12c72369"}},"src/explain/plan_extractor.py":{"size":8090,"mtime_ns":1786862653144251907,"word_count":719,"hashes":{"src/explain/plan_extractor.py":"40cae72ace465a5261dbc7a1ac187774c9b94a51431b9d41e21378f5dc85c9db"}},"src/explain/repair.py":{"size":10326,"mtime_ns":1786861266770538426,"word_count":999,"hashes":{"src/explain/repair.py":"5ed35d743092b779903182e43b86595b741787d48fdafb1ea76ec52758e39ffd"}},"src/matrix/__init__.py":{"size":141,"mtime_ns":1777718449740316301,"word_count":13,"hashes":{"src/matrix/__init__.py":"ce4f4206546db46e7aaaf2dd45659f5f585f86f2b43888646fda099d9bf1adb5"}},"src/matrix/redis_matrix.py":{"size":5237,"mtime_ns":1777718852132281000,"word_count":409,"hashes":{"src/matrix/redis_matrix.py":"cc736d76033e07fac230fbd5c99f992c33f3ad0a25c95689d7ab5a297a6b8940"}},"src/scoring/__init__.py":{"size":296,"mtime_ns":1777451253584732560,"word_count":36,"hashes":{"src/scoring/__init__.py":"33c5fb364c349fc3e085e6093090a51ca7d2b4ff2f0a3c46660d9944971647f6"}},"src/scoring/bonus_engine.py":{"size":4854,"mtime_ns":1786783637731264872,"word_count":380,"hashes":{"src/scoring/bonus_engine.py":"25b87debaeb3bd26e7968184f701deca25d00a7b765386a316ecc91323be3864"}},"src/scoring/cluster_dispersion.py":{"size":10816,"mtime_ns":1777738403795307957,"word_count":1000,"hashes":{"src/scoring/cluster_dispersion.py":"0e029402dc8b67f8514efa39e6f8efe1efa36f919e25b1a344763825384eb623"}},"src/scoring/congestion_engine.py":{"size":8268,"mtime_ns":1777523358998648153,"word_count":681,"hashes":{"src/scoring/congestion_engine.py":"dcc67140df0396e3e5c3337dc9ae1631b2fce2ab2c8a7d76dca2f2bc4b7eacc1"}},"src/scoring/reward_engine.py":{"size":2501,"mtime_ns":1777718876992598807,"word_count":246,"hashes":{"src/scoring/reward_engine.py":"577457af325961efe8606b411406ebbd8a22aa9edffa9cbe0813e193b65a022a"}},"src/scoring/theme_alignment.py":{"size":10505,"mtime_ns":1786779975228786467,"word_count":941,"hashes":{"src/scoring/theme_alignment.py":"d879a3ae59268bc118f5e88cc666fecbcde6a6be901dbd05cb5306830eaaf534"}},"src/scoring/travel_ratio.py":{"size":3924,"mtime_ns":1777451253584926308,"word_count":371,"hashes":{"src/scoring/travel_ratio.py":"8eda4ee5e0635eaecbd4bbed862043f08605b1ca7da57bf076a16dc7e03a163b"}},"src/utils/__init__.py":{"size":0,"mtime_ns":1777731460264655726,"word_count":0,"hashes":{"src/utils/__init__.py":"e0f516a85c8039f189c4e8c728cc8d7c2fa4cb6aed920648ac261cd1ba909e03"}},"src/utils/geo.py":{"size":2859,"mtime_ns":1777731462310334008,"word_count":322,"hashes":{"src/utils/geo.py":"cdd822b431df58c4227138afaee87957fd97fad329839c82e40657ca255f04fd"}},"src/validation/__init__.py":{"size":0,"mtime_ns":1777451253585002723,"word_count":0,"hashes":{"src/validation/__init__.py":"d28e1c146ae48649d1ee4632184814b817efc9f4c39cbc4d6f87ac1b903318dd"}},"src/validation/alternatives.py":{"size":4423,"mtime_ns":1777828486944011198,"word_count":423,"hashes":{"src/validation/alternatives.py":"ec0107a9398d08e7471ca703ad6d216d17fd73c2b0dcbc405920d97ea761f9fc"}},"src/validation/hard_fail.py":{"size":8188,"mtime_ns":1786616520125523089,"word_count":686,"hashes":{"src/validation/hard_fail.py":"8b3032d9dea8254432ec455666d0463fd63eb4303321b497da5f465c547305d3"}},"src/validation/kakao_matrix.py":{"size":13101,"mtime_ns":1777718149849641691,"word_count":1026,"hashes":{"src/validation/kakao_matrix.py":"e6df9426218af420db0d9ef2a46f9ef03340443dcb54ff3155dc8e4f2e8c106c"}},"src/validation/scoring.py":{"size":6331,"mtime_ns":1777828448731181119,"word_count":664,"hashes":{"src/validation/scoring.py":"7c4022492eb3f45817366b08c7ef494df640d8ff944f25fd488cefd39cc26494"}},"src/validation/vrptw_engine.py":{"size":20507,"mtime_ns":1777473547114597665,"word_count":1802,"hashes":{"src/validation/vrptw_engine.py":"f6481579f778d33a4fdf464e064d8a6dcc309eef6619ab1060b87ffd4e191b15"}},"src/validation/warning.py":{"size":10586,"mtime_ns":1785639470571704769,"word_count":970,"hashes":{"src/validation/warning.py":"ea470fb1c90053b2da4907392405eba55185b81ac8687ee88b8934e7062ded15"}},"tests/__init__.py":{"size":0,"mtime_ns":1777451253585277469,"word_count":0,"hashes":{"tests/__init__.py":"9766508e5a013c3d3cbb2602719391199e90af5720c9782a77ca71565aa346b1"}},"tests/conftest.py":{"size":487,"mtime_ns":1786780450982917704,"word_count":41,"hashes":{"tests/conftest.py":"628d5b140ba73e0ac171019edf66e9eeadbd5f222f25ab5a0f211077bba5fd8c"}},"tests/test_alternatives.py":{"size":4858,"mtime_ns":1777828575824590582,"word_count":413,"hashes":{"tests/test_alternatives.py":"a9814e97969c079ec6c71dd016718fe79a944e2a4531fbdef907d3d0e7722132"}},"tests/test_bonus_engine.py":{"size":10132,"mtime_ns":1786783575554457563,"word_count":765,"hashes":{"tests/test_bonus_engine.py":"bc1d1b8d4443a45922e2152d306b6157ddbd9db8bbf19013cf5c4786368363d9"}},"tests/test_cluster_dispersion.py":{"size":6124,"mtime_ns":1777521944144603355,"word_count":558,"hashes":{"tests/test_cluster_dispersion.py":"c9488ccdf6a6a86610a112cb0547d095e2605beae3c248776c39209c65b4f49b"}},"tests/test_congestion_engine.py":{"size":6723,"mtime_ns":1777516006302043155,"word_count":448,"hashes":{"tests/test_congestion_engine.py":"6ba9d73a3e4386f30c3770c8d83341da973abf28ca1b9ac1da089635100c26b5"}},"tests/test_dwell_db.py":{"size":2288,"mtime_ns":1777451253585397051,"word_count":181,"hashes":{"tests/test_dwell_db.py":"a192d8c1d4f0ddbdc8cfad73aa1fef23209222b51a27624e1176b9cf7e4b4f64"}},"tests/test_estimated_hardfail.py":{"size":1940,"mtime_ns":1780630909497777045,"word_count":172,"hashes":{"tests/test_estimated_hardfail.py":"a546b170d2ad6bcb524c3b8763e0befd263cd7904ebb3e6fb501f36d8144fd48"}},"tests/test_explain_engine.py":{"size":21962,"mtime_ns":1785640352098022616,"word_count":1688,"hashes":{"tests/test_explain_engine.py":"c55543abeef8e54ee00023c4a3b962bbe6db55fb6110bac1ec5f2dcadf0240ac"}},"tests/test_geo.py":{"size":5878,"mtime_ns":1777736842624419383,"word_count":552,"hashes":{"tests/test_geo.py":"1e0a4400d4c40571f12397f91204c85fb20002f4ea632b4cd4750fa6ab0613e8"}},"tests/test_graph_retriever.py":{"size":4176,"mtime_ns":1786616520125693590,"word_count":268,"hashes":{"tests/test_graph_retriever.py":"74d131e431371f16377a6da34770d1d197feeeec9ac3844a45880393e39e0778"}},"tests/test_hard_fail.py":{"size":9338,"mtime_ns":1786616520125842632,"word_count":838,"hashes":{"tests/test_hard_fail.py":"a43ed21d165c464c5dbbf231443a8ed295ffb25d9039a0f391edb24120b4dafa"}},"tests/test_kakao_local.py":{"size":5564,"mtime_ns":1785334170304581136,"word_count":422,"hashes":{"tests/test_kakao_local.py":"663fefeaf89c8d280cc0f6fec74689e5b7151a7c3f66c3b5423d55f303da6cc4"}},"tests/test_kakao_matrix.py":{"size":9152,"mtime_ns":1777718270630216343,"word_count":664,"hashes":{"tests/test_kakao_matrix.py":"cbcedc6fa0fe399384ca41bf750a73abb2a764fb459d59b3e554690902595190"}},"tests/test_party_config.py":{"size":3305,"mtime_ns":1777722533600411358,"word_count":205,"hashes":{"tests/test_party_config.py":"a0678437010cb016ecdc5d16b9c9c58e237868b44f76a02cf7cfd015c033dd87"}},"tests/test_pipeline_orchestrator.py":{"size":16391,"mtime_ns":1786851429337339749,"word_count":1193,"hashes":{"tests/test_pipeline_orchestrator.py":"ad1d63af2a7ba70861b2e237e4b0492e85fcfc8f5647e123d0619502c39c7964"}},"tests/test_plan_extractor.py":{"size":4149,"mtime_ns":1786862644008612432,"word_count":267,"hashes":{"tests/test_plan_extractor.py":"c99aa95f1b05dac935f12799c24b8d471a5fb159f68eb75ed0aad642e997a0a2"}},"tests/test_region_config.py":{"size":1323,"mtime_ns":1777718962185175923,"word_count":76,"hashes":{"tests/test_region_config.py":"ef103c9e60e513d31184619cc642392b827076a5f855a1a23eededc4d9efd764"}},"tests/test_repair.py":{"size":9429,"mtime_ns":1786861255059269134,"word_count":757,"hashes":{"tests/test_repair.py":"3873598f4c623dc9fc625fdb2a5f14a8a89bb8d637bce5a39dba49eede4971f2"}},"tests/test_resolve_poi.py":{"size":5889,"mtime_ns":1786783594630138790,"word_count":421,"hashes":{"tests/test_resolve_poi.py":"8bd45a30f857e7c8af8cfca512444e80df8ef9bdfd961b6a9769a622895022dc"}},"tests/test_restaurant_catalog.py":{"size":1126,"mtime_ns":1786616467294536078,"word_count":104,"hashes":{"tests/test_restaurant_catalog.py":"2c7301f16aafa872f7322bd07d375751d63e9748859fbe253ad73eb92b79cb8f"}},"tests/test_reward_engine.py":{"size":3323,"mtime_ns":1777718976861340234,"word_count":215,"hashes":{"tests/test_reward_engine.py":"2c496b5d9432610f4d41952bb0bc8cf11f33d56daf69c3b30c0ec6f14a0883ad"}},"tests/test_scoring.py":{"size":8301,"mtime_ns":1777736815905397750,"word_count":709,"hashes":{"tests/test_scoring.py":"154143336bbb3e22546331f2d0c4ddfea8b7f8e31e92b6227a886f049a701e18"}},"tests/test_theme_alignment.py":{"size":5008,"mtime_ns":1777451253585484341,"word_count":386,"hashes":{"tests/test_theme_alignment.py":"9a1ec4ecf6809dfe35da7c584406986fe24ede1abff95ab5f0710044c3c5e94d"}},"tests/test_theme_taxonomy.py":{"size":2254,"mtime_ns":1777451253585555507,"word_count":160,"hashes":{"tests/test_theme_taxonomy.py":"5ad98c3354886a91442dbf0a4bb27533eed14ca91a1e477cd5341a02d9892c45"}},"tests/test_travel_ratio.py":{"size":2117,"mtime_ns":1777451253585615965,"word_count":181,"hashes":{"tests/test_travel_ratio.py":"e02744d06cc9ad7bfd17c0b4373df8fa368ff97ee387aef62c7a4bc8b6e4f41c"}},"tests/test_vrptw_engine.py":{"size":18271,"mtime_ns":1777451253585699047,"word_count":1466,"hashes":{"tests/test_vrptw_engine.py":"c7b785c4eeb6cd80fb8ef2cdbcba02265a18cd641e3e91bb098108575e736aeb"}},"tests/test_warning.py":{"size":11321,"mtime_ns":1785639582983330915,"word_count":1060,"hashes":{"tests/test_warning.py":"45bb07bdbd7ee60c56a8439aaf8c4eed6706302b9378076b37292fc21b73ae9d"}}} \ No newline at end of file +{".codex/hooks.json":{"size":901,"mtime_ns":1785898952005275288,"word_count":82,"hashes":{".codex/hooks.json":"8c3ca9681b2d256e64895bb5cc29a0e4c9c7ab3f1640404744da993c24e32550"}},".github/workflows/ci.yml":{"size":785,"mtime_ns":1780630909494225541,"word_count":85,"hashes":{".github/workflows/ci.yml":"d203e480f677bc4c14c77a10c986fcc8ea2a0282765fcd4ed6f31f8b07f0cf6b"}},".impeccable/critique/2026-05-30T06-32-37Z__src-api-static-index-html.md":{"size":4106,"mtime_ns":1789493409799743995,"word_count":636,"hashes":{".impeccable/critique/2026-05-30t06-32-37z__src-api-static-index-html.md":"ecc13877cde171c70007c47dd6ddc0339a976115d643fe7912a5321699f0c011"}},".impeccable/critique/2026-05-30T06-43-35Z__src-api-static-index-html.md":{"size":3304,"mtime_ns":1789493409842999984,"word_count":523,"hashes":{".impeccable/critique/2026-05-30t06-43-35z__src-api-static-index-html.md":"ea09e71fd61958c743fbfccd64a3825f0da37fead188f9357464645653bd1883"}},".impeccable/critique/2026-06-09T16-23-22Z__src-api-static-index-html.md":{"size":5166,"mtime_ns":1789493409886049849,"word_count":790,"hashes":{".impeccable/critique/2026-06-09t16-23-22z__src-api-static-index-html.md":"8137e6430b7b119045446d76a2aa475aa19d2bae7933644834c8430afc12ddfe"}},".impeccable/critique/2026-06-09T16-52-59Z__src-api-static-index-html.md":{"size":4377,"mtime_ns":1789493409929271088,"word_count":577,"hashes":{".impeccable/critique/2026-06-09t16-52-59z__src-api-static-index-html.md":"790ace29a3259df7cb11ced7dbc02dfd0b1e608d4ff999f25e213bfe34572a9b"}},".serena/project.yml":{"size":61,"mtime_ns":1785637323943564412,"word_count":5,"hashes":{".serena/project.yml":"548f15c3bf9a3fc96e852fad5e026015d952a40f4e689ff7616430d6cc7b5314"}},"AGENTS.md":{"size":3974,"mtime_ns":1789493468416347863,"word_count":490,"hashes":{"agents.md":"cfb80eb0dfd8463447058f97a26010d13e2809a74e841b32f1a61f673ef004f7"}},"CLAUDE.md":{"size":3979,"mtime_ns":1789493409973483784,"word_count":490,"hashes":{"claude.md":"274641b726dc6f46df092e2edf69691ac43b162c74e0dd9d3de949290aca7f45"}},"GEMINI.md":{"size":5588,"mtime_ns":1789493410016493857,"word_count":736,"hashes":{"gemini.md":"f422209b39a224717e313fd042b52ba1395f825919d300ce3eb4c1241c9814bd"}},"PRODUCT.md":{"size":2977,"mtime_ns":1789493410060204179,"word_count":439,"hashes":{"product.md":"977527ea515946da4c02d0f3af4c6b6760e1791aaf3dae6cfc4979467e6d85f8"}},"README.md":{"size":18834,"mtime_ns":1789635415287589004,"word_count":2567,"hashes":{"readme.md":"717d2401c8074100832068dcce45721b678993a1301e8f6df8486c6d54209b1e"}},"SUMMARY.md":{"size":35736,"mtime_ns":1789493410147792447,"word_count":2673,"hashes":{"summary.md":"e8093b901a82a3596197afb895270899014dfadc50ed3211d5110bfe1cbfe3db"}},"api.md":{"size":1816,"mtime_ns":1789493410189386272,"word_count":186,"hashes":{"api.md":"b82fd39acfabff42e54ff3bd02ba342058303a585587151e59485f094f168464"}},"data/barrier_free_places.json":{"size":583842,"mtime_ns":1777871166071958080,"word_count":50845,"hashes":{"data/barrier_free_places.json":"22d7f531dff8fc4d5f17095ebfc8ddffbc0ba131fcefe44c51e17cef9ec67738"}},"data/jeju_hours.json":{"size":12024,"mtime_ns":1785587001302524123,"word_count":1367,"hashes":{"data/jeju_hours.json":"430c6b04400fecc36091d3ed6110355672851cb4f75c23c13b09760013f60b72"}},"data/naver/naver_metadata.json":{"size":570601,"mtime_ns":1777472848775867548,"word_count":44822,"hashes":{"data/naver/naver_metadata.json":"34f55b7f7bcd98f2ded56cebb0a0325c269ac72ca00b03657922d85dbeac4517"}},"data/naver/naver_progress.json":{"size":570601,"mtime_ns":1777472848768358587,"word_count":44822,"hashes":{"data/naver/naver_progress.json":"5dc4657a34dced0d6137fbed1fb01d9f4848e8dd3b126765028ad35dbea963c0"}},"data/supabase_migration_congestion.sql":{"size":1774,"mtime_ns":1777516043418635376,"word_count":209,"hashes":{"data/supabase_migration_congestion.sql":"0841a33fae3334025964e290dcba09d333bc8d20b05fa78fafa1c0e4a19bc36d"}},"data/wellness_places.json":{"size":43020,"mtime_ns":1777871146010441360,"word_count":3924,"hashes":{"data/wellness_places.json":"5602e63db75e0d4ab8596368a8c9680690f6669857a68d5f9393219293a7e423"}},"data_construct.md":{"size":7286,"mtime_ns":1789496565642877894,"word_count":878,"hashes":{"data_construct.md":"05582032223072967a32751f11755d9f10de79108c250c4b5f8122c0802fb51b"}},"docker-compose.yml":{"size":460,"mtime_ns":1789634822614959352,"word_count":37,"hashes":{"docker-compose.yml":"18bb9883c971e8fde0dfadc618e68a93f9fa499b182d1339b15773078a7024ef"}},"docs/ADR.md":{"size":5374,"mtime_ns":1789496345828416233,"word_count":615,"hashes":{"docs/adr.md":"ee03e78b651c41a25c39a4a7fe53ffdee725ba0ed52d9122e8fc7d7eaa4bebc4"}},"docs/ARCHITECTURE.md":{"size":10037,"mtime_ns":1789493410276591624,"word_count":1235,"hashes":{"docs/architecture.md":"0b6d8ea432d15d3566bc2aee9a45044291fcf1faaa509e88d7085b3c5e350392"}},"docs/DATA_COLLECTION.md":{"size":5997,"mtime_ns":1789493410320513904,"word_count":711,"hashes":{"docs/data_collection.md":"1d1c371881e903d67a38652c55c3a8d25195fa695a221f6ee0f280a9ffcd03cd"}},"docs/ENHANCEMENT_PLAN.md":{"size":13723,"mtime_ns":1789493410363490393,"word_count":1832,"hashes":{"docs/enhancement_plan.md":"0b332fbdada892ebc2ab1d5090793f072d66b4d9c61f5f0f163dba6deabac72e"}},"docs/PRD.md":{"size":5682,"mtime_ns":1789493410406791965,"word_count":754,"hashes":{"docs/prd.md":"7363dc909705c3ca0acf83e9f4018047f830714b52221911c680a97bb93595a4"}},"docs/UI_GUIDE.md":{"size":5345,"mtime_ns":1789493410449971788,"word_count":654,"hashes":{"docs/ui_guide.md":"18194567d9a233829b72cbb3bddf9f0c81fbe335638014a53fbd1c92859092ea"}},"gun/data/kakao_route_cache.json":{"size":8542,"mtime_ns":1777722543919778095,"word_count":402,"hashes":{"gun/data/kakao_route_cache.json":"f30f2d72f97621f7275dd7102477b5083c4f47d7e88d4c0ec1fb6db023c0f719"}},"gun/docs/COLLECTION_GUIDE.md":{"size":7680,"mtime_ns":1789493410494919941,"word_count":1065,"hashes":{"gun/docs/collection_guide.md":"80229fa24ad3f077c202c393daa3893a411b3201c2ef825446bd40ea19aea085"}},"gun/docs/DESIGN_RECONCILIATION.md":{"size":10869,"mtime_ns":1789495357753979531,"word_count":1402,"hashes":{"gun/docs/design_reconciliation.md":"ac8002d9775541c9f8f4ea3dbb7c1e3ed45454cfca38c1901f27522892500762"}},"gun/docs/README.md":{"size":1565,"mtime_ns":1789495357754265408,"word_count":192,"hashes":{"gun/docs/readme.md":"9898d558f6234e68f3b1cc2de8db4a5a835ac2cd3401ac4f6806fe02a011397f"}},"gun/scripts/build_hours_db.py":{"size":35991,"mtime_ns":1777774502375675821,"word_count":2234,"hashes":{"gun/scripts/build_hours_db.py":"8c0bf46d9ea062ee35d3676e1e9130054bdf1a47a46b44385e691c603e8f1954"}},"gun/scripts/build_itinerary_excel.py":{"size":22228,"mtime_ns":1777774502376047611,"word_count":1849,"hashes":{"gun/scripts/build_itinerary_excel.py":"e7477d4a6751d5b8b73957d50ddd92e15872a1517a43cd2c5b4b3db626cf2e99"}},"gun/scripts/build_ppt.js":{"size":82683,"mtime_ns":1777722543921198265,"word_count":10539},"gun/scripts/build_travel_matrix.py":{"size":6679,"mtime_ns":1777722543921413724,"word_count":601,"hashes":{"gun/scripts/build_travel_matrix.py":"6214e09ef0a8a9abacff2ec6a9e7e0ca002d503a5a56ce005c26a6e59f6de5a7"}},"gun/scripts/create_input_template.py":{"size":7955,"mtime_ns":1777722543921626683,"word_count":674,"hashes":{"gun/scripts/create_input_template.py":"22feb272eb4e2fa6ddffb4f0f095a2fa27ad9af2b666d5f77397c3ca7c3f0686"}},"gun/scripts/curated_itineraries.py":{"size":34461,"mtime_ns":1777722543921766100,"word_count":2668,"hashes":{"gun/scripts/curated_itineraries.py":"86e9427e650fb2a467fb8b65ea37600d642a8d96f69d00b481a25699ae861c25"}},"gun/scripts/fetch_google_hours.py":{"size":8479,"mtime_ns":1777725821046097424,"word_count":708,"hashes":{"gun/scripts/fetch_google_hours.py":"62a1600bad85c2df3c9c7fe88f175da8c8214d38b62ce75d10d59f5e84a18582"}},"gun/scripts/fetch_tourapi_to_csv.py":{"size":40810,"mtime_ns":1777722543921929850,"word_count":3443,"hashes":{"gun/scripts/fetch_tourapi_to_csv.py":"39c8836f09762652402a903155e8f873e2d88c24e82f185923cddfbbc0384f52"}},"gun/scripts/inspect_json.py":{"size":6608,"mtime_ns":1777722543922128601,"word_count":640,"hashes":{"gun/scripts/inspect_json.py":"24ce014a6e4284ab10877ff8595735d01d7f820c595a5026c1b9b6e7fcfb18c7"}},"gun/scripts/preprocess_pois.py":{"size":11136,"mtime_ns":1777722543922292893,"word_count":1005,"hashes":{"gun/scripts/preprocess_pois.py":"1cf4b2953f79d03587cb233f060c575183ada7285a12f66cf1245f429bfef9f2"}},"gun/scripts/setup_and_test.py":{"size":2626,"mtime_ns":1777722543922385685,"word_count":241,"hashes":{"gun/scripts/setup_and_test.py":"651d7d4fbc67fb037ee51cee9f0b6685479d63aec7fba9f4f2fb473f7e2e9881"}},"gun/src/__init__.py":{"size":0,"mtime_ns":1777722543922457644,"word_count":0,"hashes":{"gun/src/__init__.py":"0bb2be7d2b7ff58a6bb19492dcd31a3e6152b7cc64e60b871552f18851f61336"}},"gun/src/validation/__init__.py":{"size":0,"mtime_ns":1777722543922543602,"word_count":0,"hashes":{"gun/src/validation/__init__.py":"b44a90018ceb78e047b4587cdd5b1784b241ff87045d4fc33005cf64e52c1db3"}},"gun/tests/__init__.py":{"size":0,"mtime_ns":1777722543922630144,"word_count":0,"hashes":{"gun/tests/__init__.py":"0bf71a6870f836354488c5ab12ae0e5d7568471a30d8f751caae22ac03b3c6a7"}},"package.json":{"size":54,"mtime_ns":1777722543922728728,"word_count":7,"hashes":{"package.json":"07cc7681576c2df22194b42d51211a47c33f22b37e3c0da8b74adb07764f0582"}},"phases/0-setup/analysis_result.json":{"size":45493,"mtime_ns":1777451253562237410,"word_count":3867,"hashes":{"phases/0-setup/analysis_result.json":"45c5b6d4fe137bc9eb1020984802a0e64f92b669beaa63f7b6287364c0bb39ea"}},"phases/0-setup/analyze.py":{"size":17133,"mtime_ns":1777451253562374408,"word_count":1606,"hashes":{"phases/0-setup/analyze.py":"01cbfd23b94cbd533ae354770d90475f7090879eea6324159c4bb235ff7071ee"}},"phases/0-setup/analyze_triple.py":{"size":18882,"mtime_ns":1777451253562494198,"word_count":1820,"hashes":{"phases/0-setup/analyze_triple.py":"746211cf1105bf95334ae8d58345e89cff39469079546d60fa716d745faa3af4"}},"phases/0-setup/cache_route.json":{"size":26160,"mtime_ns":1777451253562775444,"word_count":1238,"hashes":{"phases/0-setup/cache_route.json":"c92ac67e542aafa2269b2617a6acb424940df6f76052f6ec0c79fd8ca01be620"}},"phases/0-setup/index.json":{"size":220,"mtime_ns":1777451253563608391,"word_count":28,"hashes":{"phases/0-setup/index.json":"3a317bcb806cbeece881cf452206342c7fbcb5a687016048b27f2aad59db1bd6"}},"phases/0-setup/statistical_report.json":{"size":6510,"mtime_ns":1777451253563687349,"word_count":611,"hashes":{"phases/0-setup/statistical_report.json":"8a34e5e743cb42a2c0db1e705f56dae893eefd52186d6c989a3cf16eea4cb5d2"}},"phases/0-setup/statistical_report.py":{"size":13457,"mtime_ns":1777451253563792389,"word_count":1214,"hashes":{"phases/0-setup/statistical_report.py":"fdcd45f1447f5dd20fc2a4e9f6650fc1a7cf3b6654aac46d87b0b2520b9f85e4"}},"phases/0-setup/step0.md":{"size":1001,"mtime_ns":1789493353334591562,"word_count":111,"hashes":{"phases/0-setup/step0.md":"a3a77f653388d72fd216f42a9b1785cf7d24a25bfc55d911cadac2c572848ea2"}},"phases/0-setup/step1.md":{"size":1788,"mtime_ns":1789493353334513437,"word_count":182,"hashes":{"phases/0-setup/step1.md":"05bd160ef4f5e284433108ab1f52b5b2a63db41ee841bbb2a12d19dc1ccc1962"}},"phases/0-setup/triple_analysis_result.json":{"size":48344,"mtime_ns":1777451253564103760,"word_count":4069,"hashes":{"phases/0-setup/triple_analysis_result.json":"ca69c9cc19b4c2a650f0938c9c0b369844d79c621e6788b3fca81e9f9a1e8a33"}},"phases/0-setup/visualize.py":{"size":6948,"mtime_ns":1777451253564729793,"word_count":661,"hashes":{"phases/0-setup/visualize.py":"432695e40c8fc3be7a00f85d5f15e39a565f748c592825bfdc28e1eac22f3bbf"}},"phases/0-setup/visualize_combined.py":{"size":12852,"mtime_ns":1778043956778001721,"word_count":1198,"hashes":{"phases/0-setup/visualize_combined.py":"2d8e22a201939a2bafec1809a59ad56c137e2b82647dd3b47161e6ca92603bb9"}},"phases/1-data/index.json":{"size":295,"mtime_ns":1777451253565236494,"word_count":36,"hashes":{"phases/1-data/index.json":"eca291eef3e5656b6443e78ae33031b6bc63d85a19f4020d5ce2bfb8877c46f8"}},"phases/1-data/step0.md":{"size":2798,"mtime_ns":1789493410627942238,"word_count":318,"hashes":{"phases/1-data/step0.md":"b05d8d96ccb2eab0403854785c156375a3d764a03fc29f791b3d0aa562436335"}},"phases/1-data/step1.md":{"size":3782,"mtime_ns":1789493410671655143,"word_count":368,"hashes":{"phases/1-data/step1.md":"dea018ad4a262a95d97f29e75f71e6e9ddea4f2986b550b1593b03ce94d4a259"}},"phases/1-data/step2.md":{"size":3903,"mtime_ns":1789493410715617798,"word_count":421,"hashes":{"phases/1-data/step2.md":"fb97a39e011e82c868d85c0cad2567b1ab9ba5174533526924f5d829d6965869"}},"phases/1-data/step3.md":{"size":5105,"mtime_ns":1789493410759110661,"word_count":459,"hashes":{"phases/1-data/step3.md":"45e336b4e66b8691eac228c1e653b082b083634920bda0e17916526847dbd8e4"}},"phases/2-matrix/index.json":{"size":158,"mtime_ns":1777451253565660363,"word_count":20,"hashes":{"phases/2-matrix/index.json":"d2186113fc2b3e94b2c47b2c4982f8ebc3aa123d4b97a87689d2e60345cdd252"}},"phases/2-matrix/step0.md":{"size":4246,"mtime_ns":1789493410803338191,"word_count":413,"hashes":{"phases/2-matrix/step0.md":"d0fd1bd4f82ad320ef7fc2f19bacfc74d48c6713ac9c42c0b72d53c6cdfd466e"}},"phases/3-graph/index.json":{"size":276,"mtime_ns":1789495293676657839,"word_count":36,"hashes":{"phases/3-graph/index.json":"d076647b89d10039514c89c38303e375e7e9b02426a977e4dba2a48f93ac1fe9"}},"phases/3-graph/step0.md":{"size":601,"mtime_ns":1789493893825741188,"word_count":63,"hashes":{"phases/3-graph/step0.md":"d52940a76918bc2132804e2ab62791fc80b717650a7bff8095038e34ccae5561"}},"phases/3-graph/step1.md":{"size":488,"mtime_ns":1789493893825863437,"word_count":54,"hashes":{"phases/3-graph/step1.md":"11128a2711f247caf7f21a6fb0e9a4531e8a86d7adcd387c446d2d5ae831427c"}},"phases/3-graph/step2.md":{"size":424,"mtime_ns":1789493893825947896,"word_count":42,"hashes":{"phases/3-graph/step2.md":"df93fbe20f1595d0c7115691cd6614e059668c849d272a7e001e2945dbda8503"}},"phases/4-validation/index.json":{"size":280,"mtime_ns":1777451253566143607,"word_count":36,"hashes":{"phases/4-validation/index.json":"b023f67f479e700b9df7220cc84f591db4130f24706cd725df16093647cd3f9d"}},"phases/4-validation/step0.md":{"size":4422,"mtime_ns":1789494217020731699,"word_count":462,"hashes":{"phases/4-validation/step0.md":"53db56daf74f2a11e647bb5f0acf0ce41d04401aac66e35fac53e7b34d620ce3"}},"phases/4-validation/step1.md":{"size":4254,"mtime_ns":1789493411023189798,"word_count":429,"hashes":{"phases/4-validation/step1.md":"48de421a3fa81e43c740d3aedf96b50c67f61d84da129b27e918203a60ff5ef6"}},"phases/4-validation/step2.md":{"size":5212,"mtime_ns":1789493411066112704,"word_count":559,"hashes":{"phases/4-validation/step2.md":"f97e652cb778aa7f73338b1303692861553fe0af1e811d4bf97f3a6df1696cad"}},"phases/5-explain/index.json":{"size":292,"mtime_ns":1777451253566470185,"word_count":36,"hashes":{"phases/5-explain/index.json":"d6c1ca51e5fc771b8e13e5d5dce2c9a9a717fda347cc5b00e270834e331d4fe7"}},"phases/5-explain/step0.md":{"size":3730,"mtime_ns":1789493411109888234,"word_count":382,"hashes":{"phases/5-explain/step0.md":"52c70b84b1233155e84001f2ab35be2228fb005ffa7b4f5767fa39e19480fe01"}},"phases/5-explain/step1.md":{"size":4291,"mtime_ns":1789493411152705099,"word_count":396,"hashes":{"phases/5-explain/step1.md":"6e3471fc11ae0b30cf7976cbc906aed7e7af3a9a7a7a601f54a2e697f0ce84cf"}},"phases/5-explain/step2.md":{"size":1729,"mtime_ns":1789493353336982314,"word_count":168,"hashes":{"phases/5-explain/step2.md":"336e9ffc5963aff9e955961def672496061bdf67433a1e1d0b2fa1af7708e79f"}},"phases/6-api/index.json":{"size":216,"mtime_ns":1777451253566832472,"word_count":28,"hashes":{"phases/6-api/index.json":"e967e70bdefd006891255bbd5db174c5de09a968652ebb9edd2689aded4f5b19"}},"phases/6-api/step0.md":{"size":466,"mtime_ns":1789493893826030562,"word_count":56,"hashes":{"phases/6-api/step0.md":"f36e723025dbd47d32694da3c80aa1945594feb7da9c07f4edaacb769a0a0071"}},"phases/6-api/step1.md":{"size":1132,"mtime_ns":1789635415353506049,"word_count":122,"hashes":{"phases/6-api/step1.md":"27879d90e8335e4be67f1a9de09ecb9f5661d5467b746d42ec4eb2145f1e6ebf"}},"phases/index.json":{"size":483,"mtime_ns":1789493326875011595,"word_count":58,"hashes":{"phases/index.json":"df30166d8ce593033aa19ff35555cf4bb2deb579ffb47e94cdbc90e99792d0a5"}},"plan.md":{"size":29169,"mtime_ns":1789493411284259772,"word_count":2828,"hashes":{"plan.md":"71bd7ac5aa0c20d5e6ff947d6baeb8e40f4418801b3f7cc4602467ecbf4de127"}},"pyproject.toml":{"size":1034,"mtime_ns":1789207502444486460,"word_count":99,"hashes":{"pyproject.toml":"5398ac72f02d4e267709a144de7d1107dc6a1a188bf2616ac954a866faff05c7"}},"requirements.txt":{"size":472,"mtime_ns":1789207502485132510,"word_count":50,"hashes":{"requirements.txt":"8b413fca17f67e0390ce850bed428bce8ab48f6e5363425c6c9a52c08951fb4f"}},"scripts/build_poi_dataset.py":{"size":3133,"mtime_ns":1777738552472917674,"word_count":256,"hashes":{"scripts/build_poi_dataset.py":"c7d3ca447b831b996c8fb62a4a4ed76d2e6c33051a260b10ed80d19489db1435"}},"scripts/collect_naver_full.py":{"size":24270,"mtime_ns":1777472360586854707,"word_count":2147,"hashes":{"scripts/collect_naver_full.py":"1d3d0b0e2a24fe31b116ad7acb19a4b3f223f5d1c6919444c5e50513ba40f413"}},"scripts/collect_naver_metadata.py":{"size":12179,"mtime_ns":1777456822351481026,"word_count":1058,"hashes":{"scripts/collect_naver_metadata.py":"3a9bd6c7ad75d25b1110fce15de4cb2832f8faaf4fff8e6ef76696702498eb4a"}},"scripts/collect_naver_only.py":{"size":19968,"mtime_ns":1777466784903237542,"word_count":1717,"hashes":{"scripts/collect_naver_only.py":"a240dd183a68608f5686056562433df371a49bf95788ce3f9b7f42212fce2d77"}},"scripts/demo_live_e2e.py":{"size":2413,"mtime_ns":1789493068142555350,"word_count":187,"hashes":{"scripts/demo_live_e2e.py":"afe3b1219e1a11ac6e313b7bbf5ed4047e5052954ec8f9d022c2a21f4327f15d"}},"scripts/execute.py":{"size":16360,"mtime_ns":1777451253584151277,"word_count":1338,"hashes":{"scripts/execute.py":"f59929f833fa418dc77a5b258351d6a6aba4284b524f8f0df7d9ffbac0b70c6c"}},"scripts/extract_visitor_stats.py":{"size":6376,"mtime_ns":1777515293761947263,"word_count":541,"hashes":{"scripts/extract_visitor_stats.py":"4cf1c4b0c5291bd340741c3fa44e0f44405c7c547a5d10188761bf1d76c4cf35"}},"scripts/fetch_jeju_hours.py":{"size":2483,"mtime_ns":1785586956137761903,"word_count":251,"hashes":{"scripts/fetch_jeju_hours.py":"197911bb59bc12c7128b036f9780c46be69ce81c37b55778a5a6f2d47a52f40b"}},"scripts/fetch_missing_pois.py":{"size":6273,"mtime_ns":1779312122043491942,"word_count":533,"hashes":{"scripts/fetch_missing_pois.py":"dcb76677107618c486fbfd6c36851965e380035eea5b2ba6219af356123c9ed6"}},"scripts/geocode_jeju_missing_coords.py":{"size":3340,"mtime_ns":1785334245581387135,"word_count":329,"hashes":{"scripts/geocode_jeju_missing_coords.py":"2654b4fea9fb08f631e2a9864c6a8dea8789361be229c10db1d65202bc033fd0"}},"scripts/test_execute.py":{"size":21227,"mtime_ns":1777451253584262358,"word_count":1622,"hashes":{"scripts/test_execute.py":"3bfe2cb281217a98711c28f53692ffc22168193beae12b23f0c97df4a0f866fd"}},"scripts/test_pipeline.py":{"size":16326,"mtime_ns":1777735206533104289,"word_count":1453,"hashes":{"scripts/test_pipeline.py":"73da2dca800e902c041726e4a76f0e5458e6998686b640dfeee456a5e1e38df4"}},"src/__init__.py":{"size":0,"mtime_ns":1777451253584333732,"word_count":0,"hashes":{"src/__init__.py":"f2ddc4c32d3ace6eb5786bbe136168ec6286d22339b0c2b5fba5c5411ba3db33"}},"src/api/__init__.py":{"size":0,"mtime_ns":1777816109394578787,"word_count":0,"hashes":{"src/api/__init__.py":"cfcc66c4b0c6cdc64b680f4732791cca779f9666d52f94581cf457b821c9ef8a"}},"src/api/main.py":{"size":3612,"mtime_ns":1789634985170175708,"word_count":282,"hashes":{"src/api/main.py":"e791f661f2cab8bf948ef02604811aeafd093f178739baec30d1deb435ce5d7c"}},"src/api/router.py":{"size":55545,"mtime_ns":1789494814740468003,"word_count":4735,"hashes":{"src/api/router.py":"070d29090e0347c1838c47cbb9157f75c207c2c72f32f6ba3d8f9a5b63902bcd"}},"src/api/schemas.py":{"size":3149,"mtime_ns":1789492862066154981,"word_count":319,"hashes":{"src/api/schemas.py":"aef175a7f941c38c7c00ec87bf95e001292ab46797c2100b0b5029a5cd12537f"}},"src/api/static/index.html":{"size":245517,"mtime_ns":1786861293229369672,"word_count":14089,"hashes":{"src/api/static/index.html":"bbfb9800b8a7fe3a8c1c4dae48d758f25af1ae4d36e6914a5c36226141a6ebda"}},"src/api/static/manifest.json":{"size":1387,"mtime_ns":1780124687450251357,"word_count":148,"hashes":{"src/api/static/manifest.json":"49889c0f0087e6353e14ea0f69192481591e6cc7e9df229041261395d4068170"}},"src/api/static/service-worker.js":{"size":1349,"mtime_ns":1780124696762896419,"word_count":128},"src/data/__init__.py":{"size":0,"mtime_ns":1777451253584417231,"word_count":0,"hashes":{"src/data/__init__.py":"5aab75a1df3ce4c322908ffe8170a42b246f3383126cff5f9f7629fed9baef8c"}},"src/data/barrier_free_api.py":{"size":8094,"mtime_ns":1789207859462057189,"word_count":678,"hashes":{"src/data/barrier_free_api.py":"f737633340225c53c335ef70ebb53ddad3764f2c75eb7d141a9f8e1968e34df9"}},"src/data/dwell_db.py":{"size":8512,"mtime_ns":1789207859463119164,"word_count":906,"hashes":{"src/data/dwell_db.py":"be27238e9a797765ce6c5e9ab1493c399a7a0644a24a6c4e0671f9efd6d061d0"}},"src/data/hours_db.py":{"size":15065,"mtime_ns":1789207859462902127,"word_count":650,"hashes":{"src/data/hours_db.py":"ac4645352d41719259f3c7a2cede36f1d7d692d2e76c0c0375c565ae8d1360e7"}},"src/data/kakao_local.py":{"size":5983,"mtime_ns":1789207859463444739,"word_count":490,"hashes":{"src/data/kakao_local.py":"97d689f54fc98e0a17e609179b402bd24eaf416e87b4a4e2d1b00f6ea96d4f3d"}},"src/data/models.py":{"size":13867,"mtime_ns":1789494460632232622,"word_count":1433,"hashes":{"src/data/models.py":"0b613ced1cab6f337589b8fe9ddfb09c82c351b814c3e125c7e0fb894db3bce9"}},"src/data/party_config.py":{"size":1539,"mtime_ns":1789207859464856997,"word_count":146,"hashes":{"src/data/party_config.py":"df326d2e00d6be10e739f3e5cde514a9121f0f53321f7efcda0ec695bee15de0"}},"src/data/region_config.py":{"size":4309,"mtime_ns":1789207859464842997,"word_count":324,"hashes":{"src/data/region_config.py":"68dc0e6060e3898e0b7fde8e04edf91096bfa6a90b354b3b2957f17ad9750143"}},"src/data/restaurant_catalog.py":{"size":2720,"mtime_ns":1789207859464860247,"word_count":235,"hashes":{"src/data/restaurant_catalog.py":"9d90e2d6937b7063c5350aefbf1debe23ac99b3532c380cea6a863616a3b0945"}},"src/data/seoul_citydata_client.py":{"size":7053,"mtime_ns":1789207859464888163,"word_count":569,"hashes":{"src/data/seoul_citydata_client.py":"e3c7f8501699cacf4fa7c84b4156b119731620403e2b83867d10e79f71a75b78"}},"src/data/theme_taxonomy.py":{"size":6309,"mtime_ns":1789207859465080492,"word_count":588,"hashes":{"src/data/theme_taxonomy.py":"d6e499b1efaaa29ea11939141c2d6167b14dbcad39aa9f5dc1c68ca48e8a30ad"}},"src/data/tour_api.py":{"size":6078,"mtime_ns":1789493629373212415,"word_count":500,"hashes":{"src/data/tour_api.py":"7f5f2e069a42b13268b744943dc22116d96ea702d4490fc5c3873a1efab56250"}},"src/data/wellness_api.py":{"size":4264,"mtime_ns":1789207859461891068,"word_count":378,"hashes":{"src/data/wellness_api.py":"eb72ebe5325902475717266cc9b7be71bc5db3a44f51b4c0051d8bc35b6f78dd"}},"src/explain/__init__.py":{"size":0,"mtime_ns":1777738407096040425,"word_count":0,"hashes":{"src/explain/__init__.py":"aebd9818bb704e3273f3ae2f096c24bbe8bc876e0edd6356fd016d0f6fb2ceac"}},"src/explain/explain_engine.py":{"size":24024,"mtime_ns":1789207887059591732,"word_count":2016,"hashes":{"src/explain/explain_engine.py":"397dd5f3953dc7d8213ec34723f69bd24f2248d4516264b000f725b00c541f77"}},"src/explain/pipeline.py":{"size":18732,"mtime_ns":1789207859462277225,"word_count":1271,"hashes":{"src/explain/pipeline.py":"2aed3f188a14f5b7aa10c2a18024574985e55f0d6249cef9acbf05a69191e440"}},"src/explain/plan_extractor.py":{"size":8206,"mtime_ns":1789207859463043999,"word_count":731,"hashes":{"src/explain/plan_extractor.py":"68f36f9030adeb7446c2754cff4b1ee8c1fb5e068b95c9449b906086b3429707"}},"src/explain/repair.py":{"size":10352,"mtime_ns":1789207954124770883,"word_count":999,"hashes":{"src/explain/repair.py":"190f65f7de1403cf831c659674ec455c013406a8f994a5005442cd2b6a2f2a71"}},"src/matrix/__init__.py":{"size":44,"mtime_ns":1789496168359334856,"word_count":4,"hashes":{"src/matrix/__init__.py":"83b30236f030aaaad8b7097860eba074353f76b57b8a37ac915a77514fc79625"}},"src/scoring/__init__.py":{"size":296,"mtime_ns":1777451253584732560,"word_count":36,"hashes":{"src/scoring/__init__.py":"33c5fb364c349fc3e085e6093090a51ca7d2b4ff2f0a3c46660d9944971647f6"}},"src/scoring/bonus_engine.py":{"size":4800,"mtime_ns":1789207859463006583,"word_count":376,"hashes":{"src/scoring/bonus_engine.py":"44409bbf04eb02852bf1b27a08c36feacf7a096c4ff187b75f46eb259b061d42"}},"src/scoring/cluster_dispersion.py":{"size":12202,"mtime_ns":1789208857224566579,"word_count":1088,"hashes":{"src/scoring/cluster_dispersion.py":"4b74be0b714e36609016c94f2db5fc64150fecaf0df1bea29c580f569d2496d7"}},"src/scoring/congestion_engine.py":{"size":8706,"mtime_ns":1789207887187403294,"word_count":705,"hashes":{"src/scoring/congestion_engine.py":"4899d75ca0af4f67fc761bd69e6fda01a60b578dfba4742600913084d90d5961"}},"src/scoring/reward_engine.py":{"size":2480,"mtime_ns":1789207859462568552,"word_count":244,"hashes":{"src/scoring/reward_engine.py":"a181cfdc04e83f363032d827028c737e3d0280b4700e369b94e0c166eb9c98ce"}},"src/scoring/theme_alignment.py":{"size":10665,"mtime_ns":1789207859463224119,"word_count":949,"hashes":{"src/scoring/theme_alignment.py":"57e40da3a528ddcc8761d5438bf5e0c667ae3e0f4fdab4902414b917244e29fe"}},"src/scoring/travel_ratio.py":{"size":3988,"mtime_ns":1789207859463757982,"word_count":373,"hashes":{"src/scoring/travel_ratio.py":"9649a644ad32ec6fd672f1b682d4957fbef1468e46e7fb2b8500454cd138b886"}},"src/utils/__init__.py":{"size":0,"mtime_ns":1777731460264655726,"word_count":0,"hashes":{"src/utils/__init__.py":"e0f516a85c8039f189c4e8c728cc8d7c2fa4cb6aed920648ac261cd1ba909e03"}},"src/utils/geo.py":{"size":2994,"mtime_ns":1789207859464209763,"word_count":331,"hashes":{"src/utils/geo.py":"bf64882cc4370432fb891cc0795d65580558a56e5e6494b9d127944911515310"}},"src/validation/__init__.py":{"size":0,"mtime_ns":1777451253585002723,"word_count":0,"hashes":{"src/validation/__init__.py":"d28e1c146ae48649d1ee4632184814b817efc9f4c39cbc4d6f87ac1b903318dd"}},"src/validation/alternatives.py":{"size":4432,"mtime_ns":1789207859462060980,"word_count":423,"hashes":{"src/validation/alternatives.py":"2315a0ce2f10c04f18c40165665a2348fa16e07299e4b3888dd1ff77f6faeafe"}},"src/validation/hard_fail.py":{"size":9583,"mtime_ns":1789207859462704882,"word_count":755,"hashes":{"src/validation/hard_fail.py":"ce60cde5eae13ed9575b36fb583dc699f46d90fc4ec71eb73ad520bfd3ed21a7"}},"src/validation/kakao_matrix.py":{"size":12290,"mtime_ns":1789208596010873251,"word_count":961,"hashes":{"src/validation/kakao_matrix.py":"394475765b225043c05c24033b5c477c50813abb82099614ae3508027d4c3208"}},"src/validation/scoring.py":{"size":6268,"mtime_ns":1789207859462642883,"word_count":662,"hashes":{"src/validation/scoring.py":"d3528fe45756ac742388c293f2208b53f57058738de52a3f1a906bb03978e181"}},"src/validation/vrptw_engine.py":{"size":21095,"mtime_ns":1789208001516669264,"word_count":1833,"hashes":{"src/validation/vrptw_engine.py":"4246e0c739a1b5e197908e46a3e10405cb0d060f38be54ebae5673770aa6369a"}},"src/validation/warning.py":{"size":10972,"mtime_ns":1789207859464498089,"word_count":985,"hashes":{"src/validation/warning.py":"2e7956ab8dfdefc317c62b9c79d66391c3a57f249bb2f3470a4edc0790f1bb87"}},"tests/__init__.py":{"size":0,"mtime_ns":1777451253585277469,"word_count":0,"hashes":{"tests/__init__.py":"9766508e5a013c3d3cbb2602719391199e90af5720c9782a77ca71565aa346b1"}},"tests/conftest.py":{"size":488,"mtime_ns":1789207859464844872,"word_count":41,"hashes":{"tests/conftest.py":"9d72603e17488c60a3d95de3c6e8b7c95c1e9b0ebe1f939c0a735c9bd81b77b5"}},"tests/test_alternatives.py":{"size":4826,"mtime_ns":1789207859462246976,"word_count":410,"hashes":{"tests/test_alternatives.py":"5498d11ef1ee1582ec6fd035f9fbac0d6955396de3669740d93d167f5a55bdeb"}},"tests/test_bonus_engine.py":{"size":10168,"mtime_ns":1789207859463451197,"word_count":763,"hashes":{"tests/test_bonus_engine.py":"7e520c7f6872456867de4523231d093edef9d96cc9e78d1b18786c814341e0fb"}},"tests/test_cluster_dispersion.py":{"size":6084,"mtime_ns":1789208930218798344,"word_count":555,"hashes":{"tests/test_cluster_dispersion.py":"a810fd03353831d3c409431a1c18ff8e33ef6d1903389b262744756c87c7afc2"}},"tests/test_congestion_engine.py":{"size":6613,"mtime_ns":1789207859464487339,"word_count":444,"hashes":{"tests/test_congestion_engine.py":"52d2d107d220b90ac719e9f4d58a851b25ced8ba3d242137477e2f003905d483"}},"tests/test_dwell_db.py":{"size":2251,"mtime_ns":1789207859461823486,"word_count":178,"hashes":{"tests/test_dwell_db.py":"41678e13f1ee29cd352793c67463c8d6e546e3cf1f57ebcf9394c4b02bc9d201"}},"tests/test_estimated_hardfail.py":{"size":1941,"mtime_ns":1789207859462445429,"word_count":172,"hashes":{"tests/test_estimated_hardfail.py":"99f40915eb32860cdd7fe7da9a24a8b77cd8de0de2711d57b6649a163b59c993"}},"tests/test_explain_engine.py":{"size":23640,"mtime_ns":1789494249106037121,"word_count":1712,"hashes":{"tests/test_explain_engine.py":"e07ea09255676bddcc2fa086197e93a76be3f39975b7b18200db14f80d6ff9d2"}},"tests/test_geo.py":{"size":5895,"mtime_ns":1789207859463647942,"word_count":552,"hashes":{"tests/test_geo.py":"f346096644b116a29a92056b1b7a2e80495411a3b4ee41adc03b0d4ce5dca766"}},"tests/test_hard_fail.py":{"size":9924,"mtime_ns":1789207859462247351,"word_count":879,"hashes":{"tests/test_hard_fail.py":"a19d073d91f94e34847f2676c3ea979d74027e6bfa6ee59d469486e3cd0a0f46"}},"tests/test_kakao_local.py":{"size":5729,"mtime_ns":1789207859462889419,"word_count":426,"hashes":{"tests/test_kakao_local.py":"e610543d6f2f49cfa045c00c933f3a418fcd4f563e2bcf896d724ee27fbba6de"}},"tests/test_kakao_matrix.py":{"size":9294,"mtime_ns":1789207859463522362,"word_count":678,"hashes":{"tests/test_kakao_matrix.py":"00c02f026e98cfd37f597126102956e983fca313ad45d231ea69dc09805fdae0"}},"tests/test_party_config.py":{"size":3347,"mtime_ns":1789207927681226398,"word_count":208,"hashes":{"tests/test_party_config.py":"a83c493c78590ee8576089112764b62c049546efb4aefe9fe0398d6c9ca37201"}},"tests/test_pipeline_orchestrator.py":{"size":16774,"mtime_ns":1789207859463226619,"word_count":1198,"hashes":{"tests/test_pipeline_orchestrator.py":"41c04857793c5f205104e227feef3f88639e1bea6376f9672d5dc7d0205ab4bd"}},"tests/test_plan_extractor.py":{"size":4180,"mtime_ns":1789207859463937394,"word_count":269,"hashes":{"tests/test_plan_extractor.py":"07049f047bfe2619b74f281f4053e81f9d7f1a9c922cad1f1af87b20362e4b1f"}},"tests/test_region_config.py":{"size":1324,"mtime_ns":1789207859464786207,"word_count":76,"hashes":{"tests/test_region_config.py":"5eab73969ceacb29f363591a3b5ba85621e1cb2ec0e2f68952f182c5d6eadca0"}},"tests/test_repair.py":{"size":10184,"mtime_ns":1789207859465179323,"word_count":773,"hashes":{"tests/test_repair.py":"fd375576c01c379af9b9ea06a83a8be38de1df3a563f7082d4f4888037686bba"}},"tests/test_resolve_poi.py":{"size":8477,"mtime_ns":1789496012037676410,"word_count":580,"hashes":{"tests/test_resolve_poi.py":"f1047a2b590a0c57deb6437eeeb85ae34852937f89ce42c3c2b473a7d0ca372c"}},"tests/test_restaurant_catalog.py":{"size":1150,"mtime_ns":1789207859462513470,"word_count":106,"hashes":{"tests/test_restaurant_catalog.py":"f6d74cf0278252dce4dbf5bc723b187b98eed355ba838d9697e9cc21ef9bcf11"}},"tests/test_reward_engine.py":{"size":3309,"mtime_ns":1789207859462773672,"word_count":213,"hashes":{"tests/test_reward_engine.py":"2cec4f1115496438be30d9b9a3a04858307ce57e42478ed5b42cc8426922240f"}},"tests/test_scoring.py":{"size":8378,"mtime_ns":1789207859463348450,"word_count":708,"hashes":{"tests/test_scoring.py":"b72e5d3b525d6ad699a81fe9d57a33af3e83a68cc4ff7ccc8d8949c574a07104"}},"tests/test_theme_alignment.py":{"size":5124,"mtime_ns":1789207859463797106,"word_count":394,"hashes":{"tests/test_theme_alignment.py":"e81675a80d5ac2b7207a18265f847cd3e7023c71a87c894c64641176217a5a37"}},"tests/test_theme_taxonomy.py":{"size":2255,"mtime_ns":1789207859464570004,"word_count":160,"hashes":{"tests/test_theme_taxonomy.py":"eb7037e9b1fba13bca6e0f1d681e9bc8694f1a1552684bed2ffe123b156e9248"}},"tests/test_travel_ratio.py":{"size":2235,"mtime_ns":1789207859464493756,"word_count":185,"hashes":{"tests/test_travel_ratio.py":"1f29b8982e89bd472cd1b285b9694be43cdc04cbdac05b3d1260230ba06a7f95"}},"tests/test_vrptw_engine.py":{"size":18754,"mtime_ns":1789207927724609424,"word_count":1495,"hashes":{"tests/test_vrptw_engine.py":"f533d56bee74ebbe92f511dbeb7fbf032ae8d6a42dfd9fd5db9b2b2e2de48059"}},"tests/test_warning.py":{"size":11233,"mtime_ns":1789207859465078450,"word_count":1052,"hashes":{"tests/test_warning.py":"d851d9b6a1184963f5a43ea40c744a79090910ddecdeb06f6d7debe3715ab116"}},"src/api/security.py":{"size":2673,"mtime_ns":1789635218501680041,"word_count":236,"hashes":{"src/api/security.py":"8af592ea23e3c75ae63f0a1345d230a8302962cde187743b85987027bf04611f"}},"src/data/evidence_retriever.py":{"size":4058,"mtime_ns":1789207859462215977,"word_count":315,"hashes":{"src/data/evidence_retriever.py":"fa6a43b36a1c5c44465d91975bc45122e0504f5f8318b4553edc425ca2380107"}},"src/data/place_resolver.py":{"size":3012,"mtime_ns":1789494814690648149,"word_count":216,"hashes":{"src/data/place_resolver.py":"eb737e4eaf0164cbfc77a0cd62dc906a6a62afb36c09a20224a2bf071642c399"}},"src/matrix/route_matrix.py":{"size":3515,"mtime_ns":1789207859462270475,"word_count":288,"hashes":{"src/matrix/route_matrix.py":"029ce7c5ae12ac252af5b8c9b9bad4be8038809605758b4f23801e70e5be8ffb"}},"tests/test_api_schemas.py":{"size":940,"mtime_ns":1789205719027710741,"word_count":60,"hashes":{"tests/test_api_schemas.py":"1e76da46a352dcb39b4109a666fb6e739a31f749288da5da5e7d67279f6caa8f"}},"tests/test_place_resolver.py":{"size":1842,"mtime_ns":1789496011992878874,"word_count":137,"hashes":{"tests/test_place_resolver.py":"3e3c6b6edf35e2def0f1de008ba15cbbb66d8ef67503cca932d95c8c76f15568"}},"tests/test_route_matrix.py":{"size":1522,"mtime_ns":1789206425636401548,"word_count":127,"hashes":{"tests/test_route_matrix.py":"5151c0e3e4578d6eee68aa6672ffe0ba286cd104e35c12d206446ac768a276d0"}},"tests/test_security.py":{"size":908,"mtime_ns":1789635270551941166,"word_count":59,"hashes":{"tests/test_security.py":"e001bfb86f3392226148a9ea3c95972f965f95b5e5e0ab041bed0df5939a0aad"}},"tests/test_settings.py":{"size":272,"mtime_ns":1789206898083239130,"word_count":21,"hashes":{"tests/test_settings.py":"c766b911fd04d47119c90a022d328f081e2fe28dcc2f72669a60fb0afa8e5725"}},"tests/test_tour_api_runtime.py":{"size":718,"mtime_ns":1789493643956432551,"word_count":47,"hashes":{"tests/test_tour_api_runtime.py":"252f805ef9f018f236bf439c83b7c9f5998d0359fe2207def4b38ba4f05c5884"}},"tests/test_dependency_manifests.py":{"size":1120,"mtime_ns":1789496380555601723,"word_count":89,"hashes":{"tests/test_dependency_manifests.py":"1a7e769d3092b6589fe7dc9f7fc56886db135e895edbe33f76ccdf974f0e93f3"}},"tests/test_evidence_retriever.py":{"size":1613,"mtime_ns":1789207859464301552,"word_count":111,"hashes":{"tests/test_evidence_retriever.py":"96d4acee745fad93d6cfc556da63121268da17d6916f86768d46f0249bc25bae"}},"tests/test_health.py":{"size":829,"mtime_ns":1789635035437067299,"word_count":68,"hashes":{"tests/test_health.py":"b68b16da5651c7d74b939dacefcec96a166872dc57a7716dcbc6e0cfba75a0cc"}}} \ No newline at end of file diff --git a/graphify-out/graph.json b/graphify-out/graph.json index 46be564..7a92567 100644 --- a/graphify-out/graph.json +++ b/graphify-out/graph.json @@ -1,64478 +1,67327 @@ { + "directed": false, + "multigraph": false, + "graph": {}, "nodes": [ { - "id": "gun_scripts_build_hours_db", "label": "build_hours_db.py", "file_type": "code", "source_file": "gun/scripts/build_hours_db.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "build_hours_db.py", + "id": "gun_scripts_build_hours_db" }, { - "id": "gun_scripts_build_hours_db_match_sub_category", "label": "match_sub_category()", "file_type": "code", "source_file": "gun/scripts/build_hours_db.py", "source_location": "L403", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "match_sub_category()", + "id": "gun_scripts_build_hours_db_match_sub_category" }, { - "id": "gun_scripts_build_hours_db_confidence", "label": "confidence()", "file_type": "code", "source_file": "gun/scripts/build_hours_db.py", "source_location": "L428", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "confidence()", + "id": "gun_scripts_build_hours_db_confidence" }, { - "id": "gun_scripts_build_hours_db_build_place_hours_xlsx", "label": "build_place_hours_xlsx()", "file_type": "code", "source_file": "gun/scripts/build_hours_db.py", "source_location": "L442", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "build_place_hours_xlsx()", + "id": "gun_scripts_build_hours_db_build_place_hours_xlsx" }, { - "id": "counter", "label": "Counter", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "counter", + "id": "counter" }, { - "id": "gun_scripts_build_hours_db_build_category_std_xlsx", "label": "build_category_std_xlsx()", "file_type": "code", "source_file": "gun/scripts/build_hours_db.py", "source_location": "L543", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "build_category_std_xlsx()", + "id": "gun_scripts_build_hours_db_build_category_std_xlsx" }, { - "id": "gun_scripts_build_hours_db_build_hours_db_py", "label": "build_hours_db_py()", "file_type": "code", "source_file": "gun/scripts/build_hours_db.py", "source_location": "L605", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "build_hours_db_py()", + "id": "gun_scripts_build_hours_db_build_hours_db_py" }, { - "id": "gun_scripts_build_hours_db_main", "label": "main()", "file_type": "code", "source_file": "gun/scripts/build_hours_db.py", "source_location": "L700", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "main()", + "id": "gun_scripts_build_hours_db_main" }, { - "id": "gun_scripts_build_hours_db_rationale_1", "label": "322\uac1c \uc7a5\uc18c \uc6b4\uc601\uc2dc\uac04 baseline + \uce74\ud14c\uace0\ub9ac \ud45c\uc900\uac12 \uc138\ud305. \uc0b0\ucd9c\ubb3c: 1. gun/data/place_hours_322.xlsx \u2014\u2026", "file_type": "rationale", "source_file": "gun/scripts/build_hours_db.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "322\u1100\u1162 \u110c\u1161\u11bc\u1109\u1169 \u110b\u116e\u11ab\u110b\u1167\u11bc\u1109\u1175\u1100\u1161\u11ab baseline + \u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175 \u1111\u116d\u110c\u116e\u11ab\u1100\u1161\u11b9 \u1109\u1166\u1110\u1175\u11bc. \u1109\u1161\u11ab\u110e\u116e\u11af\u1106\u116e\u11af: 1. gun/data/place_hours_322.xlsx \u2014...", + "id": "gun_scripts_build_hours_db_rationale_1" }, { - "id": "gun_scripts_build_hours_db_rationale_404", "label": "\uc774\ub984 + \uce74\ud14c\uace0\ub9ac\ud78c\ud2b8\ub85c sub_category \uacb0\uc815.", "file_type": "rationale", "source_file": "gun/scripts/build_hours_db.py", "source_location": "L404", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "\u110b\u1175\u1105\u1173\u11b7 + \u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175\u1112\u1175\u11ab\u1110\u1173\u1105\u1169 sub_category \u1100\u1167\u11af\u110c\u1165\u11bc.", + "id": "gun_scripts_build_hours_db_rationale_404" }, { - "id": "gun_scripts_build_hours_db_rationale_429", "label": "\ub9e4\uce6d \ud655\uc2e0\ub3c4 \u2014 \ud6c4\uc18d \uac80\uc0c9 \uc6b0\uc120\uc21c\uc704 \uacb0\uc815.", "file_type": "rationale", "source_file": "gun/scripts/build_hours_db.py", "source_location": "L429", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "\u1106\u1162\u110e\u1175\u11bc \u1112\u116a\u11a8\u1109\u1175\u11ab\u1103\u1169 \u2014 \u1112\u116e\u1109\u1169\u11a8 \u1100\u1165\u11b7\u1109\u1162\u11a8 \u110b\u116e\u1109\u1165\u11ab\u1109\u116e\u11ab\u110b\u1171 \u1100\u1167\u11af\u110c\u1165\u11bc.", + "id": "gun_scripts_build_hours_db_rationale_429" }, { - "id": "gun_scripts_build_itinerary_excel", "label": "build_itinerary_excel.py", "file_type": "code", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "build_itinerary_excel.py", + "id": "gun_scripts_build_itinerary_excel" }, { - "id": "gun_scripts_build_itinerary_excel_parse_weekday", "label": "parse_weekday()", "file_type": "code", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L99", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "parse_weekday()", + "id": "gun_scripts_build_itinerary_excel_parse_weekday" }, { - "id": "gun_scripts_build_itinerary_excel_minutes_to_hhmm", "label": "minutes_to_hhmm()", "file_type": "code", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L109", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "minutes_to_hhmm()", + "id": "gun_scripts_build_itinerary_excel_minutes_to_hhmm" }, { - "id": "gun_scripts_build_itinerary_excel_check_hours_violations", "label": "check_hours_violations()", "file_type": "code", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L115", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "check_hours_violations()", + "id": "gun_scripts_build_itinerary_excel_check_hours_violations" }, { - "id": "gun_scripts_build_itinerary_excel_poimatcher", "label": "POIMatcher", "file_type": "code", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L161", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "poimatcher", + "id": "gun_scripts_build_itinerary_excel_poimatcher" }, { - "id": "gun_scripts_build_itinerary_excel_poimatcher_init", "label": ".__init__()", "file_type": "code", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L164", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": ".__init__()", + "id": "gun_scripts_build_itinerary_excel_poimatcher_init" }, { - "id": "gun_scripts_build_itinerary_excel_py_path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "path", + "id": "gun_scripts_build_itinerary_excel_py_path" }, { - "id": "gun_scripts_build_itinerary_excel_poimatcher_match", "label": ".match()", "file_type": "code", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L179", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": ".match()", + "id": "gun_scripts_build_itinerary_excel_poimatcher_match" }, { - "id": "gun_scripts_build_itinerary_excel_poimatcher_row_to_dict", "label": "._row_to_dict()", "file_type": "code", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L203", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "._row_to_dict()", + "id": "gun_scripts_build_itinerary_excel_poimatcher_row_to_dict" }, { - "id": "gun_scripts_build_itinerary_excel_py_any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "any", + "id": "gun_scripts_build_itinerary_excel_py_any" }, { - "id": "gun_scripts_build_itinerary_excel_to_vrptw_place", "label": "_to_vrptw_place()", "file_type": "code", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L219", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "_to_vrptw_place()", + "id": "gun_scripts_build_itinerary_excel_to_vrptw_place" }, { - "id": "gun_scripts_build_itinerary_excel_process_one_day", "label": "process_one_day()", "file_type": "code", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L237", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "process_one_day()", + "id": "gun_scripts_build_itinerary_excel_process_one_day" }, { - "id": "gun_scripts_build_itinerary_excel_main", "label": "main()", "file_type": "code", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L356", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "main()", + "id": "gun_scripts_build_itinerary_excel_main" }, { - "id": "gun_scripts_build_itinerary_excel_rationale_1", "label": "\ucd94\ucc9c \uc77c\uc815 \u2192 \ub9e4\uce6d \u2192 \uc2dc\uac04 \uacc4\uc0b0 \u2192 Excel \ucd9c\ub825 \ud30c\uc774\ud504\ub77c\uc778\u2026", "file_type": "rationale", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "\u110e\u116e\u110e\u1165\u11ab \u110b\u1175\u11af\u110c\u1165\u11bc \u2192 \u1106\u1162\u110e\u1175\u11bc \u2192 \u1109\u1175\u1100\u1161\u11ab \u1100\u1168\u1109\u1161\u11ab \u2192 excel \u110e\u116e\u11af\u1105\u1167\u11a8 \u1111\u1161\u110b\u1175\u1111\u1173\u1105\u1161\u110b\u1175\u11ab...", + "id": "gun_scripts_build_itinerary_excel_rationale_1" }, { - "id": "gun_scripts_build_itinerary_excel_rationale_100", "label": "2025-05-01' \u2192 0(\uc6d4)~6(\uc77c). \ud30c\uc2f1 \uc2e4\ud328 \uc2dc None.", "file_type": "rationale", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L100", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "2025-05-01' \u2192 0(\u110b\u116f\u11af)~6(\u110b\u1175\u11af). \u1111\u1161\u1109\u1175\u11bc \u1109\u1175\u11af\u1111\u1162 \u1109\u1175 none.", + "id": "gun_scripts_build_itinerary_excel_rationale_100" }, { - "id": "gun_scripts_build_itinerary_excel_rationale_110", "label": "\ubd84 \ub2e8\uc704 \u2192 'HH:MM' (\uc74c\uc218/24\uc2dc\uac04 \ucd08\uacfc\ub294 \uadf8\ub300\ub85c \ud45c\uae30).", "file_type": "rationale", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L110", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "\u1107\u116e\u11ab \u1103\u1161\u11ab\u110b\u1171 \u2192 'hh:mm' (\u110b\u1173\u11b7\u1109\u116e/24\u1109\u1175\u1100\u1161\u11ab \u110e\u1169\u1100\u116a\u1102\u1173\u11ab \u1100\u1173\u1103\u1162\u1105\u1169 \u1111\u116d\u1100\u1175).", + "id": "gun_scripts_build_itinerary_excel_rationale_110" }, { - "id": "gun_scripts_build_itinerary_excel_rationale_121", "label": "\uc6b4\uc601\uc2dc\uac04 \uc704\ubc18 \uac80\uc0ac \u2192 (\uc704\ubc18 \ubaa9\ub85d, \ud328\ub110\ud2f0 \ud569\uacc4).", "file_type": "rationale", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L121", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "\u110b\u116e\u11ab\u110b\u1167\u11bc\u1109\u1175\u1100\u1161\u11ab \u110b\u1171\u1107\u1161\u11ab \u1100\u1165\u11b7\u1109\u1161 \u2192 (\u110b\u1171\u1107\u1161\u11ab \u1106\u1169\u11a8\u1105\u1169\u11a8, \u1111\u1162\u1102\u1165\u11af\u1110\u1175 \u1112\u1161\u11b8\u1100\u1168).", + "id": "gun_scripts_build_itinerary_excel_rationale_121" }, { - "id": "gun_scripts_build_itinerary_excel_rationale_162", "label": "pois_processed.csv \uae30\ubc18 \uc774\ub984 \ub9e4\uce6d \u2014 \uc815\ud655/\ubd80\ubd84 \uc77c\uce58.", "file_type": "rationale", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L162", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "pois_processed.csv \u1100\u1175\u1107\u1161\u11ab \u110b\u1175\u1105\u1173\u11b7 \u1106\u1162\u110e\u1175\u11bc \u2014 \u110c\u1165\u11bc\u1112\u116a\u11a8/\u1107\u116e\u1107\u116e\u11ab \u110b\u1175\u11af\u110e\u1175.", + "id": "gun_scripts_build_itinerary_excel_rationale_162" }, { - "id": "gun_scripts_build_itinerary_excel_rationale_180", "label": "\uc774\ub984\uc73c\ub85c \ub9e4\uce6d. \uc2dc\ub3c4/\uc2dc\uad70\uad6c\ub294 \ubd80\ubd84 \ub9e4\uce6d \uc2dc \ud6c4\ubcf4 \uc881\ud788\uae30.", "file_type": "rationale", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L180", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "\u110b\u1175\u1105\u1173\u11b7\u110b\u1173\u1105\u1169 \u1106\u1162\u110e\u1175\u11bc. \u1109\u1175\u1103\u1169/\u1109\u1175\u1100\u116e\u11ab\u1100\u116e\u1102\u1173\u11ab \u1107\u116e\u1107\u116e\u11ab \u1106\u1162\u110e\u1175\u11bc \u1109\u1175 \u1112\u116e\u1107\u1169 \u110c\u1169\u11b8\u1112\u1175\u1100\u1175.", + "id": "gun_scripts_build_itinerary_excel_rationale_180" }, { - "id": "gun_scripts_build_itinerary_excel_rationale_220", "label": "\ub9e4\uce6d\ub41c row \u2192 VRPTWPlace \ubcc0\ud658. \uc88c\ud45c \uc5c6\uc73c\uba74 None. \uc6b4\uc601\uc2dc\uac04\uc740 hours_db.resolve_hours() \uacb0\uacfc\ub97c \uc0ac\uc6a9.", "file_type": "rationale", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L220", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "\u1106\u1162\u110e\u1175\u11bc\u1103\u116c\u11ab row \u2192 vrptwplace \u1107\u1167\u11ab\u1112\u116a\u11ab. \u110c\u116a\u1111\u116d \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab none. \u110b\u116e\u11ab\u110b\u1167\u11bc\u1109\u1175\u1100\u1161\u11ab\u110b\u1173\u11ab hours_db.resolve_hours() \u1100\u1167\u11af\u1100\u116a\u1105\u1173\u11af \u1109\u1161\u110b\u116d\u11bc.", + "id": "gun_scripts_build_itinerary_excel_rationale_220" }, { - "id": "gun_scripts_build_itinerary_excel_rationale_241", "label": "\ud55c day(\uac19\uc740 plan_id+day)\uc758 row\ub4e4\uc5d0 \uc774\ub3d9\uc2dc\uac04\u00b7\uc6b4\uc601\uc2dc\uac04 \uc704\ubc18\u00b7\ud328\ub110\ud2f0 \ucc44\uc6b0\uae30.", "file_type": "rationale", "source_file": "gun/scripts/build_itinerary_excel.py", "source_location": "L241", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "\u1112\u1161\u11ab day(\u1100\u1161\u11c0\u110b\u1173\u11ab plan_id+day)\u110b\u1174 row\u1103\u1173\u11af\u110b\u1166 \u110b\u1175\u1103\u1169\u11bc\u1109\u1175\u1100\u1161\u11ab\u00b7\u110b\u116e\u11ab\u110b\u1167\u11bc\u1109\u1175\u1100\u1161\u11ab \u110b\u1171\u1107\u1161\u11ab\u00b7\u1111\u1162\u1102\u1165\u11af\u1110\u1175 \u110e\u1162\u110b\u116e\u1100\u1175.", + "id": "gun_scripts_build_itinerary_excel_rationale_241" }, { - "id": "gun_scripts_build_ppt", "label": "build_ppt.js", "file_type": "code", "source_file": "gun/scripts/build_ppt.js", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 53, + "norm_label": "build_ppt.js", + "id": "gun_scripts_build_ppt" }, { - "id": "gun_scripts_build_ppt_pptxgen", "label": "pptxgen", "file_type": "code", "source_file": "gun/scripts/build_ppt.js", "source_location": "L17", - "_origin": "ast" + "_origin": "ast", + "community": 53, + "norm_label": "pptxgen", + "id": "gun_scripts_build_ppt_pptxgen" }, { - "id": "gun_scripts_build_ppt_path", "label": "path", "file_type": "code", "source_file": "gun/scripts/build_ppt.js", "source_location": "L18", - "_origin": "ast" + "_origin": "ast", + "community": 53, + "norm_label": "path", + "id": "gun_scripts_build_ppt_path" }, { - "id": "gun_scripts_build_ppt_pres", "label": "pres", "file_type": "code", "source_file": "gun/scripts/build_ppt.js", "source_location": "L43", - "_origin": "ast" + "_origin": "ast", + "community": 53, + "norm_label": "pres", + "id": "gun_scripts_build_ppt_pres" }, { - "id": "gun_scripts_build_ppt_addpageheader", "label": "addPageHeader()", "file_type": "code", "source_file": "gun/scripts/build_ppt.js", "source_location": "L54", - "_origin": "ast" + "_origin": "ast", + "community": 53, + "norm_label": "addpageheader()", + "id": "gun_scripts_build_ppt_addpageheader" }, { - "id": "gun_scripts_build_ppt_addtitle", "label": "addTitle()", "file_type": "code", "source_file": "gun/scripts/build_ppt.js", "source_location": "L69", - "_origin": "ast" + "_origin": "ast", + "community": 53, + "norm_label": "addtitle()", + "id": "gun_scripts_build_ppt_addtitle" }, { - "id": "gun_scripts_build_ppt_addfooter", "label": "addFooter()", "file_type": "code", "source_file": "gun/scripts/build_ppt.js", "source_location": "L82", - "_origin": "ast" + "_origin": "ast", + "community": 53, + "norm_label": "addfooter()", + "id": "gun_scripts_build_ppt_addfooter" }, { - "id": "gun_scripts_build_ppt_addcard", "label": "addCard()", "file_type": "code", "source_file": "gun/scripts/build_ppt.js", "source_location": "L94", - "_origin": "ast" + "_origin": "ast", + "community": 53, + "norm_label": "addcard()", + "id": "gun_scripts_build_ppt_addcard" }, { - "id": "gun_scripts_build_ppt_addstat", "label": "addStat()", "file_type": "code", "source_file": "gun/scripts/build_ppt.js", "source_location": "L112", - "_origin": "ast" + "_origin": "ast", + "community": 53, + "norm_label": "addstat()", + "id": "gun_scripts_build_ppt_addstat" }, { - "id": "gun_scripts_build_ppt_addnumberchip", "label": "addNumberChip()", "file_type": "code", "source_file": "gun/scripts/build_ppt.js", "source_location": "L126", - "_origin": "ast" + "_origin": "ast", + "community": 53, + "norm_label": "addnumberchip()", + "id": "gun_scripts_build_ppt_addnumberchip" }, { - "id": "gun_scripts_build_ppt_output", "label": "OUTPUT", "file_type": "code", "source_file": "gun/scripts/build_ppt.js", "source_location": "L1656", - "_origin": "ast" + "_origin": "ast", + "community": 53, + "norm_label": "output", + "id": "gun_scripts_build_ppt_output" }, { - "id": "gun_scripts_build_travel_matrix", "label": "build_travel_matrix.py", "file_type": "code", "source_file": "gun/scripts/build_travel_matrix.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 3, + "norm_label": "build_travel_matrix.py", + "id": "gun_scripts_build_travel_matrix" }, { - "id": "gun_scripts_build_travel_matrix_resolve_base_dir", "label": "_resolve_base_dir()", "file_type": "code", "source_file": "gun/scripts/build_travel_matrix.py", "source_location": "L43", - "_origin": "ast" + "_origin": "ast", + "community": 3, + "norm_label": "_resolve_base_dir()", + "id": "gun_scripts_build_travel_matrix_resolve_base_dir" }, { - "id": "gun_scripts_build_travel_matrix_py_path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 3, + "norm_label": "path", + "id": "gun_scripts_build_travel_matrix_py_path" }, { - "id": "gun_scripts_build_travel_matrix_load_pois", "label": "load_pois()", "file_type": "code", "source_file": "gun/scripts/build_travel_matrix.py", "source_location": "L55", - "_origin": "ast" + "_origin": "ast", + "community": 3, + "norm_label": "load_pois()", + "id": "gun_scripts_build_travel_matrix_load_pois" }, { - "id": "gun_scripts_build_travel_matrix_build_matrix", "label": "build_matrix()", "file_type": "code", "source_file": "gun/scripts/build_travel_matrix.py", "source_location": "L83", - "_origin": "ast" + "_origin": "ast", + "community": 3, + "norm_label": "build_matrix()", + "id": "gun_scripts_build_travel_matrix_build_matrix" }, { - "id": "gun_scripts_build_travel_matrix_main", "label": "main()", "file_type": "code", "source_file": "gun/scripts/build_travel_matrix.py", "source_location": "L122", - "_origin": "ast" + "_origin": "ast", + "community": 3, + "norm_label": "main()", + "id": "gun_scripts_build_travel_matrix_main" }, { - "id": "gun_scripts_build_travel_matrix_rationale_1", "label": "POI CSV \u2192 \uce74\uce74\uc624 \ubaa8\ube4c\ub9ac\ud2f0 N\u00d7N \uc774\ub3d9\uc2dc\uac04 \ud589\ub82c \uc0ac\uc804 \ube4c\ub4dc. \uac80\uc99d \uc2dc \ub9e4\ubc88 API\ub97c \ud638\ucd9c\ud558\uba74 \ub290\ub9ac\uace0 \ud55c\ub3c4 \ubd80\ub2f4. \uc790\uc8fc \uc4f0\ub294 POI\u2026", "file_type": "rationale", "source_file": "gun/scripts/build_travel_matrix.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 3, + "norm_label": "poi csv \u2192 \u110f\u1161\u110f\u1161\u110b\u1169 \u1106\u1169\u1107\u1175\u11af\u1105\u1175\u1110\u1175 n\u00d7n \u110b\u1175\u1103\u1169\u11bc\u1109\u1175\u1100\u1161\u11ab \u1112\u1162\u11bc\u1105\u1167\u11af \u1109\u1161\u110c\u1165\u11ab \u1107\u1175\u11af\u1103\u1173. \u1100\u1165\u11b7\u110c\u1173\u11bc \u1109\u1175 \u1106\u1162\u1107\u1165\u11ab api\u1105\u1173\u11af \u1112\u1169\u110e\u116e\u11af\u1112\u1161\u1106\u1167\u11ab \u1102\u1173\u1105\u1175\u1100\u1169 \u1112\u1161\u11ab\u1103\u1169 \u1107\u116e\u1103\u1161\u11b7. \u110c\u1161\u110c\u116e \u110a\u1173\u1102\u1173\u11ab poi...", + "id": "gun_scripts_build_travel_matrix_rationale_1" }, { - "id": "gun_scripts_build_travel_matrix_rationale_62", "label": "CSV \uc77d\uc5b4 \uc88c\ud45c \uc720\ud6a8\ud55c POI \ub9ac\uc2a4\ud2b8\ub85c \ubc18\ud658.", "file_type": "rationale", "source_file": "gun/scripts/build_travel_matrix.py", "source_location": "L62", - "_origin": "ast" + "_origin": "ast", + "community": 3, + "norm_label": "csv \u110b\u1175\u11b0\u110b\u1165 \u110c\u116a\u1111\u116d \u110b\u1172\u1112\u116d\u1112\u1161\u11ab poi \u1105\u1175\u1109\u1173\u1110\u1173\u1105\u1169 \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "gun_scripts_build_travel_matrix_rationale_62" }, { - "id": "gun_scripts_build_travel_matrix_rationale_88", "label": "N\u00d7N \ud398\uc5b4\uc640\uc774\uc988 \ud638\ucd9c (\ub300\uac01\uc120 \uc81c\uc678, \uc591\ubc29\ud5a5 \uce90\uc2dc \ud65c\uc6a9).", "file_type": "rationale", "source_file": "gun/scripts/build_travel_matrix.py", "source_location": "L88", - "_origin": "ast" + "_origin": "ast", + "community": 3, + "norm_label": "n\u00d7n \u1111\u1166\u110b\u1165\u110b\u116a\u110b\u1175\u110c\u1173 \u1112\u1169\u110e\u116e\u11af (\u1103\u1162\u1100\u1161\u11a8\u1109\u1165\u11ab \u110c\u1166\u110b\u116c, \u110b\u1163\u11bc\u1107\u1161\u11bc\u1112\u1163\u11bc \u110f\u1162\u1109\u1175 \u1112\u116a\u11af\u110b\u116d\u11bc).", + "id": "gun_scripts_build_travel_matrix_rationale_88" }, { - "id": "gun_scripts_create_input_template", "label": "create_input_template.py", "file_type": "code", "source_file": "gun/scripts/create_input_template.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 69, + "norm_label": "create_input_template.py", + "id": "gun_scripts_create_input_template" }, { - "id": "gun_scripts_create_input_template_make_workbook", "label": "make_workbook()", "file_type": "code", "source_file": "gun/scripts/create_input_template.py", "source_location": "L57", - "_origin": "ast" + "_origin": "ast", + "community": 69, + "norm_label": "make_workbook()", + "id": "gun_scripts_create_input_template_make_workbook" }, { - "id": "gun_scripts_create_input_template_py_workbook", "label": "Workbook", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 69, + "norm_label": "workbook", + "id": "gun_scripts_create_input_template_py_workbook" }, { - "id": "gun_scripts_create_input_template_main", "label": "main()", "file_type": "code", "source_file": "gun/scripts/create_input_template.py", "source_location": "L157", - "_origin": "ast" + "_origin": "ast", + "community": 69, + "norm_label": "main()", + "id": "gun_scripts_create_input_template_main" }, { - "id": "gun_scripts_create_input_template_rationale_1", "label": "recommendations_input.xlsx \uc785\ub825 \uc591\uc2dd + \uc608\uc2dc \uc0dd\uc131. \uc2e4\ud589: python3\u2026", "file_type": "rationale", "source_file": "gun/scripts/create_input_template.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 69, + "norm_label": "recommendations_input.xlsx \u110b\u1175\u11b8\u1105\u1167\u11a8 \u110b\u1163\u11bc\u1109\u1175\u11a8 + \u110b\u1168\u1109\u1175 \u1109\u1162\u11bc\u1109\u1165\u11bc. \u1109\u1175\u11af\u1112\u1162\u11bc: python3...", + "id": "gun_scripts_create_input_template_rationale_1" }, { - "id": "gun_scripts_curated_itineraries", "label": "curated_itineraries.py", "file_type": "code", "source_file": "gun/scripts/curated_itineraries.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 70, + "norm_label": "curated_itineraries.py", + "id": "gun_scripts_curated_itineraries" }, { - "id": "gun_scripts_curated_itineraries_make_workbook", "label": "make_workbook()", "file_type": "code", "source_file": "gun/scripts/curated_itineraries.py", "source_location": "L572", - "_origin": "ast" + "_origin": "ast", + "community": 70, + "norm_label": "make_workbook()", + "id": "gun_scripts_curated_itineraries_make_workbook" }, { - "id": "gun_scripts_curated_itineraries_py_workbook", "label": "Workbook", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 70, + "norm_label": "workbook", + "id": "gun_scripts_curated_itineraries_py_workbook" }, { - "id": "gun_scripts_curated_itineraries_main", "label": "main()", "file_type": "code", "source_file": "gun/scripts/curated_itineraries.py", "source_location": "L658", - "_origin": "ast" + "_origin": "ast", + "community": 70, + "norm_label": "main()", + "id": "gun_scripts_curated_itineraries_main" }, { - "id": "gun_scripts_curated_itineraries_rationale_1", "label": "\ud050\ub808\uc774\uc158 \ucd94\ucc9c \uc77c\uc815 \uc0dd\uc131\uae30. \ud55c\uad6d \uc8fc\uc694 \uad00\uad11\uc9c0 \uae30\ubc18 \uc77c\ubc18 \uc9c0\uc2dd + \ud55c\uad6d\uad00\uad11\uacf5\uc0ac \ucd94\ucc9c \ucf54\uc2a4 \ud328\ud134\uc73c\ub85c 30~40\uac1c \ucd94\ucc9c \uc77c\uc815\uc744\u2026", "file_type": "rationale", "source_file": "gun/scripts/curated_itineraries.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 70, + "norm_label": "\u110f\u1172\u1105\u1166\u110b\u1175\u1109\u1167\u11ab \u110e\u116e\u110e\u1165\u11ab \u110b\u1175\u11af\u110c\u1165\u11bc \u1109\u1162\u11bc\u1109\u1165\u11bc\u1100\u1175. \u1112\u1161\u11ab\u1100\u116e\u11a8 \u110c\u116e\u110b\u116d \u1100\u116a\u11ab\u1100\u116a\u11bc\u110c\u1175 \u1100\u1175\u1107\u1161\u11ab \u110b\u1175\u11af\u1107\u1161\u11ab \u110c\u1175\u1109\u1175\u11a8 + \u1112\u1161\u11ab\u1100\u116e\u11a8\u1100\u116a\u11ab\u1100\u116a\u11bc\u1100\u1169\u11bc\u1109\u1161 \u110e\u116e\u110e\u1165\u11ab \u110f\u1169\u1109\u1173 \u1111\u1162\u1110\u1165\u11ab\u110b\u1173\u1105\u1169 30~40\u1100\u1162 \u110e\u116e\u110e\u1165\u11ab \u110b\u1175\u11af\u110c\u1165\u11bc\u110b\u1173\u11af...", + "id": "gun_scripts_curated_itineraries_rationale_1" }, { - "id": "gun_scripts_fetch_google_hours", "label": "fetch_google_hours.py", "file_type": "code", "source_file": "gun/scripts/fetch_google_hours.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "fetch_google_hours.py", + "id": "gun_scripts_fetch_google_hours" }, { - "id": "gun_scripts_fetch_google_hours_load_env", "label": "load_env()", "file_type": "code", "source_file": "gun/scripts/fetch_google_hours.py", "source_location": "L41", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "load_env()", + "id": "gun_scripts_fetch_google_hours_load_env" }, { - "id": "gun_scripts_fetch_google_hours_py_path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "path", + "id": "gun_scripts_fetch_google_hours_py_path" }, { - "id": "gun_scripts_fetch_google_hours_text_search", "label": "text_search()", "file_type": "code", "source_file": "gun/scripts/fetch_google_hours.py", "source_location": "L58", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "text_search()", + "id": "gun_scripts_fetch_google_hours_text_search" }, { - "id": "gun_scripts_fetch_google_hours_place_details", "label": "place_details()", "file_type": "code", "source_file": "gun/scripts/fetch_google_hours.py", "source_location": "L83", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "place_details()", + "id": "gun_scripts_fetch_google_hours_place_details" }, { - "id": "gun_scripts_fetch_google_hours_py_any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "any", + "id": "gun_scripts_fetch_google_hours_py_any" }, { - "id": "gun_scripts_fetch_google_hours_parse_periods", "label": "parse_periods()", "file_type": "code", "source_file": "gun/scripts/fetch_google_hours.py", "source_location": "L102", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "parse_periods()", + "id": "gun_scripts_fetch_google_hours_parse_periods" }, { - "id": "gun_scripts_fetch_google_hours_load_targets", "label": "load_targets()", "file_type": "code", "source_file": "gun/scripts/fetch_google_hours.py", "source_location": "L124", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "load_targets()", + "id": "gun_scripts_fetch_google_hours_load_targets" }, { - "id": "gun_scripts_fetch_google_hours_main", "label": "main()", "file_type": "code", "source_file": "gun/scripts/fetch_google_hours.py", "source_location": "L148", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "main()", + "id": "gun_scripts_fetch_google_hours_main" }, { - "id": "gun_scripts_fetch_google_hours_rationale_1", "label": "Google Places API (New) \u2014 \uc2dd\ub2f9\u00b7\uce74\ud398 \uc6b4\uc601\uc2dc\uac04 \ubcf4\uac15. \uc0ac\uc6a9\ubc95: 1. .env \uc5d0 GOOGLE_PLACES_API_KEY\u2026", "file_type": "rationale", "source_file": "gun/scripts/fetch_google_hours.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "google places api (new) \u2014 \u1109\u1175\u11a8\u1103\u1161\u11bc\u00b7\u110f\u1161\u1111\u1166 \u110b\u116e\u11ab\u110b\u1167\u11bc\u1109\u1175\u1100\u1161\u11ab \u1107\u1169\u1100\u1161\u11bc. \u1109\u1161\u110b\u116d\u11bc\u1107\u1165\u11b8: 1. .env \u110b\u1166 google_places_api_key...", + "id": "gun_scripts_fetch_google_hours_rationale_1" }, { - "id": "gun_scripts_fetch_google_hours_rationale_59", "label": "POI \uc774\ub984\uc73c\ub85c \uac80\uc0c9 \u2192 \uccab \ud6c4\ubcf4\uc758 place_id \ubc18\ud658.", "file_type": "rationale", "source_file": "gun/scripts/fetch_google_hours.py", "source_location": "L59", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "poi \u110b\u1175\u1105\u1173\u11b7\u110b\u1173\u1105\u1169 \u1100\u1165\u11b7\u1109\u1162\u11a8 \u2192 \u110e\u1165\u11ba \u1112\u116e\u1107\u1169\u110b\u1174 place_id \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "gun_scripts_fetch_google_hours_rationale_59" }, { - "id": "gun_scripts_fetch_google_hours_rationale_103", "label": "API\uc758 periods \uc751\ub2f5\uc744 \uc694\uc77c\ubcc4 'HH:MM-HH:MM' \uc73c\ub85c \ubcc0\ud658. day: 0=\uc77c, 1=\uc6d4, ..., 6=\ud1a0 (Google \uae30\uc900)", "file_type": "rationale", "source_file": "gun/scripts/fetch_google_hours.py", "source_location": "L103", - "_origin": "ast" + "_origin": "ast", + "community": 49, + "norm_label": "api\u110b\u1174 periods \u110b\u1173\u11bc\u1103\u1161\u11b8\u110b\u1173\u11af \u110b\u116d\u110b\u1175\u11af\u1107\u1167\u11af 'hh:mm-hh:mm' \u110b\u1173\u1105\u1169 \u1107\u1167\u11ab\u1112\u116a\u11ab. day: 0=\u110b\u1175\u11af, 1=\u110b\u116f\u11af, ..., 6=\u1110\u1169 (google \u1100\u1175\u110c\u116e\u11ab)", + "id": "gun_scripts_fetch_google_hours_rationale_103" }, { - "id": "gun_scripts_fetch_tourapi_to_csv", "label": "fetch_tourapi_to_csv.py", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "fetch_tourapi_to_csv.py", + "id": "gun_scripts_fetch_tourapi_to_csv" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_resolve_base_dir", "label": "_resolve_base_dir()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L132", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "_resolve_base_dir()", + "id": "gun_scripts_fetch_tourapi_to_csv_resolve_base_dir" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_py_path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "path", + "id": "gun_scripts_fetch_tourapi_to_csv_py_path" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_load_env", "label": "load_env()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L156", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "load_env()", + "id": "gun_scripts_fetch_tourapi_to_csv_load_env" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint", "label": "Checkpoint", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L177", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "checkpoint", + "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_load", "label": ".load()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L188", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".load()", + "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_load" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_save", "label": ".save()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L200", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".save()", + "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_save" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_increment_daily", "label": ".increment_daily()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L213", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".increment_daily()", + "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_increment_daily" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today", "label": ".remaining_today()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L222", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".remaining_today()", + "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_key", "label": ".key()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L229", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".key()", + "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_key" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_is_done", "label": ".is_done()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L232", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".is_done()", + "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_is_done" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_mark_done", "label": ".mark_done()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L235", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".mark_done()", + "id": "gun_scripts_fetch_tourapi_to_csv_checkpoint_mark_done" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_dailylimitreached", "label": "DailyLimitReached", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L240", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "dailylimitreached", + "id": "gun_scripts_fetch_tourapi_to_csv_dailylimitreached" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_py_exception", "label": "Exception", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "exception", + "id": "gun_scripts_fetch_tourapi_to_csv_py_exception" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_call_api", "label": "call_api()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L244", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "call_api()", + "id": "gun_scripts_fetch_tourapi_to_csv_call_api" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_py_any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "any", + "id": "gun_scripts_fetch_tourapi_to_csv_py_any" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_parse_items", "label": "parse_items()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L333", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "parse_items()", + "id": "gun_scripts_fetch_tourapi_to_csv_parse_items" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_get_total_count", "label": "get_total_count()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L345", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "get_total_count()", + "id": "gun_scripts_fetch_tourapi_to_csv_get_total_count" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_csvappender", "label": "CsvAppender", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L351", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "csvappender", + "id": "gun_scripts_fetch_tourapi_to_csv_csvappender" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_csvappender_init", "label": ".__init__()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L352", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".__init__()", + "id": "gun_scripts_fetch_tourapi_to_csv_csvappender_init" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_csvappender_enter", "label": ".__enter__()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L358", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".__enter__()", + "id": "gun_scripts_fetch_tourapi_to_csv_csvappender_enter" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_csvappender_exit", "label": ".__exit__()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L367", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".__exit__()", + "id": "gun_scripts_fetch_tourapi_to_csv_csvappender_exit" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_csvappender_write", "label": ".write()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L371", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".write()", + "id": "gun_scripts_fetch_tourapi_to_csv_csvappender_write" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_csvappender_write_many", "label": ".write_many()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L374", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": ".write_many()", + "id": "gun_scripts_fetch_tourapi_to_csv_csvappender_write_many" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_is_valid_kr_coord", "label": "is_valid_kr_coord()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L379", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "is_valid_kr_coord()", + "id": "gun_scripts_fetch_tourapi_to_csv_is_valid_kr_coord" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", "label": "fetch_ldong_codes()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L391", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "fetch_ldong_codes()", + "id": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes", "label": "fetch_classification_codes()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L503", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "fetch_classification_codes()", + "id": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", "label": "fetch_pois()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L565", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "fetch_pois()", + "id": "gun_scripts_fetch_tourapi_to_csv_fetch_pois" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_process_items", "label": "_process_items()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L648", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "_process_items()", + "id": "gun_scripts_fetch_tourapi_to_csv_process_items" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", "label": "fetch_festivals()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L673", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "fetch_festivals()", + "id": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", "label": "enrich_operating_hours()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L756", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "enrich_operating_hours()", + "id": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_test_connection", "label": "test_connection()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L815", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "test_connection()", + "id": "gun_scripts_fetch_tourapi_to_csv_test_connection" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_main", "label": "main()", "file_type": "code", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L839", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "main()", + "id": "gun_scripts_fetch_tourapi_to_csv_main" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_rationale_2", "label": "TourAPI v2 (KorService2) \u2192 CSV \ubc8c\ud06c \uc218\uc9d1 \uc2a4\ud06c\ub9bd\ud2b8 [\uc2e0 API \uba85\uc138 v2 \ubc18\uc601]\u2026", "file_type": "rationale", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L2", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "tourapi v2 (korservice2) \u2192 csv \u1107\u1165\u11af\u110f\u1173 \u1109\u116e\u110c\u1175\u11b8 \u1109\u1173\u110f\u1173\u1105\u1175\u11b8\u1110\u1173 [\u1109\u1175\u11ab api \u1106\u1167\u11bc\u1109\u1166 v2 \u1107\u1161\u11ab\u110b\u1167\u11bc]...", + "id": "gun_scripts_fetch_tourapi_to_csv_rationale_2" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_rationale_178", "label": "\uc218\uc9d1 \uc9c4\ud589 \uc0c1\ud0dc + \uc77c\uc77c \ud638\ucd9c \uce74\uc6b4\ud2b8. \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ubcc4 \ud638\ucd9c \uc218\ub97c \ub0a0\uc9dc\uc640 \ud568\uaed8 \uae30\ub85d \u2192 \uc77c\uc77c \ud55c\ub3c4 \ucd94\uc801.", "file_type": "rationale", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L178", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "\u1109\u116e\u110c\u1175\u11b8 \u110c\u1175\u11ab\u1112\u1162\u11bc \u1109\u1161\u11bc\u1110\u1162 + \u110b\u1175\u11af\u110b\u1175\u11af \u1112\u1169\u110e\u116e\u11af \u110f\u1161\u110b\u116e\u11ab\u1110\u1173. \u110b\u1166\u11ab\u1103\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173\u1107\u1167\u11af \u1112\u1169\u110e\u116e\u11af \u1109\u116e\u1105\u1173\u11af \u1102\u1161\u11af\u110d\u1161\u110b\u116a \u1112\u1161\u11b7\u1101\u1166 \u1100\u1175\u1105\u1169\u11a8 \u2192 \u110b\u1175\u11af\u110b\u1175\u11af \u1112\u1161\u11ab\u1103\u1169 \u110e\u116e\u110c\u1165\u11a8.", + "id": "gun_scripts_fetch_tourapi_to_csv_rationale_178" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_rationale_241", "label": "\uc77c\uc77c \ud55c\ub3c4 \ub3c4\ub2ec \u2014 \uccb4\ud06c\ud3ec\uc778\ud2b8 \uc800\uc7a5 \ud6c4 \uc815\uc0c1 \uc885\ub8cc.", "file_type": "rationale", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L241", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "\u110b\u1175\u11af\u110b\u1175\u11af \u1112\u1161\u11ab\u1103\u1169 \u1103\u1169\u1103\u1161\u11af \u2014 \u110e\u1166\u110f\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173 \u110c\u1165\u110c\u1161\u11bc \u1112\u116e \u110c\u1165\u11bc\u1109\u1161\u11bc \u110c\u1169\u11bc\u1105\u116d.", + "id": "gun_scripts_fetch_tourapi_to_csv_rationale_241" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_rationale_250", "label": "TourAPI \ud638\ucd9c. \uc2e4\ud328 \uc2dc None. \ud55c\ub3c4 \ub3c4\ub2ec \uc2dc DailyLimitReached.", "file_type": "rationale", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L250", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "tourapi \u1112\u1169\u110e\u116e\u11af. \u1109\u1175\u11af\u1111\u1162 \u1109\u1175 none. \u1112\u1161\u11ab\u1103\u1169 \u1103\u1169\u1103\u1161\u11af \u1109\u1175 dailylimitreached.", + "id": "gun_scripts_fetch_tourapi_to_csv_rationale_250" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_rationale_334", "label": "API \uc751\ub2f5\uc5d0\uc11c items.item \ub9ac\uc2a4\ud2b8 \ucd94\ucd9c. \ube48 \uc751\ub2f5 \uc548\uc804 \ucc98\ub9ac.", "file_type": "rationale", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L334", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "api \u110b\u1173\u11bc\u1103\u1161\u11b8\u110b\u1166\u1109\u1165 items.item \u1105\u1175\u1109\u1173\u1110\u1173 \u110e\u116e\u110e\u116e\u11af. \u1107\u1175\u11ab \u110b\u1173\u11bc\u1103\u1161\u11b8 \u110b\u1161\u11ab\u110c\u1165\u11ab \u110e\u1165\u1105\u1175.", + "id": "gun_scripts_fetch_tourapi_to_csv_rationale_334" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_rationale_392", "label": "ldongCode2\ub85c \uc804\uccb4 \ubc95\uc815\ub3d9(\uc2dc\ub3c4+\uc2dc\uad70\uad6c+\ubc95\uc815\ub3d9) \uc218\uc9d1. lDongListYn=Y \uc635\uc158\uc73c\ub85c \uc804\uccb4 \ubaa9\ub85d \uc870\ud68c + \ud398\uc774\uc9c0\ub124\uc774\uc158.", "file_type": "rationale", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L392", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "ldongcode2\u1105\u1169 \u110c\u1165\u11ab\u110e\u1166 \u1107\u1165\u11b8\u110c\u1165\u11bc\u1103\u1169\u11bc(\u1109\u1175\u1103\u1169+\u1109\u1175\u1100\u116e\u11ab\u1100\u116e+\u1107\u1165\u11b8\u110c\u1165\u11bc\u1103\u1169\u11bc) \u1109\u116e\u110c\u1175\u11b8. ldonglistyn=y \u110b\u1169\u11b8\u1109\u1167\u11ab\u110b\u1173\u1105\u1169 \u110c\u1165\u11ab\u110e\u1166 \u1106\u1169\u11a8\u1105\u1169\u11a8 \u110c\u1169\u1112\u116c + \u1111\u1166\u110b\u1175\u110c\u1175\u1102\u1166\u110b\u1175\u1109\u1167\u11ab.", + "id": "gun_scripts_fetch_tourapi_to_csv_rationale_392" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_rationale_504", "label": "lclsSystmCode2 \u2192 \ubd84\ub958\uccb4\uacc4 1~3 Depth \ud2b8\ub9ac \uc218\uc9d1.", "file_type": "rationale", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L504", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "lclssystmcode2 \u2192 \u1107\u116e\u11ab\u1105\u1172\u110e\u1166\u1100\u1168 1~3 depth \u1110\u1173\u1105\u1175 \u1109\u116e\u110c\u1175\u11b8.", + "id": "gun_scripts_fetch_tourapi_to_csv_rationale_504" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_rationale_572", "label": "contentTypeId \u00d7 lDongRegnCd \uc870\ud569\uc73c\ub85c \ud398\uc774\uc9c0\ub124\uc774\uc158 \uc21c\ud68c. modifiedtime: 'YYYYMMDD' \u2014 \ud574\ub2f9 \ub0a0\uc9dc \uc774\ud6c4\u2026", "file_type": "rationale", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L572", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "contenttypeid \u00d7 ldongregncd \u110c\u1169\u1112\u1161\u11b8\u110b\u1173\u1105\u1169 \u1111\u1166\u110b\u1175\u110c\u1175\u1102\u1166\u110b\u1175\u1109\u1167\u11ab \u1109\u116e\u11ab\u1112\u116c. modifiedtime: 'yyyymmdd' \u2014 \u1112\u1162\u1103\u1161\u11bc \u1102\u1161\u11af\u110d\u1161 \u110b\u1175\u1112\u116e...", + "id": "gun_scripts_fetch_tourapi_to_csv_rationale_572" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_rationale_653", "label": "\ud398\uc774\uc9c0\uc758 item\uc744 \uac80\uc99d + CSV\uc5d0 \uc4f0\uae30. \ubc18\ud658: (\uc800\uc7a5, \uc88c\ud45c\uc624\ub958, \uc911\ubcf5).", "file_type": "rationale", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L653", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "\u1111\u1166\u110b\u1175\u110c\u1175\u110b\u1174 item\u110b\u1173\u11af \u1100\u1165\u11b7\u110c\u1173\u11bc + csv\u110b\u1166 \u110a\u1173\u1100\u1175. \u1107\u1161\u11ab\u1112\u116a\u11ab: (\u110c\u1165\u110c\u1161\u11bc, \u110c\u116a\u1111\u116d\u110b\u1169\u1105\u1172, \u110c\u116e\u11bc\u1107\u1169\u11a8).", + "id": "gun_scripts_fetch_tourapi_to_csv_rationale_653" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_rationale_679", "label": "searchFestival2\ub85c [event_start, event_end] \uae30\uac04\uc758 \ucd95\uc81c \uc77c\uc815 \uc218\uc9d1. eventStartDate \ud544\ud130\ub85c \ud574\ub2f9\u2026", "file_type": "rationale", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L679", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "searchfestival2\u1105\u1169 [event_start, event_end] \u1100\u1175\u1100\u1161\u11ab\u110b\u1174 \u110e\u116e\u11a8\u110c\u1166 \u110b\u1175\u11af\u110c\u1165\u11bc \u1109\u116e\u110c\u1175\u11b8. eventstartdate \u1111\u1175\u11af\u1110\u1165\u1105\u1169 \u1112\u1162\u1103\u1161\u11bc...", + "id": "gun_scripts_fetch_tourapi_to_csv_rationale_679" }, { - "id": "gun_scripts_fetch_tourapi_to_csv_rationale_757", "label": "pois.csv\ub97c \uc77d\uc5b4 detailIntro2\ub85c \uc6b4\uc601\uc2dc\uac04 \ubcf4\uac15. \uc774\ubbf8 enriched\ub41c contentid\ub294 \uc2a4\ud0b5.", "file_type": "rationale", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", "source_location": "L757", - "_origin": "ast" + "_origin": "ast", + "community": 8, + "norm_label": "pois.csv\u1105\u1173\u11af \u110b\u1175\u11b0\u110b\u1165 detailintro2\u1105\u1169 \u110b\u116e\u11ab\u110b\u1167\u11bc\u1109\u1175\u1100\u1161\u11ab \u1107\u1169\u1100\u1161\u11bc. \u110b\u1175\u1106\u1175 enriched\u1103\u116c\u11ab contentid\u1102\u1173\u11ab \u1109\u1173\u110f\u1175\u11b8.", + "id": "gun_scripts_fetch_tourapi_to_csv_rationale_757" }, { - "id": "gun_scripts_inspect_json", "label": "inspect_json.py", "file_type": "code", "source_file": "gun/scripts/inspect_json.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 54, + "norm_label": "inspect_json.py", + "id": "gun_scripts_inspect_json" }, { - "id": "gun_scripts_inspect_json_get_path", "label": "get_path()", "file_type": "code", "source_file": "gun/scripts/inspect_json.py", "source_location": "L24", - "_origin": "ast" + "_origin": "ast", + "community": 54, + "norm_label": "get_path()", + "id": "gun_scripts_inspect_json_get_path" }, { - "id": "gun_scripts_inspect_json_py_any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 54, + "norm_label": "any", + "id": "gun_scripts_inspect_json_py_any" }, { - "id": "gun_scripts_inspect_json_describe", "label": "describe()", "file_type": "code", "source_file": "gun/scripts/inspect_json.py", "source_location": "L44", - "_origin": "ast" + "_origin": "ast", + "community": 54, + "norm_label": "describe()", + "id": "gun_scripts_inspect_json_describe" }, { - "id": "gun_scripts_inspect_json_print_tree", "label": "print_tree()", "file_type": "code", "source_file": "gun/scripts/inspect_json.py", "source_location": "L59", - "_origin": "ast" + "_origin": "ast", + "community": 54, + "norm_label": "print_tree()", + "id": "gun_scripts_inspect_json_print_tree" }, { - "id": "gun_scripts_inspect_json_search_in", "label": "search_in()", "file_type": "code", "source_file": "gun/scripts/inspect_json.py", "source_location": "L86", - "_origin": "ast" + "_origin": "ast", + "community": 54, + "norm_label": "search_in()", + "id": "gun_scripts_inspect_json_search_in" }, { - "id": "gun_scripts_inspect_json_main", "label": "main()", "file_type": "code", "source_file": "gun/scripts/inspect_json.py", "source_location": "L105", - "_origin": "ast" + "_origin": "ast", + "community": 54, + "norm_label": "main()", + "id": "gun_scripts_inspect_json_main" }, { - "id": "gun_scripts_inspect_json_rationale_1", "label": "JSON \ud30c\uc77c \ube60\ub978 \ud655\uc778 \uc720\ud2f8\ub9ac\ud2f0 ================================= \uc0ac\uc6a9\ubc95: python3\u2026", "file_type": "rationale", "source_file": "gun/scripts/inspect_json.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 54, + "norm_label": "json \u1111\u1161\u110b\u1175\u11af \u1108\u1161\u1105\u1173\u11ab \u1112\u116a\u11a8\u110b\u1175\u11ab \u110b\u1172\u1110\u1175\u11af\u1105\u1175\u1110\u1175 ================================= \u1109\u1161\u110b\u116d\u11bc\u1107\u1165\u11b8: python3...", + "id": "gun_scripts_inspect_json_rationale_1" }, { - "id": "gun_scripts_inspect_json_rationale_25", "label": "a.b.0.c' \ud615\ud0dc \uacbd\ub85c\ub85c dict/list \uc548\uc73c\ub85c \ub4e4\uc5b4\uac10.", "file_type": "rationale", "source_file": "gun/scripts/inspect_json.py", "source_location": "L25", - "_origin": "ast" + "_origin": "ast", + "community": 54, + "norm_label": "a.b.0.c' \u1112\u1167\u11bc\u1110\u1162 \u1100\u1167\u11bc\u1105\u1169\u1105\u1169 dict/list \u110b\u1161\u11ab\u110b\u1173\u1105\u1169 \u1103\u1173\u11af\u110b\u1165\u1100\u1161\u11b7.", + "id": "gun_scripts_inspect_json_rationale_25" }, { - "id": "gun_scripts_inspect_json_rationale_60", "label": "\uad6c\uc870\ub9cc \ud2b8\ub9ac\ub85c \ucd9c\ub825 (\uac12\uc740 \ud0c0\uc785\uacfc \uae38\uc774\ub9cc).", "file_type": "rationale", "source_file": "gun/scripts/inspect_json.py", "source_location": "L60", - "_origin": "ast" + "_origin": "ast", + "community": 54, + "norm_label": "\u1100\u116e\u110c\u1169\u1106\u1161\u11ab \u1110\u1173\u1105\u1175\u1105\u1169 \u110e\u116e\u11af\u1105\u1167\u11a8 (\u1100\u1161\u11b9\u110b\u1173\u11ab \u1110\u1161\u110b\u1175\u11b8\u1100\u116a \u1100\u1175\u11af\u110b\u1175\u1106\u1161\u11ab).", + "id": "gun_scripts_inspect_json_rationale_60" }, { - "id": "gun_scripts_inspect_json_rationale_87", "label": "\ubaa8\ub4e0 \uac12\uc5d0\uc11c text \ud3ec\ud568 \ud56d\ubaa9 \ucc3e\uae30. \ubc18\ud658: [(\uacbd\ub85c, \uac12)]", "file_type": "rationale", "source_file": "gun/scripts/inspect_json.py", "source_location": "L87", - "_origin": "ast" + "_origin": "ast", + "community": 54, + "norm_label": "\u1106\u1169\u1103\u1173\u11ab \u1100\u1161\u11b9\u110b\u1166\u1109\u1165 text \u1111\u1169\u1112\u1161\u11b7 \u1112\u1161\u11bc\u1106\u1169\u11a8 \u110e\u1161\u11bd\u1100\u1175. \u1107\u1161\u11ab\u1112\u116a\u11ab: [(\u1100\u1167\u11bc\u1105\u1169, \u1100\u1161\u11b9)]", + "id": "gun_scripts_inspect_json_rationale_87" }, { - "id": "gun_scripts_preprocess_pois", "label": "preprocess_pois.py", "file_type": "code", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "preprocess_pois.py", + "id": "gun_scripts_preprocess_pois" }, { - "id": "gun_scripts_preprocess_pois_parse_korean_address", "label": "parse_korean_address()", "file_type": "code", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L37", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "parse_korean_address()", + "id": "gun_scripts_preprocess_pois_parse_korean_address" }, { - "id": "gun_scripts_preprocess_pois_split_address_columns", "label": "split_address_columns()", "file_type": "code", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L92", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "split_address_columns()", + "id": "gun_scripts_preprocess_pois_split_address_columns" }, { - "id": "gun_scripts_preprocess_pois_py_dataframe", "label": "DataFrame", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "dataframe", + "id": "gun_scripts_preprocess_pois_py_dataframe" }, { - "id": "gun_scripts_preprocess_pois_parse_eup_myeon_ri", "label": "parse_eup_myeon_ri()", "file_type": "code", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L120", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "parse_eup_myeon_ri()", + "id": "gun_scripts_preprocess_pois_parse_eup_myeon_ri" }, { - "id": "gun_scripts_preprocess_pois_split_eup_myeon_ri_columns", "label": "split_eup_myeon_ri_columns()", "file_type": "code", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L150", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "split_eup_myeon_ri_columns()", + "id": "gun_scripts_preprocess_pois_split_eup_myeon_ri_columns" }, { - "id": "gun_scripts_preprocess_pois_split_date_columns", "label": "split_date_columns()", "file_type": "code", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L175", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "split_date_columns()", + "id": "gun_scripts_preprocess_pois_split_date_columns" }, { - "id": "gun_scripts_preprocess_pois_preprocess", "label": "preprocess()", "file_type": "code", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L202", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "preprocess()", + "id": "gun_scripts_preprocess_pois_preprocess" }, { - "id": "gun_scripts_preprocess_pois_py_path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "path", + "id": "gun_scripts_preprocess_pois_py_path" }, { - "id": "gun_scripts_preprocess_pois_main", "label": "main()", "file_type": "code", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L273", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "main()", + "id": "gun_scripts_preprocess_pois_main" }, { - "id": "gun_scripts_preprocess_pois_rationale_1", "label": "POI CSV \uc885\ud569 \uc804\ucc98\ub9ac ========================= TourAPI \uc6d0\ubcf8 CSV\uc5d0 \ub300\ud574 \uc138 \uac00\uc9c0 \ubcc0\ud658\uc744 \ud55c \ubc88\uc5d0 \uc801\uc6a9:\u2026", "file_type": "rationale", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "poi csv \u110c\u1169\u11bc\u1112\u1161\u11b8 \u110c\u1165\u11ab\u110e\u1165\u1105\u1175 ========================= tourapi \u110b\u116f\u11ab\u1107\u1169\u11ab csv\u110b\u1166 \u1103\u1162\u1112\u1162 \u1109\u1166 \u1100\u1161\u110c\u1175 \u1107\u1167\u11ab\u1112\u116a\u11ab\u110b\u1173\u11af \u1112\u1161\u11ab \u1107\u1165\u11ab\u110b\u1166 \u110c\u1165\u11a8\u110b\u116d\u11bc:...", + "id": "gun_scripts_preprocess_pois_rationale_1" }, { - "id": "gun_scripts_preprocess_pois_rationale_38", "label": "\ud55c\uad6d \uc8fc\uc18c \ubb38\uc790\uc5f4 \u2192 (\uc2dc\ub3c4, \uc2dc\uad70\uad6c, \uc74d\uba74\ub3d9\u00b7\ub3c4\ub85c\uba85) \ubd84\ub9ac. \uaddc\uce59 ---- 1. \uccab \ud1a0\ud070 = \uc2dc\ub3c4 (\uc5b4\ub5a4 \ud615\ud0dc\ub4e0 \uadf8\ub300\ub85c) 2. \uc2dc\uad70\uad6c\ub294\u2026", "file_type": "rationale", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L38", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "\u1112\u1161\u11ab\u1100\u116e\u11a8 \u110c\u116e\u1109\u1169 \u1106\u116e\u11ab\u110c\u1161\u110b\u1167\u11af \u2192 (\u1109\u1175\u1103\u1169, \u1109\u1175\u1100\u116e\u11ab\u1100\u116e, \u110b\u1173\u11b8\u1106\u1167\u11ab\u1103\u1169\u11bc\u00b7\u1103\u1169\u1105\u1169\u1106\u1167\u11bc) \u1107\u116e\u11ab\u1105\u1175. \u1100\u1172\u110e\u1175\u11a8 ---- 1. \u110e\u1165\u11ba \u1110\u1169\u110f\u1173\u11ab = \u1109\u1175\u1103\u1169 (\u110b\u1165\u1104\u1165\u11ab \u1112\u1167\u11bc\u1110\u1162\u1103\u1173\u11ab \u1100\u1173\u1103\u1162\u1105\u1169) 2. \u1109\u1175\u1100\u116e\u11ab\u1100\u116e\u1102\u1173\u11ab...", + "id": "gun_scripts_preprocess_pois_rationale_38" }, { - "id": "gun_scripts_preprocess_pois_rationale_121", "label": "dong_or_road\ub97c \ub744\uc5b4\uc4f0\uae30\ub85c \ubd84\ub9ac \u2014 1\ubc88\uc9f8 \u2192 eup_myeon, 2\ubc88\uc9f8 \u2192 ri. 3\ubc88\uc9f8 \uc774\ud6c4 \ud1a0\ud070\uc740 \ubaa8\ub450 drop ('\ub9ac \ub2e8\uc704\u2026", "file_type": "rationale", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L121", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "dong_or_road\u1105\u1173\u11af \u1104\u1174\u110b\u1165\u110a\u1173\u1100\u1175\u1105\u1169 \u1107\u116e\u11ab\u1105\u1175 \u2014 1\u1107\u1165\u11ab\u110d\u1162 \u2192 eup_myeon, 2\u1107\u1165\u11ab\u110d\u1162 \u2192 ri. 3\u1107\u1165\u11ab\u110d\u1162 \u110b\u1175\u1112\u116e \u1110\u1169\u110f\u1173\u11ab\u110b\u1173\u11ab \u1106\u1169\u1103\u116e drop ('\u1105\u1175 \u1103\u1161\u11ab\u110b\u1171...", + "id": "gun_scripts_preprocess_pois_rationale_121" }, { - "id": "gun_scripts_preprocess_pois_rationale_181", "label": "YYYYMMDDHHMMSS \u2192 {prefix}_date / _year / _month (day, time \uc81c\uc678).", "file_type": "rationale", "source_file": "gun/scripts/preprocess_pois.py", "source_location": "L181", - "_origin": "ast" + "_origin": "ast", + "community": 46, + "norm_label": "yyyymmddhhmmss \u2192 {prefix}_date / _year / _month (day, time \u110c\u1166\u110b\u116c).", + "id": "gun_scripts_preprocess_pois_rationale_181" }, { - "id": "gun_scripts_setup_and_test", "label": "setup_and_test.py", "file_type": "code", "source_file": "gun/scripts/setup_and_test.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 30, + "norm_label": "setup_and_test.py", + "id": "gun_scripts_setup_and_test" }, { - "id": "gun_scripts_setup_and_test_rationale_1", "label": "env \uc0dd\uc131 + Kakao API \ud14c\uc2a4\ud2b8. \u26a0\ufe0f \ud0a4\ub294 \uc808\ub300 \ucf54\ub4dc\uc5d0 \ud558\ub4dc\ucf54\ub529\ud558\uc9c0 \ub9d0 \uac83 \u2014 \ud658\uacbd\ubcc0\uc218 \ub610\ub294 .env \ud30c\uc77c\uc5d0\uc11c \uc77d\uc5b4\uc634. \uc0ac\uc6a9\ubc95:\u2026", "file_type": "rationale", "source_file": "gun/scripts/setup_and_test.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 30, + "norm_label": "env \u1109\u1162\u11bc\u1109\u1165\u11bc + kakao api \u1110\u1166\u1109\u1173\u1110\u1173. \u26a0\ufe0f \u110f\u1175\u1102\u1173\u11ab \u110c\u1165\u11af\u1103\u1162 \u110f\u1169\u1103\u1173\u110b\u1166 \u1112\u1161\u1103\u1173\u110f\u1169\u1103\u1175\u11bc\u1112\u1161\u110c\u1175 \u1106\u1161\u11af \u1100\u1165\u11ba \u2014 \u1112\u116a\u11ab\u1100\u1167\u11bc\u1107\u1167\u11ab\u1109\u116e \u1104\u1169\u1102\u1173\u11ab .env \u1111\u1161\u110b\u1175\u11af\u110b\u1166\u1109\u1165 \u110b\u1175\u11b0\u110b\u1165\u110b\u1169\u11b7. \u1109\u1161\u110b\u116d\u11bc\u1107\u1165\u11b8:...", + "id": "gun_scripts_setup_and_test_rationale_1" }, { - "id": "gun_src_init", "label": "gun/src/__init__.py", "file_type": "code", "source_file": "gun/src/__init__.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 91, + "norm_label": "gun/src/__init__.py", + "id": "gun_src_init" }, { - "id": "gun_src_validation_init", "label": "gun/src/validation/__init__.py", "file_type": "code", "source_file": "gun/src/validation/__init__.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 92, + "norm_label": "gun/src/validation/__init__.py", + "id": "gun_src_validation_init" }, { - "id": "gun_tests_init", "label": "gun/tests/__init__.py", "file_type": "code", "source_file": "gun/tests/__init__.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 93, + "norm_label": "gun/tests/__init__.py", + "id": "gun_tests_init" }, { - "id": "package", "label": "package.json", "file_type": "code", "source_file": "package.json", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 76, + "norm_label": "package.json", + "id": "package" }, { - "id": "package_dependencies", "label": "dependencies", "file_type": "code", "source_file": "package.json", "source_location": "L2", - "_origin": "ast" + "_origin": "ast", + "community": 76, + "norm_label": "dependencies", + "id": "package_dependencies" }, { - "id": "package_dependencies_pptxgenjs", "label": "pptxgenjs", "file_type": "code", "source_file": "package.json", "source_location": "L3", - "_origin": "ast" + "_origin": "ast", + "community": 76, + "norm_label": "pptxgenjs", + "id": "package_dependencies_pptxgenjs" }, { - "id": "pptxgenjs", "label": "pptxgenjs", "file_type": "concept", "source_file": "package.json", "source_location": "L3", - "_origin": "ast" + "_origin": "ast", + "community": 76, + "norm_label": "pptxgenjs", + "id": "pptxgenjs" }, { - "id": "phases_0_setup_analyze", "label": "analyze.py", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "analyze.py", + "id": "phases_0_setup_analyze" }, { - "id": "phases_0_setup_analyze_load_env", "label": "_load_env()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L14", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "_load_env()", + "id": "phases_0_setup_analyze_load_env" }, { - "id": "phases_0_setup_analyze_parse_cell", "label": "parse_cell()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L43", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "parse_cell()", + "id": "phases_0_setup_analyze_parse_cell" }, { - "id": "phases_0_setup_analyze_geocode_tourapi", "label": "geocode_tourapi()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L106", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "geocode_tourapi()", + "id": "phases_0_setup_analyze_geocode_tourapi" }, { - "id": "phases_0_setup_analyze_geocode_kakao_local", "label": "geocode_kakao_local()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L129", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "geocode_kakao_local()", + "id": "phases_0_setup_analyze_geocode_kakao_local" }, { - "id": "phases_0_setup_analyze_geocode_nominatim", "label": "geocode_nominatim()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L153", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "geocode_nominatim()", + "id": "phases_0_setup_analyze_geocode_nominatim" }, { - "id": "phases_0_setup_analyze_geocode_single", "label": "geocode_single()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L170", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "geocode_single()", + "id": "phases_0_setup_analyze_geocode_single" }, { - "id": "phases_0_setup_analyze_haversine_travel_sec", "label": "haversine_travel_sec()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L218", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "haversine_travel_sec()", + "id": "phases_0_setup_analyze_haversine_travel_sec" }, { - "id": "phases_0_setup_analyze_get_travel_time", "label": "get_travel_time()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L225", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "get_travel_time()", + "id": "phases_0_setup_analyze_get_travel_time" }, { - "id": "phases_0_setup_analyze_haversine", "label": "haversine()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L258", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "haversine()", + "id": "phases_0_setup_analyze_haversine" }, { - "id": "phases_0_setup_analyze_cluster_label", "label": "cluster_label()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L266", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "cluster_label()", + "id": "phases_0_setup_analyze_cluster_label" }, { - "id": "phases_0_setup_analyze_percentile", "label": "percentile()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L351", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "percentile()", + "id": "phases_0_setup_analyze_percentile" }, { - "id": "phases_0_setup_analyze_stats_block", "label": "stats_block()", "file_type": "code", "source_file": "phases/0-setup/analyze.py", "source_location": "L372", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "stats_block()", + "id": "phases_0_setup_analyze_stats_block" }, { - "id": "phases_0_setup_analyze_rationale_1", "label": "\uad6c\uc11d\uad6c\uc11d 50\uac1c \uc5ec\ud589 \uacbd\ub85c \ubd84\uc11d \ud30c\uc774\ud504\ub77c\uc778 1. \uc7a5\uc18c\uba85 \ud30c\uc2f1 \u2192 2. \uc9c0\uc624\ucf54\ub529 \u2192 3. \uc774\ub3d9\uc2dc\uac04 \uacc4\uc0b0 \u2192 4. \uc9c0\ud45c \uc0b0\ucd9c \u2192 5. \ud1b5\uacc4 \ucd9c\ub825", "file_type": "rationale", "source_file": "phases/0-setup/analyze.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "\u1100\u116e\u1109\u1165\u11a8\u1100\u116e\u1109\u1165\u11a8 50\u1100\u1162 \u110b\u1167\u1112\u1162\u11bc \u1100\u1167\u11bc\u1105\u1169 \u1107\u116e\u11ab\u1109\u1165\u11a8 \u1111\u1161\u110b\u1175\u1111\u1173\u1105\u1161\u110b\u1175\u11ab 1. \u110c\u1161\u11bc\u1109\u1169\u1106\u1167\u11bc \u1111\u1161\u1109\u1175\u11bc \u2192 2. \u110c\u1175\u110b\u1169\u110f\u1169\u1103\u1175\u11bc \u2192 3. \u110b\u1175\u1103\u1169\u11bc\u1109\u1175\u1100\u1161\u11ab \u1100\u1168\u1109\u1161\u11ab \u2192 4. \u110c\u1175\u1111\u116d \u1109\u1161\u11ab\u110e\u116e\u11af \u2192 5. \u1110\u1169\u11bc\u1100\u1168 \u110e\u116e\u11af\u1105\u1167\u11a8", + "id": "phases_0_setup_analyze_rationale_1" }, { - "id": "phases_0_setup_analyze_rationale_44", "label": "1.\uc7a5\uc18cA, 3.\uc7a5\uc18cB, 2.\uc74c\uc2ddC' \u2192 {1: '\uc7a5\uc18cA', 2: '\uc74c\uc2ddC', 3: '\uc7a5\uc18cB'}", "file_type": "rationale", "source_file": "phases/0-setup/analyze.py", "source_location": "L44", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "1.\u110c\u1161\u11bc\u1109\u1169a, 3.\u110c\u1161\u11bc\u1109\u1169b, 2.\u110b\u1173\u11b7\u1109\u1175\u11a8c' \u2192 {1: '\u110c\u1161\u11bc\u1109\u1169a', 2: '\u110b\u1173\u11b7\u1109\u1175\u11a8c', 3: '\u110c\u1161\u11bc\u1109\u1169b'}", + "id": "phases_0_setup_analyze_rationale_44" }, { - "id": "phases_0_setup_analyze_rationale_130", "label": "Kakao Local API \u2014 \ud604\uc9c0 \uce74\ud398\u00b7\uc2dd\ub2f9\u00b7\uad00\uad11\uc9c0\uae4c\uc9c0 \uad11\ubc94\uc704\ud558\uac8c \ucee4\ubc84. region\uc740 \uc5b8\ub354\uc2a4\ucf54\uc5b4 \ud615\uc2dd \uac00\ub2a5\uc131\uc774 \uc788\uc5b4 \ucffc\ub9ac\uc5d0 \ud3ec\ud568\ud558\uc9c0 \uc54a\uc74c.", "file_type": "rationale", "source_file": "phases/0-setup/analyze.py", "source_location": "L130", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "kakao local api \u2014 \u1112\u1167\u11ab\u110c\u1175 \u110f\u1161\u1111\u1166\u00b7\u1109\u1175\u11a8\u1103\u1161\u11bc\u00b7\u1100\u116a\u11ab\u1100\u116a\u11bc\u110c\u1175\u1101\u1161\u110c\u1175 \u1100\u116a\u11bc\u1107\u1165\u11b7\u110b\u1171\u1112\u1161\u1100\u1166 \u110f\u1165\u1107\u1165. region\u110b\u1173\u11ab \u110b\u1165\u11ab\u1103\u1165\u1109\u1173\u110f\u1169\u110b\u1165 \u1112\u1167\u11bc\u1109\u1175\u11a8 \u1100\u1161\u1102\u1173\u11bc\u1109\u1165\u11bc\u110b\u1175 \u110b\u1175\u11bb\u110b\u1165 \u110f\u116f\u1105\u1175\u110b\u1166 \u1111\u1169\u1112\u1161\u11b7\u1112\u1161\u110c\u1175 \u110b\u1161\u11ad\u110b\u1173\u11b7.", + "id": "phases_0_setup_analyze_rationale_130" }, { - "id": "phases_0_setup_analyze_rationale_171", "label": "TourAPI \u2192 Kakao Local \u2192 Nominatim \uc21c (\ubcd1\ub82c \ud638\ucd9c \uc548\uc804)", "file_type": "rationale", "source_file": "phases/0-setup/analyze.py", "source_location": "L171", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "tourapi \u2192 kakao local \u2192 nominatim \u1109\u116e\u11ab (\u1107\u1167\u11bc\u1105\u1167\u11af \u1112\u1169\u110e\u116e\u11af \u110b\u1161\u11ab\u110c\u1165\u11ab)", + "id": "phases_0_setup_analyze_rationale_171" }, { - "id": "phases_0_setup_analyze_rationale_219", "label": "\uc9c1\uc120\uac70\ub9ac \u00d7 \uc6b0\ud68c\uacc4\uc218 / \uc18d\ub3c4 \ub85c \uc774\ub3d9 \uc2dc\uac04(\ucd08) \ucd94\uc815. Kakao API \ubd88\uac00 \uc2dc \ud3f4\ubc31.", "file_type": "rationale", "source_file": "phases/0-setup/analyze.py", "source_location": "L219", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "\u110c\u1175\u11a8\u1109\u1165\u11ab\u1100\u1165\u1105\u1175 \u00d7 \u110b\u116e\u1112\u116c\u1100\u1168\u1109\u116e / \u1109\u1169\u11a8\u1103\u1169 \u1105\u1169 \u110b\u1175\u1103\u1169\u11bc \u1109\u1175\u1100\u1161\u11ab(\u110e\u1169) \u110e\u116e\u110c\u1165\u11bc. kakao api \u1107\u116e\u11af\u1100\u1161 \u1109\u1175 \u1111\u1169\u11af\u1107\u1162\u11a8.", + "id": "phases_0_setup_analyze_rationale_219" }, { - "id": "phases_0_setup_analyze_rationale_267", "label": "\ub2e8\uc21c \uadf8\ub9ac\ub4dc \uae30\ubc18 \uc9c0\uc5ed \ud074\ub7ec\uc2a4\ud130 \ub808\uc774\ube14 (5km \uaca9\uc790)", "file_type": "rationale", "source_file": "phases/0-setup/analyze.py", "source_location": "L267", - "_origin": "ast" + "_origin": "ast", + "community": 35, + "norm_label": "\u1103\u1161\u11ab\u1109\u116e\u11ab \u1100\u1173\u1105\u1175\u1103\u1173 \u1100\u1175\u1107\u1161\u11ab \u110c\u1175\u110b\u1167\u11a8 \u110f\u1173\u11af\u1105\u1165\u1109\u1173\u1110\u1165 \u1105\u1166\u110b\u1175\u1107\u1173\u11af (5km \u1100\u1167\u11a8\u110c\u1161)", + "id": "phases_0_setup_analyze_rationale_267" }, { - "id": "phases_0_setup_analyze_triple", "label": "analyze_triple.py", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "analyze_triple.py", + "id": "phases_0_setup_analyze_triple" }, { - "id": "phases_0_setup_analyze_triple_load_env", "label": "_load_env()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L12", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "_load_env()", + "id": "phases_0_setup_analyze_triple_load_env" }, { - "id": "phases_0_setup_analyze_triple_parse_numbered", "label": "parse_numbered()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L68", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "parse_numbered()", + "id": "phases_0_setup_analyze_triple_parse_numbered" }, { - "id": "phases_0_setup_analyze_triple_geocode_tourapi", "label": "geocode_tourapi()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L159", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "geocode_tourapi()", + "id": "phases_0_setup_analyze_triple_geocode_tourapi" }, { - "id": "phases_0_setup_analyze_triple_geocode_kakao_local", "label": "geocode_kakao_local()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L182", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "geocode_kakao_local()", + "id": "phases_0_setup_analyze_triple_geocode_kakao_local" }, { - "id": "phases_0_setup_analyze_triple_geocode_nominatim", "label": "geocode_nominatim()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L206", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "geocode_nominatim()", + "id": "phases_0_setup_analyze_triple_geocode_nominatim" }, { - "id": "phases_0_setup_analyze_triple_geocode_single", "label": "geocode_single()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L223", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "geocode_single()", + "id": "phases_0_setup_analyze_triple_geocode_single" }, { - "id": "phases_0_setup_analyze_triple_haversine", "label": "haversine()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L265", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "haversine()", + "id": "phases_0_setup_analyze_triple_haversine" }, { - "id": "phases_0_setup_analyze_triple_haversine_travel_sec", "label": "haversine_travel_sec()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L273", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "haversine_travel_sec()", + "id": "phases_0_setup_analyze_triple_haversine_travel_sec" }, { - "id": "phases_0_setup_analyze_triple_get_travel_time", "label": "get_travel_time()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L279", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "get_travel_time()", + "id": "phases_0_setup_analyze_triple_get_travel_time" }, { - "id": "phases_0_setup_analyze_triple_cluster_label", "label": "cluster_label()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L308", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "cluster_label()", + "id": "phases_0_setup_analyze_triple_cluster_label" }, { - "id": "phases_0_setup_analyze_triple_percentile", "label": "percentile()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L388", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "percentile()", + "id": "phases_0_setup_analyze_triple_percentile" }, { - "id": "phases_0_setup_analyze_triple_stats_block", "label": "stats_block()", "file_type": "code", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L394", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "stats_block()", + "id": "phases_0_setup_analyze_triple_stats_block" }, { - "id": "phases_0_setup_analyze_triple_rationale_1", "label": "\ud2b8\ub9ac\ud50c \uc571 \ucd94\ucc9c \uacbd\ub85c \ubd84\uc11d \ud30c\uc774\ud504\ub77c\uc778 (\ub300\ud55c\ubbfc\uad6d \ub178\uc120\ub9cc) \uad6c\uc11d\uad6c\uc11d analyze.py\uc640 \ub3d9\uc77c \uc9c0\ud45c\ub97c \uc0b0\ucd9c\ud558\uc5ec \ube44\uad50 \uae30\ubc18 \ub370\uc774\ud130 \uc0dd\uc131", "file_type": "rationale", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "\u1110\u1173\u1105\u1175\u1111\u1173\u11af \u110b\u1162\u11b8 \u110e\u116e\u110e\u1165\u11ab \u1100\u1167\u11bc\u1105\u1169 \u1107\u116e\u11ab\u1109\u1165\u11a8 \u1111\u1161\u110b\u1175\u1111\u1173\u1105\u1161\u110b\u1175\u11ab (\u1103\u1162\u1112\u1161\u11ab\u1106\u1175\u11ab\u1100\u116e\u11a8 \u1102\u1169\u1109\u1165\u11ab\u1106\u1161\u11ab) \u1100\u116e\u1109\u1165\u11a8\u1100\u116e\u1109\u1165\u11a8 analyze.py\u110b\u116a \u1103\u1169\u11bc\u110b\u1175\u11af \u110c\u1175\u1111\u116d\u1105\u1173\u11af \u1109\u1161\u11ab\u110e\u116e\u11af\u1112\u1161\u110b\u1167 \u1107\u1175\u1100\u116d \u1100\u1175\u1107\u1161\u11ab \u1103\u1166\u110b\u1175\u1110\u1165 \u1109\u1162\u11bc\u1109\u1165\u11bc", + "id": "phases_0_setup_analyze_triple_rationale_1" }, { - "id": "phases_0_setup_analyze_triple_rationale_69", "label": "1.\uc7a5\uc18cA, 3.\uc7a5\uc18cB' \u2192 {1: '\uc7a5\uc18cA', 3: '\uc7a5\uc18cB'}", "file_type": "rationale", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L69", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "1.\u110c\u1161\u11bc\u1109\u1169a, 3.\u110c\u1161\u11bc\u1109\u1169b' \u2192 {1: '\u110c\u1161\u11bc\u1109\u1169a', 3: '\u110c\u1161\u11bc\u1109\u1169b'}", + "id": "phases_0_setup_analyze_triple_rationale_69" }, { - "id": "phases_0_setup_analyze_triple_rationale_183", "label": "Kakao Local API \u2014 \ud604\uc9c0 \uce74\ud398\u00b7\uc2dd\ub2f9\u00b7\uad00\uad11\uc9c0\uae4c\uc9c0 \uad11\ubc94\uc704\ud558\uac8c \ucee4\ubc84. city\ub294 \uc5b8\ub354\uc2a4\ucf54\uc5b4 \ud615\uc2dd('\uac00\ud3c9_\uc591\ud3c9')\uc774\ubbc0\ub85c \ucffc\ub9ac\uc5d0 \ud3ec\ud568\ud558\uc9c0\u2026", "file_type": "rationale", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L183", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "kakao local api \u2014 \u1112\u1167\u11ab\u110c\u1175 \u110f\u1161\u1111\u1166\u00b7\u1109\u1175\u11a8\u1103\u1161\u11bc\u00b7\u1100\u116a\u11ab\u1100\u116a\u11bc\u110c\u1175\u1101\u1161\u110c\u1175 \u1100\u116a\u11bc\u1107\u1165\u11b7\u110b\u1171\u1112\u1161\u1100\u1166 \u110f\u1165\u1107\u1165. city\u1102\u1173\u11ab \u110b\u1165\u11ab\u1103\u1165\u1109\u1173\u110f\u1169\u110b\u1165 \u1112\u1167\u11bc\u1109\u1175\u11a8('\u1100\u1161\u1111\u1167\u11bc_\u110b\u1163\u11bc\u1111\u1167\u11bc')\u110b\u1175\u1106\u1173\u1105\u1169 \u110f\u116f\u1105\u1175\u110b\u1166 \u1111\u1169\u1112\u1161\u11b7\u1112\u1161\u110c\u1175...", + "id": "phases_0_setup_analyze_triple_rationale_183" }, { - "id": "phases_0_setup_analyze_triple_rationale_224", "label": "TourAPI \u2192 Kakao Local \u2192 Nominatim \uc21c\uc73c\ub85c \uc2dc\ub3c4 (\ubcd1\ub82c \ud638\ucd9c \uc548\uc804)", "file_type": "rationale", "source_file": "phases/0-setup/analyze_triple.py", "source_location": "L224", - "_origin": "ast" + "_origin": "ast", + "community": 37, + "norm_label": "tourapi \u2192 kakao local \u2192 nominatim \u1109\u116e\u11ab\u110b\u1173\u1105\u1169 \u1109\u1175\u1103\u1169 (\u1107\u1167\u11bc\u1105\u1167\u11af \u1112\u1169\u110e\u116e\u11af \u110b\u1161\u11ab\u110c\u1165\u11ab)", + "id": "phases_0_setup_analyze_triple_rationale_224" }, { - "id": "phases_0_setup_statistical_report", "label": "statistical_report.py", "file_type": "code", "source_file": "phases/0-setup/statistical_report.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 71, + "norm_label": "statistical_report.py", + "id": "phases_0_setup_statistical_report" }, { - "id": "phases_0_setup_statistical_report_pct", "label": "pct()", "file_type": "code", "source_file": "phases/0-setup/statistical_report.py", "source_location": "L37", - "_origin": "ast" + "_origin": "ast", + "community": 71, + "norm_label": "pct()", + "id": "phases_0_setup_statistical_report_pct" }, { - "id": "phases_0_setup_statistical_report_pctile", "label": "pctile()", "file_type": "code", "source_file": "phases/0-setup/statistical_report.py", "source_location": "L40", - "_origin": "ast" + "_origin": "ast", + "community": 71, + "norm_label": "pctile()", + "id": "phases_0_setup_statistical_report_pctile" }, { - "id": "phases_0_setup_statistical_report_header", "label": "header()", "file_type": "code", "source_file": "phases/0-setup/statistical_report.py", "source_location": "L87", - "_origin": "ast" + "_origin": "ast", + "community": 71, + "norm_label": "header()", + "id": "phases_0_setup_statistical_report_header" }, { - "id": "phases_0_setup_statistical_report_rationale_1", "label": "AI \uc5ec\ud589 \ucd94\ucc9c \uc131\ub2a5 \ud1b5\uacc4 \ubd84\uc11d analysis_result.json \uc744 \uc77d\uc5b4 AI \ucd94\ucc9c\uc758 \uad6c\uc870\uc801 \ubb38\uc81c\ub97c \uc815\ub7c9\ud654\ud55c\ub2e4.", "file_type": "rationale", "source_file": "phases/0-setup/statistical_report.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 71, + "norm_label": "ai \u110b\u1167\u1112\u1162\u11bc \u110e\u116e\u110e\u1165\u11ab \u1109\u1165\u11bc\u1102\u1173\u11bc \u1110\u1169\u11bc\u1100\u1168 \u1107\u116e\u11ab\u1109\u1165\u11a8 analysis_result.json \u110b\u1173\u11af \u110b\u1175\u11b0\u110b\u1165 ai \u110e\u116e\u110e\u1165\u11ab\u110b\u1174 \u1100\u116e\u110c\u1169\u110c\u1165\u11a8 \u1106\u116e\u11ab\u110c\u1166\u1105\u1173\u11af \u110c\u1165\u11bc\u1105\u1163\u11bc\u1112\u116a\u1112\u1161\u11ab\u1103\u1161.", + "id": "phases_0_setup_statistical_report_rationale_1" }, { - "id": "phases_0_setup_visualize", "label": "visualize.py", "file_type": "code", "source_file": "phases/0-setup/visualize.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 85, + "norm_label": "visualize.py", + "id": "phases_0_setup_visualize" }, { - "id": "phases_0_setup_visualize_rationale_1", "label": "AI \uc5ec\ud589 \ucd94\ucc9c \uc131\ub2a5 \uc2dc\uac01\ud654 \u2014 \ud504\ub85c\uc81d\ud2b8 \ud544\uc694\uc131 \uadfc\uac70 \ucc28\ud2b8 4\uc885", "file_type": "rationale", "source_file": "phases/0-setup/visualize.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 85, + "norm_label": "ai \u110b\u1167\u1112\u1162\u11bc \u110e\u116e\u110e\u1165\u11ab \u1109\u1165\u11bc\u1102\u1173\u11bc \u1109\u1175\u1100\u1161\u11a8\u1112\u116a \u2014 \u1111\u1173\u1105\u1169\u110c\u1166\u11a8\u1110\u1173 \u1111\u1175\u11af\u110b\u116d\u1109\u1165\u11bc \u1100\u1173\u11ab\u1100\u1165 \u110e\u1161\u1110\u1173 4\u110c\u1169\u11bc", + "id": "phases_0_setup_visualize_rationale_1" }, { - "id": "phases_0_setup_visualize_combined", "label": "visualize_combined.py", "file_type": "code", "source_file": "phases/0-setup/visualize_combined.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 86, + "norm_label": "visualize_combined.py", + "id": "phases_0_setup_visualize_combined" }, { - "id": "phases_0_setup_visualize_combined_rationale_1", "label": "\ud2b8\ub9ac\ud50c + \uad6c\uc11d\uad6c\uc11d \ube44\uad50 \uc2dc\uac01\ud654 Figure 1: \ud2b8\ub9ac\ud50c \ub2e8\ub3c5 \ud488\uc9c8 \ub9ac\ud3ec\ud2b8 (triple_quality_report.png) Figure 2:\u2026", "file_type": "rationale", "source_file": "phases/0-setup/visualize_combined.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 86, + "norm_label": "\u1110\u1173\u1105\u1175\u1111\u1173\u11af + \u1100\u116e\u1109\u1165\u11a8\u1100\u116e\u1109\u1165\u11a8 \u1107\u1175\u1100\u116d \u1109\u1175\u1100\u1161\u11a8\u1112\u116a figure 1: \u1110\u1173\u1105\u1175\u1111\u1173\u11af \u1103\u1161\u11ab\u1103\u1169\u11a8 \u1111\u116e\u11b7\u110c\u1175\u11af \u1105\u1175\u1111\u1169\u1110\u1173 (triple_quality_report.png) figure 2:...", + "id": "phases_0_setup_visualize_combined_rationale_1" }, { - "id": "pkg_travel_plan_validator", - "label": "travel-plan-validator", - "file_type": "code", - "type": "package", - "ecosystem": "python", - "source_file": "pyproject.toml", - "source_location": "L1", - "version": "1.0.0", - "_origin": "ast" - }, - { - "id": "scripts_build_knowledge_graph", - "label": "build_knowledge_graph.py", - "file_type": "code", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "scripts_build_knowledge_graph_place_type", - "label": "_place_type()", - "file_type": "code", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L61", - "_origin": "ast" - }, - { - "id": "scripts_build_knowledge_graph_parse_region_chain", - "label": "_parse_region_chain()", - "file_type": "code", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L67", - "_origin": "ast" - }, - { - "id": "scripts_build_knowledge_graph_load_category_group_map", - "label": "_load_category_group_map()", - "file_type": "code", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L100", - "_origin": "ast" - }, - { - "id": "scripts_build_knowledge_graph_project_meters", - "label": "_project_meters()", - "file_type": "code", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L113", - "_origin": "ast" - }, - { - "id": "ndarray", "label": "ndarray", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" - }, - { - "id": "scripts_build_knowledge_graph_build_near_by", - "label": "build_near_by()", - "file_type": "code", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L121", - "_origin": "ast" + "_origin": "ast", + "community": 94, + "norm_label": "ndarray", + "id": "ndarray" }, { - "id": "scripts_build_knowledge_graph_py_dataframe", "label": "DataFrame", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" - }, - { - "id": "scripts_build_knowledge_graph_selfcheck", - "label": "_selfcheck()", - "file_type": "code", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L154", - "_origin": "ast" - }, - { - "id": "scripts_build_knowledge_graph_main", - "label": "main()", - "file_type": "code", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L170", - "_origin": "ast" - }, - { - "id": "scripts_build_knowledge_graph_rationale_68", - "label": "\uc8fc\uc18c \u2192 [(id, name), ...] \ucd5c\uc0c1\uc704(\uc74d/\uba74/\ub3d9 \ub610\ub294 \uc2dc) \u2192 \uc2dc \u2192 \ub3c4 \uc21c\uc11c. \ubc18\ud658 \ub9ac\uc2a4\ud2b8\uc758 \uccab \ud56d\ubaa9\uc774 Place\uac00\u2026", - "file_type": "rationale", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L68", - "_origin": "ast" + "_origin": "ast", + "community": 96, + "norm_label": "dataframe", + "id": "scripts_build_knowledge_graph_py_dataframe" }, { - "id": "scripts_build_knowledge_graph_rationale_114", - "label": "\uc18c\ubc94\uc704(\uc81c\uc8fc\ub3c4)\uc6a9 \ub4f1\uc7a5\ubc29\ud615 \ud22c\uc601 \u2014 300m \uc2a4\ucf00\uc77c\uc5d0\uc11c \uc624\ucc28 \ubb34\uc2dc \uac00\ub2a5.", - "file_type": "rationale", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L114", - "_origin": "ast" - }, - { - "id": "scripts_build_poi_dataset", "label": "build_poi_dataset.py", "file_type": "code", "source_file": "scripts/build_poi_dataset.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 16, + "norm_label": "build_poi_dataset.py", + "id": "scripts_build_poi_dataset" }, { - "id": "scripts_build_poi_dataset_build_wellness", "label": "build_wellness()", "file_type": "code", "source_file": "scripts/build_poi_dataset.py", "source_location": "L34", - "_origin": "ast" + "_origin": "ast", + "community": 16, + "norm_label": "build_wellness()", + "id": "scripts_build_poi_dataset_build_wellness" }, { - "id": "scripts_build_poi_dataset_build_barrier_free", "label": "build_barrier_free()", "file_type": "code", "source_file": "scripts/build_poi_dataset.py", "source_location": "L49", - "_origin": "ast" + "_origin": "ast", + "community": 16, + "norm_label": "build_barrier_free()", + "id": "scripts_build_poi_dataset_build_barrier_free" }, { - "id": "scripts_build_poi_dataset_main", "label": "main()", "file_type": "code", "source_file": "scripts/build_poi_dataset.py", "source_location": "L64", - "_origin": "ast" + "_origin": "ast", + "community": 16, + "norm_label": "main()", + "id": "scripts_build_poi_dataset_main" }, { - "id": "scripts_build_poi_dataset_rationale_1", "label": "\uc6f0\ub2c8\uc2a4\u00b7\ubb34\uc7a5\uc560 \uc5ec\ud589\uc9c0 \ub370\uc774\ud130\uc14b \ube4c\ub354. \uacf5\uacf5\ub370\uc774\ud130\ud3ec\ud138 API\ub97c \ud638\ucd9c\ud558\uc5ec \uc804\uccb4 \ubaa9\ub85d\uc744 JSON\uc73c\ub85c \uc800\uc7a5. \uc800\uc7a5 \uacbd\ub85c:\u2026", "file_type": "rationale", "source_file": "scripts/build_poi_dataset.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 16, + "norm_label": "\u110b\u1170\u11af\u1102\u1175\u1109\u1173\u00b7\u1106\u116e\u110c\u1161\u11bc\u110b\u1162 \u110b\u1167\u1112\u1162\u11bc\u110c\u1175 \u1103\u1166\u110b\u1175\u1110\u1165\u1109\u1166\u11ba \u1107\u1175\u11af\u1103\u1165. \u1100\u1169\u11bc\u1100\u1169\u11bc\u1103\u1166\u110b\u1175\u1110\u1165\u1111\u1169\u1110\u1165\u11af api\u1105\u1173\u11af \u1112\u1169\u110e\u116e\u11af\u1112\u1161\u110b\u1167 \u110c\u1165\u11ab\u110e\u1166 \u1106\u1169\u11a8\u1105\u1169\u11a8\u110b\u1173\u11af json\u110b\u1173\u1105\u1169 \u110c\u1165\u110c\u1161\u11bc. \u110c\u1165\u110c\u1161\u11bc \u1100\u1167\u11bc\u1105\u1169:...", + "id": "scripts_build_poi_dataset_rationale_1" }, { - "id": "scripts_collect_naver_full", "label": "collect_naver_full.py", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "collect_naver_full.py", + "id": "scripts_collect_naver_full" }, { - "id": "scripts_collect_naver_full_rate_get", "label": "_rate_get()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L93", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "_rate_get()", + "id": "scripts_collect_naver_full_rate_get" }, { - "id": "scripts_collect_naver_full_py_client", "label": "Client", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "client", + "id": "scripts_collect_naver_full_py_client" }, { - "id": "scripts_collect_naver_full_py_response", "label": "Response", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "response", + "id": "scripts_collect_naver_full_py_response" }, { - "id": "scripts_collect_naver_full_load_quota", "label": "load_quota()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L110", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "load_quota()", + "id": "scripts_collect_naver_full_load_quota" }, { - "id": "scripts_collect_naver_full_save_quota", "label": "_save_quota()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L123", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "_save_quota()", + "id": "scripts_collect_naver_full_save_quota" }, { - "id": "scripts_collect_naver_full_increment_quota", "label": "_increment_quota()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L127", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "_increment_quota()", + "id": "scripts_collect_naver_full_increment_quota" }, { - "id": "scripts_collect_naver_full_strip", "label": "_strip()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L138", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "_strip()", + "id": "scripts_collect_naver_full_strip" }, { - "id": "scripts_collect_naver_full_count_hits", "label": "_count_hits()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L214", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "_count_hits()", + "id": "scripts_collect_naver_full_count_hits" }, { - "id": "scripts_collect_naver_full_parse_price", "label": "_parse_price()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L232", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "_parse_price()", + "id": "scripts_collect_naver_full_parse_price" }, { - "id": "scripts_collect_naver_full_extract_fields", "label": "extract_fields()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L255", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "extract_fields()", + "id": "scripts_collect_naver_full_extract_fields" }, { - "id": "scripts_collect_naver_full_build_summary_text", "label": "build_summary_text()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L315", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "build_summary_text()", + "id": "scripts_collect_naver_full_build_summary_text" }, { - "id": "scripts_collect_naver_full_fetch_blog_texts", "label": "_fetch_blog_texts()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L328", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "_fetch_blog_texts()", + "id": "scripts_collect_naver_full_fetch_blog_texts" }, { - "id": "scripts_collect_naver_full_fetch_and_extract", "label": "fetch_and_extract()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L354", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "fetch_and_extract()", + "id": "scripts_collect_naver_full_fetch_and_extract" }, { - "id": "scripts_collect_naver_full_load_all_pois", "label": "load_all_pois()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L396", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "load_all_pois()", + "id": "scripts_collect_naver_full_load_all_pois" }, { - "id": "scripts_collect_naver_full_load_progress", "label": "load_progress()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L406", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "load_progress()", + "id": "scripts_collect_naver_full_load_progress" }, { - "id": "scripts_collect_naver_full_save_progress", "label": "save_progress()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L417", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "save_progress()", + "id": "scripts_collect_naver_full_save_progress" }, { - "id": "scripts_collect_naver_full_save_output", "label": "save_output()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L422", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "save_output()", + "id": "scripts_collect_naver_full_save_output" }, { - "id": "scripts_collect_naver_full_print_stats", "label": "print_stats()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L431", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "print_stats()", + "id": "scripts_collect_naver_full_print_stats" }, { - "id": "scripts_collect_naver_full_main", "label": "main()", "file_type": "code", "source_file": "scripts/collect_naver_full.py", "source_location": "L464", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "main()", + "id": "scripts_collect_naver_full_main" }, { - "id": "scripts_collect_naver_full_rationale_111", "label": "\uc624\ub298 \ub0a0\uc9dc \uae30\uc900 \ub0a8\uc740 API \ud638\ucd9c \uc218 \ubc18\ud658.", "file_type": "rationale", "source_file": "scripts/collect_naver_full.py", "source_location": "L111", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "\u110b\u1169\u1102\u1173\u11af \u1102\u1161\u11af\u110d\u1161 \u1100\u1175\u110c\u116e\u11ab \u1102\u1161\u11b7\u110b\u1173\u11ab api \u1112\u1169\u110e\u116e\u11af \u1109\u116e \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "scripts_collect_naver_full_rationale_111" }, { - "id": "scripts_collect_naver_full_rationale_128", "label": "\ud638\ucd9c \uce74\uc6b4\ud2b8 \uc99d\uac00. \ud55c\ub3c4 \ucd08\uacfc \uc2dc False \ubc18\ud658.", "file_type": "rationale", "source_file": "scripts/collect_naver_full.py", "source_location": "L128", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "\u1112\u1169\u110e\u116e\u11af \u110f\u1161\u110b\u116e\u11ab\u1110\u1173 \u110c\u1173\u11bc\u1100\u1161. \u1112\u1161\u11ab\u1103\u1169 \u110e\u1169\u1100\u116a \u1109\u1175 false \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "scripts_collect_naver_full_rationale_128" }, { - "id": "scripts_collect_naver_full_rationale_407", "label": "contentid \u2192 record \ub515\uc154\ub108\ub9ac \ubc18\ud658 (progress \ud30c\uc77c\uc774 list \ud615\uc2dd\ub3c4 \ucc98\ub9ac).", "file_type": "rationale", "source_file": "scripts/collect_naver_full.py", "source_location": "L407", - "_origin": "ast" + "_origin": "ast", + "community": 13, + "norm_label": "contentid \u2192 record \u1103\u1175\u11a8\u1109\u1167\u1102\u1165\u1105\u1175 \u1107\u1161\u11ab\u1112\u116a\u11ab (progress \u1111\u1161\u110b\u1175\u11af\u110b\u1175 list \u1112\u1167\u11bc\u1109\u1175\u11a8\u1103\u1169 \u110e\u1165\u1105\u1175).", + "id": "scripts_collect_naver_full_rationale_407" }, { - "id": "scripts_collect_naver_metadata", "label": "collect_naver_metadata.py", "file_type": "code", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "collect_naver_metadata.py", + "id": "scripts_collect_naver_metadata" }, { - "id": "scripts_collect_naver_metadata_rate_limited_get", "label": "_rate_limited_get()", "file_type": "code", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L50", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "_rate_limited_get()", + "id": "scripts_collect_naver_metadata_rate_limited_get" }, { - "id": "scripts_collect_naver_metadata_py_client", "label": "Client", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "client", + "id": "scripts_collect_naver_metadata_py_client" }, { - "id": "scripts_collect_naver_metadata_py_response", "label": "Response", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "response", + "id": "scripts_collect_naver_metadata_py_response" }, { - "id": "scripts_collect_naver_metadata_load_csv_sample", "label": "load_csv_sample()", "file_type": "code", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L94", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "load_csv_sample()", + "id": "scripts_collect_naver_metadata_load_csv_sample" }, { - "id": "scripts_collect_naver_metadata_fetch_blog", "label": "fetch_blog()", "file_type": "code", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L117", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "fetch_blog()", + "id": "scripts_collect_naver_metadata_fetch_blog" }, { - "id": "scripts_collect_naver_metadata_build_place_block", "label": "build_place_block()", "file_type": "code", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L143", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "build_place_block()", + "id": "scripts_collect_naver_metadata_build_place_block" }, { - "id": "scripts_collect_naver_metadata_extract_metadata_batch", "label": "extract_metadata_batch()", "file_type": "code", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L164", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "extract_metadata_batch()", + "id": "scripts_collect_naver_metadata_extract_metadata_batch" }, { - "id": "scripts_collect_naver_metadata_load_progress", "label": "load_progress()", "file_type": "code", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L188", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "load_progress()", + "id": "scripts_collect_naver_metadata_load_progress" }, { - "id": "scripts_collect_naver_metadata_save_progress", "label": "save_progress()", "file_type": "code", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L195", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "save_progress()", + "id": "scripts_collect_naver_metadata_save_progress" }, { - "id": "scripts_collect_naver_metadata_merge_meta", "label": "merge_meta()", "file_type": "code", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L201", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "merge_meta()", + "id": "scripts_collect_naver_metadata_merge_meta" }, { - "id": "scripts_collect_naver_metadata_main", "label": "main()", "file_type": "code", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L215", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "main()", + "id": "scripts_collect_naver_metadata_main" }, { - "id": "scripts_collect_naver_metadata_rationale_51", "label": "\ucd08\ub2f9 \uc694\uccad \uc218\ub97c RATE_LIMIT_RPS \uc774\ud558\ub85c \uc81c\ud55c", "file_type": "rationale", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L51", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "\u110e\u1169\u1103\u1161\u11bc \u110b\u116d\u110e\u1165\u11bc \u1109\u116e\u1105\u1173\u11af rate_limit_rps \u110b\u1175\u1112\u1161\u1105\u1169 \u110c\u1166\u1112\u1161\u11ab", + "id": "scripts_collect_naver_metadata_rationale_51" }, { - "id": "scripts_collect_naver_metadata_rationale_95", "label": "CSV\uc5d0\uc11c \uc0d8\ud50c \ucd94\ucd9c (\uc74c\uc2dd\uc810\u00b7\uad00\uad11\uc9c0 \ube44\uc911 \ub192\uc784)", "file_type": "rationale", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L95", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "csv\u110b\u1166\u1109\u1165 \u1109\u1162\u11b7\u1111\u1173\u11af \u110e\u116e\u110e\u116e\u11af (\u110b\u1173\u11b7\u1109\u1175\u11a8\u110c\u1165\u11b7\u00b7\u1100\u116a\u11ab\u1100\u116a\u11bc\u110c\u1175 \u1107\u1175\u110c\u116e\u11bc \u1102\u1169\u11c1\u110b\u1175\u11b7)", + "id": "scripts_collect_naver_metadata_rationale_95" }, { - "id": "scripts_collect_naver_metadata_rationale_118", "label": "\ub2e8\uc77c POI\uc758 \ube14\ub85c\uadf8 \uacb0\uacfc \uc218\uc9d1 (\uc2a4\ub808\ub4dc\ud480\uc5d0\uc11c \uc2e4\ud589)", "file_type": "rationale", "source_file": "scripts/collect_naver_metadata.py", "source_location": "L118", - "_origin": "ast" + "_origin": "ast", + "community": 43, + "norm_label": "\u1103\u1161\u11ab\u110b\u1175\u11af poi\u110b\u1174 \u1107\u1173\u11af\u1105\u1169\u1100\u1173 \u1100\u1167\u11af\u1100\u116a \u1109\u116e\u110c\u1175\u11b8 (\u1109\u1173\u1105\u1166\u1103\u1173\u1111\u116e\u11af\u110b\u1166\u1109\u1165 \u1109\u1175\u11af\u1112\u1162\u11bc)", + "id": "scripts_collect_naver_metadata_rationale_118" }, { - "id": "scripts_collect_naver_only", "label": "collect_naver_only.py", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "collect_naver_only.py", + "id": "scripts_collect_naver_only" }, { - "id": "scripts_collect_naver_only_rate_get", "label": "_rate_get()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L66", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "_rate_get()", + "id": "scripts_collect_naver_only_rate_get" }, { - "id": "scripts_collect_naver_only_py_client", "label": "Client", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "client", + "id": "scripts_collect_naver_only_py_client" }, { - "id": "scripts_collect_naver_only_py_response", "label": "Response", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "response", + "id": "scripts_collect_naver_only_py_response" }, { - "id": "scripts_collect_naver_only_strip", "label": "_strip()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L80", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "_strip()", + "id": "scripts_collect_naver_only_strip" }, { - "id": "scripts_collect_naver_only_count_hits", "label": "_count_hits()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L181", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "_count_hits()", + "id": "scripts_collect_naver_only_count_hits" }, { - "id": "scripts_collect_naver_only_parse_price", "label": "_parse_price()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L204", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "_parse_price()", + "id": "scripts_collect_naver_only_parse_price" }, { - "id": "scripts_collect_naver_only_extract_fields", "label": "extract_fields()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L228", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "extract_fields()", + "id": "scripts_collect_naver_only_extract_fields" }, { - "id": "scripts_collect_naver_only_build_summary_text", "label": "build_summary_text()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L297", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "build_summary_text()", + "id": "scripts_collect_naver_only_build_summary_text" }, { - "id": "scripts_collect_naver_only_fetch_blog_texts", "label": "_fetch_blog_texts()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L311", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "_fetch_blog_texts()", + "id": "scripts_collect_naver_only_fetch_blog_texts" }, { - "id": "scripts_collect_naver_only_fetch_and_extract", "label": "fetch_and_extract()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L334", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "fetch_and_extract()", + "id": "scripts_collect_naver_only_fetch_and_extract" }, { - "id": "scripts_collect_naver_only_load_csv_sample", "label": "load_csv_sample()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L372", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "load_csv_sample()", + "id": "scripts_collect_naver_only_load_csv_sample" }, { - "id": "scripts_collect_naver_only_load_progress", "label": "load_progress()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L391", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "load_progress()", + "id": "scripts_collect_naver_only_load_progress" }, { - "id": "scripts_collect_naver_only_save_progress", "label": "save_progress()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L397", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "save_progress()", + "id": "scripts_collect_naver_only_save_progress" }, { - "id": "scripts_collect_naver_only_main", "label": "main()", "file_type": "code", "source_file": "scripts/collect_naver_only.py", "source_location": "L404", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "main()", + "id": "scripts_collect_naver_only_main" }, { - "id": "scripts_collect_naver_only_rationale_298", "label": "RAG \uc784\ubca0\ub529\uc6a9 \uc790\uc5f0\uc5b4 \uc694\uc57d \ubb38\uc7a5 \uc0dd\uc131", "file_type": "rationale", "source_file": "scripts/collect_naver_only.py", "source_location": "L298", - "_origin": "ast" - }, - { - "id": "scripts_demo_live_e2e", - "label": "demo_live_e2e.py", - "file_type": "code", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "scripts_demo_live_e2e_main", - "label": "main()", - "file_type": "code", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L27", - "_origin": "ast" + "_origin": "ast", + "community": 38, + "norm_label": "rag \u110b\u1175\u11b7\u1107\u1166\u1103\u1175\u11bc\u110b\u116d\u11bc \u110c\u1161\u110b\u1167\u11ab\u110b\u1165 \u110b\u116d\u110b\u1163\u11a8 \u1106\u116e\u11ab\u110c\u1161\u11bc \u1109\u1162\u11bc\u1109\u1165\u11bc", + "id": "scripts_collect_naver_only_rationale_298" }, { - "id": "scripts_demo_live_e2e_rationale_1", - "label": "\ub77c\uc774\ube0c E2E \ub370\ubaa8 \u2014 \uc2e4\uc81c Claude API + \uc2e4\uc81c Neo4j Aura\ub97c \ub3d9\uc2dc\uc5d0 \ud638\ucd9c\ud55c\ub2e4. mock \uc5c6\uc74c. .env\uc758\u2026", - "file_type": "rationale", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "scripts_execute", "label": "execute.py", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "execute.py", + "id": "scripts_execute" }, { - "id": "scripts_execute_progress_indicator", "label": "progress_indicator()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L26", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "progress_indicator()", + "id": "scripts_execute_progress_indicator" }, { - "id": "scripts_execute_stepexecutor", "label": "StepExecutor", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L53", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "stepexecutor", + "id": "scripts_execute_stepexecutor" }, { - "id": "scripts_execute_stepexecutor_init", "label": ".__init__()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L61", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": ".__init__()", + "id": "scripts_execute_stepexecutor_init" }, { - "id": "scripts_execute_stepexecutor_run", "label": ".run()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L83", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": ".run()", + "id": "scripts_execute_stepexecutor_run" }, { - "id": "scripts_execute_stepexecutor_stamp", "label": "._stamp()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L94", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._stamp()", + "id": "scripts_execute_stepexecutor_stamp" }, { - "id": "scripts_execute_stepexecutor_read_json", "label": "._read_json()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L100", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._read_json()", + "id": "scripts_execute_stepexecutor_read_json" }, { - "id": "scripts_execute_py_path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "path", + "id": "scripts_execute_py_path" }, { - "id": "scripts_execute_stepexecutor_write_json", "label": "._write_json()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L104", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._write_json()", + "id": "scripts_execute_stepexecutor_write_json" }, { - "id": "scripts_execute_stepexecutor_run_git", "label": "._run_git()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L109", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._run_git()", + "id": "scripts_execute_stepexecutor_run_git" }, { - "id": "completedprocess", "label": "CompletedProcess", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "completedprocess", + "id": "completedprocess" }, { - "id": "scripts_execute_stepexecutor_checkout_branch", "label": "._checkout_branch()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L113", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._checkout_branch()", + "id": "scripts_execute_stepexecutor_checkout_branch" }, { - "id": "scripts_execute_stepexecutor_commit_step", "label": "._commit_step()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L136", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._commit_step()", + "id": "scripts_execute_stepexecutor_commit_step" }, { - "id": "scripts_execute_stepexecutor_update_top_index", "label": "._update_top_index()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L161", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._update_top_index()", + "id": "scripts_execute_stepexecutor_update_top_index" }, { - "id": "scripts_execute_stepexecutor_load_guardrails", "label": "._load_guardrails()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L177", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._load_guardrails()", + "id": "scripts_execute_stepexecutor_load_guardrails" }, { - "id": "scripts_execute_stepexecutor_build_step_context", "label": "._build_step_context()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L189", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._build_step_context()", + "id": "scripts_execute_stepexecutor_build_step_context" }, { - "id": "scripts_execute_stepexecutor_build_preamble", "label": "._build_preamble()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L199", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._build_preamble()", + "id": "scripts_execute_stepexecutor_build_preamble" }, { - "id": "scripts_execute_stepexecutor_invoke_claude", "label": "._invoke_claude()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L229", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._invoke_claude()", + "id": "scripts_execute_stepexecutor_invoke_claude" }, { - "id": "scripts_execute_stepexecutor_print_header", "label": "._print_header()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L261", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._print_header()", + "id": "scripts_execute_stepexecutor_print_header" }, { - "id": "scripts_execute_stepexecutor_check_blockers", "label": "._check_blockers()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L269", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._check_blockers()", + "id": "scripts_execute_stepexecutor_check_blockers" }, { - "id": "scripts_execute_stepexecutor_ensure_created_at", "label": "._ensure_created_at()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L285", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._ensure_created_at()", + "id": "scripts_execute_stepexecutor_ensure_created_at" }, { - "id": "scripts_execute_stepexecutor_execute_single_step", "label": "._execute_single_step()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L293", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._execute_single_step()", + "id": "scripts_execute_stepexecutor_execute_single_step" }, { - "id": "scripts_execute_stepexecutor_execute_all_steps", "label": "._execute_all_steps()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L364", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._execute_all_steps()", + "id": "scripts_execute_stepexecutor_execute_all_steps" }, { - "id": "scripts_execute_stepexecutor_finalize", "label": "._finalize()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L381", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "._finalize()", + "id": "scripts_execute_stepexecutor_finalize" }, { - "id": "scripts_execute_main", "label": "main()", "file_type": "code", "source_file": "scripts/execute.py", "source_location": "L407", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "main()", + "id": "scripts_execute_main" }, { - "id": "scripts_execute_rationale_27", "label": "\ud130\ubbf8\ub110 \uc9c4\ud589 \ud45c\uc2dc\uae30. with \ubb38\uc73c\ub85c \uc0ac\uc6a9\ud558\uba70 .elapsed \ub85c \uacbd\uacfc \uc2dc\uac04\uc744 \uc77d\ub294\ub2e4.", "file_type": "rationale", "source_file": "scripts/execute.py", "source_location": "L27", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "\u1110\u1165\u1106\u1175\u1102\u1165\u11af \u110c\u1175\u11ab\u1112\u1162\u11bc \u1111\u116d\u1109\u1175\u1100\u1175. with \u1106\u116e\u11ab\u110b\u1173\u1105\u1169 \u1109\u1161\u110b\u116d\u11bc\u1112\u1161\u1106\u1167 .elapsed \u1105\u1169 \u1100\u1167\u11bc\u1100\u116a \u1109\u1175\u1100\u1161\u11ab\u110b\u1173\u11af \u110b\u1175\u11b0\u1102\u1173\u11ab\u1103\u1161.", + "id": "scripts_execute_rationale_27" }, { - "id": "scripts_execute_rationale_54", "label": "Phase \ub514\ub809\ud1a0\ub9ac \uc548\uc758 step\ub4e4\uc744 \uc21c\ucc28 \uc2e4\ud589\ud558\ub294 \ud558\ub124\uc2a4.", "file_type": "rationale", "source_file": "scripts/execute.py", "source_location": "L54", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "phase \u1103\u1175\u1105\u1166\u11a8\u1110\u1169\u1105\u1175 \u110b\u1161\u11ab\u110b\u1174 step\u1103\u1173\u11af\u110b\u1173\u11af \u1109\u116e\u11ab\u110e\u1161 \u1109\u1175\u11af\u1112\u1162\u11bc\u1112\u1161\u1102\u1173\u11ab \u1112\u1161\u1102\u1166\u1109\u1173.", + "id": "scripts_execute_rationale_54" }, { - "id": "scripts_execute_rationale_294", "label": "\ub2e8\uc77c step \uc2e4\ud589 (\uc7ac\uc2dc\ub3c4 \ud3ec\ud568). \uc644\ub8cc\ub418\uba74 True, \uc2e4\ud328/\ucc28\ub2e8\uc774\uba74 False.", "file_type": "rationale", "source_file": "scripts/execute.py", "source_location": "L294", - "_origin": "ast" + "_origin": "ast", + "community": 21, + "norm_label": "\u1103\u1161\u11ab\u110b\u1175\u11af step \u1109\u1175\u11af\u1112\u1162\u11bc (\u110c\u1162\u1109\u1175\u1103\u1169 \u1111\u1169\u1112\u1161\u11b7). \u110b\u116a\u11ab\u1105\u116d\u1103\u116c\u1106\u1167\u11ab true, \u1109\u1175\u11af\u1111\u1162/\u110e\u1161\u1103\u1161\u11ab\u110b\u1175\u1106\u1167\u11ab false.", + "id": "scripts_execute_rationale_294" }, { - "id": "scripts_extract_visitor_stats", "label": "extract_visitor_stats.py", "file_type": "code", "source_file": "scripts/extract_visitor_stats.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "extract_visitor_stats.py", + "id": "scripts_extract_visitor_stats" }, { - "id": "scripts_extract_visitor_stats_parse_int", "label": "_parse_int()", "file_type": "code", "source_file": "scripts/extract_visitor_stats.py", "source_location": "L31", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "_parse_int()", + "id": "scripts_extract_visitor_stats_parse_int" }, { - "id": "scripts_extract_visitor_stats_is_header_row", "label": "_is_header_row()", "file_type": "code", "source_file": "scripts/extract_visitor_stats.py", "source_location": "L44", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "_is_header_row()", + "id": "scripts_extract_visitor_stats_is_header_row" }, { - "id": "scripts_extract_visitor_stats_extract_year", "label": "extract_year()", "file_type": "code", "source_file": "scripts/extract_visitor_stats.py", "source_location": "L49", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "extract_year()", + "id": "scripts_extract_visitor_stats_extract_year" }, { - "id": "scripts_extract_visitor_stats_py_path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "path", + "id": "scripts_extract_visitor_stats_py_path" }, { - "id": "scripts_extract_visitor_stats_py_dataframe", "label": "DataFrame", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "dataframe", + "id": "scripts_extract_visitor_stats_py_dataframe" }, { - "id": "scripts_extract_visitor_stats_compute_congestion", "label": "compute_congestion()", "file_type": "code", "source_file": "scripts/extract_visitor_stats.py", "source_location": "L87", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "compute_congestion()", + "id": "scripts_extract_visitor_stats_compute_congestion" }, { - "id": "scripts_extract_visitor_stats_main", "label": "main()", "file_type": "code", "source_file": "scripts/extract_visitor_stats.py", "source_location": "L134", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "main()", + "id": "scripts_extract_visitor_stats_main" }, { - "id": "scripts_extract_visitor_stats_rationale_1", "label": "PDF \uc804\ucc98\ub9ac \uc2a4\ud06c\ub9bd\ud2b8: \ud55c\uad6d\ubb38\ud654\uad00\uad11\uc5f0\uad6c\uc6d0 \uc8fc\uc694\uad00\uad11\uc9c0\uc810 \uc785\uc7a5\uac1d \ud1b5\uacc4 (2020-2024) Usage: python\u2026", "file_type": "rationale", "source_file": "scripts/extract_visitor_stats.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "pdf \u110c\u1165\u11ab\u110e\u1165\u1105\u1175 \u1109\u1173\u110f\u1173\u1105\u1175\u11b8\u1110\u1173: \u1112\u1161\u11ab\u1100\u116e\u11a8\u1106\u116e\u11ab\u1112\u116a\u1100\u116a\u11ab\u1100\u116a\u11bc\u110b\u1167\u11ab\u1100\u116e\u110b\u116f\u11ab \u110c\u116e\u110b\u116d\u1100\u116a\u11ab\u1100\u116a\u11bc\u110c\u1175\u110c\u1165\u11b7 \u110b\u1175\u11b8\u110c\u1161\u11bc\u1100\u1162\u11a8 \u1110\u1169\u11bc\u1100\u1168 (2020-2024) usage: python...", + "id": "scripts_extract_visitor_stats_rationale_1" }, { - "id": "scripts_extract_visitor_stats_rationale_32", "label": "1,234,567' or '-' \u2192 float or None.", "file_type": "rationale", "source_file": "scripts/extract_visitor_stats.py", "source_location": "L32", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "1,234,567' or '-' \u2192 float or none.", + "id": "scripts_extract_visitor_stats_rationale_32" }, { - "id": "scripts_extract_visitor_stats_rationale_50", "label": "\ud55c \uc5f0\ub3c4 PDF\uc5d0\uc11c \uad00\uad11\uc9c0\ubcc4 '\uacc4' \ud589\ub9cc \ucd94\ucd9c \u2192 long \ud3ec\ub9f7 DataFrame.", "file_type": "rationale", "source_file": "scripts/extract_visitor_stats.py", "source_location": "L50", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "\u1112\u1161\u11ab \u110b\u1167\u11ab\u1103\u1169 pdf\u110b\u1166\u1109\u1165 \u1100\u116a\u11ab\u1100\u116a\u11bc\u110c\u1175\u1107\u1167\u11af '\u1100\u1168' \u1112\u1162\u11bc\u1106\u1161\u11ab \u110e\u116e\u110e\u116e\u11af \u2192 long \u1111\u1169\u1106\u1162\u11ba dataframe.", + "id": "scripts_extract_visitor_stats_rationale_50" }, { - "id": "scripts_extract_visitor_stats_rationale_88", "label": "5\uac1c\ub144 raw \ub370\uc774\ud130 \u2192 poi_name \u00d7 month \uc9d1\uacc4 \ubc0f congestion_score \uc0b0\ucd9c.", "file_type": "rationale", "source_file": "scripts/extract_visitor_stats.py", "source_location": "L88", - "_origin": "ast" + "_origin": "ast", + "community": 50, + "norm_label": "5\u1100\u1162\u1102\u1167\u11ab raw \u1103\u1166\u110b\u1175\u1110\u1165 \u2192 poi_name \u00d7 month \u110c\u1175\u11b8\u1100\u1168 \u1106\u1175\u11be congestion_score \u1109\u1161\u11ab\u110e\u116e\u11af.", + "id": "scripts_extract_visitor_stats_rationale_88" }, { - "id": "scripts_fetch_jeju_hours", "label": "fetch_jeju_hours.py", "file_type": "code", "source_file": "scripts/fetch_jeju_hours.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 7, + "norm_label": "fetch_jeju_hours.py", + "id": "scripts_fetch_jeju_hours" }, { - "id": "scripts_fetch_jeju_hours_fetch_one", "label": "_fetch_one()", "file_type": "code", "source_file": "scripts/fetch_jeju_hours.py", "source_location": "L35", - "_origin": "ast" + "_origin": "ast", + "community": 7, + "norm_label": "_fetch_one()", + "id": "scripts_fetch_jeju_hours_fetch_one" }, { - "id": "semaphore", "label": "Semaphore", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 7, + "norm_label": "semaphore", + "id": "semaphore" }, { - "id": "scripts_fetch_jeju_hours_main", "label": "main()", "file_type": "code", "source_file": "scripts/fetch_jeju_hours.py", "source_location": "L43", - "_origin": "ast" + "_origin": "ast", + "community": 7, + "norm_label": "main()", + "id": "scripts_fetch_jeju_hours_main" }, { - "id": "scripts_fetch_jeju_hours_rationale_1", "label": "\uc81c\uc8fc POI(pois.csv) \uc804\uccb4\uc5d0 \ub300\ud574 TourAPI \uc2e4\uc81c \uc6b4\uc601\uc2dc\uac04\uc744 \ubbf8\ub9ac \uc870\ud68c\ud574 \uce90\uc2dc \ud30c\uc77c\ub85c \uc800\uc7a5\ud55c\ub2e4.\u2026", "file_type": "rationale", "source_file": "scripts/fetch_jeju_hours.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 7, + "norm_label": "\u110c\u1166\u110c\u116e poi(pois.csv) \u110c\u1165\u11ab\u110e\u1166\u110b\u1166 \u1103\u1162\u1112\u1162 tourapi \u1109\u1175\u11af\u110c\u1166 \u110b\u116e\u11ab\u110b\u1167\u11bc\u1109\u1175\u1100\u1161\u11ab\u110b\u1173\u11af \u1106\u1175\u1105\u1175 \u110c\u1169\u1112\u116c\u1112\u1162 \u110f\u1162\u1109\u1175 \u1111\u1161\u110b\u1175\u11af\u1105\u1169 \u110c\u1165\u110c\u1161\u11bc\u1112\u1161\u11ab\u1103\u1161....", + "id": "scripts_fetch_jeju_hours_rationale_1" }, { - "id": "scripts_fetch_missing_pois", "label": "fetch_missing_pois.py", "file_type": "code", "source_file": "scripts/fetch_missing_pois.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 57, + "norm_label": "fetch_missing_pois.py", + "id": "scripts_fetch_missing_pois" }, { - "id": "scripts_fetch_missing_pois_load_existing_ids", "label": "load_existing_ids()", "file_type": "code", "source_file": "scripts/fetch_missing_pois.py", "source_location": "L26", - "_origin": "ast" + "_origin": "ast", + "community": 57, + "norm_label": "load_existing_ids()", + "id": "scripts_fetch_missing_pois_load_existing_ids" }, { - "id": "scripts_fetch_missing_pois_load_api_key", "label": "load_api_key()", "file_type": "code", "source_file": "scripts/fetch_missing_pois.py", "source_location": "L38", - "_origin": "ast" + "_origin": "ast", + "community": 57, + "norm_label": "load_api_key()", + "id": "scripts_fetch_missing_pois_load_api_key" }, { - "id": "scripts_fetch_missing_pois_fetch_page", "label": "fetch_page()", "file_type": "code", "source_file": "scripts/fetch_missing_pois.py", "source_location": "L48", - "_origin": "ast" + "_origin": "ast", + "community": 57, + "norm_label": "fetch_page()", + "id": "scripts_fetch_missing_pois_fetch_page" }, { - "id": "asyncclient", "label": "AsyncClient", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 57, + "norm_label": "asyncclient", + "id": "asyncclient" }, { - "id": "scripts_fetch_missing_pois_fetch_region_type", "label": "fetch_region_type()", "file_type": "code", "source_file": "scripts/fetch_missing_pois.py", "source_location": "L87", - "_origin": "ast" + "_origin": "ast", + "community": 57, + "norm_label": "fetch_region_type()", + "id": "scripts_fetch_missing_pois_fetch_region_type" }, { - "id": "scripts_fetch_missing_pois_main", "label": "main()", "file_type": "code", "source_file": "scripts/fetch_missing_pois.py", "source_location": "L150", - "_origin": "ast" + "_origin": "ast", + "community": 57, + "norm_label": "main()", + "id": "scripts_fetch_missing_pois_main" }, { - "id": "scripts_fetch_missing_pois_rationale_1", "label": "TourAPI areaBasedList2\ub85c \uc804\uad6d POI \uc218\uc9d1 \u2192 pois.csv\uc5d0 \ub204\ub77d\ubd84 \ucd94\uac00.", "file_type": "rationale", "source_file": "scripts/fetch_missing_pois.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 57, + "norm_label": "tourapi areabasedlist2\u1105\u1169 \u110c\u1165\u11ab\u1100\u116e\u11a8 poi \u1109\u116e\u110c\u1175\u11b8 \u2192 pois.csv\u110b\u1166 \u1102\u116e\u1105\u1161\u11a8\u1107\u116e\u11ab \u110e\u116e\u1100\u1161.", + "id": "scripts_fetch_missing_pois_rationale_1" }, { - "id": "scripts_geocode_jeju_missing_coords", "label": "geocode_jeju_missing_coords.py", "file_type": "code", "source_file": "scripts/geocode_jeju_missing_coords.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 14, + "norm_label": "geocode_jeju_missing_coords.py", + "id": "scripts_geocode_jeju_missing_coords" }, { - "id": "scripts_geocode_jeju_missing_coords_main", "label": "main()", "file_type": "code", "source_file": "scripts/geocode_jeju_missing_coords.py", "source_location": "L28", - "_origin": "ast" - }, - { - "id": "scripts_load_knowledge_graph_neo4j", - "label": "load_knowledge_graph_neo4j.py", - "file_type": "code", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "scripts_load_knowledge_graph_neo4j_strip_type_suffix", - "label": "_strip_type_suffix()", - "file_type": "code", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L37", - "_origin": "ast" + "_origin": "ast", + "community": 14, + "norm_label": "main()", + "id": "scripts_geocode_jeju_missing_coords_main" }, { - "id": "scripts_load_knowledge_graph_neo4j_load_rows", - "label": "_load_rows()", - "file_type": "code", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L45", - "_origin": "ast" - }, - { - "id": "scripts_load_knowledge_graph_neo4j_run_batched", - "label": "_run_batched()", - "file_type": "code", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L52", - "_origin": "ast" - }, - { - "id": "driver", "label": "Driver", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" - }, - { - "id": "scripts_load_knowledge_graph_neo4j_main", - "label": "main()", - "file_type": "code", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L61", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis", - "label": "neo4j_coverage_analysis.py", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_make_place", - "label": "make_place()", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L46", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_sigungu_for", - "label": "sigungu_for()", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L60", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_neo4j_backtrack_count", - "label": "neo4j_backtrack_count()", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L66", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_neo4j_timeslot_density", - "label": "neo4j_timeslot_density()", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L84", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_coverageresult", - "label": "CoverageResult", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L114", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_coverageresult_covered", - "label": ".covered()", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L122", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_run_vrptw", - "label": "run_vrptw()", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L126", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_print_result", - "label": "print_result()", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L141", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_test_role_a", - "label": "test_role_a()", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L152", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_test_role_b", - "label": "test_role_b()", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L217", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_test_role_c", - "label": "test_role_c()", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L264", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_main", - "label": "main()", - "file_type": "code", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L312", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_rationale_1", - "label": "Neo4j \uc81c\uac70 \ud0c0\ub2f9\uc131 \ubd84\uc11d \u2014 \uc124\uacc4 \uc758\ub3c4 vs \ud604\uc7ac Python \ub85c\uc9c1 \ucee4\ubc84\ub9ac\uc9c0 \ube44\uad50. Neo4j\uac00 SUMMARY.md\uc5d0\uc11c \ub9e1\uae30\ub85c \ud55c 3\uac00\uc9c0\u2026", - "file_type": "rationale", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_rationale_67", - "label": "Neo4j IN_AREA \ub178\ub4dc \ub85c\uc9c1 \uc2dc\ubbac\ub808\uc774\uc158. \ubc29\ubb38 \uc21c\uc11c\uc5d0\uc11c \uc774\ubbf8 \ubc29\ubb38\ud55c Area(\uc2dc\uad70\uad6c)\uc5d0 \ube44\uc5f0\uc18d\uc73c\ub85c \uc7ac\uc9c4\uc785\ud558\ub294 \ud69f\uc218\ub97c \uacc4\uc0b0.\u2026", - "file_type": "rationale", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L67", - "_origin": "ast" - }, - { - "id": "scripts_neo4j_coverage_analysis_rationale_85", - "label": "Neo4j TimeSlot \ub178\ub4dc \ubc00\ub3c4 \uc2dc\ubbac\ub808\uc774\uc158. 09:00 \ucd9c\ubc1c, \uac01 POI\ub97c \uc21c\uc11c\ub300\ub85c \ubc29\ubb38\ud588\uc744 \ub54c \uc2dc\uac04\ub300\ubcc4 \uc810\uc720 \uc218 \uacc4\uc0b0.", - "file_type": "rationale", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L85", - "_origin": "ast" + "_origin": "ast", + "community": 89, + "norm_label": "driver", + "id": "driver" }, { - "id": "scripts_neo4j_coverage_analysis_rationale_127", - "label": "VRPTWEngine + cluster_dispersion \uc2e4\ud589, (vrptw_result, dispersion_report) \ubc18\ud658.", - "file_type": "rationale", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L127", - "_origin": "ast" - }, - { - "id": "scripts_test_execute", "label": "test_execute.py", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "test_execute.py", + "id": "scripts_test_execute" }, { - "id": "scripts_test_execute_py_fixture", "label": "fixture", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "fixture", + "id": "scripts_test_execute_py_fixture" }, { - "id": "scripts_test_execute_tmp_project", "label": "tmp_project()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L26", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "tmp_project()", + "id": "scripts_test_execute_tmp_project" }, { - "id": "scripts_test_execute_phase_dir", "label": "phase_dir()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L43", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "phase_dir()", + "id": "scripts_test_execute_phase_dir" }, { - "id": "scripts_test_execute_top_index", "label": "top_index()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L64", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "top_index()", + "id": "scripts_test_execute_top_index" }, { - "id": "scripts_test_execute_executor", "label": "executor()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L78", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "executor()", + "id": "scripts_test_execute_executor" }, { - "id": "scripts_test_execute_teststamp", "label": "TestStamp", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L96", - "_origin": "ast" + "_origin": "ast", + "community": 79, + "norm_label": "teststamp", + "id": "scripts_test_execute_teststamp" }, { - "id": "scripts_test_execute_teststamp_test_returns_kst_timestamp", "label": ".test_returns_kst_timestamp()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L97", - "_origin": "ast" + "_origin": "ast", + "community": 79, + "norm_label": ".test_returns_kst_timestamp()", + "id": "scripts_test_execute_teststamp_test_returns_kst_timestamp" }, { - "id": "scripts_test_execute_teststamp_test_format_is_iso", "label": ".test_format_is_iso()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L101", - "_origin": "ast" + "_origin": "ast", + "community": 79, + "norm_label": ".test_format_is_iso()", + "id": "scripts_test_execute_teststamp_test_format_is_iso" }, { - "id": "scripts_test_execute_teststamp_test_is_current_time", "label": ".test_is_current_time()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L106", - "_origin": "ast" + "_origin": "ast", + "community": 79, + "norm_label": ".test_is_current_time()", + "id": "scripts_test_execute_teststamp_test_is_current_time" }, { - "id": "scripts_test_execute_testjsonhelpers", "label": "TestJsonHelpers", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L118", - "_origin": "ast" + "_origin": "ast", + "community": 73, + "norm_label": "testjsonhelpers", + "id": "scripts_test_execute_testjsonhelpers" }, { - "id": "scripts_test_execute_testjsonhelpers_test_roundtrip", "label": ".test_roundtrip()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L119", - "_origin": "ast" + "_origin": "ast", + "community": 73, + "norm_label": ".test_roundtrip()", + "id": "scripts_test_execute_testjsonhelpers_test_roundtrip" }, { - "id": "scripts_test_execute_testjsonhelpers_test_save_ensures_ascii_false", "label": ".test_save_ensures_ascii_false()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L126", - "_origin": "ast" + "_origin": "ast", + "community": 73, + "norm_label": ".test_save_ensures_ascii_false()", + "id": "scripts_test_execute_testjsonhelpers_test_save_ensures_ascii_false" }, { - "id": "scripts_test_execute_testjsonhelpers_test_save_indented", "label": ".test_save_indented()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L133", - "_origin": "ast" + "_origin": "ast", + "community": 73, + "norm_label": ".test_save_indented()", + "id": "scripts_test_execute_testjsonhelpers_test_save_indented" }, { - "id": "scripts_test_execute_testjsonhelpers_test_load_nonexistent_raises", "label": ".test_load_nonexistent_raises()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L139", - "_origin": "ast" + "_origin": "ast", + "community": 73, + "norm_label": ".test_load_nonexistent_raises()", + "id": "scripts_test_execute_testjsonhelpers_test_load_nonexistent_raises" }, { - "id": "scripts_test_execute_testloadguardrails", "label": "TestLoadGuardrails", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L148", - "_origin": "ast" + "_origin": "ast", + "community": 63, + "norm_label": "testloadguardrails", + "id": "scripts_test_execute_testloadguardrails" }, { - "id": "scripts_test_execute_testloadguardrails_test_loads_claude_md_and_docs", "label": ".test_loads_claude_md_and_docs()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L149", - "_origin": "ast" + "_origin": "ast", + "community": 63, + "norm_label": ".test_loads_claude_md_and_docs()", + "id": "scripts_test_execute_testloadguardrails_test_loads_claude_md_and_docs" }, { - "id": "scripts_test_execute_testloadguardrails_test_sections_separated_by_divider", "label": ".test_sections_separated_by_divider()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L157", - "_origin": "ast" + "_origin": "ast", + "community": 63, + "norm_label": ".test_sections_separated_by_divider()", + "id": "scripts_test_execute_testloadguardrails_test_sections_separated_by_divider" }, { - "id": "scripts_test_execute_testloadguardrails_test_docs_sorted_alphabetically", "label": ".test_docs_sorted_alphabetically()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L162", - "_origin": "ast" + "_origin": "ast", + "community": 63, + "norm_label": ".test_docs_sorted_alphabetically()", + "id": "scripts_test_execute_testloadguardrails_test_docs_sorted_alphabetically" }, { - "id": "scripts_test_execute_testloadguardrails_test_no_claude_md", "label": ".test_no_claude_md()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L169", - "_origin": "ast" + "_origin": "ast", + "community": 63, + "norm_label": ".test_no_claude_md()", + "id": "scripts_test_execute_testloadguardrails_test_no_claude_md" }, { - "id": "scripts_test_execute_testloadguardrails_test_no_docs_dir", "label": ".test_no_docs_dir()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L176", - "_origin": "ast" + "_origin": "ast", + "community": 63, + "norm_label": ".test_no_docs_dir()", + "id": "scripts_test_execute_testloadguardrails_test_no_docs_dir" }, { - "id": "scripts_test_execute_testloadguardrails_test_empty_project", "label": ".test_empty_project()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L184", - "_origin": "ast" + "_origin": "ast", + "community": 63, + "norm_label": ".test_empty_project()", + "id": "scripts_test_execute_testloadguardrails_test_empty_project" }, { - "id": "scripts_test_execute_testbuildstepcontext", "label": "TestBuildStepContext", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L200", - "_origin": "ast" + "_origin": "ast", + "community": 68, + "norm_label": "testbuildstepcontext", + "id": "scripts_test_execute_testbuildstepcontext" }, { - "id": "scripts_test_execute_testbuildstepcontext_test_includes_completed_with_summary", "label": ".test_includes_completed_with_summary()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L201", - "_origin": "ast" + "_origin": "ast", + "community": 68, + "norm_label": ".test_includes_completed_with_summary()", + "id": "scripts_test_execute_testbuildstepcontext_test_includes_completed_with_summary" }, { - "id": "scripts_test_execute_testbuildstepcontext_test_excludes_pending", "label": ".test_excludes_pending()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L207", - "_origin": "ast" + "_origin": "ast", + "community": 68, + "norm_label": ".test_excludes_pending()", + "id": "scripts_test_execute_testbuildstepcontext_test_excludes_pending" }, { - "id": "scripts_test_execute_testbuildstepcontext_test_excludes_completed_without_summary", "label": ".test_excludes_completed_without_summary()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L212", - "_origin": "ast" + "_origin": "ast", + "community": 68, + "norm_label": ".test_excludes_completed_without_summary()", + "id": "scripts_test_execute_testbuildstepcontext_test_excludes_completed_without_summary" }, { - "id": "scripts_test_execute_testbuildstepcontext_test_empty_when_no_completed", "label": ".test_empty_when_no_completed()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L219", - "_origin": "ast" + "_origin": "ast", + "community": 68, + "norm_label": ".test_empty_when_no_completed()", + "id": "scripts_test_execute_testbuildstepcontext_test_empty_when_no_completed" }, { - "id": "scripts_test_execute_testbuildstepcontext_test_has_header", "label": ".test_has_header()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L224", - "_origin": "ast" + "_origin": "ast", + "community": 68, + "norm_label": ".test_has_header()", + "id": "scripts_test_execute_testbuildstepcontext_test_has_header" }, { - "id": "scripts_test_execute_testbuildpreamble", "label": "TestBuildPreamble", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L234", - "_origin": "ast" + "_origin": "ast", + "community": 56, + "norm_label": "testbuildpreamble", + "id": "scripts_test_execute_testbuildpreamble" }, { - "id": "scripts_test_execute_testbuildpreamble_test_includes_project_name", "label": ".test_includes_project_name()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L235", - "_origin": "ast" + "_origin": "ast", + "community": 56, + "norm_label": ".test_includes_project_name()", + "id": "scripts_test_execute_testbuildpreamble_test_includes_project_name" }, { - "id": "scripts_test_execute_testbuildpreamble_test_includes_guardrails", "label": ".test_includes_guardrails()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L239", - "_origin": "ast" + "_origin": "ast", + "community": 56, + "norm_label": ".test_includes_guardrails()", + "id": "scripts_test_execute_testbuildpreamble_test_includes_guardrails" }, { - "id": "scripts_test_execute_testbuildpreamble_test_includes_step_context", "label": ".test_includes_step_context()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L243", - "_origin": "ast" + "_origin": "ast", + "community": 56, + "norm_label": ".test_includes_step_context()", + "id": "scripts_test_execute_testbuildpreamble_test_includes_step_context" }, { - "id": "scripts_test_execute_testbuildpreamble_test_includes_commit_example", "label": ".test_includes_commit_example()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L248", - "_origin": "ast" + "_origin": "ast", + "community": 56, + "norm_label": ".test_includes_commit_example()", + "id": "scripts_test_execute_testbuildpreamble_test_includes_commit_example" }, { - "id": "scripts_test_execute_testbuildpreamble_test_includes_rules", "label": ".test_includes_rules()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L252", - "_origin": "ast" + "_origin": "ast", + "community": 56, + "norm_label": ".test_includes_rules()", + "id": "scripts_test_execute_testbuildpreamble_test_includes_rules" }, { - "id": "scripts_test_execute_testbuildpreamble_test_no_retry_section_by_default", "label": ".test_no_retry_section_by_default()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L257", - "_origin": "ast" + "_origin": "ast", + "community": 56, + "norm_label": ".test_no_retry_section_by_default()", + "id": "scripts_test_execute_testbuildpreamble_test_no_retry_section_by_default" }, { - "id": "scripts_test_execute_testbuildpreamble_test_retry_section_with_prev_error", "label": ".test_retry_section_with_prev_error()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L261", - "_origin": "ast" + "_origin": "ast", + "community": 56, + "norm_label": ".test_retry_section_with_prev_error()", + "id": "scripts_test_execute_testbuildpreamble_test_retry_section_with_prev_error" }, { - "id": "scripts_test_execute_testbuildpreamble_test_includes_max_retries", "label": ".test_includes_max_retries()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L266", - "_origin": "ast" + "_origin": "ast", + "community": 56, + "norm_label": ".test_includes_max_retries()", + "id": "scripts_test_execute_testbuildpreamble_test_includes_max_retries" }, { - "id": "scripts_test_execute_testbuildpreamble_test_includes_index_path", "label": ".test_includes_index_path()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L270", - "_origin": "ast" + "_origin": "ast", + "community": 56, + "norm_label": ".test_includes_index_path()", + "id": "scripts_test_execute_testbuildpreamble_test_includes_index_path" }, { - "id": "scripts_test_execute_testupdatetopindex", "label": "TestUpdateTopIndex", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L279", - "_origin": "ast" + "_origin": "ast", + "community": 64, + "norm_label": "testupdatetopindex", + "id": "scripts_test_execute_testupdatetopindex" }, { - "id": "scripts_test_execute_testupdatetopindex_test_completed", "label": ".test_completed()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L280", - "_origin": "ast" + "_origin": "ast", + "community": 64, + "norm_label": ".test_completed()", + "id": "scripts_test_execute_testupdatetopindex_test_completed" }, { - "id": "scripts_test_execute_testupdatetopindex_test_error", "label": ".test_error()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L288", - "_origin": "ast" + "_origin": "ast", + "community": 64, + "norm_label": ".test_error()", + "id": "scripts_test_execute_testupdatetopindex_test_error" }, { - "id": "scripts_test_execute_testupdatetopindex_test_blocked", "label": ".test_blocked()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L296", - "_origin": "ast" + "_origin": "ast", + "community": 64, + "norm_label": ".test_blocked()", + "id": "scripts_test_execute_testupdatetopindex_test_blocked" }, { - "id": "scripts_test_execute_testupdatetopindex_test_other_phases_unchanged", "label": ".test_other_phases_unchanged()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L304", - "_origin": "ast" + "_origin": "ast", + "community": 64, + "norm_label": ".test_other_phases_unchanged()", + "id": "scripts_test_execute_testupdatetopindex_test_other_phases_unchanged" }, { - "id": "scripts_test_execute_testupdatetopindex_test_nonexistent_dir_is_noop", "label": ".test_nonexistent_dir_is_noop()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L311", - "_origin": "ast" + "_origin": "ast", + "community": 64, + "norm_label": ".test_nonexistent_dir_is_noop()", + "id": "scripts_test_execute_testupdatetopindex_test_nonexistent_dir_is_noop" }, { - "id": "scripts_test_execute_testupdatetopindex_test_no_top_index_file", "label": ".test_no_top_index_file()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L320", - "_origin": "ast" + "_origin": "ast", + "community": 64, + "norm_label": ".test_no_top_index_file()", + "id": "scripts_test_execute_testupdatetopindex_test_no_top_index_file" }, { - "id": "scripts_test_execute_testcheckoutbranch", "label": "TestCheckoutBranch", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L329", - "_origin": "ast" + "_origin": "ast", + "community": 62, + "norm_label": "testcheckoutbranch", + "id": "scripts_test_execute_testcheckoutbranch" }, { - "id": "scripts_test_execute_testcheckoutbranch_mock_git", "label": "._mock_git()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L330", - "_origin": "ast" + "_origin": "ast", + "community": 62, + "norm_label": "._mock_git()", + "id": "scripts_test_execute_testcheckoutbranch_mock_git" }, { - "id": "scripts_test_execute_testcheckoutbranch_test_already_on_branch", "label": ".test_already_on_branch()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L340", - "_origin": "ast" + "_origin": "ast", + "community": 62, + "norm_label": ".test_already_on_branch()", + "id": "scripts_test_execute_testcheckoutbranch_test_already_on_branch" }, { - "id": "scripts_test_execute_testcheckoutbranch_test_branch_exists_checkout", "label": ".test_branch_exists_checkout()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L346", - "_origin": "ast" + "_origin": "ast", + "community": 62, + "norm_label": ".test_branch_exists_checkout()", + "id": "scripts_test_execute_testcheckoutbranch_test_branch_exists_checkout" }, { - "id": "scripts_test_execute_testcheckoutbranch_test_branch_not_exists_create", "label": ".test_branch_not_exists_create()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L354", - "_origin": "ast" + "_origin": "ast", + "community": 62, + "norm_label": ".test_branch_not_exists_create()", + "id": "scripts_test_execute_testcheckoutbranch_test_branch_not_exists_create" }, { - "id": "scripts_test_execute_testcheckoutbranch_test_checkout_fails_exits", "label": ".test_checkout_fails_exits()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L362", - "_origin": "ast" + "_origin": "ast", + "community": 62, + "norm_label": ".test_checkout_fails_exits()", + "id": "scripts_test_execute_testcheckoutbranch_test_checkout_fails_exits" }, { - "id": "scripts_test_execute_testcheckoutbranch_test_no_git_exits", "label": ".test_no_git_exits()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L372", - "_origin": "ast" + "_origin": "ast", + "community": 62, + "norm_label": ".test_no_git_exits()", + "id": "scripts_test_execute_testcheckoutbranch_test_no_git_exits" }, { - "id": "scripts_test_execute_testcommitstep", "label": "TestCommitStep", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L385", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "testcommitstep", + "id": "scripts_test_execute_testcommitstep" }, { - "id": "scripts_test_execute_testcommitstep_test_two_phase_commit", "label": ".test_two_phase_commit()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L386", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": ".test_two_phase_commit()", + "id": "scripts_test_execute_testcommitstep_test_two_phase_commit" }, { - "id": "scripts_test_execute_testcommitstep_test_no_code_changes_skips_feat_commit", "label": ".test_no_code_changes_skips_feat_commit()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L402", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": ".test_no_code_changes_skips_feat_commit()", + "id": "scripts_test_execute_testcommitstep_test_no_code_changes_skips_feat_commit" }, { - "id": "scripts_test_execute_testinvokeclaude", "label": "TestInvokeClaude", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L426", - "_origin": "ast" + "_origin": "ast", + "community": 72, + "norm_label": "testinvokeclaude", + "id": "scripts_test_execute_testinvokeclaude" }, { - "id": "scripts_test_execute_testinvokeclaude_test_invokes_claude_with_correct_args", "label": ".test_invokes_claude_with_correct_args()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L427", - "_origin": "ast" + "_origin": "ast", + "community": 72, + "norm_label": ".test_invokes_claude_with_correct_args()", + "id": "scripts_test_execute_testinvokeclaude_test_invokes_claude_with_correct_args" }, { - "id": "scripts_test_execute_testinvokeclaude_test_saves_output_json", "label": ".test_saves_output_json()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L443", - "_origin": "ast" + "_origin": "ast", + "community": 72, + "norm_label": ".test_saves_output_json()", + "id": "scripts_test_execute_testinvokeclaude_test_saves_output_json" }, { - "id": "scripts_test_execute_testinvokeclaude_test_nonexistent_step_file_exits", "label": ".test_nonexistent_step_file_exits()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L457", - "_origin": "ast" + "_origin": "ast", + "community": 72, + "norm_label": ".test_nonexistent_step_file_exits()", + "id": "scripts_test_execute_testinvokeclaude_test_nonexistent_step_file_exits" }, { - "id": "scripts_test_execute_testinvokeclaude_test_timeout_is_1800", "label": ".test_timeout_is_1800()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L463", - "_origin": "ast" + "_origin": "ast", + "community": 72, + "norm_label": ".test_timeout_is_1800()", + "id": "scripts_test_execute_testinvokeclaude_test_timeout_is_1800" }, { - "id": "scripts_test_execute_testprogressindicator", "label": "TestProgressIndicator", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L477", - "_origin": "ast" + "_origin": "ast", + "community": 83, + "norm_label": "testprogressindicator", + "id": "scripts_test_execute_testprogressindicator" }, { - "id": "scripts_test_execute_testprogressindicator_test_context_manager", "label": ".test_context_manager()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L478", - "_origin": "ast" + "_origin": "ast", + "community": 83, + "norm_label": ".test_context_manager()", + "id": "scripts_test_execute_testprogressindicator_test_context_manager" }, { - "id": "scripts_test_execute_testprogressindicator_test_elapsed_increases", "label": ".test_elapsed_increases()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L484", - "_origin": "ast" + "_origin": "ast", + "community": 83, + "norm_label": ".test_elapsed_increases()", + "id": "scripts_test_execute_testprogressindicator_test_elapsed_increases" }, { - "id": "scripts_test_execute_testmaincli", "label": "TestMainCli", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L495", - "_origin": "ast" + "_origin": "ast", + "community": 78, + "norm_label": "testmaincli", + "id": "scripts_test_execute_testmaincli" }, { - "id": "scripts_test_execute_testmaincli_test_no_args_exits", "label": ".test_no_args_exits()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L496", - "_origin": "ast" + "_origin": "ast", + "community": 78, + "norm_label": ".test_no_args_exits()", + "id": "scripts_test_execute_testmaincli_test_no_args_exits" }, { - "id": "scripts_test_execute_testmaincli_test_invalid_phase_dir_exits", "label": ".test_invalid_phase_dir_exits()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L502", - "_origin": "ast" + "_origin": "ast", + "community": 78, + "norm_label": ".test_invalid_phase_dir_exits()", + "id": "scripts_test_execute_testmaincli_test_invalid_phase_dir_exits" }, { - "id": "scripts_test_execute_testmaincli_test_missing_index_exits", "label": ".test_missing_index_exits()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L509", - "_origin": "ast" + "_origin": "ast", + "community": 78, + "norm_label": ".test_missing_index_exits()", + "id": "scripts_test_execute_testmaincli_test_missing_index_exits" }, { - "id": "scripts_test_execute_testcheckblockers", "label": "TestCheckBlockers", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L522", - "_origin": "ast" + "_origin": "ast", + "community": 77, + "norm_label": "testcheckblockers", + "id": "scripts_test_execute_testcheckblockers" }, { - "id": "scripts_test_execute_testcheckblockers_make_executor_with_steps", "label": "._make_executor_with_steps()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L523", - "_origin": "ast" + "_origin": "ast", + "community": 77, + "norm_label": "._make_executor_with_steps()", + "id": "scripts_test_execute_testcheckblockers_make_executor_with_steps" }, { - "id": "scripts_test_execute_testcheckblockers_test_error_step_exits_1", "label": ".test_error_step_exits_1()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L541", - "_origin": "ast" + "_origin": "ast", + "community": 77, + "norm_label": ".test_error_step_exits_1()", + "id": "scripts_test_execute_testcheckblockers_test_error_step_exits_1" }, { - "id": "scripts_test_execute_testcheckblockers_test_blocked_step_exits_2", "label": ".test_blocked_step_exits_2()", "file_type": "code", "source_file": "scripts/test_execute.py", "source_location": "L551", - "_origin": "ast" + "_origin": "ast", + "community": 77, + "norm_label": ".test_blocked_step_exits_2()", + "id": "scripts_test_execute_testcheckblockers_test_blocked_step_exits_2" }, { - "id": "scripts_test_execute_rationale_1", "label": "execute.py \ub9ac\ud329\ud130\ub9c1 \uc548\uc804\ub9dd \ud14c\uc2a4\ud2b8. \ub9ac\ud329\ud130\ub9c1 \uc804\ud6c4 \ub3d9\uc791\uc774 \ub3d9\uc77c\ud55c\uc9c0 \uac80\uc99d\ud55c\ub2e4.", "file_type": "rationale", "source_file": "scripts/test_execute.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "execute.py \u1105\u1175\u1111\u1162\u11a8\u1110\u1165\u1105\u1175\u11bc \u110b\u1161\u11ab\u110c\u1165\u11ab\u1106\u1161\u11bc \u1110\u1166\u1109\u1173\u1110\u1173. \u1105\u1175\u1111\u1162\u11a8\u1110\u1165\u1105\u1175\u11bc \u110c\u1165\u11ab\u1112\u116e \u1103\u1169\u11bc\u110c\u1161\u11a8\u110b\u1175 \u1103\u1169\u11bc\u110b\u1175\u11af\u1112\u1161\u11ab\u110c\u1175 \u1100\u1165\u11b7\u110c\u1173\u11bc\u1112\u1161\u11ab\u1103\u1161.", + "id": "scripts_test_execute_rationale_1" }, { - "id": "scripts_test_execute_rationale_27", "label": "phases/, CLAUDE.md, docs/ \ub97c \uac16\ucd98 \uc784\uc2dc \ud504\ub85c\uc81d\ud2b8 \uad6c\uc870.", "file_type": "rationale", "source_file": "scripts/test_execute.py", "source_location": "L27", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "phases/, claude.md, docs/ \u1105\u1173\u11af \u1100\u1161\u11bd\u110e\u116e\u11ab \u110b\u1175\u11b7\u1109\u1175 \u1111\u1173\u1105\u1169\u110c\u1166\u11a8\u1110\u1173 \u1100\u116e\u110c\u1169.", + "id": "scripts_test_execute_rationale_27" }, { - "id": "scripts_test_execute_rationale_44", "label": "step 3\uac1c\ub97c \uac00\uc9c4 phase \ub514\ub809\ud1a0\ub9ac.", "file_type": "rationale", "source_file": "scripts/test_execute.py", "source_location": "L44", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "step 3\u1100\u1162\u1105\u1173\u11af \u1100\u1161\u110c\u1175\u11ab phase \u1103\u1175\u1105\u1166\u11a8\u1110\u1169\u1105\u1175.", + "id": "scripts_test_execute_rationale_44" }, { - "id": "scripts_test_execute_rationale_65", "label": "phases/index.json (top-level).", "file_type": "rationale", "source_file": "scripts/test_execute.py", "source_location": "L65", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "phases/index.json (top-level).", + "id": "scripts_test_execute_rationale_65" }, { - "id": "scripts_test_execute_rationale_79", "label": "\ud14c\uc2a4\ud2b8\uc6a9 StepExecutor \uc778\uc2a4\ud134\uc2a4. git \ud638\ucd9c\uc740 \ubcc4\ub3c4 mock \ud544\uc694.", "file_type": "rationale", "source_file": "scripts/test_execute.py", "source_location": "L79", - "_origin": "ast" + "_origin": "ast", + "community": 47, + "norm_label": "\u1110\u1166\u1109\u1173\u1110\u1173\u110b\u116d\u11bc stepexecutor \u110b\u1175\u11ab\u1109\u1173\u1110\u1165\u11ab\u1109\u1173. git \u1112\u1169\u110e\u116e\u11af\u110b\u1173\u11ab \u1107\u1167\u11af\u1103\u1169 mock \u1111\u1175\u11af\u110b\u116d.", + "id": "scripts_test_execute_rationale_79" }, { - "id": "scripts_test_pipeline", "label": "test_pipeline.py", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "test_pipeline.py", + "id": "scripts_test_pipeline" }, { - "id": "scripts_test_pipeline_guess_coords", "label": "_guess_coords()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L103", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "_guess_coords()", + "id": "scripts_test_pipeline_guess_coords" }, { - "id": "scripts_test_pipeline_guess_category", "label": "_guess_category()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L115", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "_guess_category()", + "id": "scripts_test_pipeline_guess_category" }, { - "id": "scripts_test_pipeline_guess_duration", "label": "_guess_duration()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L122", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "_guess_duration()", + "id": "scripts_test_pipeline_guess_duration" }, { - "id": "scripts_test_pipeline_is_accommodation", "label": "_is_accommodation()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L129", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "_is_accommodation()", + "id": "scripts_test_pipeline_is_accommodation" }, { - "id": "scripts_test_pipeline_parse_places", "label": "_parse_places()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L134", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "_parse_places()", + "id": "scripts_test_pipeline_parse_places" }, { - "id": "scripts_test_pipeline_trip_days", "label": "_trip_days()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L147", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "_trip_days()", + "id": "scripts_test_pipeline_trip_days" }, { - "id": "scripts_test_pipeline_party_type_from_triple", "label": "_party_type_from_triple()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L158", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "_party_type_from_triple()", + "id": "scripts_test_pipeline_party_type_from_triple" }, { - "id": "scripts_test_pipeline_travel_type_from_theme", "label": "_travel_type_from_theme()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L175", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "_travel_type_from_theme()", + "id": "scripts_test_pipeline_travel_type_from_theme" }, { - "id": "scripts_test_pipeline_make_poi", "label": "_make_poi()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L191", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "_make_poi()", + "id": "scripts_test_pipeline_make_poi" }, { - "id": "scripts_test_pipeline_load_gugseok", "label": "load_gugseok()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L213", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "load_gugseok()", + "id": "scripts_test_pipeline_load_gugseok" }, { - "id": "scripts_test_pipeline_load_triple", "label": "load_triple()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L251", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "load_triple()", + "id": "scripts_test_pipeline_load_triple" }, { - "id": "scripts_test_pipeline_build_itinerary", "label": "_build_itinerary()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L277", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "_build_itinerary()", + "id": "scripts_test_pipeline_build_itinerary" }, { - "id": "scripts_test_pipeline_run_pipeline", "label": "run_pipeline()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L356", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "run_pipeline()", + "id": "scripts_test_pipeline_run_pipeline" }, { - "id": "scripts_test_pipeline_main", "label": "main()", "file_type": "code", "source_file": "scripts/test_pipeline.py", "source_location": "L408", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "main()", + "id": "scripts_test_pipeline_main" }, { - "id": "scripts_test_pipeline_rationale_1", "label": "\ud30c\uc774\ud504\ub77c\uc778 QA \ud14c\uc2a4\ud2b8 \u2014 xlsx \uc0d8\ud50c \ub370\uc774\ud130\ub85c HardFail/Warning/Score \uac80\uc99d.", "file_type": "rationale", "source_file": "scripts/test_pipeline.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "\u1111\u1161\u110b\u1175\u1111\u1173\u1105\u1161\u110b\u1175\u11ab qa \u1110\u1166\u1109\u1173\u1110\u1173 \u2014 xlsx \u1109\u1162\u11b7\u1111\u1173\u11af \u1103\u1166\u110b\u1175\u1110\u1165\u1105\u1169 hardfail/warning/score \u1100\u1165\u11b7\u110c\u1173\u11bc.", + "id": "scripts_test_pipeline_rationale_1" }, { - "id": "scripts_test_pipeline_rationale_104", "label": "\uc88c\ud45c \ud14c\uc774\ube14 \uc870\ud68c \u2192 \uc5c6\uc73c\uba74 \uc81c\uc8fc \uc911\uc2ec \uc88c\ud45c \ud3f4\ubc31.", "file_type": "rationale", "source_file": "scripts/test_pipeline.py", "source_location": "L104", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "\u110c\u116a\u1111\u116d \u1110\u1166\u110b\u1175\u1107\u1173\u11af \u110c\u1169\u1112\u116c \u2192 \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab \u110c\u1166\u110c\u116e \u110c\u116e\u11bc\u1109\u1175\u11b7 \u110c\u116a\u1111\u116d \u1111\u1169\u11af\u1107\u1162\u11a8.", + "id": "scripts_test_pipeline_rationale_104" }, { - "id": "scripts_test_pipeline_rationale_135", "label": "1.\uc7a5\uc18c\uba85, 2.\uc7a5\uc18c\uba85' \u2192 ['\uc7a5\uc18c\uba85', '\uc7a5\uc18c\uba85'] (\uc22b\uc790 \uc811\ub450\uc0ac \uc81c\uac70).", "file_type": "rationale", "source_file": "scripts/test_pipeline.py", "source_location": "L135", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "1.\u110c\u1161\u11bc\u1109\u1169\u1106\u1167\u11bc, 2.\u110c\u1161\u11bc\u1109\u1169\u1106\u1167\u11bc' \u2192 ['\u110c\u1161\u11bc\u1109\u1169\u1106\u1167\u11bc', '\u110c\u1161\u11bc\u1109\u1169\u1106\u1167\u11bc'] (\u1109\u116e\u11ba\u110c\u1161 \u110c\u1165\u11b8\u1103\u116e\u1109\u1161 \u110c\u1166\u1100\u1165).", + "id": "scripts_test_pipeline_rationale_135" }, { - "id": "scripts_test_pipeline_rationale_214", "label": "\uad6c\uc11d\uad6c\uc11d xlsx \u2192 \uc0d8\ud50c ItineraryPlan \uc7ac\ub8cc \ubaa9\ub85d.", "file_type": "rationale", "source_file": "scripts/test_pipeline.py", "source_location": "L214", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "\u1100\u116e\u1109\u1165\u11a8\u1100\u116e\u1109\u1165\u11a8 xlsx \u2192 \u1109\u1162\u11b7\u1111\u1173\u11af itineraryplan \u110c\u1162\u1105\u116d \u1106\u1169\u11a8\u1105\u1169\u11a8.", + "id": "scripts_test_pipeline_rationale_214" }, { - "id": "scripts_test_pipeline_rationale_252", "label": "\ud2b8\ub9ac\ud50c xlsx \u2192 \uc0d8\ud50c ItineraryPlan \uc7ac\ub8cc \ubaa9\ub85d.", "file_type": "rationale", "source_file": "scripts/test_pipeline.py", "source_location": "L252", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "\u1110\u1173\u1105\u1175\u1111\u1173\u11af xlsx \u2192 \u1109\u1162\u11b7\u1111\u1173\u11af itineraryplan \u110c\u1162\u1105\u116d \u1106\u1169\u11a8\u1105\u1169\u11a8.", + "id": "scripts_test_pipeline_rationale_252" }, { - "id": "scripts_test_pipeline_rationale_278", "label": "\uc0d8\ud50c dict \u2192 (ItineraryPlan, per-day POI lists). \ub2e4\uc77c(multi-day) \uc5f0\uc18d\uc131: Day N \uc758 \ub9c8\uc9c0\ub9c9\u2026", "file_type": "rationale", "source_file": "scripts/test_pipeline.py", "source_location": "L278", - "_origin": "ast" + "_origin": "ast", + "community": 32, + "norm_label": "\u1109\u1162\u11b7\u1111\u1173\u11af dict \u2192 (itineraryplan, per-day poi lists). \u1103\u1161\u110b\u1175\u11af(multi-day) \u110b\u1167\u11ab\u1109\u1169\u11a8\u1109\u1165\u11bc: day n \u110b\u1174 \u1106\u1161\u110c\u1175\u1106\u1161\u11a8...", + "id": "scripts_test_pipeline_rationale_278" }, { - "id": "src_init", "label": "src/__init__.py", "file_type": "code", "source_file": "src/__init__.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 105, + "norm_label": "src/__init__.py", + "id": "src_init" }, { - "id": "src_api_init", "label": "api/__init__.py", "file_type": "code", "source_file": "src/api/__init__.py", "source_location": "L1", - "_origin": "ast" - }, - { - "id": "src_api_main", - "label": "main.py", - "file_type": "code", - "source_file": "src/api/main.py", - "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 98, + "norm_label": "api/__init__.py", + "id": "src_api_init" }, { - "id": "src_api_main_py_get", "label": "get", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 99, + "norm_label": "get", + "id": "src_api_main_py_get" }, { - "id": "src_api_main_index", - "label": "index()", - "file_type": "code", - "source_file": "src/api/main.py", - "source_location": "L47", - "_origin": "ast" - }, - { - "id": "src_api_main_manifest", - "label": "manifest()", - "file_type": "code", - "source_file": "src/api/main.py", - "source_location": "L55", - "_origin": "ast" - }, - { - "id": "src_api_main_py_response", "label": "Response", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" - }, - { - "id": "src_api_main_service_worker", - "label": "service_worker()", - "file_type": "code", - "source_file": "src/api/main.py", - "source_location": "L63", - "_origin": "ast" - }, - { - "id": "src_api_main_health", - "label": "health()", - "file_type": "code", - "source_file": "src/api/main.py", - "source_location": "L75", - "_origin": "ast" - }, - { - "id": "src_api_main_rationale_76", - "label": "\ub77c\uc774\ube0c\ub2c8\uc2a4 + \uad6c\uc131 \uc9c4\ub2e8. \uc2dc\ud06c\ub9bf \uac12\uc740 \uc808\ub300 \ub178\ucd9c\ud558\uc9c0 \uc54a\uace0, \ud0a4 \uc124\uc815 \uc5ec\ubd80(bool)\uc640 \ub85c\ub529\ub41c \ub370\uc774\ud130 \uac74\uc218\ub9cc \ubc18\ud658\ud55c\ub2e4. \uc2ec\uc0ac \uc2dc \uc678\ubd80 API\u2026", - "file_type": "rationale", - "source_file": "src/api/main.py", - "source_location": "L76", - "_origin": "ast" - }, - { - "id": "src_api_router", - "label": "router.py", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "src_api_router_kakao_hint", - "label": "_kakao_hint()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L51", - "_origin": "ast" - }, - { - "id": "src_api_router_kakao_cat_code", - "label": "_kakao_cat_code()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L65", - "_origin": "ast" - }, - { - "id": "src_api_router_extract_chosung", - "label": "_extract_chosung()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L232", - "_origin": "ast" - }, - { - "id": "src_api_router_normalize", - "label": "_normalize()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L243", - "_origin": "ast" - }, - { - "id": "src_api_router_guess_dwell", - "label": "_guess_dwell()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L252", - "_origin": "ast" - }, - { - "id": "src_api_router_addr_to_region", - "label": "_addr_to_region()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L271", - "_origin": "ast" - }, - { - "id": "src_api_router_parse_jeju_hours", - "label": "_parse_jeju_hours()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L282", - "_origin": "ast" - }, - { - "id": "src_api_router_build_jeju_place_index", - "label": "_build_jeju_place_index()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L293", - "_origin": "ast" - }, - { - "id": "src_api_router_build_coord_index", - "label": "_build_coord_index()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L341", - "_origin": "ast" - }, - { - "id": "src_api_router_build_place_list", - "label": "_build_place_list()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L394", - "_origin": "ast" - }, - { - "id": "src_api_router_build_full_place_list", - "label": "_build_full_place_list()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L453", - "_origin": "ast" - }, - { - "id": "src_api_router_build_monthly_congestion", - "label": "_build_monthly_congestion()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L555", - "_origin": "ast" - }, - { - "id": "src_api_router_lookup_place", - "label": "_lookup_place()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L599", - "_origin": "ast" - }, - { - "id": "src_api_router_resolve_poi", - "label": "_resolve_poi()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L618", - "_origin": "ast" - }, - { - "id": "src_api_router_calc_reliability_score", - "label": "_calc_reliability_score()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L714", - "_origin": "ast" + "_origin": "ast", + "community": 100, + "norm_label": "response", + "id": "src_api_main_py_response" }, { - "id": "src_api_router_get_pipeline", - "label": "_get_pipeline()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L724", - "_origin": "ast" - }, - { - "id": "src_api_router_py_get", "label": "get", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 101, + "norm_label": "get", + "id": "src_api_router_py_get" }, { - "id": "src_api_router_list_places", - "label": "list_places()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L732", - "_origin": "ast" - }, - { - "id": "src_api_router_monthly_congestion", - "label": "monthly_congestion()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L806", - "_origin": "ast" - }, - { - "id": "src_api_router_list_regions", - "label": "list_regions()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L818", - "_origin": "ast" - }, - { - "id": "post", "label": "post", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" - }, - { - "id": "src_api_router_parse_text", - "label": "parse_text()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L830", - "_origin": "ast" - }, - { - "id": "src_api_router_parse_document", - "label": "parse_document()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L839", - "_origin": "ast" + "_origin": "ast", + "community": 58, + "norm_label": "post", + "id": "post" }, { - "id": "uploadfile", "label": "UploadFile", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" - }, - { - "id": "src_api_router_resolve_coords", - "label": "resolve_coords()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L856", - "_origin": "ast" - }, - { - "id": "src_api_router_validate_plan", - "label": "validate_plan()", - "file_type": "code", - "source_file": "src/api/router.py", - "source_location": "L869", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_1", - "label": "FastAPI \ub77c\uc6b0\ud130 \u2014 /validate, /places \uc5d4\ub4dc\ud3ec\uc778\ud2b8.", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_52", - "label": "\uce74\uce74\uc624 category_name \u2192 hours_db \uce74\ud14c\uace0\ub9ac \ud78c\ud2b8.", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L52", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_66", - "label": "\uce74\uce74\uc624 category_name \u2192 \uc571 \uce74\ud14c\uace0\ub9ac \ucf54\ub4dc(12 \uad00\uad11\uc9c0\u00b714 \ubb38\ud654\u00b738 \uc1fc\ud551\u00b739 \uc74c\uc2dd\uc810\u00b732 \uc219\ubc15).", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L66", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_283", - "label": "09:00~18:00 (\ub9e4\ud45c\ub9c8\uac10 17:00)' \uac19\uc740 \uc6d0\ubb38\uc5d0\uc11c \uccab HH:MM~HH:MM \uad6c\uac04\ub9cc \ubf51\uc544\ub0b8\ub2e4.", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L283", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_294", - "label": "data/\uc81c\uc8fc\ud2b9\ubcc4\uc790\uce58\ub3c4_\ud1b5\ud569_TourAPI\ubcd1\ud569.xlsx \u2014 \uc2e4\uce21 \uc88c\ud45c\ub97c \uac00\uc9c4 \uc81c\uc8fc \uc804\uc5ed 26,679\uac74 \ud1b5\ud569 DB. \uae30\uc874\u2026", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L294", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_342", - "label": "\uc88c\ud45c \uc778\ub371\uc2a4 \ube4c\ub4dc. 1\ucc28: data/pois.csv \u2014 TourAPI \ubc8c\ud06c \uc218\uc9d1 (20,168 POI, \uc804\uad6d \uc88c\ud45c \uc8fc\uc18c\uc6d0\ubcf8) 2\ucc28:\u2026", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L342", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_395", - "label": "congestion_stats.csv \uc5d0\uc11c \uace0\uc720 \uc7a5\uc18c + annual_max \uc9d1\uacc4 \u2192 \uc88c\ud45c \uacb0\ud569 \u2192 \uc815\ub82c.", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L395", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_454", - "label": "pois.csv(20,168) + wellness(175) + barrier_free(1,799) \ud1b5\ud569 \uc7a5\uc18c \ubaa9\ub85d.", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L454", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_556", - "label": "congestion_stats.csv\uc758 \uc6d4\ubcc4 \ud63c\uc7a1\ub3c4 \uc810\uc218 \uc778\ub371\uc2a4.", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L556", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_600", - "label": "\uc774\ub984\uc73c\ub85c place dict \uc870\ud68c. \uc815\ud655 \u2192 \ubd80\ubd84 \uc21c\uc73c\ub85c \uc2dc\ub3c4. congestion \uae30\ubc18 \uc778\uae30 \uc7a5\uc18c(_PLACE_NORM_INDEX) \uc6b0\uc120,\u2026", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L600", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_736", - "label": "\ub4f1\ub85d \uc7a5\uc18c \ubaa9\ub85d. q=\uac80\uc0c9\uc5b4, region=\uc9c0\uc5ed \ud544\ud130, cat=\uce74\ud14c\uace0\ub9ac \ucf54\ub4dc, extended=\uc804\uccb4DB \ucd08\uae30 \ub85c\ub4dc. offset/limit\uc73c\ub85c\u2026", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L736", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_831", - "label": "\ucd94\ucc9c \uacbd\ub85c\ub97c \ubcf5\uc0ac\ud55c \ud14d\uc2a4\ud2b8 \u2192 \ucffc\ub9ac \ub9ac\ub77c\uc774\ud305\uc73c\ub85c day/place \uad6c\uc870 \ucd94\ucd9c.", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L831", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_840", - "label": "AI \ud50c\ub798\ub108 \uacb0\uacfc PDF\u00b7\uc2a4\ud06c\ub9b0\uc0f7(PNG/JPG) \u2192 Claude Vision\uc73c\ub85c day/place \uad6c\uc870 \ucd94\ucd9c.", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L840", - "_origin": "ast" - }, - { - "id": "src_api_router_rationale_857", - "label": "\ube4c\ub354(Step2) \uc9c0\ub3c4\uc6a9 \uc88c\ud45c \uc870\ud68c. \uac80\uc99d \ud30c\uc774\ud504\ub77c\uc778(Hard Fail/\uc2a4\ucf54\uc5b4\ub9c1/LLM \uc124\uba85) \uc5c6\uc774 \uc88c\ud45c \ud574\uc11d\ub9cc \uc218\ud589\ud574 \ube60\ub974\uac8c \uc751\ub2f5\ud55c\ub2e4.", - "file_type": "rationale", - "source_file": "src/api/router.py", - "source_location": "L857", - "_origin": "ast" + "_origin": "ast", + "community": 58, + "norm_label": "uploadfile", + "id": "uploadfile" }, { - "id": "src_api_schemas", - "label": "schemas.py", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "src_api_schemas_placeinputweb", - "label": "PlaceInputWeb", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L9", - "_origin": "ast" - }, - { - "id": "src_api_schemas_py_basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" - }, - { - "id": "src_api_schemas_dayplanweb", - "label": "DayPlanWeb", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L14", - "_origin": "ast" - }, - { - "id": "src_api_schemas_poiinfo", - "label": "POIInfo", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L18", - "_origin": "ast" - }, - { - "id": "src_api_schemas_placeitem", - "label": "PlaceItem", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L37", - "_origin": "ast" - }, - { - "id": "src_api_schemas_placesresponse", - "label": "PlacesResponse", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L49", - "_origin": "ast" - }, - { - "id": "src_api_schemas_validaterequest", - "label": "ValidateRequest", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L54", - "_origin": "ast" - }, - { - "id": "src_api_schemas_parsetextrequest", - "label": "ParseTextRequest", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L64", - "_origin": "ast" - }, - { - "id": "src_api_schemas_parsedplace", - "label": "ParsedPlace", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L68", - "_origin": "ast" - }, - { - "id": "src_api_schemas_parsedday", - "label": "ParsedDay", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L74", - "_origin": "ast" - }, - { - "id": "src_api_schemas_parsedplanresponse", - "label": "ParsedPlanResponse", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L78", - "_origin": "ast" - }, - { - "id": "src_api_schemas_validateresponse", - "label": "ValidateResponse", - "file_type": "code", - "source_file": "src/api/schemas.py", - "source_location": "L82", - "_origin": "ast" - }, - { - "id": "src_api_schemas_rationale_1", - "label": "API \uc694\uccad/\uc751\ub2f5 Pydantic \uc2a4\ud0a4\ub9c8.", - "file_type": "rationale", - "source_file": "src/api/schemas.py", - "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 0, + "norm_label": "basemodel", + "id": "src_api_schemas_py_basemodel" }, { - "id": "src_api_static_manifest", "label": "manifest.json", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "manifest.json", + "id": "src_api_static_manifest" }, { - "id": "src_api_static_manifest_name", "label": "name", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L2", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "name", + "id": "src_api_static_manifest_name" }, { - "id": "src_api_static_manifest_short_name", "label": "short_name", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L3", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "short_name", + "id": "src_api_static_manifest_short_name" }, { - "id": "src_api_static_manifest_description", "label": "description", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L4", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "description", + "id": "src_api_static_manifest_description" }, { - "id": "src_api_static_manifest_start_url", "label": "start_url", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L5", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "start_url", + "id": "src_api_static_manifest_start_url" }, { - "id": "src_api_static_manifest_display", "label": "display", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L6", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "display", + "id": "src_api_static_manifest_display" }, { - "id": "src_api_static_manifest_background_color", "label": "background_color", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L7", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "background_color", + "id": "src_api_static_manifest_background_color" }, { - "id": "src_api_static_manifest_theme_color", "label": "theme_color", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L8", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "theme_color", + "id": "src_api_static_manifest_theme_color" }, { - "id": "src_api_static_manifest_orientation", "label": "orientation", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L9", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "orientation", + "id": "src_api_static_manifest_orientation" }, { - "id": "src_api_static_manifest_lang", "label": "lang", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L10", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "lang", + "id": "src_api_static_manifest_lang" }, { - "id": "src_api_static_manifest_categories", "label": "categories", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L11", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "categories", + "id": "src_api_static_manifest_categories" }, { - "id": "ref_travel", "label": "travel", "file_type": "concept", "source_file": "src/api/static/manifest.json", "source_location": "L11", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "travel", + "id": "ref_travel" }, { - "id": "ref_utilities", "label": "utilities", "file_type": "concept", "source_file": "src/api/static/manifest.json", "source_location": "L11", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "utilities", + "id": "ref_utilities" }, { - "id": "src_api_static_manifest_icons", "label": "icons", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L12", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "icons", + "id": "src_api_static_manifest_icons" }, { - "id": "src_api_static_manifest_shortcuts", "label": "shortcuts", "file_type": "code", "source_file": "src/api/static/manifest.json", "source_location": "L26", - "_origin": "ast" + "_origin": "ast", + "community": 42, + "norm_label": "shortcuts", + "id": "src_api_static_manifest_shortcuts" }, { - "id": "src_api_static_service_worker", "label": "service-worker.js", "file_type": "code", "source_file": "src/api/static/service-worker.js", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 87, + "norm_label": "service-worker.js", + "id": "src_api_static_service_worker" }, { - "id": "src_api_static_service_worker_shell", "label": "SHELL", "file_type": "code", "source_file": "src/api/static/service-worker.js", "source_location": "L2", - "_origin": "ast" + "_origin": "ast", + "community": 87, + "norm_label": "shell", + "id": "src_api_static_service_worker_shell" }, { - "id": "src_data_init", "label": "data/__init__.py", "file_type": "code", "source_file": "src/data/__init__.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 102, + "norm_label": "data/__init__.py", + "id": "src_data_init" + }, + { + "label": "Any", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 16, + "norm_label": "any", + "id": "src_data_barrier_free_api_py_any" + }, + { + "label": "BaseModel", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 5, + "norm_label": "basemodel", + "id": "src_data_models_py_basemodel" + }, + { + "label": "model_validator", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 61, + "norm_label": "model_validator", + "id": "model_validator" + }, + { + "label": "field_validator", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 90, + "norm_label": "field_validator", + "id": "field_validator" + }, + { + "label": "computed_field", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 6, + "norm_label": "computed_field", + "id": "computed_field" + }, + { + "label": "BaseSettings", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 16, + "norm_label": "basesettings", + "id": "basesettings" + }, + { + "label": "Path", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 1, + "norm_label": "path", + "id": "src_data_restaurant_catalog_py_path" + }, + { + "label": "Any", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 51, + "norm_label": "any", + "id": "src_data_wellness_api_py_any" + }, + { + "label": "explain/__init__.py", + "file_type": "code", + "source_file": "src/explain/__init__.py", + "source_location": "L1", + "_origin": "ast", + "community": 103, + "norm_label": "explain/__init__.py", + "id": "src_explain_init" + }, + { + "label": "Any", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 31, + "norm_label": "any", + "id": "src_explain_explain_engine_py_any" + }, + { + "label": "Exception", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 104, + "norm_label": "exception", + "id": "src_explain_plan_extractor_py_exception" + }, + { + "label": "Any", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 16, + "norm_label": "any", + "id": "src_explain_plan_extractor_py_any" + }, + { + "label": "Path", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 107, + "norm_label": "path", + "id": "src_matrix_redis_matrix_py_path" + }, + { + "label": "scoring/__init__.py", + "file_type": "code", + "source_file": "src/scoring/__init__.py", + "source_location": "L1", + "_origin": "ast", + "community": 88, + "norm_label": "scoring/__init__.py", + "id": "src_scoring_init" + }, + { + "label": "\ud488\uc9c8 \ud3c9\uac00 (Scoring) \ub808\uc774\uc5b4. VRPTW \uac80\uc99d\uc744 \ud1b5\uacfc\ud55c \uc77c\uc815\uc5d0 \ub300\ud574 \"\uc5bc\ub9c8\ub098 \uc88b\uc740 \uacbd\ub85c\uc778\uac00\" \ud3c9\uac00: - travel_ratio : \uc774\ub3d9\u2026", + "file_type": "rationale", + "source_file": "src/scoring/__init__.py", + "source_location": "L1", + "_origin": "ast", + "community": 88, + "norm_label": "\u1111\u116e\u11b7\u110c\u1175\u11af \u1111\u1167\u11bc\u1100\u1161 (scoring) \u1105\u1166\u110b\u1175\u110b\u1165. vrptw \u1100\u1165\u11b7\u110c\u1173\u11bc\u110b\u1173\u11af \u1110\u1169\u11bc\u1100\u116a\u1112\u1161\u11ab \u110b\u1175\u11af\u110c\u1165\u11bc\u110b\u1166 \u1103\u1162\u1112\u1162 \"\u110b\u1165\u11af\u1106\u1161\u1102\u1161 \u110c\u1169\u11c2\u110b\u1173\u11ab \u1100\u1167\u11bc\u1105\u1169\u110b\u1175\u11ab\u1100\u1161\" \u1111\u1167\u11bc\u1100\u1161: - travel_ratio : \u110b\u1175\u1103\u1169\u11bc...", + "id": "src_scoring_init_rationale_1" + }, + { + "label": "Path", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 65, + "norm_label": "path", + "id": "src_scoring_bonus_engine_py_path" + }, + { + "label": "str", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 111, + "norm_label": "str", + "id": "str" + }, + { + "label": "Enum", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 26, + "norm_label": "enum", + "id": "enum" + }, + { + "label": "Path", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 39, + "norm_label": "path", + "id": "src_scoring_congestion_engine_py_path" + }, + { + "label": "DataFrame", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 108, + "norm_label": "dataframe", + "id": "src_scoring_congestion_engine_py_dataframe" + }, + { + "label": "Series", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 28, + "norm_label": "series", + "id": "series" + }, + { + "label": "Any", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 16, + "norm_label": "any", + "id": "src_scoring_theme_alignment_py_any" + }, + { + "label": "utils/__init__.py", + "file_type": "code", + "source_file": "src/utils/__init__.py", + "source_location": "L1", + "_origin": "ast", + "community": 109, + "norm_label": "utils/__init__.py", + "id": "src_utils_init" + }, + { + "label": "src/validation/__init__.py", + "file_type": "code", + "source_file": "src/validation/__init__.py", + "source_location": "L1", + "_origin": "ast", + "community": 110, + "norm_label": "src/validation/__init__.py", + "id": "src_validation_init" + }, + { + "label": "Path", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 3, + "norm_label": "path", + "id": "src_validation_kakao_matrix_py_path" + }, + { + "label": "Any", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 3, + "norm_label": "any", + "id": "src_validation_kakao_matrix_py_any" + }, + { + "label": "ABC", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 15, + "norm_label": "abc", + "id": "abc" + }, + { + "label": "Path", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 44, + "norm_label": "path", + "id": "src_validation_vrptw_engine_py_path" + }, + { + "label": "tests/__init__.py", + "file_type": "code", + "source_file": "tests/__init__.py", + "source_location": "L1", + "_origin": "ast", + "community": 112, + "norm_label": "tests/__init__.py", + "id": "tests_init" + }, + { + "label": "fixture", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 80, + "norm_label": "fixture", + "id": "tests_conftest_py_fixture" + }, + { + "label": "skipif", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 97, + "norm_label": "skipif", + "id": "skipif" + }, + { + "label": "fixture", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 26, + "norm_label": "fixture", + "id": "tests_test_congestion_engine_py_fixture" + }, + { + "label": "parametrize", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 26, + "norm_label": "parametrize", + "id": "parametrize" + }, + { + "label": "fixture", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 10, + "norm_label": "fixture", + "id": "tests_test_hard_fail_py_fixture" + }, + { + "label": "fixture", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 11, + "norm_label": "fixture", + "id": "tests_test_pipeline_orchestrator_py_fixture" + }, + { + "label": "_RepairEngineClass", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 1, + "norm_label": "_repairengineclass", + "id": "repairengineclass" + }, + { + "label": "fixture", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 114, + "norm_label": "fixture", + "id": "tests_test_resolve_poi_py_fixture" + }, + { + "label": "fixture", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 6, + "norm_label": "fixture", + "id": "tests_test_scoring_py_fixture" + }, + { + "label": "fixture", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 2, + "norm_label": "fixture", + "id": "tests_test_theme_alignment_py_fixture" + }, + { + "label": "fixture", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 18, + "norm_label": "fixture", + "id": "tests_test_warning_py_fixture" + }, + { + "label": "travel-plan-validator", + "file_type": "code", + "type": "package", + "ecosystem": "python", + "source_file": "pyproject.toml", + "source_location": "L1", + "version": "1.0.0", + "_origin": "ast", + "community": 95, + "norm_label": "travel-plan-validator", + "id": "pkg_travel_plan_validator" + }, + { + "label": "demo_live_e2e.py", + "file_type": "code", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L1", + "_origin": "ast", + "community": 5, + "norm_label": "demo_live_e2e.py", + "id": "scripts_demo_live_e2e" + }, + { + "label": "main()", + "file_type": "code", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L20", + "_origin": "ast", + "community": 31, + "norm_label": "main()", + "id": "scripts_demo_live_e2e_main" + }, + { + "label": "\ub77c\uc774\ube0c E2E \ub370\ubaa8: \ub85c\uceec \uadfc\uac70 \uce74\ud0c8\ub85c\uadf8\uc640 \uc2e4\uc81c Claude API\ub97c \uc810\uac80\ud55c\ub2e4.", + "file_type": "rationale", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L1", + "_origin": "ast", + "community": 5, + "norm_label": "\u1105\u1161\u110b\u1175\u1107\u1173 e2e \u1103\u1166\u1106\u1169: \u1105\u1169\u110f\u1165\u11af \u1100\u1173\u11ab\u1100\u1165 \u110f\u1161\u1110\u1161\u11af\u1105\u1169\u1100\u1173\u110b\u116a \u1109\u1175\u11af\u110c\u1166 claude api\u1105\u1173\u11af \u110c\u1165\u11b7\u1100\u1165\u11b7\u1112\u1161\u11ab\u1103\u1161.", + "id": "scripts_demo_live_e2e_rationale_1" + }, + { + "label": "Response", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 41, + "norm_label": "response", + "id": "response" + }, + { + "label": "schemas.py", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L1", + "_origin": "ast", + "community": 0, + "norm_label": "schemas.py", + "id": "src_api_schemas" + }, + { + "label": "PlaceInputWeb", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L12", + "_origin": "ast", + "community": 0, + "norm_label": "placeinputweb", + "id": "src_api_schemas_placeinputweb" + }, + { + "label": "field_validator", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 0, + "norm_label": "field_validator", + "id": "src_api_schemas_py_field_validator" + }, + { + "label": ".validate_name()", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L18", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_name()", + "id": "src_api_schemas_placeinputweb_validate_name" + }, + { + "label": "DayPlanWeb", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L25", + "_origin": "ast", + "community": 0, + "norm_label": "dayplanweb", + "id": "src_api_schemas_dayplanweb" + }, + { + "label": "POIInfo", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L29", + "_origin": "ast", + "community": 0, + "norm_label": "poiinfo", + "id": "src_api_schemas_poiinfo" + }, + { + "label": "PlaceItem", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L57", + "_origin": "ast", + "community": 0, + "norm_label": "placeitem", + "id": "src_api_schemas_placeitem" + }, + { + "label": "PlacesResponse", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L69", + "_origin": "ast", + "community": 0, + "norm_label": "placesresponse", + "id": "src_api_schemas_placesresponse" + }, + { + "label": "ValidateRequest", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L74", + "_origin": "ast", + "community": 0, + "norm_label": "validaterequest", + "id": "src_api_schemas_validaterequest" + }, + { + "label": ".validate_date()", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L85", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_date()", + "id": "src_api_schemas_validaterequest_validate_date" + }, + { + "label": ".validate_start_time()", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L90", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_start_time()", + "id": "src_api_schemas_validaterequest_validate_start_time" + }, + { + "label": "ParseTextRequest", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L94", + "_origin": "ast", + "community": 0, + "norm_label": "parsetextrequest", + "id": "src_api_schemas_parsetextrequest" + }, + { + "label": "ParsedPlace", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L98", + "_origin": "ast", + "community": 0, + "norm_label": "parsedplace", + "id": "src_api_schemas_parsedplace" + }, + { + "label": "ParsedDay", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L104", + "_origin": "ast", + "community": 0, + "norm_label": "parsedday", + "id": "src_api_schemas_parsedday" + }, + { + "label": "ParsedPlanResponse", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L108", + "_origin": "ast", + "community": 0, + "norm_label": "parsedplanresponse", + "id": "src_api_schemas_parsedplanresponse" + }, + { + "label": "ValidateResponse", + "file_type": "code", + "source_file": "src/api/schemas.py", + "source_location": "L112", + "_origin": "ast", + "community": 0, + "norm_label": "validateresponse", + "id": "src_api_schemas_validateresponse" + }, + { + "label": "API \uc694\uccad/\uc751\ub2f5 Pydantic \uc2a4\ud0a4\ub9c8.", + "file_type": "rationale", + "source_file": "src/api/schemas.py", + "source_location": "L1", + "_origin": "ast", + "community": 0, + "norm_label": "api \u110b\u116d\u110e\u1165\u11bc/\u110b\u1173\u11bc\u1103\u1161\u11b8 pydantic \u1109\u1173\u110f\u1175\u1106\u1161.", + "id": "src_api_schemas_rationale_1" + }, + { + "label": "Request", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 55, + "norm_label": "request", + "id": "request" }, { - "id": "src_data_barrier_free_api", "label": "barrier_free_api.py", "file_type": "code", "source_file": "src/data/barrier_free_api.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 16, + "norm_label": "barrier_free_api.py", + "id": "src_data_barrier_free_api" }, { - "id": "src_data_barrier_free_api_barrierfreeplace", "label": "BarrierFreePlace", "file_type": "code", "source_file": "src/data/barrier_free_api.py", - "source_location": "L24", - "_origin": "ast" + "source_location": "L25", + "_origin": "ast", + "community": 16, + "norm_label": "barrierfreeplace", + "id": "src_data_barrier_free_api_barrierfreeplace" }, { - "id": "src_data_barrier_free_api_barrierfreedetail", "label": "BarrierFreeDetail", "file_type": "code", "source_file": "src/data/barrier_free_api.py", - "source_location": "L43", - "_origin": "ast" + "source_location": "L45", + "_origin": "ast", + "community": 16, + "norm_label": "barrierfreedetail", + "id": "src_data_barrier_free_api_barrierfreedetail" }, { - "id": "src_data_barrier_free_api_extract_items", "label": "_extract_items()", "file_type": "code", "source_file": "src/data/barrier_free_api.py", - "source_location": "L68", - "_origin": "ast" + "source_location": "L71", + "_origin": "ast", + "community": 16, + "norm_label": "_extract_items()", + "id": "src_data_barrier_free_api_extract_items" }, { - "id": "src_data_barrier_free_api_safe_float", "label": "_safe_float()", "file_type": "code", "source_file": "src/data/barrier_free_api.py", - "source_location": "L78", - "_origin": "ast" - }, - { - "id": "src_data_barrier_free_api_py_any", - "label": "Any", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L81", + "_origin": "ast", + "community": 16, + "norm_label": "_safe_float()", + "id": "src_data_barrier_free_api_safe_float" }, { - "id": "src_data_barrier_free_api_str", "label": "_str()", "file_type": "code", "source_file": "src/data/barrier_free_api.py", - "source_location": "L85", - "_origin": "ast" + "source_location": "L88", + "_origin": "ast", + "community": 16, + "norm_label": "_str()", + "id": "src_data_barrier_free_api_str" }, { - "id": "src_data_barrier_free_api_barrierfreeapiclient", "label": "BarrierFreeAPIClient", "file_type": "code", "source_file": "src/data/barrier_free_api.py", - "source_location": "L91", - "_origin": "ast" + "source_location": "L94", + "_origin": "ast", + "community": 16, + "norm_label": "barrierfreeapiclient", + "id": "src_data_barrier_free_api_barrierfreeapiclient" }, { - "id": "src_data_barrier_free_api_barrierfreeapiclient_init", "label": ".__init__()", "file_type": "code", "source_file": "src/data/barrier_free_api.py", - "source_location": "L97", - "_origin": "ast" + "source_location": "L100", + "_origin": "ast", + "community": 16, + "norm_label": ".__init__()", + "id": "src_data_barrier_free_api_barrierfreeapiclient_init" }, { - "id": "src_data_barrier_free_api_barrierfreeapiclient_from_settings", "label": ".from_settings()", "file_type": "code", "source_file": "src/data/barrier_free_api.py", - "source_location": "L104", - "_origin": "ast" + "source_location": "L107", + "_origin": "ast", + "community": 16, + "norm_label": ".from_settings()", + "id": "src_data_barrier_free_api_barrierfreeapiclient_from_settings" }, { - "id": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", "label": ".fetch_page()", "file_type": "code", "source_file": "src/data/barrier_free_api.py", - "source_location": "L112", - "_origin": "ast" + "source_location": "L115", + "_origin": "ast", + "community": 16, + "norm_label": ".fetch_page()", + "id": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page" }, { - "id": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail", "label": ".fetch_detail()", "file_type": "code", "source_file": "src/data/barrier_free_api.py", - "source_location": "L163", - "_origin": "ast" + "source_location": "L168", + "_origin": "ast", + "community": 16, + "norm_label": ".fetch_detail()", + "id": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail" }, { - "id": "src_data_barrier_free_api_barrierfreeapiclient_fetch_all", "label": ".fetch_all()", "file_type": "code", "source_file": "src/data/barrier_free_api.py", - "source_location": "L210", - "_origin": "ast" + "source_location": "L215", + "_origin": "ast", + "community": 16, + "norm_label": ".fetch_all()", + "id": "src_data_barrier_free_api_barrierfreeapiclient_fetch_all" }, { - "id": "src_data_barrier_free_api_rationale_1", "label": "\ud55c\uad6d\uad00\uad11\uacf5\uc0ac \ubb34\uc7a5\uc560 \uc5ec\ud589 \uc815\ubcf4 API \ud074\ub77c\uc774\uc5b8\ud2b8 (B551011/KorWithService2). \uc624\ud37c\ub808\uc774\uc158: areaBasedList2 \u2014\u2026", "file_type": "rationale", "source_file": "src/data/barrier_free_api.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 16, + "norm_label": "\u1112\u1161\u11ab\u1100\u116e\u11a8\u1100\u116a\u11ab\u1100\u116a\u11bc\u1100\u1169\u11bc\u1109\u1161 \u1106\u116e\u110c\u1161\u11bc\u110b\u1162 \u110b\u1167\u1112\u1162\u11bc \u110c\u1165\u11bc\u1107\u1169 api \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173 (b551011/korwithservice2). \u110b\u1169\u1111\u1165\u1105\u1166\u110b\u1175\u1109\u1167\u11ab: areabasedlist2 \u2014...", + "id": "src_data_barrier_free_api_rationale_1" }, { - "id": "src_data_barrier_free_api_rationale_25", "label": "areaBasedList2 \uae30\ubc18 \uae30\ubcf8 POI + detailWithTour2 \uc811\uadfc\uc131 \uc138\ubd80 \ud56d\ubaa9.", "file_type": "rationale", "source_file": "src/data/barrier_free_api.py", - "source_location": "L25", - "_origin": "ast" + "source_location": "L26", + "_origin": "ast", + "community": 16, + "norm_label": "areabasedlist2 \u1100\u1175\u1107\u1161\u11ab \u1100\u1175\u1107\u1169\u11ab poi + detailwithtour2 \u110c\u1165\u11b8\u1100\u1173\u11ab\u1109\u1165\u11bc \u1109\u1166\u1107\u116e \u1112\u1161\u11bc\u1106\u1169\u11a8.", + "id": "src_data_barrier_free_api_rationale_26" }, { - "id": "src_data_barrier_free_api_rationale_44", "label": "detailWithTour2 \uc751\ub2f5 \uc804\uccb4 \ud544\ub4dc (\ud544\uc694 \uc2dc \uac1c\ubcc4 \uc870\ud68c\uc6a9).", "file_type": "rationale", "source_file": "src/data/barrier_free_api.py", - "source_location": "L44", - "_origin": "ast" + "source_location": "L46", + "_origin": "ast", + "community": 16, + "norm_label": "detailwithtour2 \u110b\u1173\u11bc\u1103\u1161\u11b8 \u110c\u1165\u11ab\u110e\u1166 \u1111\u1175\u11af\u1103\u1173 (\u1111\u1175\u11af\u110b\u116d \u1109\u1175 \u1100\u1162\u1107\u1167\u11af \u110c\u1169\u1112\u116c\u110b\u116d\u11bc).", + "id": "src_data_barrier_free_api_rationale_46" }, { - "id": "src_data_barrier_free_api_rationale_92", "label": "\ubb34\uc7a5\uc560 \uc5ec\ud589 \uc815\ubcf4 API \u2014 \ube44\ub3d9\uae30 \ud074\ub77c\uc774\uc5b8\ud2b8. Graceful Fallback: API \ud638\ucd9c \uc2e4\ud328 \uc2dc \ube48 \ub9ac\uc2a4\ud2b8/None \ubc18\ud658.", "file_type": "rationale", "source_file": "src/data/barrier_free_api.py", - "source_location": "L92", - "_origin": "ast" + "source_location": "L95", + "_origin": "ast", + "community": 16, + "norm_label": "\u1106\u116e\u110c\u1161\u11bc\u110b\u1162 \u110b\u1167\u1112\u1162\u11bc \u110c\u1165\u11bc\u1107\u1169 api \u2014 \u1107\u1175\u1103\u1169\u11bc\u1100\u1175 \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173. graceful fallback: api \u1112\u1169\u110e\u116e\u11af \u1109\u1175\u11af\u1111\u1162 \u1109\u1175 \u1107\u1175\u11ab \u1105\u1175\u1109\u1173\u1110\u1173/none \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_data_barrier_free_api_rationale_95" }, { - "id": "src_data_barrier_free_api_rationale_119", "label": "areaBasedList2 \u2014 \ubb34\uc7a5\uc560 \uc5ec\ud589 POI \ubaa9\ub85d \ud55c \ud398\uc774\uc9c0 \uc870\ud68c. \ubc18\ud658 \ud544\ub4dc: contentid, title, addr1, mapx,\u2026", "file_type": "rationale", "source_file": "src/data/barrier_free_api.py", - "source_location": "L119", - "_origin": "ast" + "source_location": "L122", + "_origin": "ast", + "community": 16, + "norm_label": "areabasedlist2 \u2014 \u1106\u116e\u110c\u1161\u11bc\u110b\u1162 \u110b\u1167\u1112\u1162\u11bc poi \u1106\u1169\u11a8\u1105\u1169\u11a8 \u1112\u1161\u11ab \u1111\u1166\u110b\u1175\u110c\u1175 \u110c\u1169\u1112\u116c. \u1107\u1161\u11ab\u1112\u116a\u11ab \u1111\u1175\u11af\u1103\u1173: contentid, title, addr1, mapx,...", + "id": "src_data_barrier_free_api_rationale_122" }, { - "id": "src_data_barrier_free_api_rationale_164", "label": "detailWithTour2 \u2014 \ub2e8\uc77c \ucf58\ud150\uce20 \ubb34\uc7a5\uc560 \uc811\uadfc\uc131 \uc0c1\uc138 \uc870\ud68c. \uc9c0\uccb4\uc7a5\uc560\u00b7\uc2dc\uac01\uc7a5\uc560\u00b7\uccad\uac01\uc7a5\uc560\u00b7\uc601\uc720\uc544\uac00\uc871 \ud56d\ubaa9\uc744 \ud14d\uc2a4\ud2b8\ub85c \ubc18\ud658.\u2026", "file_type": "rationale", "source_file": "src/data/barrier_free_api.py", - "source_location": "L164", - "_origin": "ast" + "source_location": "L169", + "_origin": "ast", + "community": 16, + "norm_label": "detailwithtour2 \u2014 \u1103\u1161\u11ab\u110b\u1175\u11af \u110f\u1169\u11ab\u1110\u1166\u11ab\u110e\u1173 \u1106\u116e\u110c\u1161\u11bc\u110b\u1162 \u110c\u1165\u11b8\u1100\u1173\u11ab\u1109\u1165\u11bc \u1109\u1161\u11bc\u1109\u1166 \u110c\u1169\u1112\u116c. \u110c\u1175\u110e\u1166\u110c\u1161\u11bc\u110b\u1162\u00b7\u1109\u1175\u1100\u1161\u11a8\u110c\u1161\u11bc\u110b\u1162\u00b7\u110e\u1165\u11bc\u1100\u1161\u11a8\u110c\u1161\u11bc\u110b\u1162\u00b7\u110b\u1167\u11bc\u110b\u1172\u110b\u1161\u1100\u1161\u110c\u1169\u11a8 \u1112\u1161\u11bc\u1106\u1169\u11a8\u110b\u1173\u11af \u1110\u1166\u11a8\u1109\u1173\u1110\u1173\u1105\u1169 \u1107\u1161\u11ab\u1112\u116a\u11ab....", + "id": "src_data_barrier_free_api_rationale_169" }, { - "id": "src_data_barrier_free_api_rationale_211", "label": "\uc804\uccb4 \ubb34\uc7a5\uc560 \uc5ec\ud589 POI \ubaa9\ub85d \uc870\ud68c (\ud398\uc774\uc9c0 \uc21c\ud68c, areaBasedList2).", "file_type": "rationale", "source_file": "src/data/barrier_free_api.py", - "source_location": "L211", - "_origin": "ast" + "source_location": "L216", + "_origin": "ast", + "community": 16, + "norm_label": "\u110c\u1165\u11ab\u110e\u1166 \u1106\u116e\u110c\u1161\u11bc\u110b\u1162 \u110b\u1167\u1112\u1162\u11bc poi \u1106\u1169\u11a8\u1105\u1169\u11a8 \u110c\u1169\u1112\u116c (\u1111\u1166\u110b\u1175\u110c\u1175 \u1109\u116e\u11ab\u1112\u116c, areabasedlist2).", + "id": "src_data_barrier_free_api_rationale_216" }, { - "id": "src_data_dwell_db", "label": "dwell_db.py", "file_type": "code", "source_file": "src/data/dwell_db.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 23, + "norm_label": "dwell_db.py", + "id": "src_data_dwell_db" }, { - "id": "src_data_dwell_db_dwellrecommendation", "label": "DwellRecommendation", "file_type": "code", "source_file": "src/data/dwell_db.py", - "source_location": "L21", - "_origin": "ast" + "source_location": "L22", + "_origin": "ast", + "community": 23, + "norm_label": "dwellrecommendation", + "id": "src_data_dwell_db_dwellrecommendation" }, { - "id": "src_data_dwell_db_dwellrecommendation_is_too_short", "label": ".is_too_short()", "file_type": "code", "source_file": "src/data/dwell_db.py", - "source_location": "L27", - "_origin": "ast" + "source_location": "L29", + "_origin": "ast", + "community": 23, + "norm_label": ".is_too_short()", + "id": "src_data_dwell_db_dwellrecommendation_is_too_short" }, { - "id": "src_data_dwell_db_normalize_name", "label": "_normalize_name()", "file_type": "code", "source_file": "src/data/dwell_db.py", - "source_location": "L181", - "_origin": "ast" + "source_location": "L183", + "_origin": "ast", + "community": 23, + "norm_label": "_normalize_name()", + "id": "src_data_dwell_db_normalize_name" }, { - "id": "src_data_dwell_db_get_recommended_dwell", "label": "get_recommended_dwell()", "file_type": "code", "source_file": "src/data/dwell_db.py", - "source_location": "L192", - "_origin": "ast" + "source_location": "L194", + "_origin": "ast", + "community": 23, + "norm_label": "get_recommended_dwell()", + "id": "src_data_dwell_db_get_recommended_dwell" }, { - "id": "src_data_dwell_db_rationale_1", "label": "\uad8c\uc7a5 \uccb4\ub958\uc2dc\uac04 \ub370\uc774\ud130\ubca0\uc774\uc2a4 (\ud558\uc774\ube0c\ub9ac\ub4dc \ub8e9\uc5c5). 5\ub2e8\uacc4 \ud3f4\ubc31 \uc6b0\uc120\uc21c\uc704\ub85c (min, max) \ubd84 \ub2e8\uc704 \uad8c\uc7a5 \uccb4\ub958\uc2dc\uac04\uc744 \ubc18\ud658: 1.\u2026", "file_type": "rationale", "source_file": "src/data/dwell_db.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 23, + "norm_label": "\u1100\u116f\u11ab\u110c\u1161\u11bc \u110e\u1166\u1105\u1172\u1109\u1175\u1100\u1161\u11ab \u1103\u1166\u110b\u1175\u1110\u1165\u1107\u1166\u110b\u1175\u1109\u1173 (\u1112\u1161\u110b\u1175\u1107\u1173\u1105\u1175\u1103\u1173 \u1105\u116e\u11a8\u110b\u1165\u11b8). 5\u1103\u1161\u11ab\u1100\u1168 \u1111\u1169\u11af\u1107\u1162\u11a8 \u110b\u116e\u1109\u1165\u11ab\u1109\u116e\u11ab\u110b\u1171\u1105\u1169 (min, max) \u1107\u116e\u11ab \u1103\u1161\u11ab\u110b\u1171 \u1100\u116f\u11ab\u110c\u1161\u11bc \u110e\u1166\u1105\u1172\u1109\u1175\u1100\u1161\u11ab\u110b\u1173\u11af \u1107\u1161\u11ab\u1112\u116a\u11ab: 1....", + "id": "src_data_dwell_db_rationale_1" }, { - "id": "src_data_dwell_db_rationale_28", "label": "\uc0ac\uc6a9\uc790 \uc785\ub825\uc774 \uad8c\uc7a5 min\uc758 ratio(\uae30\ubcf8 50%) \ubbf8\ub9cc\uc774\uba74 True.", "file_type": "rationale", "source_file": "src/data/dwell_db.py", - "source_location": "L28", - "_origin": "ast" + "source_location": "L30", + "_origin": "ast", + "community": 23, + "norm_label": "\u1109\u1161\u110b\u116d\u11bc\u110c\u1161 \u110b\u1175\u11b8\u1105\u1167\u11a8\u110b\u1175 \u1100\u116f\u11ab\u110c\u1161\u11bc min\u110b\u1174 ratio(\u1100\u1175\u1107\u1169\u11ab 50%) \u1106\u1175\u1106\u1161\u11ab\u110b\u1175\u1106\u1167\u11ab true.", + "id": "src_data_dwell_db_rationale_30" }, { - "id": "src_data_dwell_db_rationale_182", "label": "\uc774\ub984 \uc815\uaddc\ud654: \uacf5\ubc31\u00b7\ud2b9\uc218\ubb38\uc790 \uc81c\uac70 \ud6c4 \uc18c\ubb38\uc790.", "file_type": "rationale", "source_file": "src/data/dwell_db.py", - "source_location": "L182", - "_origin": "ast" + "source_location": "L184", + "_origin": "ast", + "community": 23, + "norm_label": "\u110b\u1175\u1105\u1173\u11b7 \u110c\u1165\u11bc\u1100\u1172\u1112\u116a: \u1100\u1169\u11bc\u1107\u1162\u11a8\u00b7\u1110\u1173\u11a8\u1109\u116e\u1106\u116e\u11ab\u110c\u1161 \u110c\u1166\u1100\u1165 \u1112\u116e \u1109\u1169\u1106\u116e\u11ab\u110c\u1161.", + "id": "src_data_dwell_db_rationale_184" }, { - "id": "src_data_dwell_db_rationale_198", "label": "5\ub2e8\uacc4 \ud3f4\ubc31\uc73c\ub85c \uad8c\uc7a5 \uccb4\ub958\uc2dc\uac04 \ubc18\ud658. \uc778\uc790 ---- name : POI \uc774\ub984 (\ud544\uc218) lcls_systm3 : \"VE0101\" \uac19\uc740\u2026", "file_type": "rationale", "source_file": "src/data/dwell_db.py", - "source_location": "L198", - "_origin": "ast" + "source_location": "L200", + "_origin": "ast", + "community": 23, + "norm_label": "5\u1103\u1161\u11ab\u1100\u1168 \u1111\u1169\u11af\u1107\u1162\u11a8\u110b\u1173\u1105\u1169 \u1100\u116f\u11ab\u110c\u1161\u11bc \u110e\u1166\u1105\u1172\u1109\u1175\u1100\u1161\u11ab \u1107\u1161\u11ab\u1112\u116a\u11ab. \u110b\u1175\u11ab\u110c\u1161 ---- name : poi \u110b\u1175\u1105\u1173\u11b7 (\u1111\u1175\u11af\u1109\u116e) lcls_systm3 : \"ve0101\" \u1100\u1161\u11c0\u110b\u1173\u11ab...", + "id": "src_data_dwell_db_rationale_200" }, { - "id": "src_data_graph_retriever", - "label": "graph_retriever.py", + "label": "evidence_retriever.py", "file_type": "code", - "source_file": "src/data/graph_retriever.py", + "source_file": "src/data/evidence_retriever.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 5, + "norm_label": "evidence_retriever.py", + "id": "src_data_evidence_retriever" }, { - "id": "src_data_graph_retriever_graphretriever", - "label": "GraphRetriever", + "label": "LocalEvidenceRetriever", "file_type": "code", - "source_file": "src/data/graph_retriever.py", - "source_location": "L44", - "_origin": "ast" + "source_file": "src/data/evidence_retriever.py", + "source_location": "L19", + "_origin": "ast", + "community": 5, + "norm_label": "localevidenceretriever", + "id": "src_data_evidence_retriever_localevidenceretriever" }, { - "id": "src_data_graph_retriever_graphretriever_init", "label": ".__init__()", "file_type": "code", - "source_file": "src/data/graph_retriever.py", - "source_location": "L47", - "_origin": "ast" - }, - { - "id": "src_data_graph_retriever_graphretriever_from_env", - "label": ".from_env()", - "file_type": "code", - "source_file": "src/data/graph_retriever.py", - "source_location": "L62", - "_origin": "ast" - }, - { - "id": "src_data_graph_retriever_graphretriever_enabled", - "label": ".enabled()", - "file_type": "code", - "source_file": "src/data/graph_retriever.py", - "source_location": "L71", - "_origin": "ast" + "source_file": "src/data/evidence_retriever.py", + "source_location": "L22", + "_origin": "ast", + "community": 5, + "norm_label": ".__init__()", + "id": "src_data_evidence_retriever_localevidenceretriever_init" }, { - "id": "src_data_graph_retriever_graphretriever_callable", - "label": "._callable()", + "label": "Path", "file_type": "code", - "source_file": "src/data/graph_retriever.py", - "source_location": "L74", - "_origin": "ast" + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 5, + "norm_label": "path", + "id": "src_data_evidence_retriever_py_path" }, { - "id": "src_data_graph_retriever_graphretriever_mark_unreachable", - "label": "._mark_unreachable()", + "label": "._load_places()", "file_type": "code", - "source_file": "src/data/graph_retriever.py", - "source_location": "L78", - "_origin": "ast" + "source_file": "src/data/evidence_retriever.py", + "source_location": "L28", + "_origin": "ast", + "community": 5, + "norm_label": "._load_places()", + "id": "src_data_evidence_retriever_localevidenceretriever_load_places" }, { - "id": "src_data_graph_retriever_graphretriever_close", - "label": ".close()", + "label": ".from_settings()", "file_type": "code", - "source_file": "src/data/graph_retriever.py", - "source_location": "L81", - "_origin": "ast" + "source_file": "src/data/evidence_retriever.py", + "source_location": "L63", + "_origin": "ast", + "community": 31, + "norm_label": ".from_settings()", + "id": "src_data_evidence_retriever_localevidenceretriever_from_settings" }, { - "id": "src_data_graph_retriever_graphretriever_search_places", "label": ".search_places()", "file_type": "code", - "source_file": "src/data/graph_retriever.py", - "source_location": "L85", - "_origin": "ast" + "source_file": "src/data/evidence_retriever.py", + "source_location": "L67", + "_origin": "ast", + "community": 5, + "norm_label": ".search_places()", + "id": "src_data_evidence_retriever_localevidenceretriever_search_places" }, { - "id": "src_data_graph_retriever_graphretriever_find_nearby", "label": ".find_nearby()", "file_type": "code", - "source_file": "src/data/graph_retriever.py", - "source_location": "L111", - "_origin": "ast" + "source_file": "src/data/evidence_retriever.py", + "source_location": "L77", + "_origin": "ast", + "community": 5, + "norm_label": ".find_nearby()", + "id": "src_data_evidence_retriever_localevidenceretriever_find_nearby" }, { - "id": "src_data_graph_retriever_rationale_1", - "label": "Neo4j \uc9c0\uc2dd\uadf8\ub798\ud504 \ub9ac\ud2b8\ub9ac\ubc84 \u2014 Place/Region/NEAR_BY \uadf8\ub798\ud504\uc5d0\uc11c \uadfc\uac70 \uc870\ud68c.\u2026", + "label": "\ub85c\uceec \uc7a5\uc18c \uadfc\uac70 \ub9ac\ud2b8\ub9ac\ubc84. \uac80\uc99d \uc694\uccad\uc774 \uc678\ubd80 \uadf8\ub798\ud504 \uc11c\ubc84\uc5d0 \uc758\uc874\ud558\uc9c0 \uc54a\ub3c4\ub85d \ubc30\ud3ec\ubb3c\uc758 \uc7a5\uc18c CSV\ub97c \uc778\ub371\uc2f1\ud55c\ub2e4. \uc7a5\uc18c \uac80\uc0c9\uacfc \uc88c\ud45c \uae30\ubc18 \uadfc\uc811\u2026", "file_type": "rationale", - "source_file": "src/data/graph_retriever.py", + "source_file": "src/data/evidence_retriever.py", "source_location": "L1", - "_origin": "ast" - }, - { - "id": "src_data_graph_retriever_rationale_45", - "label": "\uc81c\uc8fc \uc9c0\uc2dd\uadf8\ub798\ud504(Neo4j Aura) \ub9ac\ud2b8\ub9ac\ubc84. \ubbf8\uc124\uc815/\uc5f0\uacb0 \uc2e4\ud328 \uc2dc \ube48 \uacb0\uacfc\ub85c \ud3f4\ubc31.", - "file_type": "rationale", - "source_file": "src/data/graph_retriever.py", - "source_location": "L45", - "_origin": "ast" - }, - { - "id": "src_data_graph_retriever_rationale_75", - "label": "\ud638\ucd9c \uac00\ub2a5 \uc5ec\ubd80. \ucd5c\uadfc \uc5f0\uacb0 \uc2e4\ud328 \uc2dc \ucfe8\ub2e4\uc6b4 \ub3d9\uc548 \uc7ac\uc2dc\ub3c4 \ubc31\uc624\ud504 \ube44\uc6a9 \uc5c6\uc774 \uc989\uc2dc \ube48 \uacb0\uacfc\ub85c \ub118\uae34\ub2e4.", - "file_type": "rationale", - "source_file": "src/data/graph_retriever.py", - "source_location": "L75", - "_origin": "ast" + "_origin": "ast", + "community": 5, + "norm_label": "\u1105\u1169\u110f\u1165\u11af \u110c\u1161\u11bc\u1109\u1169 \u1100\u1173\u11ab\u1100\u1165 \u1105\u1175\u1110\u1173\u1105\u1175\u1107\u1165. \u1100\u1165\u11b7\u110c\u1173\u11bc \u110b\u116d\u110e\u1165\u11bc\u110b\u1175 \u110b\u116c\u1107\u116e \u1100\u1173\u1105\u1162\u1111\u1173 \u1109\u1165\u1107\u1165\u110b\u1166 \u110b\u1174\u110c\u1169\u11ab\u1112\u1161\u110c\u1175 \u110b\u1161\u11ad\u1103\u1169\u1105\u1169\u11a8 \u1107\u1162\u1111\u1169\u1106\u116e\u11af\u110b\u1174 \u110c\u1161\u11bc\u1109\u1169 csv\u1105\u1173\u11af \u110b\u1175\u11ab\u1103\u1166\u11a8\u1109\u1175\u11bc\u1112\u1161\u11ab\u1103\u1161. \u110c\u1161\u11bc\u1109\u1169 \u1100\u1165\u11b7\u1109\u1162\u11a8\u1100\u116a \u110c\u116a\u1111\u116d \u1100\u1175\u1107\u1161\u11ab \u1100\u1173\u11ab\u110c\u1165\u11b8...", + "id": "src_data_evidence_retriever_rationale_1" }, { - "id": "src_data_graph_retriever_rationale_86", - "label": "\uc7a5\uc18c\uba85 \ubd80\ubd84\uc77c\uce58 \uac80\uc0c9 \u2014 Region \ucee8\ud14d\uc2a4\ud2b8 \ud3ec\ud568.", + "label": "\uc7a5\uc18c\uba85 \uac80\uc0c9\uacfc \uadfc\uc811 \ub300\uc548 \uc870\ud68c\ub97c \uc81c\uacf5\ud558\ub294 \ub85c\uceec \ub9ac\ud2b8\ub9ac\ubc84.", "file_type": "rationale", - "source_file": "src/data/graph_retriever.py", - "source_location": "L86", - "_origin": "ast" + "source_file": "src/data/evidence_retriever.py", + "source_location": "L20", + "_origin": "ast", + "community": 5, + "norm_label": "\u110c\u1161\u11bc\u1109\u1169\u1106\u1167\u11bc \u1100\u1165\u11b7\u1109\u1162\u11a8\u1100\u116a \u1100\u1173\u11ab\u110c\u1165\u11b8 \u1103\u1162\u110b\u1161\u11ab \u110c\u1169\u1112\u116c\u1105\u1173\u11af \u110c\u1166\u1100\u1169\u11bc\u1112\u1161\u1102\u1173\u11ab \u1105\u1169\u110f\u1165\u11af \u1105\u1175\u1110\u1173\u1105\u1175\u1107\u1165.", + "id": "src_data_evidence_retriever_rationale_20" }, { - "id": "src_data_graph_retriever_rationale_112", - "label": "NEAR_BY \uadf8\ub798\ud504\uc5d0\uc11c \ub3c4\ubcf4 \uadfc\uc811 \ub300\uccb4 \ud6c4\ubcf4 \uc870\ud68c (\uac70\ub9ac\uc21c).", + "label": "\uc124\uc815 \uae30\ubc18 \uc0dd\uc131\uc790. \uc678\ubd80 \ud658\uacbd\ubcc0\uc218\ub098 \ub124\ud2b8\uc6cc\ud06c\ub97c \uc77d\uc9c0 \uc54a\ub294\ub2e4.", "file_type": "rationale", - "source_file": "src/data/graph_retriever.py", - "source_location": "L112", - "_origin": "ast" + "source_file": "src/data/evidence_retriever.py", + "source_location": "L64", + "_origin": "ast", + "community": 31, + "norm_label": "\u1109\u1165\u11af\u110c\u1165\u11bc \u1100\u1175\u1107\u1161\u11ab \u1109\u1162\u11bc\u1109\u1165\u11bc\u110c\u1161. \u110b\u116c\u1107\u116e \u1112\u116a\u11ab\u1100\u1167\u11bc\u1107\u1167\u11ab\u1109\u116e\u1102\u1161 \u1102\u1166\u1110\u1173\u110b\u116f\u110f\u1173\u1105\u1173\u11af \u110b\u1175\u11b0\u110c\u1175 \u110b\u1161\u11ad\u1102\u1173\u11ab\u1103\u1161.", + "id": "src_data_evidence_retriever_rationale_64" }, { - "id": "src_data_hours_db", "label": "hours_db.py", "file_type": "code", "source_file": "src/data/hours_db.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "hours_db.py", + "id": "src_data_hours_db" }, { - "id": "src_data_hours_db_hoursspec", "label": "HoursSpec", "file_type": "code", "source_file": "src/data/hours_db.py", - "source_location": "L14", - "_origin": "ast" + "source_location": "L16", + "_origin": "ast", + "community": 19, + "norm_label": "hoursspec", + "id": "src_data_hours_db_hoursspec" }, { - "id": "src_data_hours_db_resolve_hours", "label": "resolve_hours()", "file_type": "code", "source_file": "src/data/hours_db.py", - "source_location": "L245", - "_origin": "ast" + "source_location": "L355", + "_origin": "ast", + "community": 19, + "norm_label": "resolve_hours()", + "id": "src_data_hours_db_resolve_hours" }, { - "id": "src_data_hours_db_to_minutes", "label": "to_minutes()", "file_type": "code", "source_file": "src/data/hours_db.py", - "source_location": "L267", - "_origin": "ast" + "source_location": "L377", + "_origin": "ast", + "community": 19, + "norm_label": "to_minutes()", + "id": "src_data_hours_db_to_minutes" }, { - "id": "src_data_hours_db_is_open_at", "label": "is_open_at()", "file_type": "code", "source_file": "src/data/hours_db.py", - "source_location": "L272", - "_origin": "ast" + "source_location": "L382", + "_origin": "ast", + "community": 19, + "norm_label": "is_open_at()", + "id": "src_data_hours_db_is_open_at" }, { - "id": "src_data_hours_db_rationale_1", "label": "hours_db \u2014 \uce74\ud14c\uace0\ub9ac\u00b7\ud0a4\uc6cc\ub4dc \uae30\ubc18 \uc6b4\uc601\uc2dc\uac04 \ub8e9\uc5c5. \uc0ac\uc6a9: from src.data.hours_db import resolve_hours\u2026", "file_type": "rationale", "source_file": "src/data/hours_db.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 19, + "norm_label": "hours_db \u2014 \u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175\u00b7\u110f\u1175\u110b\u116f\u1103\u1173 \u1100\u1175\u1107\u1161\u11ab \u110b\u116e\u11ab\u110b\u1167\u11bc\u1109\u1175\u1100\u1161\u11ab \u1105\u116e\u11a8\u110b\u1165\u11b8. \u1109\u1161\u110b\u116d\u11bc: from src.data.hours_db import resolve_hours...", + "id": "src_data_hours_db_rationale_1" }, { - "id": "src_data_hours_db_rationale_246", "label": "\uc7a5\uc18c \uc774\ub984 + \uce74\ud14c\uace0\ub9ac\ud78c\ud2b8 \u2192 HoursSpec. \ub9e4\uce6d \uc6b0\uc120\uc21c\uc704: \ud0a4\uc6cc\ub4dc > \uce74\ud14c\uace0\ub9ac\ud78c\ud2b8 > default_attraction.", "file_type": "rationale", "source_file": "src/data/hours_db.py", - "source_location": "L246", - "_origin": "ast" + "source_location": "L356", + "_origin": "ast", + "community": 19, + "norm_label": "\u110c\u1161\u11bc\u1109\u1169 \u110b\u1175\u1105\u1173\u11b7 + \u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175\u1112\u1175\u11ab\u1110\u1173 \u2192 hoursspec. \u1106\u1162\u110e\u1175\u11bc \u110b\u116e\u1109\u1165\u11ab\u1109\u116e\u11ab\u110b\u1171: \u110f\u1175\u110b\u116f\u1103\u1173 > \u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175\u1112\u1175\u11ab\u1110\u1173 > default_attraction.", + "id": "src_data_hours_db_rationale_356" }, { - "id": "src_data_hours_db_rationale_273", "label": "\uc8fc\uc5b4\uc9c4 \uc694\uc77c\u00b7\uc2dc\uac01\uc5d0 \uc601\uc5c5 \uc911\uc778\uc9c0 (\uc8fc\uc758: \ud734\ubb34\uc77c + \ube0c\ub808\uc774\ud06c \ud0c0\uc784 \uace0\ub824).", "file_type": "rationale", "source_file": "src/data/hours_db.py", - "source_location": "L273", - "_origin": "ast" + "source_location": "L383", + "_origin": "ast", + "community": 19, + "norm_label": "\u110c\u116e\u110b\u1165\u110c\u1175\u11ab \u110b\u116d\u110b\u1175\u11af\u00b7\u1109\u1175\u1100\u1161\u11a8\u110b\u1166 \u110b\u1167\u11bc\u110b\u1165\u11b8 \u110c\u116e\u11bc\u110b\u1175\u11ab\u110c\u1175 (\u110c\u116e\u110b\u1174: \u1112\u1172\u1106\u116e\u110b\u1175\u11af + \u1107\u1173\u1105\u1166\u110b\u1175\u110f\u1173 \u1110\u1161\u110b\u1175\u11b7 \u1100\u1169\u1105\u1167).", + "id": "src_data_hours_db_rationale_383" }, { - "id": "src_data_kakao_local", "label": "kakao_local.py", "file_type": "code", "source_file": "src/data/kakao_local.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 14, + "norm_label": "kakao_local.py", + "id": "src_data_kakao_local" }, { - "id": "src_data_kakao_local_kakaolocalclient", "label": "KakaoLocalClient", "file_type": "code", "source_file": "src/data/kakao_local.py", - "source_location": "L24", - "_origin": "ast" + "source_location": "L23", + "_origin": "ast", + "community": 14, + "norm_label": "kakaolocalclient", + "id": "src_data_kakao_local_kakaolocalclient" }, { - "id": "src_data_kakao_local_kakaolocalclient_init", "label": ".__init__()", "file_type": "code", "source_file": "src/data/kakao_local.py", - "source_location": "L27", - "_origin": "ast" + "source_location": "L26", + "_origin": "ast", + "community": 14, + "norm_label": ".__init__()", + "id": "src_data_kakao_local_kakaolocalclient_init" }, { - "id": "src_data_kakao_local_kakaolocalclient_from_env", - "label": ".from_env()", + "label": ".from_settings()", "file_type": "code", "source_file": "src/data/kakao_local.py", - "source_location": "L36", - "_origin": "ast" + "source_location": "L35", + "_origin": "ast", + "community": 14, + "norm_label": ".from_settings()", + "id": "src_data_kakao_local_kakaolocalclient_from_settings" }, { - "id": "src_data_kakao_local_kakaolocalclient_enabled", "label": ".enabled()", "file_type": "code", "source_file": "src/data/kakao_local.py", - "source_location": "L40", - "_origin": "ast" + "source_location": "L41", + "_origin": "ast", + "community": 14, + "norm_label": ".enabled()", + "id": "src_data_kakao_local_kakaolocalclient_enabled" }, { - "id": "src_data_kakao_local_kakaolocalclient_search_keyword", "label": ".search_keyword()", "file_type": "code", "source_file": "src/data/kakao_local.py", - "source_location": "L43", - "_origin": "ast" + "source_location": "L44", + "_origin": "ast", + "community": 14, + "norm_label": ".search_keyword()", + "id": "src_data_kakao_local_kakaolocalclient_search_keyword" }, { - "id": "src_data_kakao_local_kakaolocalclient_search_keyword_list", "label": ".search_keyword_list()", "file_type": "code", "source_file": "src/data/kakao_local.py", - "source_location": "L82", - "_origin": "ast" + "source_location": "L83", + "_origin": "ast", + "community": 14, + "norm_label": ".search_keyword_list()", + "id": "src_data_kakao_local_kakaolocalclient_search_keyword_list" }, { - "id": "src_data_kakao_local_kakaolocalclient_geocode_address", "label": ".geocode_address()", "file_type": "code", "source_file": "src/data/kakao_local.py", - "source_location": "L125", - "_origin": "ast" + "source_location": "L126", + "_origin": "ast", + "community": 14, + "norm_label": ".geocode_address()", + "id": "src_data_kakao_local_kakaolocalclient_geocode_address" }, { - "id": "src_data_kakao_local_rationale_1", "label": "\uce74\uce74\uc624 \ub85c\uceec \ud0a4\uc6cc\ub4dc \uc7a5\uc18c \uac80\uc0c9 \ud074\ub77c\uc774\uc5b8\ud2b8 (httpx + Graceful Fallback). \uc2dd\ub2f9\u00b7\uce74\ud398 \ub4f1 TourAPI\u2026", "file_type": "rationale", "source_file": "src/data/kakao_local.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 14, + "norm_label": "\u110f\u1161\u110f\u1161\u110b\u1169 \u1105\u1169\u110f\u1165\u11af \u110f\u1175\u110b\u116f\u1103\u1173 \u110c\u1161\u11bc\u1109\u1169 \u1100\u1165\u11b7\u1109\u1162\u11a8 \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173 (httpx + graceful fallback). \u1109\u1175\u11a8\u1103\u1161\u11bc\u00b7\u110f\u1161\u1111\u1166 \u1103\u1173\u11bc tourapi...", + "id": "src_data_kakao_local_rationale_1" }, { - "id": "src_data_kakao_local_rationale_25", "label": "\uce74\uce74\uc624 \ub85c\uceec \ud0a4\uc6cc\ub4dc \uac80\uc0c9. \uc778\uba54\ubaa8\ub9ac \uce90\uc2dc\ub85c \ub3d9\uc77c \uc9c8\uc758 \uc911\ubcf5 \ud638\ucd9c\uc744 \ub9c9\ub294\ub2e4.", "file_type": "rationale", "source_file": "src/data/kakao_local.py", - "source_location": "L25", - "_origin": "ast" + "source_location": "L24", + "_origin": "ast", + "community": 14, + "norm_label": "\u110f\u1161\u110f\u1161\u110b\u1169 \u1105\u1169\u110f\u1165\u11af \u110f\u1175\u110b\u116f\u1103\u1173 \u1100\u1165\u11b7\u1109\u1162\u11a8. \u110b\u1175\u11ab\u1106\u1166\u1106\u1169\u1105\u1175 \u110f\u1162\u1109\u1175\u1105\u1169 \u1103\u1169\u11bc\u110b\u1175\u11af \u110c\u1175\u11af\u110b\u1174 \u110c\u116e\u11bc\u1107\u1169\u11a8 \u1112\u1169\u110e\u116e\u11af\u110b\u1173\u11af \u1106\u1161\u11a8\u1102\u1173\u11ab\u1103\u1161.", + "id": "src_data_kakao_local_rationale_24" }, { - "id": "src_data_kakao_local_rationale_44", "label": "\uc7a5\uc18c\uba85\uc73c\ub85c \uac00\uc7a5 \uad00\ub828\ub3c4 \ub192\uc740 1\uac74\uc744 \uc870\ud68c. \uc2e4\ud328 \uc2dc None.", "file_type": "rationale", "source_file": "src/data/kakao_local.py", - "source_location": "L44", - "_origin": "ast" + "source_location": "L45", + "_origin": "ast", + "community": 14, + "norm_label": "\u110c\u1161\u11bc\u1109\u1169\u1106\u1167\u11bc\u110b\u1173\u1105\u1169 \u1100\u1161\u110c\u1161\u11bc \u1100\u116a\u11ab\u1105\u1167\u11ab\u1103\u1169 \u1102\u1169\u11c1\u110b\u1173\u11ab 1\u1100\u1165\u11ab\u110b\u1173\u11af \u110c\u1169\u1112\u116c. \u1109\u1175\u11af\u1111\u1162 \u1109\u1175 none.", + "id": "src_data_kakao_local_rationale_45" }, { - "id": "src_data_kakao_local_rationale_83", "label": "\ud0a4\uc6cc\ub4dc\ub85c \ub2e4\uc218 \ud6c4\ubcf4\ub97c \uc870\ud68c(\uac80\uc0c9 \ud328\ub110 \ubcf4\uac15\uc6a9). \uc2e4\ud328 \uc2dc \ube48 \ub9ac\uc2a4\ud2b8.", "file_type": "rationale", "source_file": "src/data/kakao_local.py", - "source_location": "L83", - "_origin": "ast" + "source_location": "L84", + "_origin": "ast", + "community": 14, + "norm_label": "\u110f\u1175\u110b\u116f\u1103\u1173\u1105\u1169 \u1103\u1161\u1109\u116e \u1112\u116e\u1107\u1169\u1105\u1173\u11af \u110c\u1169\u1112\u116c(\u1100\u1165\u11b7\u1109\u1162\u11a8 \u1111\u1162\u1102\u1165\u11af \u1107\u1169\u1100\u1161\u11bc\u110b\u116d\u11bc). \u1109\u1175\u11af\u1111\u1162 \u1109\u1175 \u1107\u1175\u11ab \u1105\u1175\u1109\u1173\u1110\u1173.", + "id": "src_data_kakao_local_rationale_84" }, { - "id": "src_data_kakao_local_rationale_126", "label": "\ub3c4\ub85c\uba85\uc8fc\uc18c \u2192 (\uc704\ub3c4, \uacbd\ub3c4). \uacb0\uce21 \uc88c\ud45c \ubcf4\uc815\uc6a9. \uc2e4\ud328 \uc2dc None.", "file_type": "rationale", "source_file": "src/data/kakao_local.py", - "source_location": "L126", - "_origin": "ast" + "source_location": "L127", + "_origin": "ast", + "community": 14, + "norm_label": "\u1103\u1169\u1105\u1169\u1106\u1167\u11bc\u110c\u116e\u1109\u1169 \u2192 (\u110b\u1171\u1103\u1169, \u1100\u1167\u11bc\u1103\u1169). \u1100\u1167\u11af\u110e\u1173\u11a8 \u110c\u116a\u1111\u116d \u1107\u1169\u110c\u1165\u11bc\u110b\u116d\u11bc. \u1109\u1175\u11af\u1111\u1162 \u1109\u1175 none.", + "id": "src_data_kakao_local_rationale_127" }, { - "id": "src_data_models", "label": "models.py", "file_type": "code", "source_file": "src/data/models.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 5, + "norm_label": "models.py", + "id": "src_data_models" }, { - "id": "src_data_models_kakaoplace", - "label": "KakaoPlace", + "label": "_validate_hhmm()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L22", - "_origin": "ast" + "source_location": "L20", + "_origin": "ast", + "community": 0, + "norm_label": "_validate_hhmm()", + "id": "src_data_models_validate_hhmm" }, { - "id": "src_data_models_py_basemodel", - "label": "BaseModel", + "label": "_validate_iso_date()", "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_file": "src/data/models.py", + "source_location": "L29", + "_origin": "ast", + "community": 0, + "norm_label": "_validate_iso_date()", + "id": "src_data_models_validate_iso_date" + }, + { + "label": "KakaoPlace", + "file_type": "code", + "source_file": "src/data/models.py", + "source_location": "L47", + "_origin": "ast", + "community": 14, + "norm_label": "kakaoplace", + "id": "src_data_models_kakaoplace" + }, + { + "label": "ExternalPlaceResolution", + "file_type": "code", + "source_file": "src/data/models.py", + "source_location": "L59", + "_origin": "ast", + "community": 5, + "norm_label": "externalplaceresolution", + "id": "src_data_models_externalplaceresolution" }, { - "id": "src_data_models_placeevidence", "label": "PlaceEvidence", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L34", - "_origin": "ast" + "source_location": "L72", + "_origin": "ast", + "community": 5, + "norm_label": "placeevidence", + "id": "src_data_models_placeevidence" }, { - "id": "src_data_models_hardfail", "label": "HardFail", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L47", - "_origin": "ast" + "source_location": "L85", + "_origin": "ast", + "community": 5, + "norm_label": "hardfail", + "id": "src_data_models_hardfail" }, { - "id": "src_data_models_warning", "label": "Warning", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L64", - "_origin": "ast" + "source_location": "L102", + "_origin": "ast", + "community": 5, + "norm_label": "warning", + "id": "src_data_models_warning" }, { - "id": "src_data_models_scores", "label": "Scores", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L81", - "_origin": "ast" - }, - { - "id": "model_validator", - "label": "model_validator", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L119", + "_origin": "ast", + "community": 5, + "norm_label": "scores", + "id": "src_data_models_scores" }, { - "id": "src_data_models_scores_validate_ranges", "label": ".validate_ranges()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L89", - "_origin": "ast" + "source_location": "L127", + "_origin": "ast", + "community": 61, + "norm_label": ".validate_ranges()", + "id": "src_data_models_scores_validate_ranges" }, { - "id": "src_data_models_alternativepoi", "label": "AlternativePOI", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L97", - "_origin": "ast" + "source_location": "L135", + "_origin": "ast", + "community": 5, + "norm_label": "alternativepoi", + "id": "src_data_models_alternativepoi" }, { - "id": "src_data_models_poi", "label": "POI", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L105", - "_origin": "ast" + "source_location": "L143", + "_origin": "ast", + "community": 17, + "norm_label": "poi", + "id": "src_data_models_poi" }, { - "id": "field_validator", "label": "field_validator", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 0, + "norm_label": "field_validator", + "id": "src_data_models_py_field_validator" }, { - "id": "src_data_models_poi_poi_id_not_empty", "label": ".poi_id_not_empty()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L121", - "_origin": "ast" + "source_location": "L159", + "_origin": "ast", + "community": 0, + "norm_label": ".poi_id_not_empty()", + "id": "src_data_models_poi_poi_id_not_empty" }, { - "id": "src_data_models_poi_validate_lat", "label": ".validate_lat()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L128", - "_origin": "ast" + "source_location": "L166", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_lat()", + "id": "src_data_models_poi_validate_lat" }, { - "id": "src_data_models_poi_validate_lng", "label": ".validate_lng()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L135", - "_origin": "ast" + "source_location": "L173", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_lng()", + "id": "src_data_models_poi_validate_lng" }, { - "id": "src_data_models_poi_validate_hhmm", "label": ".validate_hhmm()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L142", - "_origin": "ast" + "source_location": "L180", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_hhmm()", + "id": "src_data_models_poi_validate_hhmm" }, { - "id": "src_data_models_poi_validate_duration", "label": ".validate_duration()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L152", - "_origin": "ast" + "source_location": "L190", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_duration()", + "id": "src_data_models_poi_validate_duration" }, { - "id": "src_data_models_placeinput", "label": "PlaceInput", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L158", - "_origin": "ast" + "source_location": "L196", + "_origin": "ast", + "community": 31, + "norm_label": "placeinput", + "id": "src_data_models_placeinput" }, { - "id": "src_data_models_placeinput_validate_order", "label": ".validate_order()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L165", - "_origin": "ast" + "source_location": "L203", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_order()", + "id": "src_data_models_placeinput_validate_order" }, { - "id": "src_data_models_dayplan", "label": "DayPlan", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L173", - "_origin": "ast" + "source_location": "L211", + "_origin": "ast", + "community": 31, + "norm_label": "dayplan", + "id": "src_data_models_dayplan" }, { - "id": "src_data_models_dayplan_validate_place_count", "label": ".validate_place_count()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L179", - "_origin": "ast" + "source_location": "L218", + "_origin": "ast", + "community": 31, + "norm_label": ".validate_place_count()", + "id": "src_data_models_dayplan_validate_place_count" }, { - "id": "src_data_models_dayplan_auto_fill_visit_order", "label": ".auto_fill_visit_order()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L187", - "_origin": "ast" + "source_location": "L226", + "_origin": "ast", + "community": 61, + "norm_label": ".auto_fill_visit_order()", + "id": "src_data_models_dayplan_auto_fill_visit_order" }, { - "id": "src_data_models_itineraryplan", "label": "ItineraryPlan", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L195", - "_origin": "ast" + "source_location": "L234", + "_origin": "ast", + "community": 6, + "norm_label": "itineraryplan", + "id": "src_data_models_itineraryplan" }, { - "id": "src_data_models_itineraryplan_validate_days", - "label": ".validate_days()", + "label": ".validate_date()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L204", - "_origin": "ast" + "source_location": "L244", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_date()", + "id": "src_data_models_itineraryplan_validate_date" }, { - "id": "computed_field", - "label": "computed_field", + "label": ".validate_start_time()", "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_file": "src/data/models.py", + "source_location": "L249", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_start_time()", + "id": "src_data_models_itineraryplan_validate_start_time" + }, + { + "label": ".validate_days()", + "file_type": "code", + "source_file": "src/data/models.py", + "source_location": "L254", + "_origin": "ast", + "community": 31, + "norm_label": ".validate_days()", + "id": "src_data_models_itineraryplan_validate_days" }, { - "id": "src_data_models_itineraryplan_travel_days", "label": ".travel_days()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L212", - "_origin": "ast" + "source_location": "L262", + "_origin": "ast", + "community": 6, + "norm_label": ".travel_days()", + "id": "src_data_models_itineraryplan_travel_days" }, { - "id": "src_data_models_itineraryplan_plan_id", "label": ".plan_id()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L216", - "_origin": "ast" + "source_location": "L266", + "_origin": "ast", + "community": 6, + "norm_label": ".plan_id()", + "id": "src_data_models_itineraryplan_plan_id" }, { - "id": "src_data_models_validationresult", "label": "ValidationResult", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L225", - "_origin": "ast" + "source_location": "L275", + "_origin": "ast", + "community": 17, + "norm_label": "validationresult", + "id": "src_data_models_validationresult" }, { - "id": "src_data_models_validationresult_validate_score_range", "label": ".validate_score_range()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L244", - "_origin": "ast" + "source_location": "L294", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_score_range()", + "id": "src_data_models_validationresult_validate_score_range" }, { - "id": "src_data_models_validationresult_hard_fail_score_cap", "label": ".hard_fail_score_cap()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L250", - "_origin": "ast" + "source_location": "L300", + "_origin": "ast", + "community": 61, + "norm_label": ".hard_fail_score_cap()", + "id": "src_data_models_validationresult_hard_fail_score_cap" }, { - "id": "src_data_models_settings", "label": "Settings", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L256", - "_origin": "ast" - }, - { - "id": "basesettings", - "label": "BaseSettings", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L306", + "_origin": "ast", + "community": 16, + "norm_label": "settings", + "id": "src_data_models_settings" }, { - "id": "src_data_models_settings_fill_gov_api_keys", "label": ".fill_gov_api_keys()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L269", - "_origin": "ast" + "source_location": "L323", + "_origin": "ast", + "community": 61, + "norm_label": ".fill_gov_api_keys()", + "id": "src_data_models_settings_fill_gov_api_keys" }, { - "id": "src_data_models_vrptwplace", "label": "VRPTWPlace", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L283", - "_origin": "ast" + "source_location": "L337", + "_origin": "ast", + "community": 30, + "norm_label": "vrptwplace", + "id": "src_data_models_vrptwplace" }, { - "id": "src_data_models_vrptwplace_validate_hhmm", "label": ".validate_hhmm()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L294", - "_origin": "ast" + "source_location": "L348", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_hhmm()", + "id": "src_data_models_vrptwplace_validate_hhmm" }, { - "id": "src_data_models_vrptwplace_validate_lat", "label": ".validate_lat()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L304", - "_origin": "ast" + "source_location": "L353", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_lat()", + "id": "src_data_models_vrptwplace_validate_lat" }, { - "id": "src_data_models_vrptwplace_validate_lng", "label": ".validate_lng()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L311", - "_origin": "ast" + "source_location": "L360", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_lng()", + "id": "src_data_models_vrptwplace_validate_lng" }, { - "id": "src_data_models_vrptwplace_validate_stay", "label": ".validate_stay()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L318", - "_origin": "ast" + "source_location": "L367", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_stay()", + "id": "src_data_models_vrptwplace_validate_stay" }, { - "id": "src_data_models_vrptwplace_open_minutes", "label": ".open_minutes()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L324", - "_origin": "ast" + "source_location": "L373", + "_origin": "ast", + "community": 30, + "norm_label": ".open_minutes()", + "id": "src_data_models_vrptwplace_open_minutes" }, { - "id": "src_data_models_vrptwplace_close_minutes", "label": ".close_minutes()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L329", - "_origin": "ast" + "source_location": "L378", + "_origin": "ast", + "community": 30, + "norm_label": ".close_minutes()", + "id": "src_data_models_vrptwplace_close_minutes" }, { - "id": "src_data_models_vrptwday", "label": "VRPTWDay", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L334", - "_origin": "ast" + "source_location": "L383", + "_origin": "ast", + "community": 12, + "norm_label": "vrptwday", + "id": "src_data_models_vrptwday" }, { - "id": "src_data_models_vrptwday_at_least_one", "label": ".at_least_one()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L339", - "_origin": "ast" + "source_location": "L388", + "_origin": "ast", + "community": 0, + "norm_label": ".at_least_one()", + "id": "src_data_models_vrptwday_at_least_one" }, { - "id": "src_data_models_vrptwrequest", "label": "VRPTWRequest", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L345", - "_origin": "ast" + "source_location": "L394", + "_origin": "ast", + "community": 4, + "norm_label": "vrptwrequest", + "id": "src_data_models_vrptwrequest" + }, + { + "label": ".validate_start_time()", + "file_type": "code", + "source_file": "src/data/models.py", + "source_location": "L400", + "_origin": "ast", + "community": 0, + "norm_label": ".validate_start_time()", + "id": "src_data_models_vrptwrequest_validate_start_time" }, { - "id": "src_data_models_vrptwrequest_at_least_one_day", "label": ".at_least_one_day()", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L350", - "_origin": "ast" + "source_location": "L405", + "_origin": "ast", + "community": 4, + "norm_label": ".at_least_one_day()", + "id": "src_data_models_vrptwrequest_at_least_one_day" }, { - "id": "src_data_models_deepdiveitem", "label": "DeepDiveItem", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L356", - "_origin": "ast" + "source_location": "L411", + "_origin": "ast", + "community": 15, + "norm_label": "deepdiveitem", + "id": "src_data_models_deepdiveitem" }, { - "id": "src_data_models_explanationitem", "label": "ExplanationItem", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L363", - "_origin": "ast" + "source_location": "L418", + "_origin": "ast", + "community": 5, + "norm_label": "explanationitem", + "id": "src_data_models_explanationitem" }, { - "id": "src_data_models_dayroutecomparison", "label": "DayRouteComparison", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L374", - "_origin": "ast" + "source_location": "L430", + "_origin": "ast", + "community": 15, + "norm_label": "dayroutecomparison", + "id": "src_data_models_dayroutecomparison" }, { - "id": "src_data_models_vrptwresult", "label": "VRPTWResult", "file_type": "code", "source_file": "src/data/models.py", - "source_location": "L382", - "_origin": "ast" + "source_location": "L438", + "_origin": "ast", + "community": 4, + "norm_label": "vrptwresult", + "id": "src_data_models_vrptwresult" }, { - "id": "src_data_models_rationale_1", "label": "Pydantic models for travel plan validator (main app + VRPTW engine). NOTE: from\u2026", "file_type": "rationale", "source_file": "src/data/models.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 5, + "norm_label": "pydantic models for travel plan validator (main app + vrptw engine). note: from...", + "id": "src_data_models_rationale_1" }, { - "id": "src_data_models_rationale_23", "label": "\uce74\uce74\uc624 \ub85c\uceec \ud0a4\uc6cc\ub4dc \uac80\uc0c9 \uacb0\uacfc 1\uac74 (\uc88c\ud45c\u00b7\uce74\ud14c\uace0\ub9ac\u00b7\uc8fc\uc18c).", "file_type": "rationale", "source_file": "src/data/models.py", - "source_location": "L23", - "_origin": "ast" + "source_location": "L48", + "_origin": "ast", + "community": 14, + "norm_label": "\u110f\u1161\u110f\u1161\u110b\u1169 \u1105\u1169\u110f\u1165\u11af \u110f\u1175\u110b\u116f\u1103\u1173 \u1100\u1165\u11b7\u1109\u1162\u11a8 \u1100\u1167\u11af\u1100\u116a 1\u1100\u1165\u11ab (\u110c\u116a\u1111\u116d\u00b7\u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175\u00b7\u110c\u116e\u1109\u1169).", + "id": "src_data_models_rationale_48" }, { - "id": "src_data_models_rationale_35", - "label": "\uc9c0\uc2dd\uadf8\ub798\ud504(Neo4j)\uc5d0\uc11c \uac80\uc0c9\ub41c \uc7a5\uc18c \uadfc\uac70 1\uac74 (Region \ucee8\ud14d\uc2a4\ud2b8 \ud3ec\ud568).", + "label": "\uc678\ubd80 \uc7a5\uc18c \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \ubc18\ud658\ud558\ub294 \uc815\uaddc\ud654\ub41c \uc7a5\uc18c \ud6c4\ubcf4.", "file_type": "rationale", "source_file": "src/data/models.py", - "source_location": "L35", - "_origin": "ast" + "source_location": "L60", + "_origin": "ast", + "community": 5, + "norm_label": "\u110b\u116c\u1107\u116e \u110c\u1161\u11bc\u1109\u1169 \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173\u1100\u1161 \u1107\u1161\u11ab\u1112\u116a\u11ab\u1112\u1161\u1102\u1173\u11ab \u110c\u1165\u11bc\u1100\u1172\u1112\u116a\u1103\u116c\u11ab \u110c\u1161\u11bc\u1109\u1169 \u1112\u116e\u1107\u1169.", + "id": "src_data_models_rationale_60" + }, + { + "label": "\ub85c\uceec \uc7a5\uc18c \uadfc\uac70 \uac80\uc0c9 \uacb0\uacfc 1\uac74 (Region \ucee8\ud14d\uc2a4\ud2b8 \ud3ec\ud568).", + "file_type": "rationale", + "source_file": "src/data/models.py", + "source_location": "L73", + "_origin": "ast", + "community": 5, + "norm_label": "\u1105\u1169\u110f\u1165\u11af \u110c\u1161\u11bc\u1109\u1169 \u1100\u1173\u11ab\u1100\u1165 \u1100\u1165\u11b7\u1109\u1162\u11a8 \u1100\u1167\u11af\u1100\u116a 1\u1100\u1165\u11ab (region \u110f\u1165\u11ab\u1110\u1166\u11a8\u1109\u1173\u1110\u1173 \u1111\u1169\u1112\u1161\u11b7).", + "id": "src_data_models_rationale_73" }, { - "id": "src_data_models_rationale_174", "label": "\ud558\ub8e8 \uc77c\uc815 \u2014 \uc7a5\uc18c \uc774\ub984\uacfc \ubc29\ubb38 \uc21c\uc11c \uc785\ub825.", "file_type": "rationale", "source_file": "src/data/models.py", - "source_location": "L174", - "_origin": "ast" + "source_location": "L212", + "_origin": "ast", + "community": 31, + "norm_label": "\u1112\u1161\u1105\u116e \u110b\u1175\u11af\u110c\u1165\u11bc \u2014 \u110c\u1161\u11bc\u1109\u1169 \u110b\u1175\u1105\u1173\u11b7\u1100\u116a \u1107\u1161\u11bc\u1106\u116e\u11ab \u1109\u116e\u11ab\u1109\u1165 \u110b\u1175\u11b8\u1105\u1167\u11a8.", + "id": "src_data_models_rationale_212" }, { - "id": "src_data_models_rationale_188", "label": "visit_order \ubbf8\uc785\ub825 \uc2dc \ud574\ub2f9 \uc77c\uc790 \ub0b4 \ub9ac\uc2a4\ud2b8 \uc704\uce58(1-based)\ub85c \uc790\ub3d9 \ud560\ub2f9.", "file_type": "rationale", "source_file": "src/data/models.py", - "source_location": "L188", - "_origin": "ast" + "source_location": "L227", + "_origin": "ast", + "community": 61, + "norm_label": "visit_order \u1106\u1175\u110b\u1175\u11b8\u1105\u1167\u11a8 \u1109\u1175 \u1112\u1162\u1103\u1161\u11bc \u110b\u1175\u11af\u110c\u1161 \u1102\u1162 \u1105\u1175\u1109\u1173\u1110\u1173 \u110b\u1171\u110e\u1175(1-based)\u1105\u1169 \u110c\u1161\u1103\u1169\u11bc \u1112\u1161\u11af\u1103\u1161\u11bc.", + "id": "src_data_models_rationale_227" }, { - "id": "src_data_models_rationale_270", "label": "wellness_api_key / barrier_free_api_key \ubbf8\uc124\uc815 \uc2dc tour_api_key\ub85c \ub300\uccb4.", "file_type": "rationale", "source_file": "src/data/models.py", - "source_location": "L270", - "_origin": "ast" + "source_location": "L324", + "_origin": "ast", + "community": 61, + "norm_label": "wellness_api_key / barrier_free_api_key \u1106\u1175\u1109\u1165\u11af\u110c\u1165\u11bc \u1109\u1175 tour_api_key\u1105\u1169 \u1103\u1162\u110e\u1166.", + "id": "src_data_models_rationale_324" }, { - "id": "src_data_models_rationale_364", "label": "ExplainEngine\uc774 \uc0dd\uc131\ud558\ub294 4\ub2e8\uacc4 \uc124\uba85 \ud56d\ubaa9.", "file_type": "rationale", "source_file": "src/data/models.py", - "source_location": "L364", - "_origin": "ast" + "source_location": "L419", + "_origin": "ast", + "community": 5, + "norm_label": "explainengine\u110b\u1175 \u1109\u1162\u11bc\u1109\u1165\u11bc\u1112\u1161\u1102\u1173\u11ab 4\u1103\u1161\u11ab\u1100\u1168 \u1109\u1165\u11af\u1106\u1167\u11bc \u1112\u1161\u11bc\u1106\u1169\u11a8.", + "id": "src_data_models_rationale_419" }, { - "id": "src_data_party_config", "label": "party_config.py", "file_type": "code", "source_file": "src/data/party_config.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 20, + "norm_label": "party_config.py", + "id": "src_data_party_config" }, { - "id": "src_data_party_config_partyprofile", "label": "PartyProfile", "file_type": "code", "source_file": "src/data/party_config.py", - "source_location": "L19", - "_origin": "ast" + "source_location": "L20", + "_origin": "ast", + "community": 20, + "norm_label": "partyprofile", + "id": "src_data_party_config_partyprofile" }, { - "id": "src_data_party_config_get_party_profile", "label": "get_party_profile()", "file_type": "code", "source_file": "src/data/party_config.py", - "source_location": "L36", - "_origin": "ast" + "source_location": "L37", + "_origin": "ast", + "community": 20, + "norm_label": "get_party_profile()", + "id": "src_data_party_config_get_party_profile" }, { - "id": "src_data_party_config_rationale_1", "label": "\ub3d9\ud589 \uc720\ud615\ubcc4 \uc774\ub3d9 \uc18d\ub3c4 \ubcf4\uc815 \uacc4\uc218 \ubc0f \ud53c\ub85c\ub3c4 \uc784\uacc4\uac12. \uc774\ub3d9\uc218\ub2e8\uc740 \ud56d\uc0c1 \uc790\ub3d9\ucc28\uc774\ubbc0\ub85c speed_factor\ub294 Haversine \ud3f4\ubc31 \uac70\ub9ac \uae30\ubc18\u2026", "file_type": "rationale", "source_file": "src/data/party_config.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 20, + "norm_label": "\u1103\u1169\u11bc\u1112\u1162\u11bc \u110b\u1172\u1112\u1167\u11bc\u1107\u1167\u11af \u110b\u1175\u1103\u1169\u11bc \u1109\u1169\u11a8\u1103\u1169 \u1107\u1169\u110c\u1165\u11bc \u1100\u1168\u1109\u116e \u1106\u1175\u11be \u1111\u1175\u1105\u1169\u1103\u1169 \u110b\u1175\u11b7\u1100\u1168\u1100\u1161\u11b9. \u110b\u1175\u1103\u1169\u11bc\u1109\u116e\u1103\u1161\u11ab\u110b\u1173\u11ab \u1112\u1161\u11bc\u1109\u1161\u11bc \u110c\u1161\u1103\u1169\u11bc\u110e\u1161\u110b\u1175\u1106\u1173\u1105\u1169 speed_factor\u1102\u1173\u11ab haversine \u1111\u1169\u11af\u1107\u1162\u11a8 \u1100\u1165\u1105\u1175 \u1100\u1175\u1107\u1161\u11ab...", + "id": "src_data_party_config_rationale_1" }, { - "id": "src_data_party_config_rationale_37", "label": "party_type \ubb38\uc790\uc5f4 \u2192 PartyProfile. \ubbf8\ub4f1\ub85d \uac12\uc740 '\uce5c\uad6c' \uae30\uc900 \ubc18\ud658.", "file_type": "rationale", "source_file": "src/data/party_config.py", - "source_location": "L37", - "_origin": "ast" + "source_location": "L38", + "_origin": "ast", + "community": 20, + "norm_label": "party_type \u1106\u116e\u11ab\u110c\u1161\u110b\u1167\u11af \u2192 partyprofile. \u1106\u1175\u1103\u1173\u11bc\u1105\u1169\u11a8 \u1100\u1161\u11b9\u110b\u1173\u11ab '\u110e\u1175\u11ab\u1100\u116e' \u1100\u1175\u110c\u116e\u11ab \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_data_party_config_rationale_38" }, { - "id": "src_data_region_config", "label": "region_config.py", "file_type": "code", "source_file": "src/data/region_config.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 36, + "norm_label": "region_config.py", + "id": "src_data_region_config" }, { - "id": "src_data_region_config_regionthresholds", "label": "RegionThresholds", "file_type": "code", "source_file": "src/data/region_config.py", - "source_location": "L17", - "_origin": "ast" + "source_location": "L18", + "_origin": "ast", + "community": 36, + "norm_label": "regionthresholds", + "id": "src_data_region_config_regionthresholds" }, { - "id": "src_data_region_config_get_thresholds", "label": "get_thresholds()", "file_type": "code", "source_file": "src/data/region_config.py", - "source_location": "L94", - "_origin": "ast" + "source_location": "L160", + "_origin": "ast", + "community": 36, + "norm_label": "get_thresholds()", + "id": "src_data_region_config_get_thresholds" }, { - "id": "src_data_region_config_rationale_1", "label": "\uc9c0\uc5ed\ubcc4 \ub3d9\uc801 \uc784\uacc4\uac12 \uc124\uc815 \u2014 3-tier POI \ubc00\ub3c4 \uae30\ubc18. \uc2dc\uad70\uad6c \ucf54\ub4dc(5\uc790\ub9ac) \uae30\uc900\uc73c\ub85c \ubc00\ub3c4 \ud2f0\uc5b4\ub97c \uacb0\uc815\ud558\uace0,\u2026", "file_type": "rationale", "source_file": "src/data/region_config.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 36, + "norm_label": "\u110c\u1175\u110b\u1167\u11a8\u1107\u1167\u11af \u1103\u1169\u11bc\u110c\u1165\u11a8 \u110b\u1175\u11b7\u1100\u1168\u1100\u1161\u11b9 \u1109\u1165\u11af\u110c\u1165\u11bc \u2014 3-tier poi \u1106\u1175\u11af\u1103\u1169 \u1100\u1175\u1107\u1161\u11ab. \u1109\u1175\u1100\u116e\u11ab\u1100\u116e \u110f\u1169\u1103\u1173(5\u110c\u1161\u1105\u1175) \u1100\u1175\u110c\u116e\u11ab\u110b\u1173\u1105\u1169 \u1106\u1175\u11af\u1103\u1169 \u1110\u1175\u110b\u1165\u1105\u1173\u11af \u1100\u1167\u11af\u110c\u1165\u11bc\u1112\u1161\u1100\u1169,...", + "id": "src_data_region_config_rationale_1" }, { - "id": "src_data_region_config_rationale_18", "label": "\uc9c0\uc5ed \ud2f0\uc5b4\ubcc4 VRPTW/Scoring \uc784\uacc4\uac12.", "file_type": "rationale", "source_file": "src/data/region_config.py", - "source_location": "L18", - "_origin": "ast" + "source_location": "L19", + "_origin": "ast", + "community": 36, + "norm_label": "\u110c\u1175\u110b\u1167\u11a8 \u1110\u1175\u110b\u1165\u1107\u1167\u11af vrptw/scoring \u110b\u1175\u11b7\u1100\u1168\u1100\u1161\u11b9.", + "id": "src_data_region_config_rationale_19" }, { - "id": "src_data_region_config_rationale_95", "label": "\uc2dc\uad70\uad6c \ucf54\ub4dc\ub85c \uc9c0\uc5ed \uc784\uacc4\uac12 \ubc18\ud658. \ubbf8\uc9c0\uc815\u00b7\ubbf8\ubd84\ub958 \u2192 MEDIUM.", "file_type": "rationale", "source_file": "src/data/region_config.py", - "source_location": "L95", - "_origin": "ast" + "source_location": "L161", + "_origin": "ast", + "community": 36, + "norm_label": "\u1109\u1175\u1100\u116e\u11ab\u1100\u116e \u110f\u1169\u1103\u1173\u1105\u1169 \u110c\u1175\u110b\u1167\u11a8 \u110b\u1175\u11b7\u1100\u1168\u1100\u1161\u11b9 \u1107\u1161\u11ab\u1112\u116a\u11ab. \u1106\u1175\u110c\u1175\u110c\u1165\u11bc\u00b7\u1106\u1175\u1107\u116e\u11ab\u1105\u1172 \u2192 medium.", + "id": "src_data_region_config_rationale_161" }, { - "id": "src_data_restaurant_catalog", "label": "restaurant_catalog.py", "file_type": "code", "source_file": "src/data/restaurant_catalog.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 9, + "norm_label": "restaurant_catalog.py", + "id": "src_data_restaurant_catalog" }, { - "id": "src_data_restaurant_catalog_normalize", "label": "_normalize()", "file_type": "code", "source_file": "src/data/restaurant_catalog.py", - "source_location": "L20", - "_origin": "ast" + "source_location": "L23", + "_origin": "ast", + "community": 9, + "norm_label": "_normalize()", + "id": "src_data_restaurant_catalog_normalize" }, { - "id": "src_data_restaurant_catalog_restaurantcatalog", "label": "RestaurantCatalog", "file_type": "code", "source_file": "src/data/restaurant_catalog.py", - "source_location": "L24", - "_origin": "ast" + "source_location": "L27", + "_origin": "ast", + "community": 1, + "norm_label": "restaurantcatalog", + "id": "src_data_restaurant_catalog_restaurantcatalog" }, { - "id": "src_data_restaurant_catalog_restaurantcatalog_init", "label": ".__init__()", "file_type": "code", "source_file": "src/data/restaurant_catalog.py", - "source_location": "L27", - "_origin": "ast" + "source_location": "L30", + "_origin": "ast", + "community": 1, + "norm_label": ".__init__()", + "id": "src_data_restaurant_catalog_restaurantcatalog_init" }, { - "id": "src_data_restaurant_catalog_restaurantcatalog_from_csv", "label": ".from_csv()", "file_type": "code", "source_file": "src/data/restaurant_catalog.py", - "source_location": "L31", - "_origin": "ast" - }, - { - "id": "src_data_restaurant_catalog_py_path", - "label": "Path", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L34", + "_origin": "ast", + "community": 1, + "norm_label": ".from_csv()", + "id": "src_data_restaurant_catalog_restaurantcatalog_from_csv" }, { - "id": "src_data_restaurant_catalog_restaurantcatalog_from_default", "label": ".from_default()", "file_type": "code", "source_file": "src/data/restaurant_catalog.py", - "source_location": "L50", - "_origin": "ast" + "source_location": "L53", + "_origin": "ast", + "community": 1, + "norm_label": ".from_default()", + "id": "src_data_restaurant_catalog_restaurantcatalog_from_default" }, { - "id": "src_data_restaurant_catalog_restaurantcatalog_nearby", "label": ".nearby()", "file_type": "code", "source_file": "src/data/restaurant_catalog.py", - "source_location": "L53", - "_origin": "ast" + "source_location": "L56", + "_origin": "ast", + "community": 9, + "norm_label": ".nearby()", + "id": "src_data_restaurant_catalog_restaurantcatalog_nearby" }, { - "id": "src_data_restaurant_catalog_rationale_1", "label": "\uc81c\uc8fc \uc74c\uc2dd\uc810 \uadfc\uc811 \uac80\uc0c9 \uce74\ud0c8\ub85c\uadf8 \u2014 data/jeju_places.csv \uae30\ubc18. RepairEngine\uc758 Outlier Deletion \uc81c\uc548\u2026", "file_type": "rationale", "source_file": "src/data/restaurant_catalog.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 9, + "norm_label": "\u110c\u1166\u110c\u116e \u110b\u1173\u11b7\u1109\u1175\u11a8\u110c\u1165\u11b7 \u1100\u1173\u11ab\u110c\u1165\u11b8 \u1100\u1165\u11b7\u1109\u1162\u11a8 \u110f\u1161\u1110\u1161\u11af\u1105\u1169\u1100\u1173 \u2014 data/jeju_places.csv \u1100\u1175\u1107\u1161\u11ab. repairengine\u110b\u1174 outlier deletion \u110c\u1166\u110b\u1161\u11ab...", + "id": "src_data_restaurant_catalog_rationale_1" }, { - "id": "src_data_restaurant_catalog_rationale_25", "label": "\uce74\ud14c\uace0\ub9ac=\uc74c\uc2dd\uc810(FD) \uc7a5\uc18c\uc758 \uc88c\ud45c \uadfc\uc811 \uac80\uc0c9.", "file_type": "rationale", "source_file": "src/data/restaurant_catalog.py", - "source_location": "L25", - "_origin": "ast" + "source_location": "L28", + "_origin": "ast", + "community": 1, + "norm_label": "\u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175=\u110b\u1173\u11b7\u1109\u1175\u11a8\u110c\u1165\u11b7(fd) \u110c\u1161\u11bc\u1109\u1169\u110b\u1174 \u110c\u116a\u1111\u116d \u1100\u1173\u11ab\u110c\u1165\u11b8 \u1100\u1165\u11b7\u1109\u1162\u11a8.", + "id": "src_data_restaurant_catalog_rationale_28" }, { - "id": "src_data_restaurant_catalog_rationale_61", "label": "\ubc18\uacbd \ub0b4 \uac00\uc7a5 \uac00\uae4c\uc6b4 \uc74c\uc2dd\uc810 \ubaa9\ub85d (\uac70\ub9ac\uc21c, exclude_name \uc790\uae30 \uc790\uc2e0 \uc81c\uc678).", "file_type": "rationale", "source_file": "src/data/restaurant_catalog.py", - "source_location": "L61", - "_origin": "ast" + "source_location": "L64", + "_origin": "ast", + "community": 9, + "norm_label": "\u1107\u1161\u11ab\u1100\u1167\u11bc \u1102\u1162 \u1100\u1161\u110c\u1161\u11bc \u1100\u1161\u1101\u1161\u110b\u116e\u11ab \u110b\u1173\u11b7\u1109\u1175\u11a8\u110c\u1165\u11b7 \u1106\u1169\u11a8\u1105\u1169\u11a8 (\u1100\u1165\u1105\u1175\u1109\u116e\u11ab, exclude_name \u110c\u1161\u1100\u1175 \u110c\u1161\u1109\u1175\u11ab \u110c\u1166\u110b\u116c).", + "id": "src_data_restaurant_catalog_rationale_64" }, { - "id": "src_data_seoul_citydata_client", "label": "seoul_citydata_client.py", "file_type": "code", "source_file": "src/data/seoul_citydata_client.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 39, + "norm_label": "seoul_citydata_client.py", + "id": "src_data_seoul_citydata_client" }, { - "id": "src_data_seoul_citydata_client_forecastslot", "label": "ForecastSlot", "file_type": "code", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L62", - "_origin": "ast" + "source_location": "L84", + "_origin": "ast", + "community": 39, + "norm_label": "forecastslot", + "id": "src_data_seoul_citydata_client_forecastslot" }, { - "id": "src_data_seoul_citydata_client_seoulrealtimecongestion", "label": "SeoulRealtimeCongestion", "file_type": "code", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L71", - "_origin": "ast" + "source_location": "L93", + "_origin": "ast", + "community": 39, + "norm_label": "seoulrealtimecongestion", + "id": "src_data_seoul_citydata_client_seoulrealtimecongestion" }, { - "id": "src_data_seoul_citydata_client_seoulcitydataclient", "label": "SeoulCityDataClient", "file_type": "code", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L83", - "_origin": "ast" + "source_location": "L105", + "_origin": "ast", + "community": 39, + "norm_label": "seoulcitydataclient", + "id": "src_data_seoul_citydata_client_seoulcitydataclient" }, { - "id": "src_data_seoul_citydata_client_seoulcitydataclient_init", "label": ".__init__()", "file_type": "code", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L91", - "_origin": "ast" + "source_location": "L113", + "_origin": "ast", + "community": 39, + "norm_label": ".__init__()", + "id": "src_data_seoul_citydata_client_seoulcitydataclient_init" }, { - "id": "src_data_seoul_citydata_client_seoulcitydataclient_url", "label": "._url()", "file_type": "code", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L101", - "_origin": "ast" + "source_location": "L124", + "_origin": "ast", + "community": 39, + "norm_label": "._url()", + "id": "src_data_seoul_citydata_client_seoulcitydataclient_url" }, { - "id": "src_data_seoul_citydata_client_seoulcitydataclient_parse_forecast", "label": "._parse_forecast()", "file_type": "code", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L104", - "_origin": "ast" + "source_location": "L127", + "_origin": "ast", + "community": 39, + "norm_label": "._parse_forecast()", + "id": "src_data_seoul_citydata_client_seoulcitydataclient_parse_forecast" }, { - "id": "src_data_seoul_citydata_client_seoulcitydataclient_resolve_name", "label": "._resolve_name()", "file_type": "code", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L119", - "_origin": "ast" + "source_location": "L142", + "_origin": "ast", + "community": 39, + "norm_label": "._resolve_name()", + "id": "src_data_seoul_citydata_client_seoulcitydataclient_resolve_name" }, { - "id": "src_data_seoul_citydata_client_seoulcitydataclient_get", "label": ".get()", "file_type": "code", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L127", - "_origin": "ast" + "source_location": "L150", + "_origin": "ast", + "community": 39, + "norm_label": ".get()", + "id": "src_data_seoul_citydata_client_seoulcitydataclient_get" }, { - "id": "src_data_seoul_citydata_client_seoulcitydataclient_get_at", "label": ".get_at()", "file_type": "code", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L168", - "_origin": "ast" + "source_location": "L191", + "_origin": "ast", + "community": 39, + "norm_label": ".get_at()", + "id": "src_data_seoul_citydata_client_seoulcitydataclient_get_at" }, { - "id": "src_data_seoul_citydata_client_rationale_1", "label": "\uc11c\uc6b8 \ub3c4\uc2dc\ub370\uc774\ud130 API \ud074\ub77c\uc774\uc5b8\ud2b8 \u2014 \uc2e4\uc2dc\uac04 \uc778\uad6c \ud63c\uc7a1\ub3c4. API: \uc11c\uc6b8 \uc5f4\ub9b0\ub370\uc774\ud130\uad11\uc7a5 citydata (\ub3c4\uc2dc\ub370\uc774\ud130 API) \uc5d4\ub4dc\ud3ec\uc778\ud2b8:\u2026", "file_type": "rationale", "source_file": "src/data/seoul_citydata_client.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 39, + "norm_label": "\u1109\u1165\u110b\u116e\u11af \u1103\u1169\u1109\u1175\u1103\u1166\u110b\u1175\u1110\u1165 api \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173 \u2014 \u1109\u1175\u11af\u1109\u1175\u1100\u1161\u11ab \u110b\u1175\u11ab\u1100\u116e \u1112\u1169\u11ab\u110c\u1161\u11b8\u1103\u1169. api: \u1109\u1165\u110b\u116e\u11af \u110b\u1167\u11af\u1105\u1175\u11ab\u1103\u1166\u110b\u1175\u1110\u1165\u1100\u116a\u11bc\u110c\u1161\u11bc citydata (\u1103\u1169\u1109\u1175\u1103\u1166\u110b\u1175\u1110\u1165 api) \u110b\u1166\u11ab\u1103\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173:...", + "id": "src_data_seoul_citydata_client_rationale_1" }, { - "id": "src_data_seoul_citydata_client_rationale_84", "label": "\uc11c\uc6b8 \ub3c4\uc2dc\ub370\uc774\ud130 \uc2e4\uc2dc\uac04 \ud63c\uc7a1\ub3c4 \ud074\ub77c\uc774\uc5b8\ud2b8 (\ub3d9\uae30). Args: api_key: SEOUL_DATA_API_KEY (\uae30\ubcf8\uac12: \ud658\uacbd\ubcc0\uc218\uc5d0\uc11c \ub85c\ub4dc)\u2026", "file_type": "rationale", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L84", - "_origin": "ast" + "source_location": "L106", + "_origin": "ast", + "community": 39, + "norm_label": "\u1109\u1165\u110b\u116e\u11af \u1103\u1169\u1109\u1175\u1103\u1166\u110b\u1175\u1110\u1165 \u1109\u1175\u11af\u1109\u1175\u1100\u1161\u11ab \u1112\u1169\u11ab\u110c\u1161\u11b8\u1103\u1169 \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173 (\u1103\u1169\u11bc\u1100\u1175). args: api_key: seoul_data_api_key (\u1100\u1175\u1107\u1169\u11ab\u1100\u1161\u11b9: \u1112\u116a\u11ab\u1100\u1167\u11bc\u1107\u1167\u11ab\u1109\u116e\u110b\u1166\u1109\u1165 \u1105\u1169\u1103\u1173)...", + "id": "src_data_seoul_citydata_client_rationale_106" }, { - "id": "src_data_seoul_citydata_client_rationale_128", "label": "\uc7a5\uc18c\uba85\uc73c\ub85c \uc2e4\uc2dc\uac04 \ud63c\uc7a1\ub3c4\ub97c \uc870\ud68c\ud55c\ub2e4. Args: area_name: \uc7a5\uc18c\uba85 (\ubcc4\uce6d \uc790\ub3d9 \ud574\uc11d \u2014 AREA_ALIASES \ucc38\uc870) \uc608:\u2026", "file_type": "rationale", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L128", - "_origin": "ast" + "source_location": "L151", + "_origin": "ast", + "community": 39, + "norm_label": "\u110c\u1161\u11bc\u1109\u1169\u1106\u1167\u11bc\u110b\u1173\u1105\u1169 \u1109\u1175\u11af\u1109\u1175\u1100\u1161\u11ab \u1112\u1169\u11ab\u110c\u1161\u11b8\u1103\u1169\u1105\u1173\u11af \u110c\u1169\u1112\u116c\u1112\u1161\u11ab\u1103\u1161. args: area_name: \u110c\u1161\u11bc\u1109\u1169\u1106\u1167\u11bc (\u1107\u1167\u11af\u110e\u1175\u11bc \u110c\u1161\u1103\u1169\u11bc \u1112\u1162\u1109\u1165\u11a8 \u2014 area_aliases \u110e\u1161\u11b7\u110c\u1169) \u110b\u1168:...", + "id": "src_data_seoul_citydata_client_rationale_151" }, { - "id": "src_data_seoul_citydata_client_rationale_169", "label": "\ud2b9\uc815 \uc2dc\uac01(HH:MM)\uc758 \uc608\uce21 \ud63c\uc7a1\ub3c4\ub97c \ubc18\ud658\ud55c\ub2e4. target_time\uc774 \ud604\uc7ac\ub77c\uba74 \uc2e4\uc2dc\uac04, \ubbf8\ub798\ub77c\uba74 \uc608\uce21\uac12\uc744 \uc0ac\uc6a9\ud55c\ub2e4. Args:\u2026", "file_type": "rationale", "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L169", - "_origin": "ast" + "source_location": "L192", + "_origin": "ast", + "community": 39, + "norm_label": "\u1110\u1173\u11a8\u110c\u1165\u11bc \u1109\u1175\u1100\u1161\u11a8(hh:mm)\u110b\u1174 \u110b\u1168\u110e\u1173\u11a8 \u1112\u1169\u11ab\u110c\u1161\u11b8\u1103\u1169\u1105\u1173\u11af \u1107\u1161\u11ab\u1112\u116a\u11ab\u1112\u1161\u11ab\u1103\u1161. target_time\u110b\u1175 \u1112\u1167\u11ab\u110c\u1162\u1105\u1161\u1106\u1167\u11ab \u1109\u1175\u11af\u1109\u1175\u1100\u1161\u11ab, \u1106\u1175\u1105\u1162\u1105\u1161\u1106\u1167\u11ab \u110b\u1168\u110e\u1173\u11a8\u1100\u1161\u11b9\u110b\u1173\u11af \u1109\u1161\u110b\u116d\u11bc\u1112\u1161\u11ab\u1103\u1161. args:...", + "id": "src_data_seoul_citydata_client_rationale_192" }, { - "id": "src_data_theme_taxonomy", "label": "theme_taxonomy.py", "file_type": "code", "source_file": "src/data/theme_taxonomy.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 2, + "norm_label": "theme_taxonomy.py", + "id": "src_data_theme_taxonomy" }, { - "id": "src_data_theme_taxonomy_userpreferences", "label": "UserPreferences", "file_type": "code", "source_file": "src/data/theme_taxonomy.py", - "source_location": "L83", - "_origin": "ast" + "source_location": "L82", + "_origin": "ast", + "community": 2, + "norm_label": "userpreferences", + "id": "src_data_theme_taxonomy_userpreferences" }, { - "id": "src_data_theme_taxonomy_userpreferences_post_init", "label": ".__post_init__()", "file_type": "code", "source_file": "src/data/theme_taxonomy.py", "source_location": "L88", - "_origin": "ast" + "_origin": "ast", + "community": 2, + "norm_label": ".__post_init__()", + "id": "src_data_theme_taxonomy_userpreferences_post_init" }, { - "id": "src_data_theme_taxonomy_userpreferences_all_themes", "label": ".all_themes()", "file_type": "code", "source_file": "src/data/theme_taxonomy.py", - "source_location": "L105", - "_origin": "ast" + "source_location": "L99", + "_origin": "ast", + "community": 2, + "norm_label": ".all_themes()", + "id": "src_data_theme_taxonomy_userpreferences_all_themes" }, { - "id": "src_data_theme_taxonomy_matches_place_type", "label": "matches_place_type()", "file_type": "code", "source_file": "src/data/theme_taxonomy.py", - "source_location": "L111", - "_origin": "ast" + "source_location": "L105", + "_origin": "ast", + "community": 2, + "norm_label": "matches_place_type()", + "id": "src_data_theme_taxonomy_matches_place_type" }, { - "id": "src_data_theme_taxonomy_get_place_types_for", "label": "get_place_types_for()", "file_type": "code", "source_file": "src/data/theme_taxonomy.py", - "source_location": "L140", - "_origin": "ast" + "source_location": "L134", + "_origin": "ast", + "community": 2, + "norm_label": "get_place_types_for()", + "id": "src_data_theme_taxonomy_get_place_types_for" }, { - "id": "src_data_theme_taxonomy_rationale_1", "label": "\ud14c\ub9c8 \ubd84\ub958 \uccb4\uacc4 (2\ucd95 18\ud14c\ub9c8). \ucd95 A: PLACE_TYPES (9\uac1c) \u2014 \uc7a5\uc18c \uc720\ud615 (\uc0b0, \ubc14\ub2e4, \uce74\ud398 \ub4f1 \uad6c\uccb4\uc801) \ucd95 B:\u2026", "file_type": "rationale", "source_file": "src/data/theme_taxonomy.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 2, + "norm_label": "\u1110\u1166\u1106\u1161 \u1107\u116e\u11ab\u1105\u1172 \u110e\u1166\u1100\u1168 (2\u110e\u116e\u11a8 18\u1110\u1166\u1106\u1161). \u110e\u116e\u11a8 a: place_types (9\u1100\u1162) \u2014 \u110c\u1161\u11bc\u1109\u1169 \u110b\u1172\u1112\u1167\u11bc (\u1109\u1161\u11ab, \u1107\u1161\u1103\u1161, \u110f\u1161\u1111\u1166 \u1103\u1173\u11bc \u1100\u116e\u110e\u1166\u110c\u1165\u11a8) \u110e\u116e\u11a8 b:...", + "id": "src_data_theme_taxonomy_rationale_1" }, { - "id": "src_data_theme_taxonomy_rationale_84", "label": "\uc0ac\uc6a9\uc790\uac00 \uc120\ud0dd\ud55c \ud14c\ub9c8. \ub450 \ucd95 \ubaa8\ub450 \ub2e4\uc911 \uc120\ud0dd \ud5c8\uc6a9 (\uac01 1\uac1c \uc774\uc0c1).", "file_type": "rationale", "source_file": "src/data/theme_taxonomy.py", - "source_location": "L84", - "_origin": "ast" + "source_location": "L83", + "_origin": "ast", + "community": 2, + "norm_label": "\u1109\u1161\u110b\u116d\u11bc\u110c\u1161\u1100\u1161 \u1109\u1165\u11ab\u1110\u1162\u11a8\u1112\u1161\u11ab \u1110\u1166\u1106\u1161. \u1103\u116e \u110e\u116e\u11a8 \u1106\u1169\u1103\u116e \u1103\u1161\u110c\u116e\u11bc \u1109\u1165\u11ab\u1110\u1162\u11a8 \u1112\u1165\u110b\u116d\u11bc (\u1100\u1161\u11a8 1\u1100\u1162 \u110b\u1175\u1109\u1161\u11bc).", + "id": "src_data_theme_taxonomy_rationale_83" }, { - "id": "src_data_theme_taxonomy_rationale_106", "label": "\ub450 \ucd95\uc758 \uc120\ud0dd\uc744 \ud3c9\ud0c4\ud654 (LLM \ud504\ub86c\ud504\ud2b8\uc6a9).", "file_type": "rationale", "source_file": "src/data/theme_taxonomy.py", - "source_location": "L106", - "_origin": "ast" + "source_location": "L100", + "_origin": "ast", + "community": 2, + "norm_label": "\u1103\u116e \u110e\u116e\u11a8\u110b\u1174 \u1109\u1165\u11ab\u1110\u1162\u11a8\u110b\u1173\u11af \u1111\u1167\u11bc\u1110\u1161\u11ab\u1112\u116a (llm \u1111\u1173\u1105\u1169\u11b7\u1111\u1173\u1110\u1173\u110b\u116d\u11bc).", + "id": "src_data_theme_taxonomy_rationale_100" }, { - "id": "src_data_theme_taxonomy_rationale_116", "label": "\uc8fc\uc5b4\uc9c4 lcls_systm3 \ub610\ub294 content_type_id\uac00 place_type\uc5d0 \ubd80\ud569\ud558\ub294\uc9c0 \ud310\uc815. \uc608)\u2026", "file_type": "rationale", "source_file": "src/data/theme_taxonomy.py", - "source_location": "L116", - "_origin": "ast" + "source_location": "L110", + "_origin": "ast", + "community": 2, + "norm_label": "\u110c\u116e\u110b\u1165\u110c\u1175\u11ab lcls_systm3 \u1104\u1169\u1102\u1173\u11ab content_type_id\u1100\u1161 place_type\u110b\u1166 \u1107\u116e\u1112\u1161\u11b8\u1112\u1161\u1102\u1173\u11ab\u110c\u1175 \u1111\u1161\u11ab\u110c\u1165\u11bc. \u110b\u1168)...", + "id": "src_data_theme_taxonomy_rationale_110" }, { - "id": "src_data_theme_taxonomy_rationale_144", "label": "\uc8fc\uc5b4\uc9c4 \ucf54\ub4dc\uac00 \ub9e4\uce6d\ub418\ub294 \ubaa8\ub4e0 PLACE_TYPE \ubc18\ud658 (\ud55c POI\uac00 \uc5ec\ub7ec \uc720\ud615\uc5d0 \uc18d\ud560 \uc218 \uc788\uc74c).", "file_type": "rationale", "source_file": "src/data/theme_taxonomy.py", - "source_location": "L144", - "_origin": "ast" + "source_location": "L138", + "_origin": "ast", + "community": 2, + "norm_label": "\u110c\u116e\u110b\u1165\u110c\u1175\u11ab \u110f\u1169\u1103\u1173\u1100\u1161 \u1106\u1162\u110e\u1175\u11bc\u1103\u116c\u1102\u1173\u11ab \u1106\u1169\u1103\u1173\u11ab place_type \u1107\u1161\u11ab\u1112\u116a\u11ab (\u1112\u1161\u11ab poi\u1100\u1161 \u110b\u1167\u1105\u1165 \u110b\u1172\u1112\u1167\u11bc\u110b\u1166 \u1109\u1169\u11a8\u1112\u1161\u11af \u1109\u116e \u110b\u1175\u11bb\u110b\u1173\u11b7).", + "id": "src_data_theme_taxonomy_rationale_138" }, { - "id": "src_data_tour_api", "label": "tour_api.py", "file_type": "code", "source_file": "src/data/tour_api.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 7, + "norm_label": "tour_api.py", + "id": "src_data_tour_api" }, { - "id": "src_data_tour_api_parse_usetime", "label": "_parse_usetime()", "file_type": "code", "source_file": "src/data/tour_api.py", - "source_location": "L18", - "_origin": "ast" + "source_location": "L20", + "_origin": "ast", + "community": 7, + "norm_label": "_parse_usetime()", + "id": "src_data_tour_api_parse_usetime" }, { - "id": "src_data_tour_api_extract_items", "label": "_extract_items()", "file_type": "code", "source_file": "src/data/tour_api.py", - "source_location": "L27", - "_origin": "ast" + "source_location": "L29", + "_origin": "ast", + "community": 7, + "norm_label": "_extract_items()", + "id": "src_data_tour_api_extract_items" }, { - "id": "src_data_tour_api_tourapiclient", "label": "TourAPIClient", "file_type": "code", "source_file": "src/data/tour_api.py", - "source_location": "L38", - "_origin": "ast" + "source_location": "L40", + "_origin": "ast", + "community": 7, + "norm_label": "tourapiclient", + "id": "src_data_tour_api_tourapiclient" }, { - "id": "src_data_tour_api_tourapiclient_init", "label": ".__init__()", "file_type": "code", "source_file": "src/data/tour_api.py", - "source_location": "L48", - "_origin": "ast" + "source_location": "L50", + "_origin": "ast", + "community": 7, + "norm_label": ".__init__()", + "id": "src_data_tour_api_tourapiclient_init" }, { - "id": "src_data_tour_api_tourapiclient_from_settings", "label": ".from_settings()", "file_type": "code", "source_file": "src/data/tour_api.py", - "source_location": "L62", - "_origin": "ast" + "source_location": "L65", + "_origin": "ast", + "community": 7, + "norm_label": ".from_settings()", + "id": "src_data_tour_api_tourapiclient_from_settings" }, { - "id": "src_data_tour_api_tourapiclient_search_poi", "label": ".search_poi()", "file_type": "code", "source_file": "src/data/tour_api.py", - "source_location": "L70", - "_origin": "ast" + "source_location": "L73", + "_origin": "ast", + "community": 7, + "norm_label": ".search_poi()", + "id": "src_data_tour_api_tourapiclient_search_poi" + }, + { + "label": ".search_poi_sync()", + "file_type": "code", + "source_file": "src/data/tour_api.py", + "source_location": "L133", + "_origin": "ast", + "community": 7, + "norm_label": ".search_poi_sync()", + "id": "src_data_tour_api_tourapiclient_search_poi_sync" }, { - "id": "src_data_tour_api_tourapiclient_get_operating_hours", "label": ".get_operating_hours()", "file_type": "code", "source_file": "src/data/tour_api.py", - "source_location": "L123", - "_origin": "ast" + "source_location": "L142", + "_origin": "ast", + "community": 7, + "norm_label": ".get_operating_hours()", + "id": "src_data_tour_api_tourapiclient_get_operating_hours" }, { - "id": "src_data_tour_api_tourapiclient_clear_cache", "label": ".clear_cache()", "file_type": "code", "source_file": "src/data/tour_api.py", - "source_location": "L157", - "_origin": "ast" + "source_location": "L176", + "_origin": "ast", + "community": 7, + "norm_label": ".clear_cache()", + "id": "src_data_tour_api_tourapiclient_clear_cache" }, { - "id": "src_data_tour_api_rationale_1", "label": "\ud55c\uad6d\uad00\uad11\uacf5\uc0ac TourAPI v2 \ube44\ub3d9\uae30 \ud074\ub77c\uc774\uc5b8\ud2b8 (httpx + Graceful Fallback).", "file_type": "rationale", "source_file": "src/data/tour_api.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 7, + "norm_label": "\u1112\u1161\u11ab\u1100\u116e\u11a8\u1100\u116a\u11ab\u1100\u116a\u11bc\u1100\u1169\u11bc\u1109\u1161 tourapi v2 \u1107\u1175\u1103\u1169\u11bc\u1100\u1175 \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173 (httpx + graceful fallback).", + "id": "src_data_tour_api_rationale_1" }, { - "id": "src_data_tour_api_rationale_19", "label": "09:00 ~ 18:00' \ud615\ud0dc\uc5d0\uc11c (open, close) \ud30c\uc2f1. \uc2e4\ud328 \uc2dc \ud3f4\ubc31.", "file_type": "rationale", "source_file": "src/data/tour_api.py", - "source_location": "L19", - "_origin": "ast" + "source_location": "L21", + "_origin": "ast", + "community": 7, + "norm_label": "09:00 ~ 18:00' \u1112\u1167\u11bc\u1110\u1162\u110b\u1166\u1109\u1165 (open, close) \u1111\u1161\u1109\u1175\u11bc. \u1109\u1175\u11af\u1111\u1162 \u1109\u1175 \u1111\u1169\u11af\u1107\u1162\u11a8.", + "id": "src_data_tour_api_rationale_21" }, { - "id": "src_data_tour_api_rationale_28", "label": "TourAPI \uc751\ub2f5 JSON\uc5d0\uc11c item \ub9ac\uc2a4\ud2b8 \ucd94\ucd9c.", "file_type": "rationale", "source_file": "src/data/tour_api.py", - "source_location": "L28", - "_origin": "ast" + "source_location": "L30", + "_origin": "ast", + "community": 7, + "norm_label": "tourapi \u110b\u1173\u11bc\u1103\u1161\u11b8 json\u110b\u1166\u1109\u1165 item \u1105\u1175\u1109\u1173\u1110\u1173 \u110e\u116e\u110e\u116e\u11af.", + "id": "src_data_tour_api_rationale_30" }, { - "id": "src_data_tour_api_rationale_39", "label": "\ud55c\uad6d\uad00\uad11\uacf5\uc0ac TourAPI v2 \ube44\ub3d9\uae30 \ud074\ub77c\uc774\uc5b8\ud2b8. \ubaa8\ub4e0 \ud638\ucd9c\uc740 \uc2e4\ud328 \uc2dc Graceful Fallback: - search_poi \u2192 \ube48\u2026", "file_type": "rationale", "source_file": "src/data/tour_api.py", - "source_location": "L39", - "_origin": "ast" + "source_location": "L41", + "_origin": "ast", + "community": 7, + "norm_label": "\u1112\u1161\u11ab\u1100\u116e\u11a8\u1100\u116a\u11ab\u1100\u116a\u11bc\u1100\u1169\u11bc\u1109\u1161 tourapi v2 \u1107\u1175\u1103\u1169\u11bc\u1100\u1175 \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173. \u1106\u1169\u1103\u1173\u11ab \u1112\u1169\u110e\u116e\u11af\u110b\u1173\u11ab \u1109\u1175\u11af\u1111\u1162 \u1109\u1175 graceful fallback: - search_poi \u2192 \u1107\u1175\u11ab...", + "id": "src_data_tour_api_rationale_41" }, { - "id": "src_data_tour_api_rationale_63", "label": "Settings\uc5d0\uc11c \ud0a4 \ub85c\ub4dc. \ud0a4 \uc5c6\uc73c\uba74 None \ubc18\ud658 (Graceful Fallback \uc9c4\uc785\uc810).", "file_type": "rationale", "source_file": "src/data/tour_api.py", - "source_location": "L63", - "_origin": "ast" + "source_location": "L66", + "_origin": "ast", + "community": 7, + "norm_label": "settings\u110b\u1166\u1109\u1165 \u110f\u1175 \u1105\u1169\u1103\u1173. \u110f\u1175 \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab none \u1107\u1161\u11ab\u1112\u116a\u11ab (graceful fallback \u110c\u1175\u11ab\u110b\u1175\u11b8\u110c\u1165\u11b7).", + "id": "src_data_tour_api_rationale_66" }, { - "id": "src_data_tour_api_rationale_76", "label": "\ud0a4\uc6cc\ub4dc\ub85c POI \uac80\uc0c9. \uc2e4\ud328 \uc2dc \ube48 \ub9ac\uc2a4\ud2b8 \ubc18\ud658.", "file_type": "rationale", "source_file": "src/data/tour_api.py", - "source_location": "L76", - "_origin": "ast" + "source_location": "L79", + "_origin": "ast", + "community": 7, + "norm_label": "\u110f\u1175\u110b\u116f\u1103\u1173\u1105\u1169 poi \u1100\u1165\u11b7\u1109\u1162\u11a8. \u1109\u1175\u11af\u1111\u1162 \u1109\u1175 \u1107\u1175\u11ab \u1105\u1175\u1109\u1173\u1110\u1173 \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_data_tour_api_rationale_79" + }, + { + "label": "\ub3d9\uae30 \ud638\ucd9c \uc9c0\uc810(\uc2a4\ub808\ub4dc)\uc5d0\uc11c async \uac80\uc0c9\uc744 \uc548\uc804\ud558\uac8c \uc2e4\ud589\ud55c\ub2e4.", + "file_type": "rationale", + "source_file": "src/data/tour_api.py", + "source_location": "L139", + "_origin": "ast", + "community": 7, + "norm_label": "\u1103\u1169\u11bc\u1100\u1175 \u1112\u1169\u110e\u116e\u11af \u110c\u1175\u110c\u1165\u11b7(\u1109\u1173\u1105\u1166\u1103\u1173)\u110b\u1166\u1109\u1165 async \u1100\u1165\u11b7\u1109\u1162\u11a8\u110b\u1173\u11af \u110b\u1161\u11ab\u110c\u1165\u11ab\u1112\u1161\u1100\u1166 \u1109\u1175\u11af\u1112\u1162\u11bc\u1112\u1161\u11ab\u1103\u1161.", + "id": "src_data_tour_api_rationale_139" }, { - "id": "src_data_tour_api_rationale_128", "label": "\uc6b4\uc601\uc2dc\uac04 \uc870\ud68c. \uc2e4\ud328 \ub610\ub294 \ub370\uc774\ud130 \uc5c6\uc73c\uba74 (\"00:00\", \"23:59\") \ubc18\ud658.", "file_type": "rationale", "source_file": "src/data/tour_api.py", - "source_location": "L128", - "_origin": "ast" + "source_location": "L147", + "_origin": "ast", + "community": 7, + "norm_label": "\u110b\u116e\u11ab\u110b\u1167\u11bc\u1109\u1175\u1100\u1161\u11ab \u110c\u1169\u1112\u116c. \u1109\u1175\u11af\u1111\u1162 \u1104\u1169\u1102\u1173\u11ab \u1103\u1166\u110b\u1175\u1110\u1165 \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab (\"00:00\", \"23:59\") \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_data_tour_api_rationale_147" }, { - "id": "src_data_wellness_api", "label": "wellness_api.py", "file_type": "code", "source_file": "src/data/wellness_api.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 51, + "norm_label": "wellness_api.py", + "id": "src_data_wellness_api" }, { - "id": "src_data_wellness_api_wellnessplace", "label": "WellnessPlace", "file_type": "code", "source_file": "src/data/wellness_api.py", - "source_location": "L16", - "_origin": "ast" + "source_location": "L17", + "_origin": "ast", + "community": 51, + "norm_label": "wellnessplace", + "id": "src_data_wellness_api_wellnessplace" }, { - "id": "src_data_wellness_api_extract_items", "label": "_extract_items()", "file_type": "code", "source_file": "src/data/wellness_api.py", - "source_location": "L27", - "_origin": "ast" + "source_location": "L28", + "_origin": "ast", + "community": 51, + "norm_label": "_extract_items()", + "id": "src_data_wellness_api_extract_items" }, { - "id": "src_data_wellness_api_safe_float", "label": "_safe_float()", "file_type": "code", "source_file": "src/data/wellness_api.py", - "source_location": "L38", - "_origin": "ast" - }, - { - "id": "src_data_wellness_api_py_any", - "label": "Any", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L39", + "_origin": "ast", + "community": 51, + "norm_label": "_safe_float()", + "id": "src_data_wellness_api_safe_float" }, { - "id": "src_data_wellness_api_wellnessapiclient", "label": "WellnessAPIClient", "file_type": "code", "source_file": "src/data/wellness_api.py", - "source_location": "L45", - "_origin": "ast" + "source_location": "L46", + "_origin": "ast", + "community": 51, + "norm_label": "wellnessapiclient", + "id": "src_data_wellness_api_wellnessapiclient" }, { - "id": "src_data_wellness_api_wellnessapiclient_init", "label": ".__init__()", "file_type": "code", "source_file": "src/data/wellness_api.py", - "source_location": "L51", - "_origin": "ast" + "source_location": "L52", + "_origin": "ast", + "community": 51, + "norm_label": ".__init__()", + "id": "src_data_wellness_api_wellnessapiclient_init" }, { - "id": "src_data_wellness_api_wellnessapiclient_from_settings", "label": ".from_settings()", "file_type": "code", "source_file": "src/data/wellness_api.py", - "source_location": "L58", - "_origin": "ast" + "source_location": "L59", + "_origin": "ast", + "community": 16, + "norm_label": ".from_settings()", + "id": "src_data_wellness_api_wellnessapiclient_from_settings" }, { - "id": "src_data_wellness_api_wellnessapiclient_fetch_page", "label": ".fetch_page()", "file_type": "code", "source_file": "src/data/wellness_api.py", - "source_location": "L66", - "_origin": "ast" + "source_location": "L67", + "_origin": "ast", + "community": 51, + "norm_label": ".fetch_page()", + "id": "src_data_wellness_api_wellnessapiclient_fetch_page" }, { - "id": "src_data_wellness_api_wellnessapiclient_fetch_all", "label": ".fetch_all()", "file_type": "code", "source_file": "src/data/wellness_api.py", - "source_location": "L117", - "_origin": "ast" + "source_location": "L120", + "_origin": "ast", + "community": 51, + "norm_label": ".fetch_all()", + "id": "src_data_wellness_api_wellnessapiclient_fetch_all" }, { - "id": "src_data_wellness_api_rationale_1", "label": "\ud55c\uad6d\uad00\uad11\uacf5\uc0ac \uc6f0\ub2c8\uc2a4 \uad00\uad11 \uc815\ubcf4 API \ud074\ub77c\uc774\uc5b8\ud2b8 (B551011/WellnessTursmService).", "file_type": "rationale", "source_file": "src/data/wellness_api.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 51, + "norm_label": "\u1112\u1161\u11ab\u1100\u116e\u11a8\u1100\u116a\u11ab\u1100\u116a\u11bc\u1100\u1169\u11bc\u1109\u1161 \u110b\u1170\u11af\u1102\u1175\u1109\u1173 \u1100\u116a\u11ab\u1100\u116a\u11bc \u110c\u1165\u11bc\u1107\u1169 api \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173 (b551011/wellnesstursmservice).", + "id": "src_data_wellness_api_rationale_1" }, { - "id": "src_data_wellness_api_rationale_46", "label": "\uc6f0\ub2c8\uc2a4 \uad00\uad11 \uc815\ubcf4 API \u2014 \ube44\ub3d9\uae30 \ud074\ub77c\uc774\uc5b8\ud2b8. Graceful Fallback: API \ud638\ucd9c \uc2e4\ud328 \uc2dc \ube48 \ub9ac\uc2a4\ud2b8 \ubc18\ud658.", "file_type": "rationale", "source_file": "src/data/wellness_api.py", - "source_location": "L46", - "_origin": "ast" + "source_location": "L47", + "_origin": "ast", + "community": 51, + "norm_label": "\u110b\u1170\u11af\u1102\u1175\u1109\u1173 \u1100\u116a\u11ab\u1100\u116a\u11bc \u110c\u1165\u11bc\u1107\u1169 api \u2014 \u1107\u1175\u1103\u1169\u11bc\u1100\u1175 \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173. graceful fallback: api \u1112\u1169\u110e\u116e\u11af \u1109\u1175\u11af\u1111\u1162 \u1109\u1175 \u1107\u1175\u11ab \u1105\u1175\u1109\u1173\u1110\u1173 \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_data_wellness_api_rationale_47" }, { - "id": "src_data_wellness_api_rationale_118", "label": "\uc804\uccb4 \uc6f0\ub2c8\uc2a4 \uad00\uad11 \ubaa9\ub85d \uc870\ud68c (\ud398\uc774\uc9c0 \uc21c\ud68c).", "file_type": "rationale", "source_file": "src/data/wellness_api.py", - "source_location": "L118", - "_origin": "ast" - }, - { - "id": "src_explain_init", - "label": "explain/__init__.py", - "file_type": "code", - "source_file": "src/explain/__init__.py", - "source_location": "L1", - "_origin": "ast" + "source_location": "L121", + "_origin": "ast", + "community": 51, + "norm_label": "\u110c\u1165\u11ab\u110e\u1166 \u110b\u1170\u11af\u1102\u1175\u1109\u1173 \u1100\u116a\u11ab\u1100\u116a\u11bc \u1106\u1169\u11a8\u1105\u1169\u11a8 \u110c\u1169\u1112\u116c (\u1111\u1166\u110b\u1175\u110c\u1175 \u1109\u116e\u11ab\u1112\u116c).", + "id": "src_data_wellness_api_rationale_121" }, { - "id": "src_explain_explain_engine", "label": "explain_engine.py", "file_type": "code", "source_file": "src/explain/explain_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 5, + "norm_label": "explain_engine.py", + "id": "src_explain_explain_engine" }, { - "id": "src_explain_explain_engine_lrucache", "label": "_LRUCache", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L44", - "_origin": "ast" + "source_location": "L47", + "_origin": "ast", + "community": 5, + "norm_label": "_lrucache", + "id": "src_explain_explain_engine_lrucache" }, { - "id": "src_explain_explain_engine_lrucache_init", "label": ".__init__()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L47", - "_origin": "ast" + "source_location": "L50", + "_origin": "ast", + "community": 5, + "norm_label": ".__init__()", + "id": "src_explain_explain_engine_lrucache_init" }, { - "id": "src_explain_explain_engine_lrucache_contains", "label": ".__contains__()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L51", - "_origin": "ast" + "source_location": "L54", + "_origin": "ast", + "community": 5, + "norm_label": ".__contains__()", + "id": "src_explain_explain_engine_lrucache_contains" }, { - "id": "src_explain_explain_engine_lrucache_getitem", "label": ".__getitem__()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L54", - "_origin": "ast" + "source_location": "L57", + "_origin": "ast", + "community": 5, + "norm_label": ".__getitem__()", + "id": "src_explain_explain_engine_lrucache_getitem" }, { - "id": "src_explain_explain_engine_lrucache_setitem", "label": ".__setitem__()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L58", - "_origin": "ast" + "source_location": "L61", + "_origin": "ast", + "community": 5, + "norm_label": ".__setitem__()", + "id": "src_explain_explain_engine_lrucache_setitem" }, { - "id": "src_explain_explain_engine_lrucache_clear", "label": ".clear()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L65", - "_origin": "ast" + "source_location": "L68", + "_origin": "ast", + "community": 5, + "norm_label": ".clear()", + "id": "src_explain_explain_engine_lrucache_clear" }, { - "id": "src_explain_explain_engine_cache_key", "label": "_cache_key()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L171", - "_origin": "ast" + "source_location": "L174", + "_origin": "ast", + "community": 5, + "norm_label": "_cache_key()", + "id": "src_explain_explain_engine_cache_key" }, { - "id": "src_explain_explain_engine_graph_context", "label": "_graph_context()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L187", - "_origin": "ast" + "source_location": "L197", + "_origin": "ast", + "community": 48, + "norm_label": "_graph_context()", + "id": "src_explain_explain_engine_graph_context" }, { - "id": "src_explain_explain_engine_find_alternatives", "label": "_find_alternatives()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L205", - "_origin": "ast" + "source_location": "L215", + "_origin": "ast", + "community": 5, + "norm_label": "_find_alternatives()", + "id": "src_explain_explain_engine_find_alternatives" }, { - "id": "src_explain_explain_engine_build_user_prompt", "label": "_build_user_prompt()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L215", - "_origin": "ast" + "source_location": "L225", + "_origin": "ast", + "community": 24, + "norm_label": "_build_user_prompt()", + "id": "src_explain_explain_engine_build_user_prompt" }, { - "id": "src_explain_explain_engine_parse_llm_response", "label": "_parse_llm_response()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L331", - "_origin": "ast" + "source_location": "L349", + "_origin": "ast", + "community": 59, + "norm_label": "_parse_llm_response()", + "id": "src_explain_explain_engine_parse_llm_response" }, { - "id": "src_explain_explain_engine_fallback", "label": "_fallback()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L353", - "_origin": "ast" + "source_location": "L373", + "_origin": "ast", + "community": 52, + "norm_label": "_fallback()", + "id": "src_explain_explain_engine_fallback" }, { - "id": "src_explain_explain_engine_explainengine", "label": "ExplainEngine", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L416", - "_origin": "ast" + "source_location": "L444", + "_origin": "ast", + "community": 33, + "norm_label": "explainengine", + "id": "src_explain_explain_engine_explainengine" }, { - "id": "src_explain_explain_engine_explainengine_init", "label": ".__init__()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L419", - "_origin": "ast" - }, - { - "id": "src_explain_explain_engine_py_any", - "label": "Any", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L447", + "_origin": "ast", + "community": 31, + "norm_label": ".__init__()", + "id": "src_explain_explain_engine_explainengine_init" }, { - "id": "src_explain_explain_engine_explainengine_is_available", "label": ".is_available()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L438", - "_origin": "ast" + "source_location": "L469", + "_origin": "ast", + "community": 33, + "norm_label": ".is_available()", + "id": "src_explain_explain_engine_explainengine_is_available" }, { - "id": "src_explain_explain_engine_explainengine_build_alternatives", "label": ".build_alternatives()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L441", - "_origin": "ast" + "source_location": "L472", + "_origin": "ast", + "community": 5, + "norm_label": ".build_alternatives()", + "id": "src_explain_explain_engine_explainengine_build_alternatives" }, { - "id": "src_explain_explain_engine_explainengine_generate", "label": ".generate()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L452", - "_origin": "ast" + "source_location": "L483", + "_origin": "ast", + "community": 5, + "norm_label": ".generate()", + "id": "src_explain_explain_engine_explainengine_generate" }, { - "id": "src_explain_explain_engine_explainengine_call_llm", "label": "._call_llm()", "file_type": "code", "source_file": "src/explain/explain_engine.py", - "source_location": "L526", - "_origin": "ast" + "source_location": "L566", + "_origin": "ast", + "community": 5, + "norm_label": "._call_llm()", + "id": "src_explain_explain_engine_explainengine_call_llm" }, { - "id": "src_explain_explain_engine_rationale_1", "label": "ExplainEngine \u2014 Claude API \uae30\ubc18 4\ub2e8\uacc4 \uc790\uc5f0\uc5b4 \uc124\uba85 \uc0dd\uc131\uae30. \uac80\uc99d \uc5d4\uc9c4\uc774 \ud0d0\uc9c0\ud55c Hard Fail / Warning /\u2026", "file_type": "rationale", "source_file": "src/explain/explain_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 5, + "norm_label": "explainengine \u2014 claude api \u1100\u1175\u1107\u1161\u11ab 4\u1103\u1161\u11ab\u1100\u1168 \u110c\u1161\u110b\u1167\u11ab\u110b\u1165 \u1109\u1165\u11af\u1106\u1167\u11bc \u1109\u1162\u11bc\u1109\u1165\u11bc\u1100\u1175. \u1100\u1165\u11b7\u110c\u1173\u11bc \u110b\u1166\u11ab\u110c\u1175\u11ab\u110b\u1175 \u1110\u1161\u11b7\u110c\u1175\u1112\u1161\u11ab hard fail / warning /...", + "id": "src_explain_explain_engine_rationale_1" }, { - "id": "src_explain_explain_engine_rationale_45", "label": "\ucd5c\ub300 \ud06c\uae30 \uc81c\ud55c LRU \uce90\uc2dc \u2014 collections.OrderedDict \uae30\ubc18 (\uc678\ubd80 \uc758\uc874\uc131 \uc5c6\uc74c).", "file_type": "rationale", "source_file": "src/explain/explain_engine.py", - "source_location": "L45", - "_origin": "ast" + "source_location": "L48", + "_origin": "ast", + "community": 5, + "norm_label": "\u110e\u116c\u1103\u1162 \u110f\u1173\u1100\u1175 \u110c\u1166\u1112\u1161\u11ab lru \u110f\u1162\u1109\u1175 \u2014 collections.ordereddict \u1100\u1175\u1107\u1161\u11ab (\u110b\u116c\u1107\u116e \u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc \u110b\u1165\u11b9\u110b\u1173\u11b7).", + "id": "src_explain_explain_engine_rationale_48" }, { - "id": "src_explain_explain_engine_rationale_188", "label": "\uc9c0\uc2dd\uadf8\ub798\ud504\uc5d0\uc11c POI\uba85 \uac80\uc0c9 \u2192 \uc9c0\uc5ed/\uce74\ud14c\uace0\ub9ac + \ub3c4\ubcf4 \uadfc\uc811 \ub300\uc548 \uadfc\uac70. \uadf8\ub798\ud504 \ubbf8\uc124\uc815\uc774\uac70\ub098 \ub9e4\uce6d \uc2e4\ud328(\ub300\uc0c1 \uc9c0\uc5ed \ubc16 POI \ub4f1) \uc2dc None\u2026", "file_type": "rationale", "source_file": "src/explain/explain_engine.py", - "source_location": "L188", - "_origin": "ast" + "source_location": "L198", + "_origin": "ast", + "community": 48, + "norm_label": "\u110c\u1175\u1109\u1175\u11a8\u1100\u1173\u1105\u1162\u1111\u1173\u110b\u1166\u1109\u1165 poi\u1106\u1167\u11bc \u1100\u1165\u11b7\u1109\u1162\u11a8 \u2192 \u110c\u1175\u110b\u1167\u11a8/\u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175 + \u1103\u1169\u1107\u1169 \u1100\u1173\u11ab\u110c\u1165\u11b8 \u1103\u1162\u110b\u1161\u11ab \u1100\u1173\u11ab\u1100\u1165. \u1100\u1173\u1105\u1162\u1111\u1173 \u1106\u1175\u1109\u1165\u11af\u110c\u1165\u11bc\u110b\u1175\u1100\u1165\u1102\u1161 \u1106\u1162\u110e\u1175\u11bc \u1109\u1175\u11af\u1111\u1162(\u1103\u1162\u1109\u1161\u11bc \u110c\u1175\u110b\u1167\u11a8 \u1107\u1161\u11a9 poi \u1103\u1173\u11bc) \u1109\u1175 none...", + "id": "src_explain_explain_engine_rationale_198" }, { - "id": "src_explain_explain_engine_rationale_206", "label": "\uc9c0\uc2dd\uadf8\ub798\ud504\uc5d0\uc11c POI\uba85 \uac80\uc0c9 \u2192 \ub3c4\ubcf4 \uadfc\uc811 \ub300\uc548 POI \ubaa9\ub85d. \ubbf8\ub9e4\uce6d/\ubbf8\uc124\uc815 \uc2dc \ube48 \ub9ac\uc2a4\ud2b8.", "file_type": "rationale", "source_file": "src/explain/explain_engine.py", - "source_location": "L206", - "_origin": "ast" + "source_location": "L216", + "_origin": "ast", + "community": 5, + "norm_label": "\u110c\u1175\u1109\u1175\u11a8\u1100\u1173\u1105\u1162\u1111\u1173\u110b\u1166\u1109\u1165 poi\u1106\u1167\u11bc \u1100\u1165\u11b7\u1109\u1162\u11a8 \u2192 \u1103\u1169\u1107\u1169 \u1100\u1173\u11ab\u110c\u1165\u11b8 \u1103\u1162\u110b\u1161\u11ab poi \u1106\u1169\u11a8\u1105\u1169\u11a8. \u1106\u1175\u1106\u1162\u110e\u1175\u11bc/\u1106\u1175\u1109\u1165\u11af\u110c\u1165\u11bc \u1109\u1175 \u1107\u1175\u11ab \u1105\u1175\u1109\u1173\u1110\u1173.", + "id": "src_explain_explain_engine_rationale_216" }, { - "id": "src_explain_explain_engine_rationale_417", "label": "LLM \uae30\ubc18 4\ub2e8\uacc4 \uc124\uba85 \uc0dd\uc131 \uc5d4\uc9c4. External I/O = Claude API.", "file_type": "rationale", "source_file": "src/explain/explain_engine.py", - "source_location": "L417", - "_origin": "ast" + "source_location": "L445", + "_origin": "ast", + "community": 33, + "norm_label": "llm \u1100\u1175\u1107\u1161\u11ab 4\u1103\u1161\u11ab\u1100\u1168 \u1109\u1165\u11af\u1106\u1167\u11bc \u1109\u1162\u11bc\u1109\u1165\u11bc \u110b\u1166\u11ab\u110c\u1175\u11ab. external i/o = claude api.", + "id": "src_explain_explain_engine_rationale_445" }, { - "id": "src_explain_explain_engine_rationale_442", "label": "Hard Fail POI\ubcc4 \uc9c0\uc2dd\uadf8\ub798\ud504 \ub3c4\ubcf4\uad8c \ub300\uc548 \u2014 \uacb0\uacfc\ubcf4\uace0\uc11c\uc758 \ub300\uccb4 \uc81c\uc548 \uadfc\uac70.", "file_type": "rationale", "source_file": "src/explain/explain_engine.py", - "source_location": "L442", - "_origin": "ast" + "source_location": "L473", + "_origin": "ast", + "community": 5, + "norm_label": "hard fail poi\u1107\u1167\u11af \u110c\u1175\u1109\u1175\u11a8\u1100\u1173\u1105\u1162\u1111\u1173 \u1103\u1169\u1107\u1169\u1100\u116f\u11ab \u1103\u1162\u110b\u1161\u11ab \u2014 \u1100\u1167\u11af\u1100\u116a\u1107\u1169\u1100\u1169\u1109\u1165\u110b\u1174 \u1103\u1162\u110e\u1166 \u110c\u1166\u110b\u1161\u11ab \u1100\u1173\u11ab\u1100\u1165.", + "id": "src_explain_explain_engine_rationale_473" }, { - "id": "src_explain_pipeline", "label": "pipeline.py", "file_type": "code", "source_file": "src/explain/pipeline.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 17, + "norm_label": "pipeline.py", + "id": "src_explain_pipeline" }, { - "id": "src_explain_pipeline_to_vrptw_day", "label": "_to_vrptw_day()", "file_type": "code", "source_file": "src/explain/pipeline.py", - "source_location": "L53", - "_origin": "ast" + "source_location": "L55", + "_origin": "ast", + "community": 74, + "norm_label": "_to_vrptw_day()", + "id": "src_explain_pipeline_to_vrptw_day" }, { - "id": "src_explain_pipeline_to_poi_with_category", "label": "_to_poi_with_category()", "file_type": "code", "source_file": "src/explain/pipeline.py", - "source_location": "L70", - "_origin": "ast" + "source_location": "L72", + "_origin": "ast", + "community": 17, + "norm_label": "_to_poi_with_category()", + "id": "src_explain_pipeline_to_poi_with_category" }, { - "id": "src_explain_pipeline_scorebundle", "label": "_ScoreBundle", "file_type": "code", "source_file": "src/explain/pipeline.py", - "source_location": "L83", - "_origin": "ast" + "source_location": "L85", + "_origin": "ast", + "community": 17, + "norm_label": "_scorebundle", + "id": "src_explain_pipeline_scorebundle" }, { - "id": "src_explain_pipeline_validatorpipeline", "label": "ValidatorPipeline", "file_type": "code", "source_file": "src/explain/pipeline.py", - "source_location": "L100", - "_origin": "ast" + "source_location": "L103", + "_origin": "ast", + "community": 11, + "norm_label": "validatorpipeline", + "id": "src_explain_pipeline_validatorpipeline" }, { - "id": "src_explain_pipeline_validatorpipeline_init", "label": ".__init__()", "file_type": "code", "source_file": "src/explain/pipeline.py", - "source_location": "L103", - "_origin": "ast" + "source_location": "L106", + "_origin": "ast", + "community": 11, + "norm_label": ".__init__()", + "id": "src_explain_pipeline_validatorpipeline_init" }, { - "id": "src_explain_pipeline_validatorpipeline_run", "label": ".run()", "file_type": "code", "source_file": "src/explain/pipeline.py", - "source_location": "L119", - "_origin": "ast" + "source_location": "L122", + "_origin": "ast", + "community": 17, + "norm_label": ".run()", + "id": "src_explain_pipeline_validatorpipeline_run" }, { - "id": "src_explain_pipeline_validatorpipeline_score", "label": "._score()", "file_type": "code", "source_file": "src/explain/pipeline.py", - "source_location": "L235", - "_origin": "ast" + "source_location": "L251", + "_origin": "ast", + "community": 17, + "norm_label": "._score()", + "id": "src_explain_pipeline_validatorpipeline_score" }, { - "id": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", "label": "._estimate_repair_gains()", "file_type": "code", "source_file": "src/explain/pipeline.py", - "source_location": "L349", - "_origin": "ast" + "source_location": "L375", + "_origin": "ast", + "community": 17, + "norm_label": "._estimate_repair_gains()", + "id": "src_explain_pipeline_validatorpipeline_estimate_repair_gains" }, { - "id": "src_explain_pipeline_rationale_1", "label": "ValidatorPipeline \u2014 \uc804\uccb4 QA \ud30c\uc774\ud504\ub77c\uc778 \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\ud130. \ud750\ub984: 1. per-day HardFail \ud0d0\uc9c0 2. Warning\u2026", "file_type": "rationale", "source_file": "src/explain/pipeline.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 17, + "norm_label": "validatorpipeline \u2014 \u110c\u1165\u11ab\u110e\u1166 qa \u1111\u1161\u110b\u1175\u1111\u1173\u1105\u1161\u110b\u1175\u11ab \u110b\u1169\u110f\u1166\u1109\u1173\u1110\u1173\u1105\u1166\u110b\u1175\u1110\u1165. \u1112\u1173\u1105\u1173\u11b7: 1. per-day hardfail \u1110\u1161\u11b7\u110c\u1175 2. warning...", + "id": "src_explain_pipeline_rationale_1" }, { - "id": "src_explain_pipeline_rationale_54", "label": "POI \ub9ac\uc2a4\ud2b8 \u2192 VRPTWDay \ubcc0\ud658.", "file_type": "rationale", "source_file": "src/explain/pipeline.py", - "source_location": "L54", - "_origin": "ast" + "source_location": "L56", + "_origin": "ast", + "community": 74, + "norm_label": "poi \u1105\u1175\u1109\u1173\u1110\u1173 \u2192 vrptwday \u1107\u1167\u11ab\u1112\u116a\u11ab.", + "id": "src_explain_pipeline_rationale_56" }, { - "id": "src_explain_pipeline_rationale_84", "label": "1\u00b73\u00b73b\u00b74\u00b75\u00b76\u00b77\u00b78\ub2e8\uacc4(\uc810\uc218 \uacc4\uc0b0)\ub9cc\uc758 \uacb0\uacfc. Warning\u00b7Repair\u00b7Explain \ubbf8\ud3ec\ud568.", "file_type": "rationale", "source_file": "src/explain/pipeline.py", - "source_location": "L84", - "_origin": "ast" + "source_location": "L86", + "_origin": "ast", + "community": 17, + "norm_label": "1\u00b73\u00b73b\u00b74\u00b75\u00b76\u00b77\u00b78\u1103\u1161\u11ab\u1100\u1168(\u110c\u1165\u11b7\u1109\u116e \u1100\u1168\u1109\u1161\u11ab)\u1106\u1161\u11ab\u110b\u1174 \u1100\u1167\u11af\u1100\u116a. warning\u00b7repair\u00b7explain \u1106\u1175\u1111\u1169\u1112\u1161\u11b7.", + "id": "src_explain_pipeline_rationale_86" }, { - "id": "src_explain_pipeline_rationale_101", "label": "\uc804\uccb4 \uac80\uc99d \ud30c\uc774\ud504\ub77c\uc778. External I/O = Claude API (ExplainEngine\u00b7ThemeAlignmentJudge).", "file_type": "rationale", "source_file": "src/explain/pipeline.py", - "source_location": "L101", - "_origin": "ast" + "source_location": "L104", + "_origin": "ast", + "community": 11, + "norm_label": "\u110c\u1165\u11ab\u110e\u1166 \u1100\u1165\u11b7\u110c\u1173\u11bc \u1111\u1161\u110b\u1175\u1111\u1173\u1105\u1161\u110b\u1175\u11ab. external i/o = claude api (explainengine\u00b7themealignmentjudge).", + "id": "src_explain_pipeline_rationale_104" }, { - "id": "src_explain_pipeline_rationale_128", "label": "\ud30c\uc774\ud504\ub77c\uc778 \uc2e4\ud589 \u2192 ValidationResult \ubc18\ud658. Args: plan: \uc5ec\ud589 \uacc4\ud68d (party_type, travel_type,\u2026", "file_type": "rationale", "source_file": "src/explain/pipeline.py", - "source_location": "L128", - "_origin": "ast" + "source_location": "L132", + "_origin": "ast", + "community": 17, + "norm_label": "\u1111\u1161\u110b\u1175\u1111\u1173\u1105\u1161\u110b\u1175\u11ab \u1109\u1175\u11af\u1112\u1162\u11bc \u2192 validationresult \u1107\u1161\u11ab\u1112\u116a\u11ab. args: plan: \u110b\u1167\u1112\u1162\u11bc \u1100\u1168\u1112\u116c\u11a8 (party_type, travel_type,...", + "id": "src_explain_pipeline_rationale_132" }, { - "id": "src_explain_pipeline_rationale_244", "label": "1\u00b73\u00b73b\u00b74\u00b75\u00b76\u00b77\u00b78\ub2e8\uacc4\ub9cc \uc2e4\ud589\ud574 \uc810\uc218\ub97c \uacc4\uc0b0\ud55c\ub2e4 (Warning\u00b7Repair\u00b7Explain \uc81c\uc678). RepairEngine \uc81c\uc548\uc758\u2026", "file_type": "rationale", "source_file": "src/explain/pipeline.py", - "source_location": "L244", - "_origin": "ast" + "source_location": "L261", + "_origin": "ast", + "community": 17, + "norm_label": "1\u00b73\u00b73b\u00b74\u00b75\u00b76\u00b77\u00b78\u1103\u1161\u11ab\u1100\u1168\u1106\u1161\u11ab \u1109\u1175\u11af\u1112\u1162\u11bc\u1112\u1162 \u110c\u1165\u11b7\u1109\u116e\u1105\u1173\u11af \u1100\u1168\u1109\u1161\u11ab\u1112\u1161\u11ab\u1103\u1161 (warning\u00b7repair\u00b7explain \u110c\u1166\u110b\u116c). repairengine \u110c\u1166\u110b\u1161\u11ab\u110b\u1174...", + "id": "src_explain_pipeline_rationale_261" }, { - "id": "src_explain_pipeline_rationale_357", "label": "\uad50\uc815 \uc81c\uc548\ubcc4 \uc608\uc0c1 \uc810\uc218 \ubcc0\ud654(`estimated_score_gain`)\uc640 \ubb38\uc81c \ud574\uc18c \uc5ec\ubd80(`resolves_hard_fail`)\ub97c \ucc44\uc6b4\ub2e4.\u2026", "file_type": "rationale", "source_file": "src/explain/pipeline.py", - "source_location": "L357", - "_origin": "ast" + "source_location": "L384", + "_origin": "ast", + "community": 17, + "norm_label": "\u1100\u116d\u110c\u1165\u11bc \u110c\u1166\u110b\u1161\u11ab\u1107\u1167\u11af \u110b\u1168\u1109\u1161\u11bc \u110c\u1165\u11b7\u1109\u116e \u1107\u1167\u11ab\u1112\u116a(`estimated_score_gain`)\u110b\u116a \u1106\u116e\u11ab\u110c\u1166 \u1112\u1162\u1109\u1169 \u110b\u1167\u1107\u116e(`resolves_hard_fail`)\u1105\u1173\u11af \u110e\u1162\u110b\u116e\u11ab\u1103\u1161....", + "id": "src_explain_pipeline_rationale_384" }, { - "id": "src_explain_plan_extractor", "label": "plan_extractor.py", "file_type": "code", "source_file": "src/explain/plan_extractor.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 0, + "norm_label": "plan_extractor.py", + "id": "src_explain_plan_extractor" }, { - "id": "src_explain_plan_extractor_planextractionerror", "label": "PlanExtractionError", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L60", - "_origin": "ast" + "source_location": "L64", + "_origin": "ast", + "community": 0, + "norm_label": "planextractionerror", + "id": "src_explain_plan_extractor_planextractionerror" }, { - "id": "src_explain_plan_extractor_py_exception", "label": "Exception", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 0, + "norm_label": "exception", + "id": "exception" }, { - "id": "src_explain_plan_extractor_strip_fence", "label": "_strip_fence()", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L64", - "_origin": "ast" + "source_location": "L68", + "_origin": "ast", + "community": 0, + "norm_label": "_strip_fence()", + "id": "src_explain_plan_extractor_strip_fence" }, { - "id": "src_explain_plan_extractor_parse_response", "label": "_parse_response()", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L68", - "_origin": "ast" + "source_location": "L72", + "_origin": "ast", + "community": 0, + "norm_label": "_parse_response()", + "id": "src_explain_plan_extractor_parse_response" }, { - "id": "src_explain_plan_extractor_fallback_text_parse", "label": "_fallback_text_parse()", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L80", - "_origin": "ast" + "source_location": "L84", + "_origin": "ast", + "community": 0, + "norm_label": "_fallback_text_parse()", + "id": "src_explain_plan_extractor_fallback_text_parse" }, { - "id": "src_explain_plan_extractor_planextractor", "label": "PlanExtractor", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L103", - "_origin": "ast" + "source_location": "L107", + "_origin": "ast", + "community": 0, + "norm_label": "planextractor", + "id": "src_explain_plan_extractor_planextractor" }, { - "id": "src_explain_plan_extractor_planextractor_init", "label": ".__init__()", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L106", - "_origin": "ast" - }, - { - "id": "src_explain_plan_extractor_py_any", - "label": "Any", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L110", + "_origin": "ast", + "community": 16, + "norm_label": ".__init__()", + "id": "src_explain_plan_extractor_planextractor_init" }, { - "id": "src_explain_plan_extractor_planextractor_from_env", "label": ".from_env()", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L123", - "_origin": "ast" + "source_location": "L127", + "_origin": "ast", + "community": 0, + "norm_label": ".from_env()", + "id": "src_explain_plan_extractor_planextractor_from_env" }, { - "id": "src_explain_plan_extractor_planextractor_is_available", "label": ".is_available()", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L126", - "_origin": "ast" + "source_location": "L130", + "_origin": "ast", + "community": 0, + "norm_label": ".is_available()", + "id": "src_explain_plan_extractor_planextractor_is_available" }, { - "id": "src_explain_plan_extractor_planextractor_extract_from_text", "label": ".extract_from_text()", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L129", - "_origin": "ast" + "source_location": "L133", + "_origin": "ast", + "community": 0, + "norm_label": ".extract_from_text()", + "id": "src_explain_plan_extractor_planextractor_extract_from_text" }, { - "id": "src_explain_plan_extractor_planextractor_extract_from_document", "label": ".extract_from_document()", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L138", - "_origin": "ast" + "source_location": "L142", + "_origin": "ast", + "community": 0, + "norm_label": ".extract_from_document()", + "id": "src_explain_plan_extractor_planextractor_extract_from_document" }, { - "id": "src_explain_plan_extractor_planextractor_call", "label": "._call()", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L158", - "_origin": "ast" + "source_location": "L162", + "_origin": "ast", + "community": 0, + "norm_label": "._call()", + "id": "src_explain_plan_extractor_planextractor_call" }, { - "id": "src_explain_plan_extractor_demo", "label": "_demo()", "file_type": "code", "source_file": "src/explain/plan_extractor.py", - "source_location": "L177", - "_origin": "ast" + "source_location": "L183", + "_origin": "ast", + "community": 0, + "norm_label": "_demo()", + "id": "src_explain_plan_extractor_demo" }, { - "id": "src_explain_plan_extractor_rationale_1", "label": "PlanExtractor \u2014 Claude API \uae30\ubc18 \uc5ec\ud589 \uc77c\uc815\ud45c \ud30c\uc2f1 \uc5d4\uc9c4. '\ub300\ud55c\ubbfc\uad6d\uad6c\uc11d\uad6c\uc11d'(AI\ucf55\ucf55\ud50c\ub798\ub108 \ub4f1)\uc5d0\uc11c \ub098\uc628 \uc5ec\ud589 \ucf54\uc2a4 \ucd94\ucc9c\u2026", "file_type": "rationale", "source_file": "src/explain/plan_extractor.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 0, + "norm_label": "planextractor \u2014 claude api \u1100\u1175\u1107\u1161\u11ab \u110b\u1167\u1112\u1162\u11bc \u110b\u1175\u11af\u110c\u1165\u11bc\u1111\u116d \u1111\u1161\u1109\u1175\u11bc \u110b\u1166\u11ab\u110c\u1175\u11ab. '\u1103\u1162\u1112\u1161\u11ab\u1106\u1175\u11ab\u1100\u116e\u11a8\u1100\u116e\u1109\u1165\u11a8\u1100\u116e\u1109\u1165\u11a8'(ai\u110f\u1169\u11a8\u110f\u1169\u11a8\u1111\u1173\u11af\u1105\u1162\u1102\u1165 \u1103\u1173\u11bc)\u110b\u1166\u1109\u1165 \u1102\u1161\u110b\u1169\u11ab \u110b\u1167\u1112\u1162\u11bc \u110f\u1169\u1109\u1173 \u110e\u116e\u110e\u1165\u11ab...", + "id": "src_explain_plan_extractor_rationale_1" }, { - "id": "src_explain_plan_extractor_rationale_61", "label": "\ucd94\ucd9c \uc2e4\ud328 \u2014 API \ubbf8\uc124\uc815, \ud638\ucd9c \uc2e4\ud328, \uc751\ub2f5 \ud30c\uc2f1 \uc2e4\ud328 \ub4f1.", "file_type": "rationale", "source_file": "src/explain/plan_extractor.py", - "source_location": "L61", - "_origin": "ast" + "source_location": "L65", + "_origin": "ast", + "community": 0, + "norm_label": "\u110e\u116e\u110e\u116e\u11af \u1109\u1175\u11af\u1111\u1162 \u2014 api \u1106\u1175\u1109\u1165\u11af\u110c\u1165\u11bc, \u1112\u1169\u110e\u116e\u11af \u1109\u1175\u11af\u1111\u1162, \u110b\u1173\u11bc\u1103\u1161\u11b8 \u1111\u1161\u1109\u1175\u11bc \u1109\u1175\u11af\u1111\u1162 \u1103\u1173\u11bc.", + "id": "src_explain_plan_extractor_rationale_65" }, { - "id": "src_explain_plan_extractor_rationale_81", "label": "ANTHROPIC_API_KEY \ubbf8\uc124\uc815 \uc2dc \ucd5c\uc18c\ud55c\uc758 \uc904 \ub2e8\uc704 \ud734\ub9ac\uc2a4\ud2f1 \ud30c\uc2f1. ponytail: day/\uce74\ud14c\uace0\ub9ac \ud0dc\uadf8 \uc778\uc2dd \uc5c6\ub294 \ub2e8\uc21c \ub77c\uc778\u2026", "file_type": "rationale", "source_file": "src/explain/plan_extractor.py", - "source_location": "L81", - "_origin": "ast" + "source_location": "L85", + "_origin": "ast", + "community": 0, + "norm_label": "anthropic_api_key \u1106\u1175\u1109\u1165\u11af\u110c\u1165\u11bc \u1109\u1175 \u110e\u116c\u1109\u1169\u1112\u1161\u11ab\u110b\u1174 \u110c\u116e\u11af \u1103\u1161\u11ab\u110b\u1171 \u1112\u1172\u1105\u1175\u1109\u1173\u1110\u1175\u11a8 \u1111\u1161\u1109\u1175\u11bc. ponytail: day/\u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175 \u1110\u1162\u1100\u1173 \u110b\u1175\u11ab\u1109\u1175\u11a8 \u110b\u1165\u11b9\u1102\u1173\u11ab \u1103\u1161\u11ab\u1109\u116e\u11ab \u1105\u1161\u110b\u1175\u11ab...", + "id": "src_explain_plan_extractor_rationale_85" }, { - "id": "src_explain_plan_extractor_rationale_104", "label": "LLM \uae30\ubc18 \uc77c\uc815\ud45c \ucd94\ucd9c\uae30. External I/O = Claude API.", "file_type": "rationale", "source_file": "src/explain/plan_extractor.py", - "source_location": "L104", - "_origin": "ast" + "source_location": "L108", + "_origin": "ast", + "community": 0, + "norm_label": "llm \u1100\u1175\u1107\u1161\u11ab \u110b\u1175\u11af\u110c\u1165\u11bc\u1111\u116d \u110e\u116e\u110e\u116e\u11af\u1100\u1175. external i/o = claude api.", + "id": "src_explain_plan_extractor_rationale_108" }, { - "id": "src_explain_plan_extractor_rationale_130", "label": "\ubd99\uc5ec\ub123\uc740 \ud14d\uc2a4\ud2b8\ub97c \ucffc\ub9ac \ub9ac\ub77c\uc774\ud305\uc73c\ub85c \uc815\ub82c\ub41c day/place \uad6c\uc870\ub85c \ubcc0\ud658.", "file_type": "rationale", "source_file": "src/explain/plan_extractor.py", - "source_location": "L130", - "_origin": "ast" + "source_location": "L134", + "_origin": "ast", + "community": 0, + "norm_label": "\u1107\u116e\u11c0\u110b\u1167\u1102\u1165\u11c2\u110b\u1173\u11ab \u1110\u1166\u11a8\u1109\u1173\u1110\u1173\u1105\u1173\u11af \u110f\u116f\u1105\u1175 \u1105\u1175\u1105\u1161\u110b\u1175\u1110\u1175\u11bc\u110b\u1173\u1105\u1169 \u110c\u1165\u11bc\u1105\u1167\u11af\u1103\u116c\u11ab day/place \u1100\u116e\u110c\u1169\u1105\u1169 \u1107\u1167\u11ab\u1112\u116a\u11ab.", + "id": "src_explain_plan_extractor_rationale_134" }, { - "id": "src_explain_plan_extractor_rationale_139", "label": "PDF\u00b7PNG\u00b7JPG \ucea1\ucc98\ub97c Claude Vision\uc73c\ub85c \uc77d\uc5b4 day/place \uad6c\uc870\ub85c \ubcc0\ud658.", "file_type": "rationale", "source_file": "src/explain/plan_extractor.py", - "source_location": "L139", - "_origin": "ast" + "source_location": "L143", + "_origin": "ast", + "community": 0, + "norm_label": "pdf\u00b7png\u00b7jpg \u110f\u1162\u11b8\u110e\u1165\u1105\u1173\u11af claude vision\u110b\u1173\u1105\u1169 \u110b\u1175\u11b0\u110b\u1165 day/place \u1100\u116e\u110c\u1169\u1105\u1169 \u1107\u1167\u11ab\u1112\u116a\u11ab.", + "id": "src_explain_plan_extractor_rationale_143" }, { - "id": "src_explain_repair", "label": "repair.py", "file_type": "code", "source_file": "src/explain/repair.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 1, + "norm_label": "repair.py", + "id": "src_explain_repair" }, { - "id": "src_explain_repair_norm", "label": "_norm()", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L30", - "_origin": "ast" + "source_location": "L31", + "_origin": "ast", + "community": 1, + "norm_label": "_norm()", + "id": "src_explain_repair_norm" }, { - "id": "src_explain_repair_min_dwell_for", "label": "_min_dwell_for()", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L34", - "_origin": "ast" + "source_location": "L35", + "_origin": "ast", + "community": 1, + "norm_label": "_min_dwell_for()", + "id": "src_explain_repair_min_dwell_for" }, { - "id": "src_explain_repair_reordersuggestion", "label": "ReorderSuggestion", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L44", - "_origin": "ast" + "source_location": "L45", + "_origin": "ast", + "community": 1, + "norm_label": "reordersuggestion", + "id": "src_explain_repair_reordersuggestion" }, { - "id": "src_explain_repair_timetunesuggestion", "label": "TimeTuneSuggestion", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L53", - "_origin": "ast" + "source_location": "L54", + "_origin": "ast", + "community": 1, + "norm_label": "timetunesuggestion", + "id": "src_explain_repair_timetunesuggestion" }, { - "id": "src_explain_repair_deletionsuggestion", "label": "DeletionSuggestion", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L63", - "_origin": "ast" + "source_location": "L64", + "_origin": "ast", + "community": 1, + "norm_label": "deletionsuggestion", + "id": "src_explain_repair_deletionsuggestion" }, { - "id": "src_explain_repair_repairresult", "label": "RepairResult", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L74", - "_origin": "ast" + "source_location": "L75", + "_origin": "ast", + "community": 1, + "norm_label": "repairresult", + "id": "src_explain_repair_repairresult" }, { - "id": "src_explain_repair_repairresult_is_empty", "label": ".is_empty()", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L80", - "_origin": "ast" + "source_location": "L81", + "_origin": "ast", + "community": 1, + "norm_label": ".is_empty()", + "id": "src_explain_repair_repairresult_is_empty" }, { - "id": "src_explain_repair_repairresult_total_estimated_gain", "label": ".total_estimated_gain()", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L84", - "_origin": "ast" + "source_location": "L85", + "_origin": "ast", + "community": 1, + "norm_label": ".total_estimated_gain()", + "id": "src_explain_repair_repairresult_total_estimated_gain" }, { - "id": "src_explain_repair_repairresult_to_dict", "label": ".to_dict()", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L95", - "_origin": "ast" + "source_location": "L96", + "_origin": "ast", + "community": 1, + "norm_label": ".to_dict()", + "id": "src_explain_repair_repairresult_to_dict" }, { - "id": "src_explain_repair_repairengine", "label": "RepairEngine", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L101", - "_origin": "ast" + "source_location": "L102", + "_origin": "ast", + "community": 1, + "norm_label": "repairengine", + "id": "src_explain_repair_repairengine" }, { - "id": "src_explain_repair_repairengine_init", "label": ".__init__()", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L104", - "_origin": "ast" + "source_location": "L105", + "_origin": "ast", + "community": 1, + "norm_label": ".__init__()", + "id": "src_explain_repair_repairengine_init" }, { - "id": "src_explain_repair_repairengine_repair", "label": ".repair()", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L108", - "_origin": "ast" + "source_location": "L109", + "_origin": "ast", + "community": 1, + "norm_label": ".repair()", + "id": "src_explain_repair_repairengine_repair" }, { - "id": "src_explain_repair_repairengine_try_reorder", "label": "._try_reorder()", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L142", - "_origin": "ast" + "source_location": "L143", + "_origin": "ast", + "community": 1, + "norm_label": "._try_reorder()", + "id": "src_explain_repair_repairengine_try_reorder" }, { - "id": "src_explain_repair_repairengine_try_time_tune", "label": "._try_time_tune()", "file_type": "code", "source_file": "src/explain/repair.py", - "source_location": "L171", - "_origin": "ast" + "source_location": "L172", + "_origin": "ast", + "community": 1, + "norm_label": "._try_time_tune()", + "id": "src_explain_repair_repairengine_try_time_tune" }, { - "id": "src_explain_repair_repairengine_suggest_deletion", "label": "._suggest_deletion()", "file_type": "code", "source_file": "src/explain/repair.py", "source_location": "L224", - "_origin": "ast" + "_origin": "ast", + "community": 1, + "norm_label": "._suggest_deletion()", + "id": "src_explain_repair_repairengine_suggest_deletion" }, { - "id": "src_explain_repair_rationale_1", "label": "Minimal Interference Repair Engine. \uad50\uc815 \uc6b0\uc120\uc21c\uc704 (Hard Fail \ubc1c\uc0dd \uc2dc \uc21c\uc11c\ub300\ub85c \uc2dc\ub3c4): 1. Re-\u2026", "file_type": "rationale", "source_file": "src/explain/repair.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 1, + "norm_label": "minimal interference repair engine. \u1100\u116d\u110c\u1165\u11bc \u110b\u116e\u1109\u1165\u11ab\u1109\u116e\u11ab\u110b\u1171 (hard fail \u1107\u1161\u11af\u1109\u1162\u11bc \u1109\u1175 \u1109\u116e\u11ab\u1109\u1165\u1103\u1162\u1105\u1169 \u1109\u1175\u1103\u1169): 1. re-...", + "id": "src_explain_repair_rationale_1" }, { - "id": "src_explain_repair_rationale_35", "label": "dwell_db \uae30\uc900 \ucd5c\uc18c \uad8c\uc7a5 \uccb4\ub958 \uc2dc\uac04 (50% \uae30\uc900, \uc808\ub300 \ucd5c\uc19f\uac12 20\ubd84).", "file_type": "rationale", "source_file": "src/explain/repair.py", - "source_location": "L35", - "_origin": "ast" + "source_location": "L36", + "_origin": "ast", + "community": 1, + "norm_label": "dwell_db \u1100\u1175\u110c\u116e\u11ab \u110e\u116c\u1109\u1169 \u1100\u116f\u11ab\u110c\u1161\u11bc \u110e\u1166\u1105\u1172 \u1109\u1175\u1100\u1161\u11ab (50% \u1100\u1175\u110c\u116e\u11ab, \u110c\u1165\u11af\u1103\u1162 \u110e\u116c\u1109\u1169\u11ba\u1100\u1161\u11b9 20\u1107\u116e\u11ab).", + "id": "src_explain_repair_rationale_36" }, { - "id": "src_explain_repair_rationale_85", "label": "\ubaa8\ub4e0 \uc81c\uc548\uc744 \uc801\uc6a9\ud588\uc744 \ub54c \uc608\uc0c1 \ucd1d \uc810\uc218 \uc0c1\uc2b9\ubd84. \uac19\uc740 \ub0a0\uc9dc\uc758 \uc81c\uc548\ub4e4\uc740 \uc11c\ub85c \ub300\uc548(\ud558\ub098\ub9cc \uc801\uc6a9)\uc774\ubbc0\ub85c \ucd5c\ub313\uac12\ub9cc \ucde8\ud558\uace0, \uc11c\ub85c \ub2e4\ub978 \ub0a0\uc9dc\uc758 \uc81c\uc548\uc740\u2026", "file_type": "rationale", "source_file": "src/explain/repair.py", - "source_location": "L85", - "_origin": "ast" + "source_location": "L86", + "_origin": "ast", + "community": 1, + "norm_label": "\u1106\u1169\u1103\u1173\u11ab \u110c\u1166\u110b\u1161\u11ab\u110b\u1173\u11af \u110c\u1165\u11a8\u110b\u116d\u11bc\u1112\u1162\u11bb\u110b\u1173\u11af \u1104\u1162 \u110b\u1168\u1109\u1161\u11bc \u110e\u1169\u11bc \u110c\u1165\u11b7\u1109\u116e \u1109\u1161\u11bc\u1109\u1173\u11bc\u1107\u116e\u11ab. \u1100\u1161\u11c0\u110b\u1173\u11ab \u1102\u1161\u11af\u110d\u1161\u110b\u1174 \u110c\u1166\u110b\u1161\u11ab\u1103\u1173\u11af\u110b\u1173\u11ab \u1109\u1165\u1105\u1169 \u1103\u1162\u110b\u1161\u11ab(\u1112\u1161\u1102\u1161\u1106\u1161\u11ab \u110c\u1165\u11a8\u110b\u116d\u11bc)\u110b\u1175\u1106\u1173\u1105\u1169 \u110e\u116c\u1103\u1162\u11ba\u1100\u1161\u11b9\u1106\u1161\u11ab \u110e\u1171\u1112\u1161\u1100\u1169, \u1109\u1165\u1105\u1169 \u1103\u1161\u1105\u1173\u11ab \u1102\u1161\u11af\u110d\u1161\u110b\u1174 \u110c\u1166\u110b\u1161\u11ab\u110b\u1173\u11ab...", + "id": "src_explain_repair_rationale_86" }, { - "id": "src_explain_repair_rationale_102", "label": "Minimal Interference \uad50\uc815 \uc5d4\uc9c4. External I/O \uc5c6\uc74c.", "file_type": "rationale", "source_file": "src/explain/repair.py", - "source_location": "L102", - "_origin": "ast" + "source_location": "L103", + "_origin": "ast", + "community": 1, + "norm_label": "minimal interference \u1100\u116d\u110c\u1165\u11bc \u110b\u1166\u11ab\u110c\u1175\u11ab. external i/o \u110b\u1165\u11b9\u110b\u1173\u11b7.", + "id": "src_explain_repair_rationale_103" }, { - "id": "src_explain_repair_rationale_115", "label": "3\ub2e8\uacc4 \uad50\uc815 \uc2dc\ub3c4. Hard Fail\uc774 \uc5c6\uc73c\uba74 \uc989\uc2dc \ube48 \uacb0\uacfc \ubc18\ud658.", "file_type": "rationale", "source_file": "src/explain/repair.py", - "source_location": "L115", - "_origin": "ast" + "source_location": "L116", + "_origin": "ast", + "community": 1, + "norm_label": "3\u1103\u1161\u11ab\u1100\u1168 \u1100\u116d\u110c\u1165\u11bc \u1109\u1175\u1103\u1169. hard fail\u110b\u1175 \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab \u110c\u1173\u11a8\u1109\u1175 \u1107\u1175\u11ab \u1100\u1167\u11af\u1100\u116a \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_explain_repair_rationale_116" }, { - "id": "src_explain_repair_rationale_149", "label": "n \u2264 7\uc778 \uacbd\uc6b0 \uc21c\uc5f4 \uc804\uc218 \ud0d0\uc0c9\uc73c\ub85c Hard Fail \uc5c6\ub294 \uc21c\uc11c \ubc18\ud658.", "file_type": "rationale", "source_file": "src/explain/repair.py", - "source_location": "L149", - "_origin": "ast" + "source_location": "L150", + "_origin": "ast", + "community": 1, + "norm_label": "n \u2264 7\u110b\u1175\u11ab \u1100\u1167\u11bc\u110b\u116e \u1109\u116e\u11ab\u110b\u1167\u11af \u110c\u1165\u11ab\u1109\u116e \u1110\u1161\u11b7\u1109\u1162\u11a8\u110b\u1173\u1105\u1169 hard fail \u110b\u1165\u11b9\u1102\u1173\u11ab \u1109\u116e\u11ab\u1109\u1165 \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_explain_repair_rationale_150" }, { - "id": "src_explain_repair_rationale_178", "label": "\uccb4\ub958 \uc2dc\uac04\uc744 \ucd5c\uc19f\uac12\uae4c\uc9c0 5\ubd84 \ub2e8\uc704\ub85c \uc904\uc5ec \uc77c\uc815 \uacfc\ubc00 \uc644\ud654.", "file_type": "rationale", "source_file": "src/explain/repair.py", - "source_location": "L178", - "_origin": "ast" + "source_location": "L179", + "_origin": "ast", + "community": 1, + "norm_label": "\u110e\u1166\u1105\u1172 \u1109\u1175\u1100\u1161\u11ab\u110b\u1173\u11af \u110e\u116c\u1109\u1169\u11ba\u1100\u1161\u11b9\u1101\u1161\u110c\u1175 5\u1107\u116e\u11ab \u1103\u1161\u11ab\u110b\u1171\u1105\u1169 \u110c\u116e\u11af\u110b\u1167 \u110b\u1175\u11af\u110c\u1165\u11bc \u1100\u116a\u1106\u1175\u11af \u110b\u116a\u11ab\u1112\u116a.", + "id": "src_explain_repair_rationale_179" }, { - "id": "src_explain_repair_rationale_229", "label": "\uc774\ub3d9 \uac70\ub9ac \uc808\uac10\ub7c9\uc774 \ucd5c\ub300\uc778 \uc7a5\uc18c(\uc9c0\ub9ac\uc801 \uc774\uc0c1\uce58)\ub97c \uc0ad\uc81c \ud6c4\ubcf4\ub85c \uc81c\uc548. \uc0ad\uc81c \ube44\uc6a9 = \uc81c\uac70 \uc2dc \uc774\ub3d9 \uc808\uac10(before\u2192i + i\u2192after) -\u2026", "file_type": "rationale", "source_file": "src/explain/repair.py", "source_location": "L229", - "_origin": "ast" - }, - { - "id": "src_matrix_init", - "label": "matrix/__init__.py", - "file_type": "code", - "source_file": "src/matrix/__init__.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "src_matrix_init_rationale_1", - "label": "matrix \u2014 \uc774\ub3d9\uc2dc\uac04 \ud589\ub82c \uad6c\ud604\uccb4 \ud328\ud0a4\uc9c0.", - "file_type": "rationale", - "source_file": "src/matrix/__init__.py", - "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 1, + "norm_label": "\u110b\u1175\u1103\u1169\u11bc \u1100\u1165\u1105\u1175 \u110c\u1165\u11af\u1100\u1161\u11b7\u1105\u1163\u11bc\u110b\u1175 \u110e\u116c\u1103\u1162\u110b\u1175\u11ab \u110c\u1161\u11bc\u1109\u1169(\u110c\u1175\u1105\u1175\u110c\u1165\u11a8 \u110b\u1175\u1109\u1161\u11bc\u110e\u1175)\u1105\u1173\u11af \u1109\u1161\u11a8\u110c\u1166 \u1112\u116e\u1107\u1169\u1105\u1169 \u110c\u1166\u110b\u1161\u11ab. \u1109\u1161\u11a8\u110c\u1166 \u1107\u1175\u110b\u116d\u11bc = \u110c\u1166\u1100\u1165 \u1109\u1175 \u110b\u1175\u1103\u1169\u11bc \u110c\u1165\u11af\u1100\u1161\u11b7(before\u2192i + i\u2192after) -...", + "id": "src_explain_repair_rationale_229" }, { - "id": "src_matrix_redis_matrix", - "label": "redis_matrix.py", + "label": "route_matrix.py", "file_type": "code", - "source_file": "src/matrix/redis_matrix.py", + "source_file": "src/matrix/route_matrix.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 30, + "norm_label": "route_matrix.py", + "id": "src_matrix_route_matrix" }, { - "id": "src_matrix_redis_matrix_redistimematrix", - "label": "RedisTimeMatrix", + "label": "RouteMatrixService", "file_type": "code", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L35", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L13", + "_origin": "ast", + "community": 27, + "norm_label": "routematrixservice", + "id": "src_matrix_route_matrix_routematrixservice" }, { - "id": "src_matrix_redis_matrix_redistimematrix_init", "label": ".__init__()", "file_type": "code", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L43", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L16", + "_origin": "ast", + "community": 27, + "norm_label": ".__init__()", + "id": "src_matrix_route_matrix_routematrixservice_init" }, { - "id": "src_matrix_redis_matrix_redistimematrix_from_env", - "label": ".from_env()", + "label": ".from_settings()", "file_type": "code", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L56", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L23", + "_origin": "ast", + "community": 27, + "norm_label": ".from_settings()", + "id": "src_matrix_route_matrix_routematrixservice_from_settings" }, { - "id": "src_matrix_redis_matrix_py_path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 27, + "norm_label": "path", + "id": "src_matrix_route_matrix_py_path" }, { - "id": "src_matrix_redis_matrix_redistimematrix_load_dotenv", - "label": "._load_dotenv()", + "label": ".uses_kakao()", "file_type": "code", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L82", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L38", + "_origin": "ast", + "community": 27, + "norm_label": ".uses_kakao()", + "id": "src_matrix_route_matrix_routematrixservice_uses_kakao" }, { - "id": "src_matrix_redis_matrix_redistimematrix_get_travel_time", - "label": ".get_travel_time()", + "label": "._to_vrptw_place()", "file_type": "code", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L92", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L42", + "_origin": "ast", + "community": 27, + "norm_label": "._to_vrptw_place()", + "id": "src_matrix_route_matrix_routematrixservice_to_vrptw_place" }, { - "id": "src_matrix_redis_matrix_redistimematrix_set_travel_time", - "label": ".set_travel_time()", + "label": ".prepare()", "file_type": "code", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L110", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L52", + "_origin": "ast", + "community": 27, + "norm_label": ".prepare()", + "id": "src_matrix_route_matrix_routematrixservice_prepare" }, { - "id": "src_matrix_redis_matrix_redistimematrix_make_key", - "label": "._make_key()", + "label": ".get_travel_time()", "file_type": "code", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L130", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L58", + "_origin": "ast", + "community": 27, + "norm_label": ".get_travel_time()", + "id": "src_matrix_route_matrix_routematrixservice_get_travel_time" }, { - "id": "src_matrix_redis_matrix_redistimematrix_stats", - "label": ".stats()", + "label": ".get_travel_min()", "file_type": "code", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L138", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L62", + "_origin": "ast", + "community": 27, + "norm_label": ".get_travel_min()", + "id": "src_matrix_route_matrix_routematrixservice_get_travel_min" }, { - "id": "src_matrix_redis_matrix_redistimematrix_is_available", - "label": ".is_available()", + "label": ".build()", "file_type": "code", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L142", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L72", + "_origin": "ast", + "community": 27, + "norm_label": ".build()", + "id": "src_matrix_route_matrix_routematrixservice_build" }, { - "id": "src_matrix_redis_matrix_rationale_1", - "label": "Redis \uae30\ubc18 TimeMatrix \u2014 REDIS_URL \ud658\uacbd\ubcc0\uc218\ub85c \uc790\ub3d9 \ud65c\uc131\ud654. KakaoMobilityMatrix\uc758 drop-in \ub300\uccb4\uc7ac:\u2026", + "label": "\uc6b4\uc601 \uac80\uc99d\uc5d0 \uc8fc\uc785\ud560 indexed \uc774\ub3d9\uc2dc\uac04 \ud589\ub82c \uc11c\ube44\uc2a4.", "file_type": "rationale", - "source_file": "src/matrix/redis_matrix.py", + "source_file": "src/matrix/route_matrix.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 30, + "norm_label": "\u110b\u116e\u11ab\u110b\u1167\u11bc \u1100\u1165\u11b7\u110c\u1173\u11bc\u110b\u1166 \u110c\u116e\u110b\u1175\u11b8\u1112\u1161\u11af indexed \u110b\u1175\u1103\u1169\u11bc\u1109\u1175\u1100\u1161\u11ab \u1112\u1162\u11bc\u1105\u1167\u11af \u1109\u1165\u1107\u1175\u1109\u1173.", + "id": "src_matrix_route_matrix_rationale_1" }, { - "id": "src_matrix_redis_matrix_rationale_36", - "label": "Redis \uae30\ubc18 TimeMatrix. redis-py\uac00 \uc124\uce58\ub418\uc5b4 \uc788\uace0 REDIS_URL\uc774 \uc720\ud6a8\ud560 \ub54c\ub9cc \ub3d9\uc791. get_travel_time\uc740\u2026", + "label": "Kakao Mobility\ub97c \uc6b0\uc120 \uc0ac\uc6a9\ud558\uace0 \ubcf4\uc815\ub41c Haversine\uc73c\ub85c \ud3f4\ubc31\ud55c\ub2e4.", "file_type": "rationale", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L36", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L14", + "_origin": "ast", + "community": 27, + "norm_label": "kakao mobility\u1105\u1173\u11af \u110b\u116e\u1109\u1165\u11ab \u1109\u1161\u110b\u116d\u11bc\u1112\u1161\u1100\u1169 \u1107\u1169\u110c\u1165\u11bc\u1103\u116c\u11ab haversine\u110b\u1173\u1105\u1169 \u1111\u1169\u11af\u1107\u1162\u11a8\u1112\u1161\u11ab\u1103\u1161.", + "id": "src_matrix_route_matrix_rationale_14" }, { - "id": "src_matrix_redis_matrix_rationale_60", - "label": "REDIS_URL \ud658\uacbd\ubcc0\uc218\uac00 \uc788\uc73c\uba74 \uc778\uc2a4\ud134\uc2a4 \ubc18\ud658, \uc5c6\uc73c\uba74 None.", + "label": "\ud604\uc7ac \uc694\uccad\uc758 \ubaa8\ub4e0 \uc7a5\uc18c \uc30d\uc744 API/\uce90\uc2dc\uc5d0 \ubbf8\ub9ac \uc801\uc7ac\ud55c\ub2e4.", "file_type": "rationale", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L60", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L53", + "_origin": "ast", + "community": 27, + "norm_label": "\u1112\u1167\u11ab\u110c\u1162 \u110b\u116d\u110e\u1165\u11bc\u110b\u1174 \u1106\u1169\u1103\u1173\u11ab \u110c\u1161\u11bc\u1109\u1169 \u110a\u1161\u11bc\u110b\u1173\u11af api/\u110f\u1162\u1109\u1175\u110b\u1166 \u1106\u1175\u1105\u1175 \u110c\u1165\u11a8\u110c\u1162\u1112\u1161\u11ab\u1103\u1161.", + "id": "src_matrix_route_matrix_rationale_53" }, { - "id": "src_scoring_init", - "label": "scoring/__init__.py", - "file_type": "code", - "source_file": "src/scoring/__init__.py", - "source_location": "L1", - "_origin": "ast" + "label": "VRPTWEngine\uc774 \uc0ac\uc6a9\ud558\ub294 \ucd08 \ub2e8\uc704 \uc774\ub3d9\uc2dc\uac04.", + "file_type": "rationale", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L59", + "_origin": "ast", + "community": 27, + "norm_label": "vrptwengine\u110b\u1175 \u1109\u1161\u110b\u116d\u11bc\u1112\u1161\u1102\u1173\u11ab \u110e\u1169 \u1103\u1161\u11ab\u110b\u1171 \u110b\u1175\u1103\u1169\u11bc\u1109\u1175\u1100\u1161\u11ab.", + "id": "src_matrix_route_matrix_rationale_59" }, { - "id": "src_scoring_init_rationale_1", - "label": "\ud488\uc9c8 \ud3c9\uac00 (Scoring) \ub808\uc774\uc5b4. VRPTW \uac80\uc99d\uc744 \ud1b5\uacfc\ud55c \uc77c\uc815\uc5d0 \ub300\ud574 \"\uc5bc\ub9c8\ub098 \uc88b\uc740 \uacbd\ub85c\uc778\uac00\" \ud3c9\uac00: - travel_ratio : \uc774\ub3d9\u2026", + "label": "\uae30\uc874 dict \uae30\ubc18 \uac80\uc99d\uae30\uac00 \uc0ac\uc6a9\ud558\ub294 \ubd84 \ub2e8\uc704 \uc774\ub3d9\uc2dc\uac04.", "file_type": "rationale", - "source_file": "src/scoring/__init__.py", - "source_location": "L1", - "_origin": "ast" + "source_file": "src/matrix/route_matrix.py", + "source_location": "L63", + "_origin": "ast", + "community": 27, + "norm_label": "\u1100\u1175\u110c\u1169\u11ab dict \u1100\u1175\u1107\u1161\u11ab \u1100\u1165\u11b7\u110c\u1173\u11bc\u1100\u1175\u1100\u1161 \u1109\u1161\u110b\u116d\u11bc\u1112\u1161\u1102\u1173\u11ab \u1107\u116e\u11ab \u1103\u1161\u11ab\u110b\u1171 \u110b\u1175\u1103\u1169\u11bc\u1109\u1175\u1100\u1161\u11ab.", + "id": "src_matrix_route_matrix_rationale_63" }, { - "id": "src_scoring_bonus_engine", "label": "bonus_engine.py", "file_type": "code", "source_file": "src/scoring/bonus_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 17, + "norm_label": "bonus_engine.py", + "id": "src_scoring_bonus_engine" }, { - "id": "src_scoring_bonus_engine_bonusresult", "label": "BonusResult", "file_type": "code", "source_file": "src/scoring/bonus_engine.py", - "source_location": "L23", - "_origin": "ast" + "source_location": "L24", + "_origin": "ast", + "community": 17, + "norm_label": "bonusresult", + "id": "src_scoring_bonus_engine_bonusresult" }, { - "id": "src_scoring_bonus_engine_placecoord", "label": "_PlaceCoord", "file_type": "code", "source_file": "src/scoring/bonus_engine.py", - "source_location": "L34", - "_origin": "ast" + "source_location": "L35", + "_origin": "ast", + "community": 11, + "norm_label": "_placecoord", + "id": "src_scoring_bonus_engine_placecoord" }, { - "id": "src_scoring_bonus_engine_bonusengine", "label": "BonusEngine", "file_type": "code", "source_file": "src/scoring/bonus_engine.py", - "source_location": "L39", - "_origin": "ast" + "source_location": "L40", + "_origin": "ast", + "community": 11, + "norm_label": "bonusengine", + "id": "src_scoring_bonus_engine_bonusengine" }, { - "id": "src_scoring_bonus_engine_bonusengine_init", "label": ".__init__()", "file_type": "code", "source_file": "src/scoring/bonus_engine.py", - "source_location": "L46", - "_origin": "ast" + "source_location": "L47", + "_origin": "ast", + "community": 11, + "norm_label": ".__init__()", + "id": "src_scoring_bonus_engine_bonusengine_init" }, { - "id": "src_scoring_bonus_engine_bonusengine_from_dataset", "label": ".from_dataset()", "file_type": "code", "source_file": "src/scoring/bonus_engine.py", - "source_location": "L55", - "_origin": "ast" - }, - { - "id": "src_scoring_bonus_engine_py_path", - "label": "Path", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L56", + "_origin": "ast", + "community": 65, + "norm_label": ".from_dataset()", + "id": "src_scoring_bonus_engine_bonusengine_from_dataset" }, { - "id": "src_scoring_bonus_engine_bonusengine_compute", "label": ".compute()", "file_type": "code", "source_file": "src/scoring/bonus_engine.py", - "source_location": "L82", - "_origin": "ast" + "source_location": "L83", + "_origin": "ast", + "community": 17, + "norm_label": ".compute()", + "id": "src_scoring_bonus_engine_bonusengine_compute" }, { - "id": "src_scoring_bonus_engine_nearest_km", "label": "_nearest_km()", "file_type": "code", "source_file": "src/scoring/bonus_engine.py", - "source_location": "L134", - "_origin": "ast" + "source_location": "L131", + "_origin": "ast", + "community": 17, + "norm_label": "_nearest_km()", + "id": "src_scoring_bonus_engine_nearest_km" }, { - "id": "src_scoring_bonus_engine_rationale_1", "label": "\uac00\uc0b0\uc810 \uc5d4\uc9c4 \u2014 \uc6f0\ub2c8\uc2a4\u00b7\ubb34\uc7a5\uc560 \uc5ec\ud589\uc9c0 \ubc29\ubb38 \ubcf4\ub108\uc2a4.", "file_type": "rationale", "source_file": "src/scoring/bonus_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 17, + "norm_label": "\u1100\u1161\u1109\u1161\u11ab\u110c\u1165\u11b7 \u110b\u1166\u11ab\u110c\u1175\u11ab \u2014 \u110b\u1170\u11af\u1102\u1175\u1109\u1173\u00b7\u1106\u116e\u110c\u1161\u11bc\u110b\u1162 \u110b\u1167\u1112\u1162\u11bc\u110c\u1175 \u1107\u1161\u11bc\u1106\u116e\u11ab \u1107\u1169\u1102\u1165\u1109\u1173.", + "id": "src_scoring_bonus_engine_rationale_1" }, { - "id": "src_scoring_bonus_engine_rationale_40", "label": "\uc6f0\ub2c8\uc2a4\u00b7\ubb34\uc7a5\uc560 \uc7a5\uc18c \ub370\uc774\ud130\uc14b \uae30\ubc18 \uac00\uc0b0\uc810 \uacc4\uc0b0\uae30. from_dataset() \ub85c JSON \ub370\uc774\ud130\uc14b\uc744 \ub85c\ub4dc\ud558\uc5ec \uc778\uc2a4\ud134\uc2a4 \uc0dd\uc131. External\u2026", "file_type": "rationale", "source_file": "src/scoring/bonus_engine.py", - "source_location": "L40", - "_origin": "ast" + "source_location": "L41", + "_origin": "ast", + "community": 11, + "norm_label": "\u110b\u1170\u11af\u1102\u1175\u1109\u1173\u00b7\u1106\u116e\u110c\u1161\u11bc\u110b\u1162 \u110c\u1161\u11bc\u1109\u1169 \u1103\u1166\u110b\u1175\u1110\u1165\u1109\u1166\u11ba \u1100\u1175\u1107\u1161\u11ab \u1100\u1161\u1109\u1161\u11ab\u110c\u1165\u11b7 \u1100\u1168\u1109\u1161\u11ab\u1100\u1175. from_dataset() \u1105\u1169 json \u1103\u1166\u110b\u1175\u1110\u1165\u1109\u1166\u11ba\u110b\u1173\u11af \u1105\u1169\u1103\u1173\u1112\u1161\u110b\u1167 \u110b\u1175\u11ab\u1109\u1173\u1110\u1165\u11ab\u1109\u1173 \u1109\u1162\u11bc\u1109\u1165\u11bc. external...", + "id": "src_scoring_bonus_engine_rationale_41" }, { - "id": "src_scoring_bonus_engine_rationale_60", "label": "\ub85c\uceec JSON \ub370\uc774\ud130\uc14b\uc5d0\uc11c \ub85c\ub4dc. \ud30c\uc77c \uc5c6\uc73c\uba74 \ube48 \uc5d4\uc9c4 \ubc18\ud658.", "file_type": "rationale", "source_file": "src/scoring/bonus_engine.py", - "source_location": "L60", - "_origin": "ast" + "source_location": "L61", + "_origin": "ast", + "community": 65, + "norm_label": "\u1105\u1169\u110f\u1165\u11af json \u1103\u1166\u110b\u1175\u1110\u1165\u1109\u1166\u11ba\u110b\u1166\u1109\u1165 \u1105\u1169\u1103\u1173. \u1111\u1161\u110b\u1175\u11af \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab \u1107\u1175\u11ab \u110b\u1166\u11ab\u110c\u1175\u11ab \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_scoring_bonus_engine_rationale_61" }, { - "id": "src_scoring_bonus_engine_rationale_88", "label": "POI \ubaa9\ub85d\uc5d0\uc11c \uac00\uc0b0\uc810 \uacc4\uc0b0. - \uc6f0\ub2c8\uc2a4 \uc7a5\uc18c: \ubaa8\ub4e0 party_type\uc5d0 \uc801\uc6a9. - \ubb34\uc7a5\uc560 \uc7a5\uc18c:\u2026", "file_type": "rationale", "source_file": "src/scoring/bonus_engine.py", - "source_location": "L88", - "_origin": "ast" + "source_location": "L89", + "_origin": "ast", + "community": 17, + "norm_label": "poi \u1106\u1169\u11a8\u1105\u1169\u11a8\u110b\u1166\u1109\u1165 \u1100\u1161\u1109\u1161\u11ab\u110c\u1165\u11b7 \u1100\u1168\u1109\u1161\u11ab. - \u110b\u1170\u11af\u1102\u1175\u1109\u1173 \u110c\u1161\u11bc\u1109\u1169: \u1106\u1169\u1103\u1173\u11ab party_type\u110b\u1166 \u110c\u1165\u11a8\u110b\u116d\u11bc. - \u1106\u116e\u110c\u1161\u11bc\u110b\u1162 \u110c\u1161\u11bc\u1109\u1169:...", + "id": "src_scoring_bonus_engine_rationale_89" }, { - "id": "src_scoring_bonus_engine_rationale_135", "label": "POI\uc640 \uac00\uc7a5 \uac00\uae4c\uc6b4 \uc88c\ud45c\uae4c\uc9c0\uc758 \uac70\ub9ac(km). coords\uac00 \ube44\uc5b4\uc788\uc73c\uba74 inf \ubc18\ud658.", "file_type": "rationale", "source_file": "src/scoring/bonus_engine.py", - "source_location": "L135", - "_origin": "ast" + "source_location": "L132", + "_origin": "ast", + "community": 17, + "norm_label": "poi\u110b\u116a \u1100\u1161\u110c\u1161\u11bc \u1100\u1161\u1101\u1161\u110b\u116e\u11ab \u110c\u116a\u1111\u116d\u1101\u1161\u110c\u1175\u110b\u1174 \u1100\u1165\u1105\u1175(km). coords\u1100\u1161 \u1107\u1175\u110b\u1165\u110b\u1175\u11bb\u110b\u1173\u1106\u1167\u11ab inf \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_scoring_bonus_engine_rationale_132" }, { - "id": "src_scoring_cluster_dispersion", "label": "cluster_dispersion.py", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 12, + "norm_label": "cluster_dispersion.py", + "id": "src_scoring_cluster_dispersion" }, { - "id": "src_scoring_cluster_dispersion_count_area_backtracks", "label": "count_area_backtracks()", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L64", - "_origin": "ast" + "source_location": "L66", + "_origin": "ast", + "community": 12, + "norm_label": "count_area_backtracks()", + "id": "src_scoring_cluster_dispersion_count_area_backtracks" }, { - "id": "src_scoring_cluster_dispersion_count_label_backtracks", "label": "_count_label_backtracks()", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L80", - "_origin": "ast" + "source_location": "L82", + "_origin": "ast", + "community": 12, + "norm_label": "_count_label_backtracks()", + "id": "src_scoring_cluster_dispersion_count_label_backtracks" }, { - "id": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks", "label": "count_geo_cluster_backtracks()", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L93", - "_origin": "ast" + "source_location": "L95", + "_origin": "ast", + "community": 12, + "norm_label": "count_geo_cluster_backtracks()", + "id": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks" + }, + { + "label": "_fallback_cluster_labels()", + "file_type": "code", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L118", + "_origin": "ast", + "community": 12, + "norm_label": "_fallback_cluster_labels()", + "id": "src_scoring_cluster_dispersion_fallback_cluster_labels" }, { - "id": "src_scoring_cluster_dispersion_daydispersionmetric", "label": "DayDispersionMetric", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L114", - "_origin": "ast" + "source_location": "L146", + "_origin": "ast", + "community": 12, + "norm_label": "daydispersionmetric", + "id": "src_scoring_cluster_dispersion_daydispersionmetric" }, { - "id": "src_scoring_cluster_dispersion_clusterdispersionreport", "label": "ClusterDispersionReport", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L125", - "_origin": "ast" + "source_location": "L158", + "_origin": "ast", + "community": 12, + "norm_label": "clusterdispersionreport", + "id": "src_scoring_cluster_dispersion_clusterdispersionreport" }, { - "id": "src_scoring_cluster_dispersion_compute_day_dispersion", "label": "_compute_day_dispersion()", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L131", - "_origin": "ast" + "source_location": "L164", + "_origin": "ast", + "community": 12, + "norm_label": "_compute_day_dispersion()", + "id": "src_scoring_cluster_dispersion_compute_day_dispersion" }, { - "id": "src_scoring_cluster_dispersion_switch_penalty", "label": "_switch_penalty()", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L166", - "_origin": "ast" + "source_location": "L199", + "_origin": "ast", + "community": 12, + "norm_label": "_switch_penalty()", + "id": "src_scoring_cluster_dispersion_switch_penalty" }, { - "id": "src_scoring_cluster_dispersion_distance_penalty", "label": "_distance_penalty()", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L174", - "_origin": "ast" + "source_location": "L207", + "_origin": "ast", + "community": 12, + "norm_label": "_distance_penalty()", + "id": "src_scoring_cluster_dispersion_distance_penalty" }, { - "id": "src_scoring_cluster_dispersion_backtrack_penalty", "label": "_backtrack_penalty()", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L184", - "_origin": "ast" + "source_location": "L217", + "_origin": "ast", + "community": 12, + "norm_label": "_backtrack_penalty()", + "id": "src_scoring_cluster_dispersion_backtrack_penalty" }, { - "id": "src_scoring_cluster_dispersion_geo_bt_penalty", "label": "_geo_bt_penalty()", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L192", - "_origin": "ast" + "source_location": "L225", + "_origin": "ast", + "community": 12, + "norm_label": "_geo_bt_penalty()", + "id": "src_scoring_cluster_dispersion_geo_bt_penalty" }, { - "id": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", "label": "evaluate_cluster_dispersion()", "file_type": "code", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L202", - "_origin": "ast" + "source_location": "L235", + "_origin": "ast", + "community": 12, + "norm_label": "evaluate_cluster_dispersion()", + "id": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "id": "src_scoring_cluster_dispersion_rationale_1", "label": "\uacbd\ub85c \ubc00\uc9d1\ub3c4 / \ubc88\uac1c\ud328\ud134 \ud0d0\uc9c0 (\ubaa8\ub4c8 \u2465) \u2014 Per-day \uac80\uc99d. \uc0ac\uc6a9\uc790 \uc758\ub3c4 (Q3): \"1\uc77c\ucc28\uc5d0\ub294 \ubaa9\uc801\uc9c0 \uadfc\ucc98\ub85c, 2\uc77c\ucc28\uc5d0\ub294 \ub610 \ub2e4\ub978\u2026", "file_type": "rationale", "source_file": "src/scoring/cluster_dispersion.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 12, + "norm_label": "\u1100\u1167\u11bc\u1105\u1169 \u1106\u1175\u11af\u110c\u1175\u11b8\u1103\u1169 / \u1107\u1165\u11ab\u1100\u1162\u1111\u1162\u1110\u1165\u11ab \u1110\u1161\u11b7\u110c\u1175 (\u1106\u1169\u1103\u1172\u11af 6) \u2014 per-day \u1100\u1165\u11b7\u110c\u1173\u11bc. \u1109\u1161\u110b\u116d\u11bc\u110c\u1161 \u110b\u1174\u1103\u1169 (q3): \"1\u110b\u1175\u11af\u110e\u1161\u110b\u1166\u1102\u1173\u11ab \u1106\u1169\u11a8\u110c\u1165\u11a8\u110c\u1175 \u1100\u1173\u11ab\u110e\u1165\u1105\u1169, 2\u110b\u1175\u11af\u110e\u1161\u110b\u1166\u1102\u1173\u11ab \u1104\u1169 \u1103\u1161\u1105\u1173\u11ab...", + "id": "src_scoring_cluster_dispersion_rationale_1" }, { - "id": "src_scoring_cluster_dispersion_rationale_65", "label": "M3: \uc2dc\uad70\uad6c \uae30\ubc18 \ube44\uc5f0\uc18d \uad6c\uc5ed \uc7ac\uc9c4\uc785 \ud69f\uc218. \uac15\ub0a8\u2192\ud64d\ub300\u2192\uac15\ub0a8 = 1, \uc21c\ubc29\ud5a5 4\uad6c\uc5ed \uc21c\ud68c = 0.", "file_type": "rationale", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L65", - "_origin": "ast" + "source_location": "L67", + "_origin": "ast", + "community": 12, + "norm_label": "m3: \u1109\u1175\u1100\u116e\u11ab\u1100\u116e \u1100\u1175\u1107\u1161\u11ab \u1107\u1175\u110b\u1167\u11ab\u1109\u1169\u11a8 \u1100\u116e\u110b\u1167\u11a8 \u110c\u1162\u110c\u1175\u11ab\u110b\u1175\u11b8 \u1112\u116c\u11ba\u1109\u116e. \u1100\u1161\u11bc\u1102\u1161\u11b7\u2192\u1112\u1169\u11bc\u1103\u1162\u2192\u1100\u1161\u11bc\u1102\u1161\u11b7 = 1, \u1109\u116e\u11ab\u1107\u1161\u11bc\u1112\u1163\u11bc 4\u1100\u116e\u110b\u1167\u11a8 \u1109\u116e\u11ab\u1112\u116c = 0.", + "id": "src_scoring_cluster_dispersion_rationale_67" }, { - "id": "src_scoring_cluster_dispersion_rationale_81", "label": "\ud074\ub7ec\uc2a4\ud130 \ub808\uc774\ube14 \ub9ac\uc2a4\ud2b8\uc5d0\uc11c \ube44\uc5f0\uc18d \uc7ac\uc9c4\uc785 \ud69f\uc218 \uacc4\uc0b0 (M4 \uacf5\uc6a9).", "file_type": "rationale", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L81", - "_origin": "ast" + "source_location": "L83", + "_origin": "ast", + "community": 12, + "norm_label": "\u110f\u1173\u11af\u1105\u1165\u1109\u1173\u1110\u1165 \u1105\u1166\u110b\u1175\u1107\u1173\u11af \u1105\u1175\u1109\u1173\u1110\u1173\u110b\u1166\u1109\u1165 \u1107\u1175\u110b\u1167\u11ab\u1109\u1169\u11a8 \u110c\u1162\u110c\u1175\u11ab\u110b\u1175\u11b8 \u1112\u116c\u11ba\u1109\u116e \u1100\u1168\u1109\u1161\u11ab (m4 \u1100\u1169\u11bc\u110b\u116d\u11bc).", + "id": "src_scoring_cluster_dispersion_rationale_83" }, { - "id": "src_scoring_cluster_dispersion_rationale_97", "label": "M4: DBSCAN \uc9c0\ub9ac \ud074\ub7ec\uc2a4\ud130 \uae30\ubc18 \ube44\uc5f0\uc18d \uc7ac\uc9c4\uc785 \ud69f\uc218. M3(\uc2dc\uad70\uad6c \uae30\ubc18)\uac00 \uc7a1\uc9c0 \ubabb\ud558\ub294 \ub300\ud615 \uc2dc\uad70\uad6c \ub0b4\ubd80 \ubd84\uc0b0 \ucf00\uc774\uc2a4 \ubcf4\uc644.\u2026", "file_type": "rationale", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L97", - "_origin": "ast" + "source_location": "L99", + "_origin": "ast", + "community": 12, + "norm_label": "m4: dbscan \u110c\u1175\u1105\u1175 \u110f\u1173\u11af\u1105\u1165\u1109\u1173\u1110\u1165 \u1100\u1175\u1107\u1161\u11ab \u1107\u1175\u110b\u1167\u11ab\u1109\u1169\u11a8 \u110c\u1162\u110c\u1175\u11ab\u110b\u1175\u11b8 \u1112\u116c\u11ba\u1109\u116e. m3(\u1109\u1175\u1100\u116e\u11ab\u1100\u116e \u1100\u1175\u1107\u1161\u11ab)\u1100\u1161 \u110c\u1161\u11b8\u110c\u1175 \u1106\u1169\u11ba\u1112\u1161\u1102\u1173\u11ab \u1103\u1162\u1112\u1167\u11bc \u1109\u1175\u1100\u116e\u11ab\u1100\u116e \u1102\u1162\u1107\u116e \u1107\u116e\u11ab\u1109\u1161\u11ab \u110f\u1166\u110b\u1175\u1109\u1173 \u1107\u1169\u110b\u116a\u11ab....", + "id": "src_scoring_cluster_dispersion_rationale_99" + }, + { + "label": "sklearn \uc5c6\uc774\ub3c4 min_samples=1 DBSCAN\uacfc \uac19\uc740 \uc5f0\uacb0\uc131 \ud074\ub7ec\uc2a4\ud130\ub97c \uacc4\uc0b0\ud55c\ub2e4.", + "file_type": "rationale", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L119", + "_origin": "ast", + "community": 12, + "norm_label": "sklearn \u110b\u1165\u11b9\u110b\u1175\u1103\u1169 min_samples=1 dbscan\u1100\u116a \u1100\u1161\u11c0\u110b\u1173\u11ab \u110b\u1167\u11ab\u1100\u1167\u11af\u1109\u1165\u11bc \u110f\u1173\u11af\u1105\u1165\u1109\u1173\u1110\u1165\u1105\u1173\u11af \u1100\u1168\u1109\u1161\u11ab\u1112\u1161\u11ab\u1103\u1161.", + "id": "src_scoring_cluster_dispersion_rationale_119" }, { - "id": "src_scoring_cluster_dispersion_rationale_193", "label": "M4 \ud328\ub110\ud2f0. M3\uac00 \uc774\ubbf8 \uac19\uc740 \uc774\ubca4\ud2b8\ub97c \ud0d0\uc9c0\ud55c \uacbd\uc6b0 \uc911\ubcf5 \ubc29\uc9c0.", "file_type": "rationale", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L193", - "_origin": "ast" + "source_location": "L226", + "_origin": "ast", + "community": 12, + "norm_label": "m4 \u1111\u1162\u1102\u1165\u11af\u1110\u1175. m3\u1100\u1161 \u110b\u1175\u1106\u1175 \u1100\u1161\u11c0\u110b\u1173\u11ab \u110b\u1175\u1107\u1166\u11ab\u1110\u1173\u1105\u1173\u11af \u1110\u1161\u11b7\u110c\u1175\u1112\u1161\u11ab \u1100\u1167\u11bc\u110b\u116e \u110c\u116e\u11bc\u1107\u1169\u11a8 \u1107\u1161\u11bc\u110c\u1175.", + "id": "src_scoring_cluster_dispersion_rationale_226" }, { - "id": "src_scoring_cluster_dispersion_rationale_206", "label": "\uc804\uccb4 \uc77c\uc815\uc758 per-day \ubc00\uc9d1\ub3c4 + \ud328\ub110\ud2f0 \uc0b0\ucd9c. sigungu_codes_per_day: [day_idx][place_idx] \uad6c\uc870.\u2026", "file_type": "rationale", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L206", - "_origin": "ast" + "source_location": "L239", + "_origin": "ast", + "community": 12, + "norm_label": "\u110c\u1165\u11ab\u110e\u1166 \u110b\u1175\u11af\u110c\u1165\u11bc\u110b\u1174 per-day \u1106\u1175\u11af\u110c\u1175\u11b8\u1103\u1169 + \u1111\u1162\u1102\u1165\u11af\u1110\u1175 \u1109\u1161\u11ab\u110e\u116e\u11af. sigungu_codes_per_day: [day_idx][place_idx] \u1100\u116e\u110c\u1169....", + "id": "src_scoring_cluster_dispersion_rationale_239" }, { - "id": "src_scoring_congestion_engine", "label": "congestion_engine.py", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 26, + "norm_label": "congestion_engine.py", + "id": "src_scoring_congestion_engine" }, { - "id": "src_scoring_congestion_engine_congestionlevel", "label": "CongestionLevel", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", "source_location": "L27", - "_origin": "ast" + "_origin": "ast", + "community": 26, + "norm_label": "congestionlevel", + "id": "src_scoring_congestion_engine_congestionlevel" }, { - "id": "str", - "label": "str", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" - }, - { - "id": "enum", - "label": "Enum", + "label": "StrEnum", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 26, + "norm_label": "strenum", + "id": "strenum" }, { - "id": "src_scoring_congestion_engine_congestionresult", "label": "CongestionResult", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", "source_location": "L35", - "_origin": "ast" + "_origin": "ast", + "community": 28, + "norm_label": "congestionresult", + "id": "src_scoring_congestion_engine_congestionresult" }, { - "id": "src_scoring_congestion_engine_normalize", "label": "_normalize()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", "source_location": "L45", - "_origin": "ast" + "_origin": "ast", + "community": 28, + "norm_label": "_normalize()", + "id": "src_scoring_congestion_engine_normalize" }, { - "id": "src_scoring_congestion_engine_score_to_level", "label": "_score_to_level()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", "source_location": "L49", - "_origin": "ast" + "_origin": "ast", + "community": 26, + "norm_label": "_score_to_level()", + "id": "src_scoring_congestion_engine_score_to_level" }, { - "id": "src_scoring_congestion_engine_congestionengine", "label": "CongestionEngine", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", "source_location": "L59", - "_origin": "ast" + "_origin": "ast", + "community": 28, + "norm_label": "congestionengine", + "id": "src_scoring_congestion_engine_congestionengine" }, { - "id": "src_scoring_congestion_engine_congestionengine_init", "label": ".__init__()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", "source_location": "L68", - "_origin": "ast" + "_origin": "ast", + "community": 39, + "norm_label": ".__init__()", + "id": "src_scoring_congestion_engine_congestionengine_init" }, { - "id": "src_scoring_congestion_engine_py_path", - "label": "Path", + "label": ".from_settings()", "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L79", + "_origin": "ast", + "community": 28, + "norm_label": ".from_settings()", + "id": "src_scoring_congestion_engine_congestionengine_from_settings" }, { - "id": "src_scoring_congestion_engine_congestionengine_df", "label": "._df()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L79", - "_origin": "ast" + "source_location": "L89", + "_origin": "ast", + "community": 28, + "norm_label": "._df()", + "id": "src_scoring_congestion_engine_congestionengine_df" }, { - "id": "src_scoring_congestion_engine_py_dataframe", "label": "DataFrame", "file_type": "code", "source_file": "", "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 28, + "norm_label": "dataframe", + "id": "dataframe" }, { - "id": "src_scoring_congestion_engine_congestionengine_poi_names", "label": "._poi_names()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L90", - "_origin": "ast" + "source_location": "L100", + "_origin": "ast", + "community": 28, + "norm_label": "._poi_names()", + "id": "src_scoring_congestion_engine_congestionengine_poi_names" }, { - "id": "src_scoring_congestion_engine_congestionengine_global_avg_by_month", "label": "._global_avg_by_month()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L94", - "_origin": "ast" + "source_location": "L104", + "_origin": "ast", + "community": 28, + "norm_label": "._global_avg_by_month()", + "id": "src_scoring_congestion_engine_congestionengine_global_avg_by_month" }, { - "id": "src_scoring_congestion_engine_congestionengine_category_avg_by_month", "label": "._category_avg_by_month()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L100", - "_origin": "ast" + "source_location": "L110", + "_origin": "ast", + "community": 28, + "norm_label": "._category_avg_by_month()", + "id": "src_scoring_congestion_engine_congestionengine_category_avg_by_month" }, { - "id": "src_scoring_congestion_engine_congestionengine_lookup_exact", "label": "._lookup_exact()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L113", - "_origin": "ast" - }, - { - "id": "series", - "label": "Series", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L122", + "_origin": "ast", + "community": 28, + "norm_label": "._lookup_exact()", + "id": "src_scoring_congestion_engine_congestionengine_lookup_exact" }, { - "id": "src_scoring_congestion_engine_congestionengine_lookup_partial", "label": "._lookup_partial()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L119", - "_origin": "ast" + "source_location": "L128", + "_origin": "ast", + "community": 28, + "norm_label": "._lookup_partial()", + "id": "src_scoring_congestion_engine_congestionengine_lookup_partial" }, { - "id": "src_scoring_congestion_engine_congestionengine_score", "label": ".score()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L130", - "_origin": "ast" + "source_location": "L139", + "_origin": "ast", + "community": 28, + "norm_label": ".score()", + "id": "src_scoring_congestion_engine_congestionengine_score" }, { - "id": "src_scoring_congestion_engine_congestionengine_is_crowded", "label": ".is_crowded()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L209", - "_origin": "ast" + "source_location": "L227", + "_origin": "ast", + "community": 28, + "norm_label": ".is_crowded()", + "id": "src_scoring_congestion_engine_congestionengine_is_crowded" }, { - "id": "src_scoring_congestion_engine_congestionengine_score_itinerary", "label": ".score_itinerary()", "file_type": "code", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L213", - "_origin": "ast" + "source_location": "L231", + "_origin": "ast", + "community": 28, + "norm_label": ".score_itinerary()", + "id": "src_scoring_congestion_engine_congestionengine_score_itinerary" }, { - "id": "src_scoring_congestion_engine_rationale_1", "label": "\ud63c\uc7a1\ub3c4 \ud310\uc815 \uc5d4\uc9c4 \u2014 \uacb0\uc815\ub860\uc801 \uaddc\uce59 \uae30\ubc18 (LLM \uc758\uc874 \uc5c6\uc74c). \ub370\uc774\ud130 \uc18c\uc2a4 \uc6b0\uc120\uc21c\uc704: 0. \uc11c\uc6b8 \ub3c4\uc2dc\ub370\uc774\ud130 API (\uc2e4\uc2dc\uac04) \u2014\u2026", "file_type": "rationale", "source_file": "src/scoring/congestion_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 26, + "norm_label": "\u1112\u1169\u11ab\u110c\u1161\u11b8\u1103\u1169 \u1111\u1161\u11ab\u110c\u1165\u11bc \u110b\u1166\u11ab\u110c\u1175\u11ab \u2014 \u1100\u1167\u11af\u110c\u1165\u11bc\u1105\u1169\u11ab\u110c\u1165\u11a8 \u1100\u1172\u110e\u1175\u11a8 \u1100\u1175\u1107\u1161\u11ab (llm \u110b\u1174\u110c\u1169\u11ab \u110b\u1165\u11b9\u110b\u1173\u11b7). \u1103\u1166\u110b\u1175\u1110\u1165 \u1109\u1169\u1109\u1173 \u110b\u116e\u1109\u1165\u11ab\u1109\u116e\u11ab\u110b\u1171: 0. \u1109\u1165\u110b\u116e\u11af \u1103\u1169\u1109\u1175\u1103\u1166\u110b\u1175\u1110\u1165 api (\u1109\u1175\u11af\u1109\u1175\u1100\u1161\u11ab) \u2014...", + "id": "src_scoring_congestion_engine_rationale_1" }, { - "id": "src_scoring_congestion_engine_rationale_60", "label": "POI \u00d7 month \u2192 congestion_score \ud310\uc815\uae30. Args: csv_path: congestion_stats.csv \uacbd\ub85c\u2026", "file_type": "rationale", "source_file": "src/scoring/congestion_engine.py", "source_location": "L60", - "_origin": "ast" + "_origin": "ast", + "community": 28, + "norm_label": "poi \u00d7 month \u2192 congestion_score \u1111\u1161\u11ab\u110c\u1165\u11bc\u1100\u1175. args: csv_path: congestion_stats.csv \u1100\u1167\u11bc\u1105\u1169...", + "id": "src_scoring_congestion_engine_rationale_60" }, { - "id": "src_scoring_congestion_engine_rationale_95", "label": "month \u2192 (avg_visitors, congestion_score) \uc804\uccb4 \ud3c9\uade0.", "file_type": "rationale", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L95", - "_origin": "ast" + "source_location": "L105", + "_origin": "ast", + "community": 28, + "norm_label": "month \u2192 (avg_visitors, congestion_score) \u110c\u1165\u11ab\u110e\u1166 \u1111\u1167\u11bc\u1100\u1172\u11ab.", + "id": "src_scoring_congestion_engine_rationale_105" }, { - "id": "src_scoring_congestion_engine_rationale_101", "label": "prefix \u2192 month \u2192 (avg_visitors, congestion_score).", "file_type": "rationale", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L101", - "_origin": "ast" + "source_location": "L111", + "_origin": "ast", + "community": 28, + "norm_label": "prefix \u2192 month \u2192 (avg_visitors, congestion_score).", + "id": "src_scoring_congestion_engine_rationale_111" }, { - "id": "src_scoring_congestion_engine_rationale_131", "label": "POI\uc640 \ubc29\ubb38 \uc6d4\ub85c \ud63c\uc7a1\ub3c4\ub97c \ud310\uc815\ud55c\ub2e4. \uc11c\uc6b8 POI\uc5d0 SeoulCityDataClient\uac00 \uc8fc\uc785\ub41c \uacbd\uc6b0 \uc2e4\uc2dc\uac04 \ub370\uc774\ud130\ub97c \uc6b0\uc120 \uc0ac\uc6a9\ud55c\ub2e4.\u2026", "file_type": "rationale", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L131", - "_origin": "ast" + "source_location": "L140", + "_origin": "ast", + "community": 28, + "norm_label": "poi\u110b\u116a \u1107\u1161\u11bc\u1106\u116e\u11ab \u110b\u116f\u11af\u1105\u1169 \u1112\u1169\u11ab\u110c\u1161\u11b8\u1103\u1169\u1105\u1173\u11af \u1111\u1161\u11ab\u110c\u1165\u11bc\u1112\u1161\u11ab\u1103\u1161. \u1109\u1165\u110b\u116e\u11af poi\u110b\u1166 seoulcitydataclient\u1100\u1161 \u110c\u116e\u110b\u1175\u11b8\u1103\u116c\u11ab \u1100\u1167\u11bc\u110b\u116e \u1109\u1175\u11af\u1109\u1175\u1100\u1161\u11ab \u1103\u1166\u110b\u1175\u1110\u1165\u1105\u1173\u11af \u110b\u116e\u1109\u1165\u11ab \u1109\u1161\u110b\u116d\u11bc\u1112\u1161\u11ab\u1103\u1161....", + "id": "src_scoring_congestion_engine_rationale_140" }, { - "id": "src_scoring_congestion_engine_rationale_210", "label": "congestion_score >= threshold \uc774\uba74 True.", "file_type": "rationale", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L210", - "_origin": "ast" + "source_location": "L228", + "_origin": "ast", + "community": 28, + "norm_label": "congestion_score >= threshold \u110b\u1175\u1106\u1167\u11ab true.", + "id": "src_scoring_congestion_engine_rationale_228" }, { - "id": "src_scoring_congestion_engine_rationale_216", "label": "\uc5ec\ud589 \uc77c\uc815\uc758 \ubaa8\ub4e0 POI \ud63c\uc7a1\ub3c4\ub97c \uc77c\uad04 \ubc18\ud658\ud55c\ub2e4.", "file_type": "rationale", "source_file": "src/scoring/congestion_engine.py", - "source_location": "L216", - "_origin": "ast" + "source_location": "L232", + "_origin": "ast", + "community": 28, + "norm_label": "\u110b\u1167\u1112\u1162\u11bc \u110b\u1175\u11af\u110c\u1165\u11bc\u110b\u1174 \u1106\u1169\u1103\u1173\u11ab poi \u1112\u1169\u11ab\u110c\u1161\u11b8\u1103\u1169\u1105\u1173\u11af \u110b\u1175\u11af\u1100\u116a\u11af \u1107\u1161\u11ab\u1112\u116a\u11ab\u1112\u1161\u11ab\u1103\u1161.", + "id": "src_scoring_congestion_engine_rationale_232" }, { - "id": "src_scoring_reward_engine", "label": "reward_engine.py", "file_type": "code", "source_file": "src/scoring/reward_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 40, + "norm_label": "reward_engine.py", + "id": "src_scoring_reward_engine" }, { - "id": "src_scoring_reward_engine_generate_rewards", "label": "generate_rewards()", "file_type": "code", "source_file": "src/scoring/reward_engine.py", - "source_location": "L24", - "_origin": "ast" + "source_location": "L25", + "_origin": "ast", + "community": 40, + "norm_label": "generate_rewards()", + "id": "src_scoring_reward_engine_generate_rewards" }, { - "id": "src_scoring_reward_engine_rationale_1", "label": "\uae0d\uc815 \uac15\ud654 \uba54\uc2dc\uc9c0 \uc0dd\uc131 \uc5d4\uc9c4 (Positive Reinforcement). validate() \ud30c\uc774\ud504\ub77c\uc778\uc5d0\uc11c \uc810\uc218\u00b7\ud1b5\uacc4\ub97c \ubc1b\uc544 \uce6d\ucc2c \uba54\uc2dc\uc9c0\u2026", "file_type": "rationale", "source_file": "src/scoring/reward_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 40, + "norm_label": "\u1100\u1173\u11bc\u110c\u1165\u11bc \u1100\u1161\u11bc\u1112\u116a \u1106\u1166\u1109\u1175\u110c\u1175 \u1109\u1162\u11bc\u1109\u1165\u11bc \u110b\u1166\u11ab\u110c\u1175\u11ab (positive reinforcement). validate() \u1111\u1161\u110b\u1175\u1111\u1173\u1105\u1161\u110b\u1175\u11ab\u110b\u1166\u1109\u1165 \u110c\u1165\u11b7\u1109\u116e\u00b7\u1110\u1169\u11bc\u1100\u1168\u1105\u1173\u11af \u1107\u1161\u11ae\u110b\u1161 \u110e\u1175\u11bc\u110e\u1161\u11ab \u1106\u1166\u1109\u1175\u110c\u1175...", + "id": "src_scoring_reward_engine_rationale_1" }, { - "id": "src_scoring_reward_engine_rationale_31", "label": "\uc810\uc218\uc640 \ud1b5\uacc4 \uae30\ubc18\uc73c\ub85c \uae0d\uc815 \uac15\ud654 \uba54\uc2dc\uc9c0 \uc0dd\uc131. Returns: \uae0d\uc815 \uac15\ud654 \uba54\uc2dc\uc9c0 \ub9ac\uc2a4\ud2b8. Hard Fail \uc874\uc7ac \uc2dc \ube48 \ub9ac\uc2a4\ud2b8.", "file_type": "rationale", "source_file": "src/scoring/reward_engine.py", - "source_location": "L31", - "_origin": "ast" + "source_location": "L32", + "_origin": "ast", + "community": 40, + "norm_label": "\u110c\u1165\u11b7\u1109\u116e\u110b\u116a \u1110\u1169\u11bc\u1100\u1168 \u1100\u1175\u1107\u1161\u11ab\u110b\u1173\u1105\u1169 \u1100\u1173\u11bc\u110c\u1165\u11bc \u1100\u1161\u11bc\u1112\u116a \u1106\u1166\u1109\u1175\u110c\u1175 \u1109\u1162\u11bc\u1109\u1165\u11bc. returns: \u1100\u1173\u11bc\u110c\u1165\u11bc \u1100\u1161\u11bc\u1112\u116a \u1106\u1166\u1109\u1175\u110c\u1175 \u1105\u1175\u1109\u1173\u1110\u1173. hard fail \u110c\u1169\u11ab\u110c\u1162 \u1109\u1175 \u1107\u1175\u11ab \u1105\u1175\u1109\u1173\u1110\u1173.", + "id": "src_scoring_reward_engine_rationale_32" }, { - "id": "src_scoring_theme_alignment", "label": "theme_alignment.py", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 2, + "norm_label": "theme_alignment.py", + "id": "src_scoring_theme_alignment" }, { - "id": "src_scoring_theme_alignment_poiwithcategory", "label": "POIWithCategory", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L68", - "_origin": "ast" + "source_location": "L69", + "_origin": "ast", + "community": 2, + "norm_label": "poiwithcategory", + "id": "src_scoring_theme_alignment_poiwithcategory" }, { - "id": "src_scoring_theme_alignment_themejudgment", "label": "ThemeJudgment", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L77", - "_origin": "ast" + "source_location": "L79", + "_origin": "ast", + "community": 2, + "norm_label": "themejudgment", + "id": "src_scoring_theme_alignment_themejudgment" }, { - "id": "src_scoring_theme_alignment_themealignmentreport", "label": "ThemeAlignmentReport", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L86", - "_origin": "ast" + "source_location": "L89", + "_origin": "ast", + "community": 2, + "norm_label": "themealignmentreport", + "id": "src_scoring_theme_alignment_themealignmentreport" }, { - "id": "src_scoring_theme_alignment_cache_key", "label": "_cache_key()", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L96", - "_origin": "ast" + "source_location": "L99", + "_origin": "ast", + "community": 2, + "norm_label": "_cache_key()", + "id": "src_scoring_theme_alignment_cache_key" }, { - "id": "src_scoring_theme_alignment_build_user_prompt", "label": "_build_user_prompt()", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L107", - "_origin": "ast" + "source_location": "L110", + "_origin": "ast", + "community": 2, + "norm_label": "_build_user_prompt()", + "id": "src_scoring_theme_alignment_build_user_prompt" }, { - "id": "src_scoring_theme_alignment_classify_score", "label": "_classify_score()", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L132", - "_origin": "ast" + "source_location": "L135", + "_origin": "ast", + "community": 2, + "norm_label": "_classify_score()", + "id": "src_scoring_theme_alignment_classify_score" }, { - "id": "src_scoring_theme_alignment_parse_llm_response", "label": "_parse_llm_response()", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L143", - "_origin": "ast" + "source_location": "L146", + "_origin": "ast", + "community": 2, + "norm_label": "_parse_llm_response()", + "id": "src_scoring_theme_alignment_parse_llm_response" }, { - "id": "src_scoring_theme_alignment_themealignmentjudge", "label": "ThemeAlignmentJudge", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L163", - "_origin": "ast" + "source_location": "L166", + "_origin": "ast", + "community": 2, + "norm_label": "themealignmentjudge", + "id": "src_scoring_theme_alignment_themealignmentjudge" }, { - "id": "src_scoring_theme_alignment_themealignmentjudge_init", "label": ".__init__()", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L171", - "_origin": "ast" - }, - { - "id": "src_scoring_theme_alignment_py_any", - "label": "Any", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L174", + "_origin": "ast", + "community": 16, + "norm_label": ".__init__()", + "id": "src_scoring_theme_alignment_themealignmentjudge_init" }, { - "id": "src_scoring_theme_alignment_themealignmentjudge_is_available", "label": ".is_available()", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L187", - "_origin": "ast" + "source_location": "L190", + "_origin": "ast", + "community": 2, + "norm_label": ".is_available()", + "id": "src_scoring_theme_alignment_themealignmentjudge_is_available" }, { - "id": "src_scoring_theme_alignment_themealignmentjudge_evaluate", "label": ".evaluate()", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L191", - "_origin": "ast" + "source_location": "L194", + "_origin": "ast", + "community": 2, + "norm_label": ".evaluate()", + "id": "src_scoring_theme_alignment_themealignmentjudge_evaluate" }, { - "id": "src_scoring_theme_alignment_themealignmentjudge_call_llm", "label": "._call_llm()", "file_type": "code", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L261", - "_origin": "ast" + "source_location": "L268", + "_origin": "ast", + "community": 2, + "norm_label": "._call_llm()", + "id": "src_scoring_theme_alignment_themealignmentjudge_call_llm" }, { - "id": "src_scoring_theme_alignment_rationale_1", "label": "\ud14c\ub9c8 \uc77c\uce58\uc131 LLM \ud310\uc815 (\ubaa8\ub4c8 \u2466) \u2014 Anthropic Claude API \uae30\ubc18. \uc694\uad6c\uc0ac\ud56d: \uc0ac\uc6a9\uc790\uac00 \uc120\ud0dd\ud55c \ud14c\ub9c8(\uc608: \uc561\ud2f0\ube44\ud2f0)\uc640 \uc77c\uc815\u2026", "file_type": "rationale", "source_file": "src/scoring/theme_alignment.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 2, + "norm_label": "\u1110\u1166\u1106\u1161 \u110b\u1175\u11af\u110e\u1175\u1109\u1165\u11bc llm \u1111\u1161\u11ab\u110c\u1165\u11bc (\u1106\u1169\u1103\u1172\u11af 7) \u2014 anthropic claude api \u1100\u1175\u1107\u1161\u11ab. \u110b\u116d\u1100\u116e\u1109\u1161\u1112\u1161\u11bc: \u1109\u1161\u110b\u116d\u11bc\u110c\u1161\u1100\u1161 \u1109\u1165\u11ab\u1110\u1162\u11a8\u1112\u1161\u11ab \u1110\u1166\u1106\u1161(\u110b\u1168: \u110b\u1162\u11a8\u1110\u1175\u1107\u1175\u1110\u1175)\u110b\u116a \u110b\u1175\u11af\u110c\u1165\u11bc...", + "id": "src_scoring_theme_alignment_rationale_1" }, { - "id": "src_scoring_theme_alignment_rationale_69", "label": "LLM\uc5d0\uac8c \uc804\ub2ec\ud560 POI \uc815\ubcf4 (\uce74\ud14c\uace0\ub9ac \uba85 \ud3ec\ud568).", "file_type": "rationale", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L69", - "_origin": "ast" + "source_location": "L70", + "_origin": "ast", + "community": 2, + "norm_label": "llm\u110b\u1166\u1100\u1166 \u110c\u1165\u11ab\u1103\u1161\u11af\u1112\u1161\u11af poi \u110c\u1165\u11bc\u1107\u1169 (\u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175 \u1106\u1167\u11bc \u1111\u1169\u1112\u1161\u11b7).", + "id": "src_scoring_theme_alignment_rationale_70" }, { - "id": "src_scoring_theme_alignment_rationale_97", "label": "\uce90\uc2dc \ud0a4: \ud14c\ub9c8 + \uc815\ub82c\ub41c \uc7a5\uc18c\uba85 \ud574\uc2dc.", "file_type": "rationale", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L97", - "_origin": "ast" + "source_location": "L100", + "_origin": "ast", + "community": 2, + "norm_label": "\u110f\u1162\u1109\u1175 \u110f\u1175: \u1110\u1166\u1106\u1161 + \u110c\u1165\u11bc\u1105\u1167\u11af\u1103\u116c\u11ab \u110c\u1161\u11bc\u1109\u1169\u1106\u1167\u11bc \u1112\u1162\u1109\u1175.", + "id": "src_scoring_theme_alignment_rationale_100" }, { - "id": "src_scoring_theme_alignment_rationale_111", "label": "LLM\uc5d0\uac8c \uc804\ub2ec\ud560 user \uba54\uc2dc\uc9c0 \uad6c\uc131.", "file_type": "rationale", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L111", - "_origin": "ast" + "source_location": "L114", + "_origin": "ast", + "community": 2, + "norm_label": "llm\u110b\u1166\u1100\u1166 \u110c\u1165\u11ab\u1103\u1161\u11af\u1112\u1161\u11af user \u1106\u1166\u1109\u1175\u110c\u1175 \u1100\u116e\u1109\u1165\u11bc.", + "id": "src_scoring_theme_alignment_rationale_114" }, { - "id": "src_scoring_theme_alignment_rationale_133", "label": "\uc77c\uce58\ub3c4 \uc810\uc218 \u2192 (\ud328\ub110\ud2f0, risk_label).", "file_type": "rationale", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L133", - "_origin": "ast" + "source_location": "L136", + "_origin": "ast", + "community": 2, + "norm_label": "\u110b\u1175\u11af\u110e\u1175\u1103\u1169 \u110c\u1165\u11b7\u1109\u116e \u2192 (\u1111\u1162\u1102\u1165\u11af\u1110\u1175, risk_label).", + "id": "src_scoring_theme_alignment_rationale_136" }, { - "id": "src_scoring_theme_alignment_rationale_144", "label": "Claude \uc751\ub2f5 \ud14d\uc2a4\ud2b8\uc5d0\uc11c JSON \ucd94\ucd9c.", "file_type": "rationale", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L144", - "_origin": "ast" + "source_location": "L147", + "_origin": "ast", + "community": 2, + "norm_label": "claude \u110b\u1173\u11bc\u1103\u1161\u11b8 \u1110\u1166\u11a8\u1109\u1173\u1110\u1173\u110b\u1166\u1109\u1165 json \u110e\u116e\u110e\u116e\u11af.", + "id": "src_scoring_theme_alignment_rationale_147" }, { - "id": "src_scoring_theme_alignment_rationale_164", "label": "LLM \uae30\ubc18 \ud14c\ub9c8 \uc77c\uce58\uc131 \ud310\uc815\uae30. \uc0ac\uc6a9 \uc608: judge = ThemeAlignmentJudge() # ANTHROPIC_API_KEY \uc790\ub3d9\u2026", "file_type": "rationale", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L164", - "_origin": "ast" + "source_location": "L167", + "_origin": "ast", + "community": 2, + "norm_label": "llm \u1100\u1175\u1107\u1161\u11ab \u1110\u1166\u1106\u1161 \u110b\u1175\u11af\u110e\u1175\u1109\u1165\u11bc \u1111\u1161\u11ab\u110c\u1165\u11bc\u1100\u1175. \u1109\u1161\u110b\u116d\u11bc \u110b\u1168: judge = themealignmentjudge() # anthropic_api_key \u110c\u1161\u1103\u1169\u11bc...", + "id": "src_scoring_theme_alignment_rationale_167" }, { - "id": "src_scoring_theme_alignment_rationale_188", "label": "LLM \ud638\ucd9c \uac00\ub2a5 \uc5ec\ubd80 (SDK + \ud0a4 + \ud074\ub77c\uc774\uc5b8\ud2b8 \ubaa8\ub450 \uc900\ube44\ub41c \uacbd\uc6b0 True).", "file_type": "rationale", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L188", - "_origin": "ast" + "source_location": "L191", + "_origin": "ast", + "community": 2, + "norm_label": "llm \u1112\u1169\u110e\u116e\u11af \u1100\u1161\u1102\u1173\u11bc \u110b\u1167\u1107\u116e (sdk + \u110f\u1175 + \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173 \u1106\u1169\u1103\u116e \u110c\u116e\u11ab\u1107\u1175\u1103\u116c\u11ab \u1100\u1167\u11bc\u110b\u116e true).", + "id": "src_scoring_theme_alignment_rationale_191" }, { - "id": "src_scoring_travel_ratio", "label": "travel_ratio.py", "file_type": "code", "source_file": "src/scoring/travel_ratio.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 15, + "norm_label": "travel_ratio.py", + "id": "src_scoring_travel_ratio" }, { - "id": "src_scoring_travel_ratio_dayratiometric", "label": "DayRatioMetric", "file_type": "code", "source_file": "src/scoring/travel_ratio.py", "source_location": "L28", - "_origin": "ast" + "_origin": "ast", + "community": 15, + "norm_label": "dayratiometric", + "id": "src_scoring_travel_ratio_dayratiometric" }, { - "id": "src_scoring_travel_ratio_travelratioreport", "label": "TravelRatioReport", "file_type": "code", "source_file": "src/scoring/travel_ratio.py", - "source_location": "L37", - "_origin": "ast" + "source_location": "L38", + "_origin": "ast", + "community": 15, + "norm_label": "travelratioreport", + "id": "src_scoring_travel_ratio_travelratioreport" }, { - "id": "src_scoring_travel_ratio_compute_day_metric", "label": "_compute_day_metric()", "file_type": "code", "source_file": "src/scoring/travel_ratio.py", - "source_location": "L45", - "_origin": "ast" + "source_location": "L47", + "_origin": "ast", + "community": 15, + "norm_label": "_compute_day_metric()", + "id": "src_scoring_travel_ratio_compute_day_metric" }, { - "id": "src_scoring_travel_ratio_classify_ratio", "label": "_classify_ratio()", "file_type": "code", "source_file": "src/scoring/travel_ratio.py", - "source_location": "L70", - "_origin": "ast" + "source_location": "L72", + "_origin": "ast", + "community": 15, + "norm_label": "_classify_ratio()", + "id": "src_scoring_travel_ratio_classify_ratio" }, { - "id": "src_scoring_travel_ratio_evaluate_travel_ratio", "label": "evaluate_travel_ratio()", "file_type": "code", "source_file": "src/scoring/travel_ratio.py", - "source_location": "L81", - "_origin": "ast" + "source_location": "L83", + "_origin": "ast", + "community": 15, + "norm_label": "evaluate_travel_ratio()", + "id": "src_scoring_travel_ratio_evaluate_travel_ratio" }, { - "id": "src_scoring_travel_ratio_rationale_1", "label": "\uc774\ub3d9 vs \uad00\uad11 \uc2dc\uac04 \ube44\uc728 \ud328\ub110\ud2f0 (\ubaa8\ub4c8 \u2464). \uacf5\uc2dd: travel_ratio = travel_sec / (travel_sec +\u2026", "file_type": "rationale", "source_file": "src/scoring/travel_ratio.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 15, + "norm_label": "\u110b\u1175\u1103\u1169\u11bc vs \u1100\u116a\u11ab\u1100\u116a\u11bc \u1109\u1175\u1100\u1161\u11ab \u1107\u1175\u110b\u1172\u11af \u1111\u1162\u1102\u1165\u11af\u1110\u1175 (\u1106\u1169\u1103\u1172\u11af 5). \u1100\u1169\u11bc\u1109\u1175\u11a8: travel_ratio = travel_sec / (travel_sec +...", + "id": "src_scoring_travel_ratio_rationale_1" }, { - "id": "src_scoring_travel_ratio_rationale_50", "label": "\ud558\ub8e8 \uc77c\uc815\uc758 travel_sec, dwell_sec, ratio \uacc4\uc0b0.", "file_type": "rationale", "source_file": "src/scoring/travel_ratio.py", - "source_location": "L50", - "_origin": "ast" + "source_location": "L52", + "_origin": "ast", + "community": 15, + "norm_label": "\u1112\u1161\u1105\u116e \u110b\u1175\u11af\u110c\u1165\u11bc\u110b\u1174 travel_sec, dwell_sec, ratio \u1100\u1168\u1109\u1161\u11ab.", + "id": "src_scoring_travel_ratio_rationale_52" }, { - "id": "src_scoring_travel_ratio_rationale_71", "label": "\ube44\uc728 \u2192 (\ud328\ub110\ud2f0, risk_label) \ubc18\ud658.", "file_type": "rationale", "source_file": "src/scoring/travel_ratio.py", - "source_location": "L71", - "_origin": "ast" + "source_location": "L73", + "_origin": "ast", + "community": 15, + "norm_label": "\u1107\u1175\u110b\u1172\u11af \u2192 (\u1111\u1162\u1102\u1165\u11af\u1110\u1175, risk_label) \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_scoring_travel_ratio_rationale_73" }, { - "id": "src_scoring_travel_ratio_rationale_85", "label": "\uc804\uccb4 \uc77c\uc815\uc758 \uc77c\uc790\ubcc4 travel_ratio + \ud328\ub110\ud2f0 \uc0b0\ucd9c.", "file_type": "rationale", "source_file": "src/scoring/travel_ratio.py", - "source_location": "L85", - "_origin": "ast" - }, - { - "id": "src_utils_init", - "label": "utils/__init__.py", - "file_type": "code", - "source_file": "src/utils/__init__.py", - "source_location": "L1", - "_origin": "ast" + "source_location": "L87", + "_origin": "ast", + "community": 15, + "norm_label": "\u110c\u1165\u11ab\u110e\u1166 \u110b\u1175\u11af\u110c\u1165\u11bc\u110b\u1174 \u110b\u1175\u11af\u110c\u1161\u1107\u1167\u11af travel_ratio + \u1111\u1162\u1102\u1165\u11af\u1110\u1175 \u1109\u1161\u11ab\u110e\u116e\u11af.", + "id": "src_scoring_travel_ratio_rationale_87" }, { - "id": "src_utils_geo", "label": "geo.py", "file_type": "code", "source_file": "src/utils/geo.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 9, + "norm_label": "geo.py", + "id": "src_utils_geo" }, { - "id": "src_utils_geo_haversine_km", "label": "haversine_km()", "file_type": "code", "source_file": "src/utils/geo.py", - "source_location": "L10", - "_origin": "ast" + "source_location": "L11", + "_origin": "ast", + "community": 9, + "norm_label": "haversine_km()", + "id": "src_utils_geo_haversine_km" }, { - "id": "src_utils_geo_build_dist_cache", "label": "build_dist_cache()", "file_type": "code", "source_file": "src/utils/geo.py", - "source_location": "L20", - "_origin": "ast" + "source_location": "L21", + "_origin": "ast", + "community": 9, + "norm_label": "build_dist_cache()", + "id": "src_utils_geo_build_dist_cache" }, { - "id": "src_utils_geo_nn_heuristic_km", "label": "nn_heuristic_km()", "file_type": "code", "source_file": "src/utils/geo.py", - "source_location": "L36", - "_origin": "ast" + "source_location": "L35", + "_origin": "ast", + "community": 9, + "norm_label": "nn_heuristic_km()", + "id": "src_utils_geo_nn_heuristic_km" }, { - "id": "src_utils_geo_get_travel_min", "label": "get_travel_min()", "file_type": "code", "source_file": "src/utils/geo.py", - "source_location": "L72", - "_origin": "ast" + "source_location": "L73", + "_origin": "ast", + "community": 9, + "norm_label": "get_travel_min()", + "id": "src_utils_geo_get_travel_min" }, { - "id": "src_utils_geo_rationale_1", "label": "\uacf5\uc720 \uc9c0\ub9ac \uacc4\uc0b0 \uc720\ud2f8\ub9ac\ud2f0 \u2014 Haversine, NN \ud734\ub9ac\uc2a4\ud2f1, \uc774\ub3d9\uc2dc\uac04 \uc870\ud68c.", "file_type": "rationale", "source_file": "src/utils/geo.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 9, + "norm_label": "\u1100\u1169\u11bc\u110b\u1172 \u110c\u1175\u1105\u1175 \u1100\u1168\u1109\u1161\u11ab \u110b\u1172\u1110\u1175\u11af\u1105\u1175\u1110\u1175 \u2014 haversine, nn \u1112\u1172\u1105\u1175\u1109\u1173\u1110\u1175\u11a8, \u110b\u1175\u1103\u1169\u11bc\u1109\u1175\u1100\u1161\u11ab \u110c\u1169\u1112\u116c.", + "id": "src_utils_geo_rationale_1" }, { - "id": "src_utils_geo_rationale_11", "label": "\ub450 \uc88c\ud45c \uc0ac\uc774\uc758 Haversine \uc9c1\uc120 \uac70\ub9ac(km).", "file_type": "rationale", "source_file": "src/utils/geo.py", - "source_location": "L11", - "_origin": "ast" + "source_location": "L12", + "_origin": "ast", + "community": 9, + "norm_label": "\u1103\u116e \u110c\u116a\u1111\u116d \u1109\u1161\u110b\u1175\u110b\u1174 haversine \u110c\u1175\u11a8\u1109\u1165\u11ab \u1100\u1165\u1105\u1175(km).", + "id": "src_utils_geo_rationale_12" }, { - "id": "src_utils_geo_rationale_21", "label": "POI \ub9ac\uc2a4\ud2b8\uc758 \ubaa8\ub4e0 (i, j) \uc30d Haversine \uac70\ub9ac(km)\ub97c \ud55c \ubc88\uc5d0 \uacc4\uc0b0\ud574 \ubc18\ud658. \uc774 \uce90\uc2dc\ub97c nn_heuristic_km /\u2026", "file_type": "rationale", "source_file": "src/utils/geo.py", - "source_location": "L21", - "_origin": "ast" + "source_location": "L22", + "_origin": "ast", + "community": 9, + "norm_label": "poi \u1105\u1175\u1109\u1173\u1110\u1173\u110b\u1174 \u1106\u1169\u1103\u1173\u11ab (i, j) \u110a\u1161\u11bc haversine \u1100\u1165\u1105\u1175(km)\u1105\u1173\u11af \u1112\u1161\u11ab \u1107\u1165\u11ab\u110b\u1166 \u1100\u1168\u1109\u1161\u11ab\u1112\u1162 \u1107\u1161\u11ab\u1112\u116a\u11ab. \u110b\u1175 \u110f\u1162\u1109\u1175\u1105\u1173\u11af nn_heuristic_km /...", + "id": "src_utils_geo_rationale_22" }, { - "id": "src_utils_geo_rationale_40", "label": "\ucd5c\uadfc\uc811 \uc774\uc6c3 \ud734\ub9ac\uc2a4\ud2f1\uc73c\ub85c \ucd94\uc815\ud55c \ucd5c\uc18c \uc21c\ud68c \uac70\ub9ac(km). dist_cache \ub97c \ub118\uae30\uba74 Haversine \uc7ac\uacc4\uc0b0 \uc5c6\uc774 \uc870\ud68c\ud55c\ub2e4.", "file_type": "rationale", "source_file": "src/utils/geo.py", - "source_location": "L40", - "_origin": "ast" + "source_location": "L39", + "_origin": "ast", + "community": 9, + "norm_label": "\u110e\u116c\u1100\u1173\u11ab\u110c\u1165\u11b8 \u110b\u1175\u110b\u116e\u11ba \u1112\u1172\u1105\u1175\u1109\u1173\u1110\u1175\u11a8\u110b\u1173\u1105\u1169 \u110e\u116e\u110c\u1165\u11bc\u1112\u1161\u11ab \u110e\u116c\u1109\u1169 \u1109\u116e\u11ab\u1112\u116c \u1100\u1165\u1105\u1175(km). dist_cache \u1105\u1173\u11af \u1102\u1165\u11b7\u1100\u1175\u1106\u1167\u11ab haversine \u110c\u1162\u1100\u1168\u1109\u1161\u11ab \u110b\u1165\u11b9\u110b\u1175 \u110c\u1169\u1112\u116c\u1112\u1161\u11ab\u1103\u1161.", + "id": "src_utils_geo_rationale_39" }, { - "id": "src_utils_geo_rationale_80", "label": "matrix[i][j]['travel_min'] \uc870\ud68c, \uc5c6\uc73c\uba74 Haversine \ud3f4\ubc31(\ubd84). dist_cache \ub97c \ub118\uae30\uba74 \ud3f4\ubc31 \uc2dc \uc7ac\uacc4\uc0b0\u2026", "file_type": "rationale", "source_file": "src/utils/geo.py", - "source_location": "L80", - "_origin": "ast" - }, - { - "id": "src_validation_init", - "label": "src/validation/__init__.py", - "file_type": "code", - "source_file": "src/validation/__init__.py", - "source_location": "L1", - "_origin": "ast" + "source_location": "L81", + "_origin": "ast", + "community": 9, + "norm_label": "matrix[i][j]['travel_min'] \u110c\u1169\u1112\u116c, \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab haversine \u1111\u1169\u11af\u1107\u1162\u11a8(\u1107\u116e\u11ab). dist_cache \u1105\u1173\u11af \u1102\u1165\u11b7\u1100\u1175\u1106\u1167\u11ab \u1111\u1169\u11af\u1107\u1162\u11a8 \u1109\u1175 \u110c\u1162\u1100\u1168\u1109\u1161\u11ab...", + "id": "src_utils_geo_rationale_81" }, { - "id": "src_validation_alternatives", "label": "alternatives.py", "file_type": "code", "source_file": "src/validation/alternatives.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 5, + "norm_label": "alternatives.py", + "id": "src_validation_alternatives" }, { - "id": "src_validation_alternatives_haversine_km", "label": "_haversine_km()", "file_type": "code", "source_file": "src/validation/alternatives.py", - "source_location": "L32", - "_origin": "ast" + "source_location": "L33", + "_origin": "ast", + "community": 12, + "norm_label": "_haversine_km()", + "id": "src_validation_alternatives_haversine_km" }, { - "id": "src_validation_alternatives_alternativesfinder", "label": "AlternativesFinder", "file_type": "code", "source_file": "src/validation/alternatives.py", - "source_location": "L40", - "_origin": "ast" + "source_location": "L41", + "_origin": "ast", + "community": 34, + "norm_label": "alternativesfinder", + "id": "src_validation_alternatives_alternativesfinder" }, { - "id": "src_validation_alternatives_alternativesfinder_init", "label": ".__init__()", "file_type": "code", "source_file": "src/validation/alternatives.py", - "source_location": "L49", - "_origin": "ast" + "source_location": "L50", + "_origin": "ast", + "community": 34, + "norm_label": ".__init__()", + "id": "src_validation_alternatives_alternativesfinder_init" }, { - "id": "src_validation_alternatives_alternativesfinder_find_alternatives", "label": ".find_alternatives()", "file_type": "code", "source_file": "src/validation/alternatives.py", - "source_location": "L59", - "_origin": "ast" + "source_location": "L60", + "_origin": "ast", + "community": 5, + "norm_label": ".find_alternatives()", + "id": "src_validation_alternatives_alternativesfinder_find_alternatives" }, { - "id": "src_validation_alternatives_alternativesfinder_build_alternatives_map", "label": ".build_alternatives_map()", "file_type": "code", "source_file": "src/validation/alternatives.py", - "source_location": "L92", - "_origin": "ast" + "source_location": "L93", + "_origin": "ast", + "community": 5, + "norm_label": ".build_alternatives_map()", + "id": "src_validation_alternatives_alternativesfinder_build_alternatives_map" }, { - "id": "src_validation_alternatives_rationale_1", "label": "Hard Fail \ubc1c\uc0dd \uc7a5\uc18c\uc5d0 \ub300\ud55c \ub300\uccb4 \ud6c4\ubcf4 \ud0d0\uc0c9\uae30 (Repair \ubcf4\uc870 \ub3c4\uad6c). \uc774 \ubaa8\ub4c8\uc740 '\uac80\uc99d'\uc774 \uc544\ub2cc '\uc218\ub9ac \uc81c\uc548'\uc758 \ubcf4\uc870 \ub3c4\uad6c\uc774\ub2e4.\u2026", "file_type": "rationale", "source_file": "src/validation/alternatives.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 5, + "norm_label": "hard fail \u1107\u1161\u11af\u1109\u1162\u11bc \u110c\u1161\u11bc\u1109\u1169\u110b\u1166 \u1103\u1162\u1112\u1161\u11ab \u1103\u1162\u110e\u1166 \u1112\u116e\u1107\u1169 \u1110\u1161\u11b7\u1109\u1162\u11a8\u1100\u1175 (repair \u1107\u1169\u110c\u1169 \u1103\u1169\u1100\u116e). \u110b\u1175 \u1106\u1169\u1103\u1172\u11af\u110b\u1173\u11ab '\u1100\u1165\u11b7\u110c\u1173\u11bc'\u110b\u1175 \u110b\u1161\u1102\u1175\u11ab '\u1109\u116e\u1105\u1175 \u110c\u1166\u110b\u1161\u11ab'\u110b\u1174 \u1107\u1169\u110c\u1169 \u1103\u1169\u1100\u116e\u110b\u1175\u1103\u1161....", + "id": "src_validation_alternatives_rationale_1" }, { - "id": "src_validation_alternatives_rationale_41", "label": "Hard Fail POI\ub97c \ub300\uccb4\ud560 \ud6c4\ubcf4 \ucd94\ucc9c\uae30. Args: poi_pool: \ud0d0\uc0c9 \ub300\uc0c1 \uc804\uccb4 POI \ud480 (TourAPI \ub4f1 \uc678\ubd80\uc5d0\uc11c \uc8fc\uc785).\u2026", "file_type": "rationale", "source_file": "src/validation/alternatives.py", - "source_location": "L41", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 34, + "norm_label": "hard fail poi\u1105\u1173\u11af \u1103\u1162\u110e\u1166\u1112\u1161\u11af \u1112\u116e\u1107\u1169 \u110e\u116e\u110e\u1165\u11ab\u1100\u1175. args: poi_pool: \u1110\u1161\u11b7\u1109\u1162\u11a8 \u1103\u1162\u1109\u1161\u11bc \u110c\u1165\u11ab\u110e\u1166 poi \u1111\u116e\u11af (tourapi \u1103\u1173\u11bc \u110b\u116c\u1107\u116e\u110b\u1166\u1109\u1165 \u110c\u116e\u110b\u1175\u11b8)....", + "id": "src_validation_alternatives_rationale_42" }, { - "id": "src_validation_alternatives_rationale_64", "label": "failed_poi\uc640 \uac19\uc740 \uce74\ud14c\uace0\ub9ac \uc911 \uac00\uc7a5 \uac00\uae4c\uc6b4 POI\ub97c \ubc18\ud658. \uac19\uc740 \uce74\ud14c\uace0\ub9ac\uac00 \uc5c6\uc73c\uba74 \ubc18\uacbd \ub0b4 \ubaa8\ub4e0 POI\ub97c \uac70\ub9ac \uc21c\uc73c\ub85c \ubc18\ud658.", "file_type": "rationale", "source_file": "src/validation/alternatives.py", - "source_location": "L64", - "_origin": "ast" + "source_location": "L65", + "_origin": "ast", + "community": 5, + "norm_label": "failed_poi\u110b\u116a \u1100\u1161\u11c0\u110b\u1173\u11ab \u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175 \u110c\u116e\u11bc \u1100\u1161\u110c\u1161\u11bc \u1100\u1161\u1101\u1161\u110b\u116e\u11ab poi\u1105\u1173\u11af \u1107\u1161\u11ab\u1112\u116a\u11ab. \u1100\u1161\u11c0\u110b\u1173\u11ab \u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175\u1100\u1161 \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab \u1107\u1161\u11ab\u1100\u1167\u11bc \u1102\u1162 \u1106\u1169\u1103\u1173\u11ab poi\u1105\u1173\u11af \u1100\u1165\u1105\u1175 \u1109\u116e\u11ab\u110b\u1173\u1105\u1169 \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_validation_alternatives_rationale_65" }, { - "id": "src_validation_alternatives_rationale_98", "label": "Hard Fail \ubaa9\ub85d \uae30\ubc18\uc73c\ub85c POI \uc774\ub984 \u2192 \ub300\uccb4 \ud6c4\ubcf4 \ub515\uc154\ub108\ub9ac \ubc18\ud658. Minimal Interference \uc6d0\uce59(\uc7ac\ubc30\uce58 \u2192 \uc2dc\uac04\uc870\uc815 \u2192\u2026", "file_type": "rationale", "source_file": "src/validation/alternatives.py", - "source_location": "L98", - "_origin": "ast" + "source_location": "L99", + "_origin": "ast", + "community": 5, + "norm_label": "hard fail \u1106\u1169\u11a8\u1105\u1169\u11a8 \u1100\u1175\u1107\u1161\u11ab\u110b\u1173\u1105\u1169 poi \u110b\u1175\u1105\u1173\u11b7 \u2192 \u1103\u1162\u110e\u1166 \u1112\u116e\u1107\u1169 \u1103\u1175\u11a8\u1109\u1167\u1102\u1165\u1105\u1175 \u1107\u1161\u11ab\u1112\u116a\u11ab. minimal interference \u110b\u116f\u11ab\u110e\u1175\u11a8(\u110c\u1162\u1107\u1162\u110e\u1175 \u2192 \u1109\u1175\u1100\u1161\u11ab\u110c\u1169\u110c\u1165\u11bc \u2192...", + "id": "src_validation_alternatives_rationale_99" }, { - "id": "src_validation_hard_fail", "label": "hard_fail.py", "file_type": "code", "source_file": "src/validation/hard_fail.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 31, + "norm_label": "hard_fail.py", + "id": "src_validation_hard_fail" }, { - "id": "src_validation_hard_fail_hardfaildetector", "label": "HardFailDetector", "file_type": "code", "source_file": "src/validation/hard_fail.py", - "source_location": "L16", - "_origin": "ast" + "source_location": "L17", + "_origin": "ast", + "community": 10, + "norm_label": "hardfaildetector", + "id": "src_validation_hard_fail_hardfaildetector" }, { - "id": "src_validation_hard_fail_hardfaildetector_detect", "label": ".detect()", "file_type": "code", "source_file": "src/validation/hard_fail.py", - "source_location": "L24", - "_origin": "ast" + "source_location": "L25", + "_origin": "ast", + "community": 10, + "norm_label": ".detect()", + "id": "src_validation_hard_fail_hardfaildetector_detect" }, { - "id": "src_validation_hard_fail_hardfaildetector_check_operating_hours", "label": "._check_operating_hours()", "file_type": "code", "source_file": "src/validation/hard_fail.py", - "source_location": "L48", - "_origin": "ast" + "source_location": "L56", + "_origin": "ast", + "community": 10, + "norm_label": "._check_operating_hours()", + "id": "src_validation_hard_fail_hardfaildetector_check_operating_hours" }, { - "id": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", "label": "._check_travel_impossible()", "file_type": "code", "source_file": "src/validation/hard_fail.py", - "source_location": "L110", - "_origin": "ast" + "source_location": "L140", + "_origin": "ast", + "community": 10, + "norm_label": "._check_travel_impossible()", + "id": "src_validation_hard_fail_hardfaildetector_check_travel_impossible" }, { - "id": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible", "label": "._check_schedule_infeasible()", "file_type": "code", "source_file": "src/validation/hard_fail.py", - "source_location": "L157", - "_origin": "ast" + "source_location": "L189", + "_origin": "ast", + "community": 10, + "norm_label": "._check_schedule_infeasible()", + "id": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible" }, { - "id": "src_validation_hard_fail_hardfaildetector_time_to_min", "label": "._time_to_min()", "file_type": "code", "source_file": "src/validation/hard_fail.py", - "source_location": "L188", - "_origin": "ast" + "source_location": "L222", + "_origin": "ast", + "community": 10, + "norm_label": "._time_to_min()", + "id": "src_validation_hard_fail_hardfaildetector_time_to_min" }, { - "id": "src_validation_hard_fail_hardfaildetector_min_to_time", "label": "._min_to_time()", "file_type": "code", "source_file": "src/validation/hard_fail.py", - "source_location": "L193", - "_origin": "ast" + "source_location": "L227", + "_origin": "ast", + "community": 10, + "norm_label": "._min_to_time()", + "id": "src_validation_hard_fail_hardfaildetector_min_to_time" }, { - "id": "src_validation_hard_fail_rationale_1", "label": "Hard Fail \ud0d0\uc9c0\uae30 (\uc6b4\uc601\uc2dc\uac04 \ucda9\ub3cc\u00b7\uc774\ub3d9 \ubd88\uac00\u00b7\uc77c\uc815 \uc2dc\uac04 \ucd08\uacfc).", "file_type": "rationale", "source_file": "src/validation/hard_fail.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 31, + "norm_label": "hard fail \u1110\u1161\u11b7\u110c\u1175\u1100\u1175 (\u110b\u116e\u11ab\u110b\u1167\u11bc\u1109\u1175\u1100\u1161\u11ab \u110e\u116e\u11bc\u1103\u1169\u11af\u00b7\u110b\u1175\u1103\u1169\u11bc \u1107\u116e\u11af\u1100\u1161\u00b7\u110b\u1175\u11af\u110c\u1165\u11bc \u1109\u1175\u1100\u1161\u11ab \u110e\u1169\u1100\u116a).", + "id": "src_validation_hard_fail_rationale_1" }, { - "id": "src_validation_hard_fail_rationale_17", "label": "\uc5ec\ud589 \uc77c\uc815\uc758 Hard Fail \uc870\uac74\uc744 \ud0d0\uc9c0\ud55c\ub2e4. External I/O \uc5c6\uc74c. matrix: dict[int, dict[int, dict]]\u2026", "file_type": "rationale", "source_file": "src/validation/hard_fail.py", - "source_location": "L17", - "_origin": "ast" + "source_location": "L18", + "_origin": "ast", + "community": 10, + "norm_label": "\u110b\u1167\u1112\u1162\u11bc \u110b\u1175\u11af\u110c\u1165\u11bc\u110b\u1174 hard fail \u110c\u1169\u1100\u1165\u11ab\u110b\u1173\u11af \u1110\u1161\u11b7\u110c\u1175\u1112\u1161\u11ab\u1103\u1161. external i/o \u110b\u1165\u11b9\u110b\u1173\u11b7. matrix: dict[int, dict[int, dict]]...", + "id": "src_validation_hard_fail_rationale_18" }, { - "id": "src_validation_hard_fail_rationale_33", "label": "Hard Fail \ubaa9\ub85d \ubc18\ud658. \uc5c6\uc73c\uba74 \ube48 \ub9ac\uc2a4\ud2b8.", "file_type": "rationale", "source_file": "src/validation/hard_fail.py", - "source_location": "L33", - "_origin": "ast" + "source_location": "L34", + "_origin": "ast", + "community": 10, + "norm_label": "hard fail \u1106\u1169\u11a8\u1105\u1169\u11a8 \u1107\u1161\u11ab\u1112\u116a\u11ab. \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab \u1107\u1175\u11ab \u1105\u1175\u1109\u1173\u1110\u1173.", + "id": "src_validation_hard_fail_rationale_34" }, { - "id": "src_validation_hard_fail_rationale_56", "label": "\uac01 POI \ub3c4\ucc29 \uc608\uc0c1 \uc2dc\uac04\uc774 \uc6b4\uc601\uc2dc\uac04 \ubc16\uc774\uba74 Hard Fail.", "file_type": "rationale", "source_file": "src/validation/hard_fail.py", - "source_location": "L56", - "_origin": "ast" + "source_location": "L64", + "_origin": "ast", + "community": 10, + "norm_label": "\u1100\u1161\u11a8 poi \u1103\u1169\u110e\u1161\u11a8 \u110b\u1168\u1109\u1161\u11bc \u1109\u1175\u1100\u1161\u11ab\u110b\u1175 \u110b\u116e\u11ab\u110b\u1167\u11bc\u1109\u1175\u1100\u1161\u11ab \u1107\u1161\u11a9\u110b\u1175\u1106\u1167\u11ab hard fail.", + "id": "src_validation_hard_fail_rationale_64" }, { - "id": "src_validation_hard_fail_rationale_118", "label": "\uc774\ub3d9\uc2dc\uac04\uc774 \uc774\uc6a9 \uac00\ub2a5\ud55c \uc2dc\uac04 \ucc3d\uc744 \ucd08\uacfc\ud558\uba74 Hard Fail.", "file_type": "rationale", "source_file": "src/validation/hard_fail.py", - "source_location": "L118", - "_origin": "ast" + "source_location": "L148", + "_origin": "ast", + "community": 10, + "norm_label": "\u110b\u1175\u1103\u1169\u11bc\u1109\u1175\u1100\u1161\u11ab\u110b\u1175 \u110b\u1175\u110b\u116d\u11bc \u1100\u1161\u1102\u1173\u11bc\u1112\u1161\u11ab \u1109\u1175\u1100\u1161\u11ab \u110e\u1161\u11bc\u110b\u1173\u11af \u110e\u1169\u1100\u116a\u1112\u1161\u1106\u1167\u11ab hard fail.", + "id": "src_validation_hard_fail_rationale_148" }, { - "id": "src_validation_hard_fail_rationale_164", "label": "\uc2e4\uc81c POI \ub4e4\uc758 \ucd1d \uccb4\ub958+\uc774\ub3d9 \uc2dc\uac04\uc774 24\uc2dc\uac04 \ucd08\uacfc \uc2dc Hard Fail.", "file_type": "rationale", "source_file": "src/validation/hard_fail.py", - "source_location": "L164", - "_origin": "ast" + "source_location": "L196", + "_origin": "ast", + "community": 10, + "norm_label": "\u1109\u1175\u11af\u110c\u1166 poi \u1103\u1173\u11af\u110b\u1174 \u110e\u1169\u11bc \u110e\u1166\u1105\u1172+\u110b\u1175\u1103\u1169\u11bc \u1109\u1175\u1100\u1161\u11ab\u110b\u1175 24\u1109\u1175\u1100\u1161\u11ab \u110e\u1169\u1100\u116a \u1109\u1175 hard fail.", + "id": "src_validation_hard_fail_rationale_196" }, { - "id": "src_validation_kakao_matrix", "label": "kakao_matrix.py", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 30, + "norm_label": "kakao_matrix.py", + "id": "src_validation_kakao_matrix" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix", "label": "KakaoMobilityMatrix", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L47", - "_origin": "ast" + "source_location": "L46", + "_origin": "ast", + "community": 3, + "norm_label": "kakaomobilitymatrix", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_init", "label": ".__init__()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L58", - "_origin": "ast" - }, - { - "id": "src_validation_kakao_matrix_py_path", - "label": "Path", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L57", + "_origin": "ast", + "community": 3, + "norm_label": ".__init__()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_init" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", "label": ".from_env()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L89", - "_origin": "ast" - }, - { - "id": "src_validation_kakao_matrix_py_any", - "label": "Any", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" - }, - { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_load_dotenv", - "label": "._load_dotenv()", - "file_type": "code", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L111", - "_origin": "ast" + "source_location": "L91", + "_origin": "ast", + "community": 3, + "norm_label": ".from_env()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_get_travel_time", "label": ".get_travel_time()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L121", - "_origin": "ast" + "source_location": "L103", + "_origin": "ast", + "community": 3, + "norm_label": ".get_travel_time()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_get_travel_time" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_aprefetch_matrix", "label": ".aprefetch_matrix()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L139", - "_origin": "ast" + "source_location": "L121", + "_origin": "ast", + "community": 3, + "norm_label": ".aprefetch_matrix()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_aprefetch_matrix" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_acall_kakao", "label": "._acall_kakao()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L177", - "_origin": "ast" + "source_location": "L156", + "_origin": "ast", + "community": 3, + "norm_label": "._acall_kakao()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_acall_kakao" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync", "label": "._call_kakao_sync()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L212", - "_origin": "ast" + "source_location": "L187", + "_origin": "ast", + "community": 3, + "norm_label": "._call_kakao_sync()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_parse_duration", "label": "._parse_duration()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L265", - "_origin": "ast" + "source_location": "L238", + "_origin": "ast", + "community": 3, + "norm_label": "._parse_duration()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_parse_duration" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_make_key", "label": "._make_key()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L278", - "_origin": "ast" + "source_location": "L251", + "_origin": "ast", + "community": 3, + "norm_label": "._make_key()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_make_key" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_load_cache", "label": "._load_cache()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L284", - "_origin": "ast" + "source_location": "L254", + "_origin": "ast", + "community": 3, + "norm_label": "._load_cache()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_load_cache" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_maybe_save_cache", "label": "._maybe_save_cache()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L294", - "_origin": "ast" + "source_location": "L264", + "_origin": "ast", + "community": 3, + "norm_label": "._maybe_save_cache()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_maybe_save_cache" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_save_cache", "label": ".save_cache()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L299", - "_origin": "ast" + "source_location": "L269", + "_origin": "ast", + "community": 3, + "norm_label": ".save_cache()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_save_cache" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_stats", "label": ".stats()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L310", - "_origin": "ast" + "source_location": "L278", + "_origin": "ast", + "community": 3, + "norm_label": ".stats()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_stats" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_cache_size", "label": ".cache_size()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L314", - "_origin": "ast" + "source_location": "L282", + "_origin": "ast", + "community": 3, + "norm_label": ".cache_size()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_cache_size" }, { - "id": "src_validation_kakao_matrix_kakaomobilitymatrix_is_quota_exhausted", "label": ".is_quota_exhausted()", "file_type": "code", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L318", - "_origin": "ast" + "source_location": "L286", + "_origin": "ast", + "community": 3, + "norm_label": ".is_quota_exhausted()", + "id": "src_validation_kakao_matrix_kakaomobilitymatrix_is_quota_exhausted" }, { - "id": "src_validation_kakao_matrix_rationale_1", "label": "\uce74\uce74\uc624 \ubaa8\ube4c\ub9ac\ud2f0 \uae38\ucc3e\uae30 API \u2192 TimeMatrix \uc5b4\ub311\ud130 (httpx \uae30\ubc18). VRPTW \uc5d4\uc9c4\uc758 TimeMatrix \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud574\u2026", "file_type": "rationale", "source_file": "src/validation/kakao_matrix.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 30, + "norm_label": "\u110f\u1161\u110f\u1161\u110b\u1169 \u1106\u1169\u1107\u1175\u11af\u1105\u1175\u1110\u1175 \u1100\u1175\u11af\u110e\u1161\u11bd\u1100\u1175 api \u2192 timematrix \u110b\u1165\u1103\u1162\u11b8\u1110\u1165 (httpx \u1100\u1175\u1107\u1161\u11ab). vrptw \u110b\u1166\u11ab\u110c\u1175\u11ab\u110b\u1174 timematrix \u110b\u1175\u11ab\u1110\u1165\u1111\u1166\u110b\u1175\u1109\u1173\u1105\u1173\u11af \u1100\u116e\u1112\u1167\u11ab\u1112\u1162...", + "id": "src_validation_kakao_matrix_rationale_1" }, { - "id": "src_validation_kakao_matrix_rationale_48", "label": "\uce74\uce74\uc624 \ubaa8\ube4c\ub9ac\ud2f0 \uae38\ucc3e\uae30 API \uae30\ubc18 TimeMatrix. \uce90\uc2dc \ud0a4: 'lng1,lat1|lng2,lat2' (\uc18c\uc218\uc810 4\uc790\ub9ac = \uc57d 11m\u2026", "file_type": "rationale", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L48", - "_origin": "ast" + "source_location": "L47", + "_origin": "ast", + "community": 3, + "norm_label": "\u110f\u1161\u110f\u1161\u110b\u1169 \u1106\u1169\u1107\u1175\u11af\u1105\u1175\u1110\u1175 \u1100\u1175\u11af\u110e\u1161\u11bd\u1100\u1175 api \u1100\u1175\u1107\u1161\u11ab timematrix. \u110f\u1162\u1109\u1175 \u110f\u1175: 'lng1,lat1|lng2,lat2' (\u1109\u1169\u1109\u116e\u110c\u1165\u11b7 4\u110c\u1161\u1105\u1175 = \u110b\u1163\u11a8 11m...", + "id": "src_validation_kakao_matrix_rationale_47" }, { - "id": "src_validation_kakao_matrix_rationale_95", "label": "`.env`\uc5d0\uc11c KAKAO_MOBILITY_KEY (\uc5c6\uc73c\uba74 KAKAO_REST_API_KEY) \ub85c\ub4dc.", "file_type": "rationale", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L95", - "_origin": "ast" + "source_location": "L97", + "_origin": "ast", + "community": 3, + "norm_label": "`.env`\u110b\u1166\u1109\u1165 kakao_mobility_key (\u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab kakao_rest_api_key) \u1105\u1169\u1103\u1173.", + "id": "src_validation_kakao_matrix_rationale_97" }, { - "id": "src_validation_kakao_matrix_rationale_122", "label": "\uce90\uc2dc \uc870\ud68c + Haversine \ud3f4\ubc31. API \uc9c1\uc811 \ud638\ucd9c \uc5c6\uc74c.", "file_type": "rationale", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L122", - "_origin": "ast" + "source_location": "L104", + "_origin": "ast", + "community": 3, + "norm_label": "\u110f\u1162\u1109\u1175 \u110c\u1169\u1112\u116c + haversine \u1111\u1169\u11af\u1107\u1162\u11a8. api \u110c\u1175\u11a8\u110c\u1165\u11b8 \u1112\u1169\u110e\u116e\u11af \u110b\u1165\u11b9\u110b\u1173\u11b7.", + "id": "src_validation_kakao_matrix_rationale_104" }, { - "id": "src_validation_kakao_matrix_rationale_144", "label": "\ubaa8\ub4e0 POI \uc30d\uc758 \uc774\ub3d9\uc2dc\uac04\uc744 \ube44\ub3d9\uae30\ub85c \uc0ac\uc804 \ub85c\ub4dc\ud55c\ub2e4. VRPTWEngine.validate() \ud638\ucd9c \uc804\uc5d0 await \ud574\ub450\uba74\u2026", "file_type": "rationale", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L144", - "_origin": "ast" + "source_location": "L126", + "_origin": "ast", + "community": 3, + "norm_label": "\u1106\u1169\u1103\u1173\u11ab poi \u110a\u1161\u11bc\u110b\u1174 \u110b\u1175\u1103\u1169\u11bc\u1109\u1175\u1100\u1161\u11ab\u110b\u1173\u11af \u1107\u1175\u1103\u1169\u11bc\u1100\u1175\u1105\u1169 \u1109\u1161\u110c\u1165\u11ab \u1105\u1169\u1103\u1173\u1112\u1161\u11ab\u1103\u1161. vrptwengine.validate() \u1112\u1169\u110e\u116e\u11af \u110c\u1165\u11ab\u110b\u1166 await \u1112\u1162\u1103\u116e\u1106\u1167\u11ab...", + "id": "src_validation_kakao_matrix_rationale_126" }, { - "id": "src_validation_kakao_matrix_rationale_180", "label": "\uce74\uce74\uc624 \ubaa8\ube4c\ub9ac\ud2f0 \ube44\ub3d9\uae30 \ud638\ucd9c (httpx.AsyncClient).", "file_type": "rationale", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L180", - "_origin": "ast" + "source_location": "L157", + "_origin": "ast", + "community": 3, + "norm_label": "\u110f\u1161\u110f\u1161\u110b\u1169 \u1106\u1169\u1107\u1175\u11af\u1105\u1175\u1110\u1175 \u1107\u1175\u1103\u1169\u11bc\u1100\u1175 \u1112\u1169\u110e\u116e\u11af (httpx.asyncclient).", + "id": "src_validation_kakao_matrix_rationale_157" }, { - "id": "src_validation_kakao_matrix_rationale_215", "label": "\ub3d9\uae30 API \ud638\ucd9c + \uce90\uc2dc \uc800\uc7a5 + \ud1b5\uacc4 \uc5c5\ub370\uc774\ud2b8 (httpx.Client). \uce90\uc2dc\uc5d0 \uc774\ubbf8 \uc788\uc73c\uba74 API \ud638\ucd9c \uc5c6\uc774 \uce90\uc2dc \uac12 \ubc18\ud658.", "file_type": "rationale", "source_file": "src/validation/kakao_matrix.py", - "source_location": "L215", - "_origin": "ast" + "source_location": "L188", + "_origin": "ast", + "community": 3, + "norm_label": "\u1103\u1169\u11bc\u1100\u1175 api \u1112\u1169\u110e\u116e\u11af + \u110f\u1162\u1109\u1175 \u110c\u1165\u110c\u1161\u11bc + \u1110\u1169\u11bc\u1100\u1168 \u110b\u1165\u11b8\u1103\u1166\u110b\u1175\u1110\u1173 (httpx.client). \u110f\u1162\u1109\u1175\u110b\u1166 \u110b\u1175\u1106\u1175 \u110b\u1175\u11bb\u110b\u1173\u1106\u1167\u11ab api \u1112\u1169\u110e\u116e\u11af \u110b\u1165\u11b9\u110b\u1175 \u110f\u1162\u1109\u1175 \u1100\u1161\u11b9 \u1107\u1161\u11ab\u1112\u116a\u11ab.", + "id": "src_validation_kakao_matrix_rationale_188" }, { - "id": "src_validation_scoring", "label": "scoring.py", "file_type": "code", "source_file": "src/validation/scoring.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 6, + "norm_label": "scoring.py", + "id": "src_validation_scoring" }, { - "id": "src_validation_scoring_scorecalculator", "label": "ScoreCalculator", "file_type": "code", "source_file": "src/validation/scoring.py", - "source_location": "L20", - "_origin": "ast" + "source_location": "L21", + "_origin": "ast", + "community": 6, + "norm_label": "scorecalculator", + "id": "src_validation_scoring_scorecalculator" }, { - "id": "src_validation_scoring_scorecalculator_compute", "label": ".compute()", "file_type": "code", "source_file": "src/validation/scoring.py", - "source_location": "L23", - "_origin": "ast" + "source_location": "L24", + "_origin": "ast", + "community": 6, + "norm_label": ".compute()", + "id": "src_validation_scoring_scorecalculator_compute" }, { - "id": "src_validation_scoring_scorecalculator_cosine_distance", "label": "._cosine_distance()", "file_type": "code", "source_file": "src/validation/scoring.py", - "source_location": "L59", - "_origin": "ast" + "source_location": "L60", + "_origin": "ast", + "community": 6, + "norm_label": "._cosine_distance()", + "id": "src_validation_scoring_scorecalculator_cosine_distance" }, { - "id": "src_validation_scoring_scorecalculator_calc_efficiency", "label": "._calc_efficiency()", "file_type": "code", "source_file": "src/validation/scoring.py", - "source_location": "L63", - "_origin": "ast" + "source_location": "L64", + "_origin": "ast", + "community": 6, + "norm_label": "._calc_efficiency()", + "id": "src_validation_scoring_scorecalculator_calc_efficiency" }, { - "id": "src_validation_scoring_scorecalculator_calc_feasibility", "label": "._calc_feasibility()", "file_type": "code", "source_file": "src/validation/scoring.py", - "source_location": "L79", - "_origin": "ast" + "source_location": "L80", + "_origin": "ast", + "community": 6, + "norm_label": "._calc_feasibility()", + "id": "src_validation_scoring_scorecalculator_calc_feasibility" }, { - "id": "src_validation_scoring_scorecalculator_calc_purpose_fit", "label": "._calc_purpose_fit()", "file_type": "code", "source_file": "src/validation/scoring.py", - "source_location": "L113", - "_origin": "ast" + "source_location": "L114", + "_origin": "ast", + "community": 6, + "norm_label": "._calc_purpose_fit()", + "id": "src_validation_scoring_scorecalculator_calc_purpose_fit" }, { - "id": "src_validation_scoring_scorecalculator_calc_flow", "label": "._calc_flow()", "file_type": "code", "source_file": "src/validation/scoring.py", - "source_location": "L132", - "_origin": "ast" + "source_location": "L133", + "_origin": "ast", + "community": 6, + "norm_label": "._calc_flow()", + "id": "src_validation_scoring_scorecalculator_calc_flow" }, { - "id": "src_validation_scoring_scorecalculator_calc_area_intensity", "label": "._calc_area_intensity()", "file_type": "code", "source_file": "src/validation/scoring.py", - "source_location": "L169", - "_origin": "ast" + "source_location": "L168", + "_origin": "ast", + "community": 6, + "norm_label": "._calc_area_intensity()", + "id": "src_validation_scoring_scorecalculator_calc_area_intensity" }, { - "id": "src_validation_scoring_rationale_21", "label": "5\uac1c \uc9c0\ud45c \u2192 Final Score (0~100) \uacc4\uc0b0\uae30. External I/O \uc5c6\uc74c.", "file_type": "rationale", "source_file": "src/validation/scoring.py", - "source_location": "L21", - "_origin": "ast" + "source_location": "L22", + "_origin": "ast", + "community": 6, + "norm_label": "5\u1100\u1162 \u110c\u1175\u1111\u116d \u2192 final score (0~100) \u1100\u1168\u1109\u1161\u11ab\u1100\u1175. external i/o \u110b\u1165\u11b9\u110b\u1173\u11b7.", + "id": "src_validation_scoring_rationale_22" }, { - "id": "src_validation_scoring_rationale_30", "label": "5\uac1c \uc9c0\ud45c \uacc4\uc0b0 + Final Score (0~100) \ubc18\ud658. hard_fails \uc788\uc73c\uba74 Final Score \u2264 59. \ubc18\ud658:\u2026", "file_type": "rationale", "source_file": "src/validation/scoring.py", - "source_location": "L30", - "_origin": "ast" + "source_location": "L31", + "_origin": "ast", + "community": 6, + "norm_label": "5\u1100\u1162 \u110c\u1175\u1111\u116d \u1100\u1168\u1109\u1161\u11ab + final score (0~100) \u1107\u1161\u11ab\u1112\u116a\u11ab. hard_fails \u110b\u1175\u11bb\u110b\u1173\u1106\u1167\u11ab final score \u2264 59. \u1107\u1161\u11ab\u1112\u116a\u11ab:...", + "id": "src_validation_scoring_rationale_31" }, { - "id": "src_validation_scoring_rationale_60", "label": "warning \ubaa8\ub4c8\uc758 \uacf5\uc720 \uad6c\ud604\uc5d0 \uc704\uc784.", "file_type": "rationale", "source_file": "src/validation/scoring.py", - "source_location": "L60", - "_origin": "ast" + "source_location": "L61", + "_origin": "ast", + "community": 6, + "norm_label": "warning \u1106\u1169\u1103\u1172\u11af\u110b\u1174 \u1100\u1169\u11bc\u110b\u1172 \u1100\u116e\u1112\u1167\u11ab\u110b\u1166 \u110b\u1171\u110b\u1175\u11b7.", + "id": "src_validation_scoring_rationale_61" }, { - "id": "src_validation_scoring_rationale_68", "label": "Efficiency = nn_heuristic_km / actual_total_km, clamped to [0, 1].", "file_type": "rationale", "source_file": "src/validation/scoring.py", - "source_location": "L68", - "_origin": "ast" + "source_location": "L69", + "_origin": "ast", + "community": 6, + "norm_label": "efficiency = nn_heuristic_km / actual_total_km, clamped to [0, 1].", + "id": "src_validation_scoring_rationale_69" }, { - "id": "src_validation_scoring_rationale_87", "label": "Feasibility = hard\u00d70.5 + temporal\u00d70.3 + human\u00d70.2. temporal \uc784\uacc4\uac12\uc740 party_type\ubcc4\u2026", "file_type": "rationale", "source_file": "src/validation/scoring.py", - "source_location": "L87", - "_origin": "ast" + "source_location": "L88", + "_origin": "ast", + "community": 6, + "norm_label": "feasibility = hard\u00d70.5 + temporal\u00d70.3 + human\u00d70.2. temporal \u110b\u1175\u11b7\u1100\u1168\u1100\u1161\u11b9\u110b\u1173\u11ab party_type\u1107\u1167\u11af...", + "id": "src_validation_scoring_rationale_88" }, { - "id": "src_validation_scoring_rationale_114", "label": "1 - cosine_distance(intent_vector, activity_vector).", "file_type": "rationale", "source_file": "src/validation/scoring.py", - "source_location": "L114", - "_origin": "ast" + "source_location": "L115", + "_origin": "ast", + "community": 6, + "norm_label": "1 - cosine_distance(intent_vector, activity_vector).", + "id": "src_validation_scoring_rationale_115" }, { - "id": "src_validation_scoring_rationale_137", "label": "1 - (backtracking\u00d70.65 + revisit_area\u00d70.35). switch_ratio \uc81c\uac70: \uce74\ud14c\uace0\ub9ac \ub2e4\uc591\uc131\uc740 \ud328\ub110\ud2f0\uac00\u2026", "file_type": "rationale", "source_file": "src/validation/scoring.py", - "source_location": "L137", - "_origin": "ast" + "source_location": "L138", + "_origin": "ast", + "community": 6, + "norm_label": "1 - (backtracking\u00d70.65 + revisit_area\u00d70.35). switch_ratio \u110c\u1166\u1100\u1165: \u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175 \u1103\u1161\u110b\u1163\u11bc\u1109\u1165\u11bc\u110b\u1173\u11ab \u1111\u1162\u1102\u1165\u11af\u1110\u1175\u1100\u1161...", + "id": "src_validation_scoring_rationale_138" }, { - "id": "src_validation_scoring_rationale_170", "label": "1 - dominant_category_ratio. \ubd84\uc0b0\ub420\uc218\ub85d 1\uc5d0 \uac00\uae4c\uc6c0.", "file_type": "rationale", "source_file": "src/validation/scoring.py", - "source_location": "L170", - "_origin": "ast" + "source_location": "L169", + "_origin": "ast", + "community": 6, + "norm_label": "1 - dominant_category_ratio. \u1107\u116e\u11ab\u1109\u1161\u11ab\u1103\u116c\u11af\u1109\u116e\u1105\u1169\u11a8 1\u110b\u1166 \u1100\u1161\u1101\u1161\u110b\u116e\u11b7.", + "id": "src_validation_scoring_rationale_169" }, { - "id": "src_validation_vrptw_engine", "label": "vrptw_engine.py", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 15, + "norm_label": "vrptw_engine.py", + "id": "src_validation_vrptw_engine" }, { - "id": "src_validation_vrptw_engine_timematrix", - "label": "TimeMatrix", + "label": "_time_to_minutes()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L55", - "_origin": "ast" + "source_location": "L28", + "_origin": "ast", + "community": 15, + "norm_label": "_time_to_minutes()", + "id": "src_validation_vrptw_engine_time_to_minutes" }, { - "id": "abc", - "label": "ABC", + "label": "TimeMatrix", "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L63", + "_origin": "ast", + "community": 15, + "norm_label": "timematrix", + "id": "src_validation_vrptw_engine_timematrix" }, { - "id": "src_validation_vrptw_engine_timematrix_get_travel_time", "label": ".get_travel_time()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L59", - "_origin": "ast" + "source_location": "L67", + "_origin": "ast", + "community": 30, + "norm_label": ".get_travel_time()", + "id": "src_validation_vrptw_engine_timematrix_get_travel_time" }, { - "id": "src_validation_vrptw_engine_haversinematrix", "label": "HaversineMatrix", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L63", - "_origin": "ast" + "source_location": "L71", + "_origin": "ast", + "community": 4, + "norm_label": "haversinematrix", + "id": "src_validation_vrptw_engine_haversinematrix" }, { - "id": "src_validation_vrptw_engine_haversinematrix_effective_speed", "label": "._effective_speed()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L80", - "_origin": "ast" + "source_location": "L88", + "_origin": "ast", + "community": 30, + "norm_label": "._effective_speed()", + "id": "src_validation_vrptw_engine_haversinematrix_effective_speed" }, { - "id": "src_validation_vrptw_engine_haversinematrix_get_travel_time", "label": ".get_travel_time()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L86", - "_origin": "ast" + "source_location": "L94", + "_origin": "ast", + "community": 30, + "norm_label": ".get_travel_time()", + "id": "src_validation_vrptw_engine_haversinematrix_get_travel_time" }, { - "id": "src_validation_vrptw_engine_cachedroutematrix", "label": "CachedRouteMatrix", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L91", - "_origin": "ast" + "source_location": "L99", + "_origin": "ast", + "community": 4, + "norm_label": "cachedroutematrix", + "id": "src_validation_vrptw_engine_cachedroutematrix" }, { - "id": "src_validation_vrptw_engine_cachedroutematrix_init", "label": ".__init__()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L98", - "_origin": "ast" + "source_location": "L106", + "_origin": "ast", + "community": 4, + "norm_label": ".__init__()", + "id": "src_validation_vrptw_engine_cachedroutematrix_init" }, { - "id": "src_validation_vrptw_engine_cachedroutematrix_from_file", "label": ".from_file()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L112", - "_origin": "ast" - }, - { - "id": "src_validation_vrptw_engine_py_path", - "label": "Path", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L120", + "_origin": "ast", + "community": 44, + "norm_label": ".from_file()", + "id": "src_validation_vrptw_engine_cachedroutematrix_from_file" }, { - "id": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time", "label": ".get_travel_time()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L117", - "_origin": "ast" + "source_location": "L125", + "_origin": "ast", + "community": 15, + "norm_label": ".get_travel_time()", + "id": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time" }, { - "id": "src_validation_vrptw_engine_haversine_m", "label": "_haversine_m()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L130", - "_origin": "ast" + "source_location": "L137", + "_origin": "ast", + "community": 30, + "norm_label": "_haversine_m()", + "id": "src_validation_vrptw_engine_haversine_m" }, { - "id": "src_validation_vrptw_engine_simresult", "label": "_SimResult", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L144", - "_origin": "ast" + "source_location": "L152", + "_origin": "ast", + "community": 15, + "norm_label": "_simresult", + "id": "src_validation_vrptw_engine_simresult" }, { - "id": "src_validation_vrptw_engine_minutes_to_hhmm", "label": "_minutes_to_hhmm()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L151", - "_origin": "ast" + "source_location": "L160", + "_origin": "ast", + "community": 15, + "norm_label": "_minutes_to_hhmm()", + "id": "src_validation_vrptw_engine_minutes_to_hhmm" }, { - "id": "src_validation_vrptw_engine_simulate_day", "label": "_simulate_day()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L156", - "_origin": "ast" + "source_location": "L165", + "_origin": "ast", + "community": 15, + "norm_label": "_simulate_day()", + "id": "src_validation_vrptw_engine_simulate_day" }, { - "id": "src_validation_vrptw_engine_compute_day_total_minutes", "label": "_compute_day_total_minutes()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L216", - "_origin": "ast" + "source_location": "L229", + "_origin": "ast", + "community": 15, + "norm_label": "_compute_day_total_minutes()", + "id": "src_validation_vrptw_engine_compute_day_total_minutes" }, { - "id": "src_validation_vrptw_engine_solve_vrptw_ortools", "label": "_solve_vrptw_ortools()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L244", - "_origin": "ast" + "source_location": "L258", + "_origin": "ast", + "community": 15, + "norm_label": "_solve_vrptw_ortools()", + "id": "src_validation_vrptw_engine_solve_vrptw_ortools" }, { - "id": "src_validation_vrptw_engine_check_depot_constraints", "label": "_check_depot_constraints()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L317", - "_origin": "ast" + "source_location": "L330", + "_origin": "ast", + "community": 15, + "norm_label": "_check_depot_constraints()", + "id": "src_validation_vrptw_engine_check_depot_constraints" }, { - "id": "src_validation_vrptw_engine_vrptwengine", "label": "VRPTWEngine", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L378", - "_origin": "ast" + "source_location": "L400", + "_origin": "ast", + "community": 4, + "norm_label": "vrptwengine", + "id": "src_validation_vrptw_engine_vrptwengine" }, { - "id": "src_validation_vrptw_engine_vrptwengine_init", "label": ".__init__()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L385", - "_origin": "ast" + "source_location": "L407", + "_origin": "ast", + "community": 4, + "norm_label": ".__init__()", + "id": "src_validation_vrptw_engine_vrptwengine_init" }, { - "id": "src_validation_vrptw_engine_vrptwengine_validate", "label": ".validate()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L396", - "_origin": "ast" + "source_location": "L418", + "_origin": "ast", + "community": 15, + "norm_label": ".validate()", + "id": "src_validation_vrptw_engine_vrptwengine_validate" }, { - "id": "src_validation_vrptw_engine_vrptwengine_compute_risk_score", "label": "._compute_risk_score()", "file_type": "code", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L494", - "_origin": "ast" + "source_location": "L519", + "_origin": "ast", + "community": 15, + "norm_label": "._compute_risk_score()", + "id": "src_validation_vrptw_engine_vrptwengine_compute_risk_score" }, { - "id": "src_validation_vrptw_engine_rationale_1", "label": "VRPTW Validation Engine. Validates travel itineraries against mathematical\u2026", "file_type": "rationale", "source_file": "src/validation/vrptw_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 15, + "norm_label": "vrptw validation engine. validates travel itineraries against mathematical...", + "id": "src_validation_vrptw_engine_rationale_1" }, { - "id": "src_validation_vrptw_engine_rationale_56", "label": "Abstract travel-time provider. Implementations are interchangeable.", "file_type": "rationale", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L56", - "_origin": "ast" + "source_location": "L64", + "_origin": "ast", + "community": 15, + "norm_label": "abstract travel-time provider. implementations are interchangeable.", + "id": "src_validation_vrptw_engine_rationale_64" }, { - "id": "src_validation_vrptw_engine_rationale_60", "label": "Return travel time in seconds.", "file_type": "rationale", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L60", - "_origin": "ast" + "source_location": "L68", + "_origin": "ast", + "community": 30, + "norm_label": "return travel time in seconds.", + "id": "src_validation_vrptw_engine_rationale_68" }, { - "id": "src_validation_vrptw_engine_rationale_64", "label": "Calibrated haversine fallback using distance-band multipliers. Kakao Mobility\u2026", "file_type": "rationale", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L64", - "_origin": "ast" + "source_location": "L72", + "_origin": "ast", + "community": 4, + "norm_label": "calibrated haversine fallback using distance-band multipliers. kakao mobility...", + "id": "src_validation_vrptw_engine_rationale_72" }, { - "id": "src_validation_vrptw_engine_rationale_92", "label": "Uses Kakao Mobility cache (lng,lat|lng,lat \u2192 seconds). Falls back to Haversine.\u2026", "file_type": "rationale", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L92", - "_origin": "ast" + "source_location": "L100", + "_origin": "ast", + "community": 4, + "norm_label": "uses kakao mobility cache (lng,lat|lng,lat \u2192 seconds). falls back to haversine....", + "id": "src_validation_vrptw_engine_rationale_100" }, { - "id": "src_validation_vrptw_engine_rationale_145", "label": "Simulation result for a single day.", "file_type": "rationale", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L145", - "_origin": "ast" + "source_location": "L153", + "_origin": "ast", + "community": 15, + "norm_label": "simulation result for a single day.", + "id": "src_validation_vrptw_engine_rationale_153" }, { - "id": "src_validation_vrptw_engine_rationale_161", "label": "Simulate traversal in the given order. Returns travel time and issues.", "file_type": "rationale", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L161", - "_origin": "ast" + "source_location": "L170", + "_origin": "ast", + "community": 15, + "norm_label": "simulate traversal in the given order. returns travel time and issues.", + "id": "src_validation_vrptw_engine_rationale_170" }, { - "id": "src_validation_vrptw_engine_rationale_221", "label": "Total elapsed minutes from first departure to last arrival+stay.", "file_type": "rationale", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L221", - "_origin": "ast" + "source_location": "L234", + "_origin": "ast", + "community": 15, + "norm_label": "total elapsed minutes from first departure to last arrival+stay.", + "id": "src_validation_vrptw_engine_rationale_234" }, { - "id": "src_validation_vrptw_engine_rationale_249", "label": "Return (optimal_order, total_travel_seconds) or None on failure.", "file_type": "rationale", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L249", - "_origin": "ast" + "source_location": "L263", + "_origin": "ast", + "community": 15, + "norm_label": "return (optimal_order, total_travel_seconds) or none on failure.", + "id": "src_validation_vrptw_engine_rationale_263" }, { - "id": "src_validation_vrptw_engine_rationale_320", "label": "Enforce depot rules for 2\ubc153\uc77c+ (3+ days). 1\ubc152\uc77c is exempt.", "file_type": "rationale", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L320", - "_origin": "ast" + "source_location": "L333", + "_origin": "ast", + "community": 15, + "norm_label": "enforce depot rules for 2\u1107\u1161\u11a83\u110b\u1175\u11af+ (3+ days). 1\u1107\u1161\u11a82\u110b\u1175\u11af is exempt.", + "id": "src_validation_vrptw_engine_rationale_333" }, { - "id": "src_validation_vrptw_engine_rationale_379", "label": "VRPTW-based travel itinerary validator. Accepts a TimeMatrix implementation;\u2026", "file_type": "rationale", "source_file": "src/validation/vrptw_engine.py", - "source_location": "L379", - "_origin": "ast" + "source_location": "L401", + "_origin": "ast", + "community": 4, + "norm_label": "vrptw-based travel itinerary validator. accepts a timematrix implementation;...", + "id": "src_validation_vrptw_engine_rationale_401" }, { - "id": "src_validation_warning", "label": "warning.py", "file_type": "code", "source_file": "src/validation/warning.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 9, + "norm_label": "warning.py", + "id": "src_validation_warning" }, { - "id": "src_validation_warning_cosine_distance", "label": "_cosine_distance()", "file_type": "code", "source_file": "src/validation/warning.py", - "source_location": "L28", - "_origin": "ast" + "source_location": "L29", + "_origin": "ast", + "community": 9, + "norm_label": "_cosine_distance()", + "id": "src_validation_warning_cosine_distance" }, { - "id": "src_validation_warning_warningdetector", "label": "WarningDetector", "file_type": "code", "source_file": "src/validation/warning.py", - "source_location": "L39", - "_origin": "ast" + "source_location": "L41", + "_origin": "ast", + "community": 17, + "norm_label": "warningdetector", + "id": "src_validation_warning_warningdetector" }, { - "id": "src_validation_warning_warningdetector_detect", "label": ".detect()", "file_type": "code", "source_file": "src/validation/warning.py", - "source_location": "L51", - "_origin": "ast" + "source_location": "L53", + "_origin": "ast", + "community": 17, + "norm_label": ".detect()", + "id": "src_validation_warning_warningdetector_detect" }, { - "id": "src_validation_warning_warningdetector_check_dense_schedule", "label": "._check_dense_schedule()", "file_type": "code", "source_file": "src/validation/warning.py", - "source_location": "L73", - "_origin": "ast" + "source_location": "L75", + "_origin": "ast", + "community": 17, + "norm_label": "._check_dense_schedule()", + "id": "src_validation_warning_warningdetector_check_dense_schedule" }, { - "id": "src_validation_warning_warningdetector_check_inefficient_route", "label": "._check_inefficient_route()", "file_type": "code", "source_file": "src/validation/warning.py", - "source_location": "L100", - "_origin": "ast" + "source_location": "L104", + "_origin": "ast", + "community": 17, + "norm_label": "._check_inefficient_route()", + "id": "src_validation_warning_warningdetector_check_inefficient_route" }, { - "id": "src_validation_warning_warningdetector_check_physical_strain", "label": "._check_physical_strain()", "file_type": "code", "source_file": "src/validation/warning.py", - "source_location": "L124", - "_origin": "ast" + "source_location": "L130", + "_origin": "ast", + "community": 17, + "norm_label": "._check_physical_strain()", + "id": "src_validation_warning_warningdetector_check_physical_strain" }, { - "id": "src_validation_warning_warningdetector_check_purpose_mismatch", "label": "._check_purpose_mismatch()", "file_type": "code", "source_file": "src/validation/warning.py", - "source_location": "L145", - "_origin": "ast" + "source_location": "L153", + "_origin": "ast", + "community": 17, + "norm_label": "._check_purpose_mismatch()", + "id": "src_validation_warning_warningdetector_check_purpose_mismatch" }, { - "id": "src_validation_warning_warningdetector_check_cumulative_fatigue", "label": ".check_cumulative_fatigue()", "file_type": "code", "source_file": "src/validation/warning.py", - "source_location": "L176", - "_origin": "ast" + "source_location": "L186", + "_origin": "ast", + "community": 17, + "norm_label": ".check_cumulative_fatigue()", + "id": "src_validation_warning_warningdetector_check_cumulative_fatigue" }, { - "id": "src_validation_warning_warningdetector_check_area_revisit", "label": "._check_area_revisit()", "file_type": "code", "source_file": "src/validation/warning.py", - "source_location": "L240", - "_origin": "ast" + "source_location": "L256", + "_origin": "ast", + "community": 17, + "norm_label": "._check_area_revisit()", + "id": "src_validation_warning_warningdetector_check_area_revisit" }, { - "id": "src_validation_warning_rationale_1", "label": "Warning \ud0d0\uc9c0\uae30 (\ub3d9\uc120 \ube44\ud6a8\uc728\u00b7\uc77c\uc815 \uacfc\ubc00\u00b7\uccb4\ub825 \ubd80\ub2f4\u00b7\ubaa9\uc801 \ubd80\uc801\ud569\u00b7\uad6c\uc5ed \uc7ac\ubc29\ubb38).", "file_type": "rationale", "source_file": "src/validation/warning.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 9, + "norm_label": "warning \u1110\u1161\u11b7\u110c\u1175\u1100\u1175 (\u1103\u1169\u11bc\u1109\u1165\u11ab \u1107\u1175\u1112\u116d\u110b\u1172\u11af\u00b7\u110b\u1175\u11af\u110c\u1165\u11bc \u1100\u116a\u1106\u1175\u11af\u00b7\u110e\u1166\u1105\u1167\u11a8 \u1107\u116e\u1103\u1161\u11b7\u00b7\u1106\u1169\u11a8\u110c\u1165\u11a8 \u1107\u116e\u110c\u1165\u11a8\u1112\u1161\u11b8\u00b7\u1100\u116e\u110b\u1167\u11a8 \u110c\u1162\u1107\u1161\u11bc\u1106\u116e\u11ab).", + "id": "src_validation_warning_rationale_1" }, { - "id": "src_validation_warning_rationale_40", "label": "\uc5ec\ud589 \uc77c\uc815\uc758 Soft Warning \uc870\uac74\uc744 \ud0d0\uc9c0\ud55c\ub2e4. External I/O \uc5c6\uc74c. matrix: dict[int, dict[int,\u2026", "file_type": "rationale", "source_file": "src/validation/warning.py", - "source_location": "L40", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 17, + "norm_label": "\u110b\u1167\u1112\u1162\u11bc \u110b\u1175\u11af\u110c\u1165\u11bc\u110b\u1174 soft warning \u110c\u1169\u1100\u1165\u11ab\u110b\u1173\u11af \u1110\u1161\u11b7\u110c\u1175\u1112\u1161\u11ab\u1103\u1161. external i/o \u110b\u1165\u11b9\u110b\u1173\u11b7. matrix: dict[int, dict[int,...", + "id": "src_validation_warning_rationale_42" }, { - "id": "src_validation_warning_rationale_58", "label": "Warning \ubaa9\ub85d \ubc18\ud658. \uc5c6\uc73c\uba74 \ube48 \ub9ac\uc2a4\ud2b8.", "file_type": "rationale", "source_file": "src/validation/warning.py", - "source_location": "L58", - "_origin": "ast" + "source_location": "L60", + "_origin": "ast", + "community": 17, + "norm_label": "warning \u1106\u1169\u11a8\u1105\u1169\u11a8 \u1107\u1161\u11ab\u1112\u116a\u11ab. \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab \u1107\u1175\u11ab \u1105\u1175\u1109\u1173\u1110\u1173.", + "id": "src_validation_warning_rationale_60" }, { - "id": "src_validation_warning_rationale_182", "label": "Multi-day \ub204\uc801 \ud53c\ub85c\ub3c4 \ubd84\uc11d \u2014 \ub2e8\uc77c detect() \ud638\ucd9c\ub85c\ub294 \ud3ec\ucc29\ud560 \uc218 \uc5c6\ub294 cross-day \ud328\ud134.", "file_type": "rationale", "source_file": "src/validation/warning.py", - "source_location": "L182", - "_origin": "ast" - }, - { - "id": "tests_init", - "label": "tests/__init__.py", - "file_type": "code", - "source_file": "tests/__init__.py", - "source_location": "L1", - "_origin": "ast" + "source_location": "L192", + "_origin": "ast", + "community": 17, + "norm_label": "multi-day \u1102\u116e\u110c\u1165\u11a8 \u1111\u1175\u1105\u1169\u1103\u1169 \u1107\u116e\u11ab\u1109\u1165\u11a8 \u2014 \u1103\u1161\u11ab\u110b\u1175\u11af detect() \u1112\u1169\u110e\u116e\u11af\u1105\u1169\u1102\u1173\u11ab \u1111\u1169\u110e\u1161\u11a8\u1112\u1161\u11af \u1109\u116e \u110b\u1165\u11b9\u1102\u1173\u11ab cross-day \u1111\u1162\u1110\u1165\u11ab.", + "id": "src_validation_warning_rationale_192" }, { - "id": "tests_conftest", "label": "conftest.py", "file_type": "code", "source_file": "tests/conftest.py", "source_location": "L1", - "_origin": "ast" - }, - { - "id": "tests_conftest_py_fixture", - "label": "fixture", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 80, + "norm_label": "conftest.py", + "id": "tests_conftest" }, { - "id": "tests_conftest_clean_anthropic_api_key", "label": "_clean_anthropic_api_key()", "file_type": "code", "source_file": "tests/conftest.py", - "source_location": "L11", - "_origin": "ast" + "source_location": "L12", + "_origin": "ast", + "community": 80, + "norm_label": "_clean_anthropic_api_key()", + "id": "tests_conftest_clean_anthropic_api_key" }, { - "id": "tests_conftest_rationale_1", "label": "\ud14c\uc2a4\ud2b8 \uc804\uc5ed fixture. src.api.main\uc740 import \uc2dc\uc810\uc5d0 .env\ub97c \uc77d\uc5b4 os.environ\uc5d0\u2026", "file_type": "rationale", "source_file": "tests/conftest.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 80, + "norm_label": "\u1110\u1166\u1109\u1173\u1110\u1173 \u110c\u1165\u11ab\u110b\u1167\u11a8 fixture. src.api.main\u110b\u1173\u11ab import \u1109\u1175\u110c\u1165\u11b7\u110b\u1166 .env\u1105\u1173\u11af \u110b\u1175\u11b0\u110b\u1165 os.environ\u110b\u1166...", + "id": "tests_conftest_rationale_1" }, { - "id": "tests_test_alternatives", "label": "test_alternatives.py", "file_type": "code", "source_file": "tests/test_alternatives.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 34, + "norm_label": "test_alternatives.py", + "id": "tests_test_alternatives" }, { - "id": "tests_test_alternatives_poi", "label": "_poi()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L10", - "_origin": "ast" + "source_location": "L9", + "_origin": "ast", + "community": 34, + "norm_label": "_poi()", + "id": "tests_test_alternatives_poi" }, { - "id": "tests_test_alternatives_hardfail", "label": "_hardfail()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L29", - "_origin": "ast" + "source_location": "L28", + "_origin": "ast", + "community": 34, + "norm_label": "_hardfail()", + "id": "tests_test_alternatives_hardfail" }, { - "id": "tests_test_alternatives_testfindalternatives", "label": "TestFindAlternatives", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L39", - "_origin": "ast" + "source_location": "L38", + "_origin": "ast", + "community": 34, + "norm_label": "testfindalternatives", + "id": "tests_test_alternatives_testfindalternatives" }, { - "id": "tests_test_alternatives_testfindalternatives_test_returns_nearby_same_category", "label": ".test_returns_nearby_same_category()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L40", - "_origin": "ast" + "source_location": "L39", + "_origin": "ast", + "community": 34, + "norm_label": ".test_returns_nearby_same_category()", + "id": "tests_test_alternatives_testfindalternatives_test_returns_nearby_same_category" }, { - "id": "tests_test_alternatives_testfindalternatives_test_excludes_failed_poi_itself", "label": ".test_excludes_failed_poi_itself()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L50", - "_origin": "ast" + "source_location": "L49", + "_origin": "ast", + "community": 34, + "norm_label": ".test_excludes_failed_poi_itself()", + "id": "tests_test_alternatives_testfindalternatives_test_excludes_failed_poi_itself" }, { - "id": "tests_test_alternatives_testfindalternatives_test_respects_max_alternatives", "label": ".test_respects_max_alternatives()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L57", - "_origin": "ast" + "source_location": "L56", + "_origin": "ast", + "community": 34, + "norm_label": ".test_respects_max_alternatives()", + "id": "tests_test_alternatives_testfindalternatives_test_respects_max_alternatives" }, { - "id": "tests_test_alternatives_testfindalternatives_test_respects_search_radius", "label": ".test_respects_search_radius()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L64", - "_origin": "ast" + "source_location": "L63", + "_origin": "ast", + "community": 34, + "norm_label": ".test_respects_search_radius()", + "id": "tests_test_alternatives_testfindalternatives_test_respects_search_radius" }, { - "id": "tests_test_alternatives_testfindalternatives_test_distance_km_is_correct", "label": ".test_distance_km_is_correct()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L72", - "_origin": "ast" + "source_location": "L71", + "_origin": "ast", + "community": 34, + "norm_label": ".test_distance_km_is_correct()", + "id": "tests_test_alternatives_testfindalternatives_test_distance_km_is_correct" }, { - "id": "tests_test_alternatives_testfindalternatives_test_same_category_sorted_before_different", "label": ".test_same_category_sorted_before_different()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L80", - "_origin": "ast" + "source_location": "L79", + "_origin": "ast", + "community": 34, + "norm_label": ".test_same_category_sorted_before_different()", + "id": "tests_test_alternatives_testfindalternatives_test_same_category_sorted_before_different" }, { - "id": "tests_test_alternatives_testbuildalternativesmap", "label": "TestBuildAlternativesMap", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L91", - "_origin": "ast" + "source_location": "L90", + "_origin": "ast", + "community": 34, + "norm_label": "testbuildalternativesmap", + "id": "tests_test_alternatives_testbuildalternativesmap" }, { - "id": "tests_test_alternatives_testbuildalternativesmap_test_maps_failed_poi_to_alternatives", "label": ".test_maps_failed_poi_to_alternatives()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L92", - "_origin": "ast" + "source_location": "L91", + "_origin": "ast", + "community": 34, + "norm_label": ".test_maps_failed_poi_to_alternatives()", + "id": "tests_test_alternatives_testbuildalternativesmap_test_maps_failed_poi_to_alternatives" }, { - "id": "tests_test_alternatives_testbuildalternativesmap_test_default_no_substitution", "label": ".test_default_no_substitution()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L102", - "_origin": "ast" + "source_location": "L101", + "_origin": "ast", + "community": 34, + "norm_label": ".test_default_no_substitution()", + "id": "tests_test_alternatives_testbuildalternativesmap_test_default_no_substitution" }, { - "id": "tests_test_alternatives_testbuildalternativesmap_test_skips_none_poi_name", "label": ".test_skips_none_poi_name()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L110", - "_origin": "ast" + "source_location": "L109", + "_origin": "ast", + "community": 34, + "norm_label": ".test_skips_none_poi_name()", + "id": "tests_test_alternatives_testbuildalternativesmap_test_skips_none_poi_name" }, { - "id": "tests_test_alternatives_testbuildalternativesmap_test_no_duplicate_keys", "label": ".test_no_duplicate_keys()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L116", - "_origin": "ast" + "source_location": "L115", + "_origin": "ast", + "community": 34, + "norm_label": ".test_no_duplicate_keys()", + "id": "tests_test_alternatives_testbuildalternativesmap_test_no_duplicate_keys" }, { - "id": "tests_test_alternatives_testbuildalternativesmap_test_excludes_plan_pois_from_alternatives", "label": ".test_excludes_plan_pois_from_alternatives()", "file_type": "code", "source_file": "tests/test_alternatives.py", - "source_location": "L123", - "_origin": "ast" + "source_location": "L122", + "_origin": "ast", + "community": 34, + "norm_label": ".test_excludes_plan_pois_from_alternatives()", + "id": "tests_test_alternatives_testbuildalternativesmap_test_excludes_plan_pois_from_alternatives" }, { - "id": "tests_test_alternatives_rationale_1", "label": "AlternativesFinder \uc720\ub2db \ud14c\uc2a4\ud2b8.", "file_type": "rationale", "source_file": "tests/test_alternatives.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 34, + "norm_label": "alternativesfinder \u110b\u1172\u1102\u1175\u11ba \u1110\u1166\u1109\u1173\u1110\u1173.", + "id": "tests_test_alternatives_rationale_1" + }, + { + "label": "test_api_schemas.py", + "file_type": "code", + "source_file": "tests/test_api_schemas.py", + "source_location": "L1", + "_origin": "ast", + "community": 0, + "norm_label": "test_api_schemas.py", + "id": "tests_test_api_schemas" + }, + { + "label": "_request()", + "file_type": "code", + "source_file": "tests/test_api_schemas.py", + "source_location": "L9", + "_origin": "ast", + "community": 0, + "norm_label": "_request()", + "id": "tests_test_api_schemas_request" + }, + { + "label": "test_date_and_start_time_are_validated()", + "file_type": "code", + "source_file": "tests/test_api_schemas.py", + "source_location": "L22", + "_origin": "ast", + "community": 0, + "norm_label": "test_date_and_start_time_are_validated()", + "id": "tests_test_api_schemas_test_date_and_start_time_are_validated" + }, + { + "label": "test_empty_day_is_rejected_at_request_boundary()", + "file_type": "code", + "source_file": "tests/test_api_schemas.py", + "source_location": "L29", + "_origin": "ast", + "community": 0, + "norm_label": "test_empty_day_is_rejected_at_request_boundary()", + "id": "tests_test_api_schemas_test_empty_day_is_rejected_at_request_boundary" + }, + { + "label": "test_place_name_cannot_be_blank()", + "file_type": "code", + "source_file": "tests/test_api_schemas.py", + "source_location": "L34", + "_origin": "ast", + "community": 0, + "norm_label": "test_place_name_cannot_be_blank()", + "id": "tests_test_api_schemas_test_place_name_cannot_be_blank" }, { - "id": "tests_test_bonus_engine", "label": "test_bonus_engine.py", "file_type": "code", "source_file": "tests/test_bonus_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 22, + "norm_label": "test_bonus_engine.py", + "id": "tests_test_bonus_engine" }, { - "id": "tests_test_bonus_engine_make_poi", "label": "make_poi()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L22", - "_origin": "ast" + "source_location": "L21", + "_origin": "ast", + "community": 22, + "norm_label": "make_poi()", + "id": "tests_test_bonus_engine_make_poi" }, { - "id": "tests_test_bonus_engine_make_engine", "label": "make_engine()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L34", - "_origin": "ast" + "source_location": "L39", + "_origin": "ast", + "community": 22, + "norm_label": "make_engine()", + "id": "tests_test_bonus_engine_make_engine" }, { - "id": "tests_test_bonus_engine_testwellnessbonus", "label": "TestWellnessBonus", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L47", - "_origin": "ast" + "source_location": "L53", + "_origin": "ast", + "community": 22, + "norm_label": "testwellnessbonus", + "id": "tests_test_bonus_engine_testwellnessbonus" }, { - "id": "tests_test_bonus_engine_testwellnessbonus_test_no_wellness_data_gives_zero", "label": ".test_no_wellness_data_gives_zero()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L48", - "_origin": "ast" + "source_location": "L54", + "_origin": "ast", + "community": 22, + "norm_label": ".test_no_wellness_data_gives_zero()", + "id": "tests_test_bonus_engine_testwellnessbonus_test_no_wellness_data_gives_zero" }, { - "id": "tests_test_bonus_engine_testwellnessbonus_test_matching_poi_gives_bonus", "label": ".test_matching_poi_gives_bonus()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L54", - "_origin": "ast" + "source_location": "L60", + "_origin": "ast", + "community": 22, + "norm_label": ".test_matching_poi_gives_bonus()", + "id": "tests_test_bonus_engine_testwellnessbonus_test_matching_poi_gives_bonus" }, { - "id": "tests_test_bonus_engine_testwellnessbonus_test_two_matching_pois_give_double_bonus", "label": ".test_two_matching_pois_give_double_bonus()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L60", - "_origin": "ast" + "source_location": "L66", + "_origin": "ast", + "community": 22, + "norm_label": ".test_two_matching_pois_give_double_bonus()", + "id": "tests_test_bonus_engine_testwellnessbonus_test_two_matching_pois_give_double_bonus" }, { - "id": "tests_test_bonus_engine_testwellnessbonus_test_wellness_bonus_capped", "label": ".test_wellness_bonus_capped()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L69", - "_origin": "ast" + "source_location": "L75", + "_origin": "ast", + "community": 22, + "norm_label": ".test_wellness_bonus_capped()", + "id": "tests_test_bonus_engine_testwellnessbonus_test_wellness_bonus_capped" }, { - "id": "tests_test_bonus_engine_testwellnessbonus_test_non_matching_poi_no_bonus", "label": ".test_non_matching_poi_no_bonus()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L77", - "_origin": "ast" + "source_location": "L83", + "_origin": "ast", + "community": 22, + "norm_label": ".test_non_matching_poi_no_bonus()", + "id": "tests_test_bonus_engine_testwellnessbonus_test_non_matching_poi_no_bonus" }, { - "id": "tests_test_bonus_engine_testwellnessbonus_test_wellness_applies_to_all_party_types", "label": ".test_wellness_applies_to_all_party_types()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L83", - "_origin": "ast" + "source_location": "L89", + "_origin": "ast", + "community": 22, + "norm_label": ".test_wellness_applies_to_all_party_types()", + "id": "tests_test_bonus_engine_testwellnessbonus_test_wellness_applies_to_all_party_types" }, { - "id": "tests_test_bonus_engine_testaccessibilitybonus", "label": "TestAccessibilityBonus", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L95", - "_origin": "ast" + "source_location": "L102", + "_origin": "ast", + "community": 22, + "norm_label": "testaccessibilitybonus", + "id": "tests_test_bonus_engine_testaccessibilitybonus" }, { - "id": "tests_test_bonus_engine_testaccessibilitybonus_test_accessible_party_gets_bonus", "label": ".test_accessible_party_gets_bonus()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L96", - "_origin": "ast" + "source_location": "L103", + "_origin": "ast", + "community": 22, + "norm_label": ".test_accessible_party_gets_bonus()", + "id": "tests_test_bonus_engine_testaccessibilitybonus_test_accessible_party_gets_bonus" }, { - "id": "tests_test_bonus_engine_testaccessibilitybonus_test_non_accessible_party_no_bonus", "label": ".test_non_accessible_party_no_bonus()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L103", - "_origin": "ast" + "source_location": "L110", + "_origin": "ast", + "community": 22, + "norm_label": ".test_non_accessible_party_no_bonus()", + "id": "tests_test_bonus_engine_testaccessibilitybonus_test_non_accessible_party_no_bonus" }, { - "id": "tests_test_bonus_engine_testaccessibilitybonus_test_accessibility_bonus_capped", "label": ".test_accessibility_bonus_capped()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L110", - "_origin": "ast" + "source_location": "L117", + "_origin": "ast", + "community": 22, + "norm_label": ".test_accessibility_bonus_capped()", + "id": "tests_test_bonus_engine_testaccessibilitybonus_test_accessibility_bonus_capped" }, { - "id": "tests_test_bonus_engine_testpetfriendlybonus", "label": "TestPetFriendlyBonus", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L122", - "_origin": "ast" + "source_location": "L130", + "_origin": "ast", + "community": 22, + "norm_label": "testpetfriendlybonus", + "id": "tests_test_bonus_engine_testpetfriendlybonus" }, { - "id": "tests_test_bonus_engine_testpetfriendlybonus_test_disabled_gives_zero_even_if_matched", "label": ".test_disabled_gives_zero_even_if_matched()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L123", - "_origin": "ast" + "source_location": "L131", + "_origin": "ast", + "community": 22, + "norm_label": ".test_disabled_gives_zero_even_if_matched()", + "id": "tests_test_bonus_engine_testpetfriendlybonus_test_disabled_gives_zero_even_if_matched" }, { - "id": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_and_flagged_gives_bonus", "label": ".test_enabled_and_flagged_gives_bonus()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L129", - "_origin": "ast" + "source_location": "L137", + "_origin": "ast", + "community": 22, + "norm_label": ".test_enabled_and_flagged_gives_bonus()", + "id": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_and_flagged_gives_bonus" }, { - "id": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_but_not_flagged_no_bonus_no_penalty", "label": ".test_enabled_but_not_flagged_no_bonus_no_penalty()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L135", - "_origin": "ast" + "source_location": "L143", + "_origin": "ast", + "community": 22, + "norm_label": ".test_enabled_but_not_flagged_no_bonus_no_penalty()", + "id": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_but_not_flagged_no_bonus_no_penalty" }, { - "id": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_bonus_capped", "label": ".test_pet_friendly_bonus_capped()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L142", - "_origin": "ast" + "source_location": "L150", + "_origin": "ast", + "community": 22, + "norm_label": ".test_pet_friendly_bonus_capped()", + "id": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_bonus_capped" }, { - "id": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_matched_names_populated", "label": ".test_pet_friendly_matched_names_populated()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L148", - "_origin": "ast" + "source_location": "L156", + "_origin": "ast", + "community": 22, + "norm_label": ".test_pet_friendly_matched_names_populated()", + "id": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_matched_names_populated" }, { - "id": "tests_test_bonus_engine_testtotalbonuscap", "label": "TestTotalBonusCap", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L159", - "_origin": "ast" + "source_location": "L168", + "_origin": "ast", + "community": 22, + "norm_label": "testtotalbonuscap", + "id": "tests_test_bonus_engine_testtotalbonuscap" }, { - "id": "tests_test_bonus_engine_testtotalbonuscap_test_combined_bonus_capped_at_cap", "label": ".test_combined_bonus_capped_at_cap()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L160", - "_origin": "ast" + "source_location": "L169", + "_origin": "ast", + "community": 22, + "norm_label": ".test_combined_bonus_capped_at_cap()", + "id": "tests_test_bonus_engine_testtotalbonuscap_test_combined_bonus_capped_at_cap" }, { - "id": "tests_test_bonus_engine_testtotalbonuscap_test_total_is_sum_when_under_cap", "label": ".test_total_is_sum_when_under_cap()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L167", - "_origin": "ast" + "source_location": "L176", + "_origin": "ast", + "community": 22, + "norm_label": ".test_total_is_sum_when_under_cap()", + "id": "tests_test_bonus_engine_testtotalbonuscap_test_total_is_sum_when_under_cap" }, { - "id": "tests_test_bonus_engine_testfromdataset", "label": "TestFromDataset", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L187", - "_origin": "ast" + "source_location": "L195", + "_origin": "ast", + "community": 65, + "norm_label": "testfromdataset", + "id": "tests_test_bonus_engine_testfromdataset" }, { - "id": "tests_test_bonus_engine_testfromdataset_test_missing_files_give_empty_engine", "label": ".test_missing_files_give_empty_engine()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L188", - "_origin": "ast" + "source_location": "L196", + "_origin": "ast", + "community": 65, + "norm_label": ".test_missing_files_give_empty_engine()", + "id": "tests_test_bonus_engine_testfromdataset_test_missing_files_give_empty_engine" }, { - "id": "tests_test_bonus_engine_testfromdataset_test_loads_from_json_files", "label": ".test_loads_from_json_files()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L197", - "_origin": "ast" + "source_location": "L205", + "_origin": "ast", + "community": 65, + "norm_label": ".test_loads_from_json_files()", + "id": "tests_test_bonus_engine_testfromdataset_test_loads_from_json_files" }, { - "id": "tests_test_bonus_engine_testfromdataset_test_zero_coords_skipped", "label": ".test_zero_coords_skipped()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L211", - "_origin": "ast" + "source_location": "L219", + "_origin": "ast", + "community": 65, + "norm_label": ".test_zero_coords_skipped()", + "id": "tests_test_bonus_engine_testfromdataset_test_zero_coords_skipped" }, { - "id": "tests_test_bonus_engine_testbonusresultfields", "label": "TestBonusResultFields", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L227", - "_origin": "ast" + "source_location": "L238", + "_origin": "ast", + "community": 22, + "norm_label": "testbonusresultfields", + "id": "tests_test_bonus_engine_testbonusresultfields" }, { - "id": "tests_test_bonus_engine_testbonusresultfields_test_matched_names_populated", "label": ".test_matched_names_populated()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L228", - "_origin": "ast" + "source_location": "L239", + "_origin": "ast", + "community": 22, + "norm_label": ".test_matched_names_populated()", + "id": "tests_test_bonus_engine_testbonusresultfields_test_matched_names_populated" }, { - "id": "tests_test_bonus_engine_testbonusresultfields_test_no_match_empty_lists", "label": ".test_no_match_empty_lists()", "file_type": "code", "source_file": "tests/test_bonus_engine.py", - "source_location": "L234", - "_origin": "ast" + "source_location": "L245", + "_origin": "ast", + "community": 22, + "norm_label": ".test_no_match_empty_lists()", + "id": "tests_test_bonus_engine_testbonusresultfields_test_no_match_empty_lists" }, { - "id": "tests_test_bonus_engine_rationale_1", "label": "Tests for BonusEngine (TDD).", "file_type": "rationale", "source_file": "tests/test_bonus_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 22, + "norm_label": "tests for bonusengine (tdd).", + "id": "tests_test_bonus_engine_rationale_1" }, { - "id": "tests_test_cluster_dispersion", "label": "test_cluster_dispersion.py", "file_type": "code", "source_file": "tests/test_cluster_dispersion.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 12, + "norm_label": "test_cluster_dispersion.py", + "id": "tests_test_cluster_dispersion" }, { - "id": "tests_test_cluster_dispersion_make_place", "label": "_make_place()", "file_type": "code", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L17", - "_origin": "ast" + "source_location": "L14", + "_origin": "ast", + "community": 12, + "norm_label": "_make_place()", + "id": "tests_test_cluster_dispersion_make_place" }, { - "id": "tests_test_cluster_dispersion_test_compact_day_no_penalty", "label": "test_compact_day_no_penalty()", "file_type": "code", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L24", - "_origin": "ast" + "source_location": "L26", + "_origin": "ast", + "community": 12, + "norm_label": "test_compact_day_no_penalty()", + "id": "tests_test_cluster_dispersion_test_compact_day_no_penalty" }, { - "id": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty", "label": "test_lightning_pattern_high_penalty()", "file_type": "code", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L38", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 12, + "norm_label": "test_lightning_pattern_high_penalty()", + "id": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty" }, { - "id": "tests_test_cluster_dispersion_test_per_day_independence", "label": "test_per_day_independence()", "file_type": "code", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L53", - "_origin": "ast" - }, - { - "id": "skipif", - "label": "skipif", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L59", + "_origin": "ast", + "community": 12, + "norm_label": "test_per_day_independence()", + "id": "tests_test_cluster_dispersion_test_per_day_independence" }, { - "id": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju", "label": "test_geo_cluster_backtrack_gyeongju()", "file_type": "code", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L69", - "_origin": "ast" + "source_location": "L78", + "_origin": "ast", + "community": 12, + "norm_label": "test_geo_cluster_backtrack_gyeongju()", + "id": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju" }, { - "id": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential", "label": "test_geo_cluster_no_false_positive_sequential()", "file_type": "code", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L90", - "_origin": "ast" + "source_location": "L100", + "_origin": "ast", + "community": 12, + "norm_label": "test_geo_cluster_no_false_positive_sequential()", + "id": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential" }, { - "id": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires", "label": "test_geo_cluster_no_double_penalty_when_m3_fires()", "file_type": "code", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L103", - "_origin": "ast" + "source_location": "L114", + "_origin": "ast", + "community": 12, + "norm_label": "test_geo_cluster_no_double_penalty_when_m3_fires()", + "id": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires" }, { - "id": "tests_test_cluster_dispersion_test_sigungu_switches_only", "label": "test_sigungu_switches_only()", "file_type": "code", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L125", - "_origin": "ast" + "source_location": "L138", + "_origin": "ast", + "community": 12, + "norm_label": "test_sigungu_switches_only()", + "id": "tests_test_cluster_dispersion_test_sigungu_switches_only" }, { - "id": "tests_test_cluster_dispersion_rationale_1", "label": "Tests for src/scoring/cluster_dispersion.py \u2014 per-day \uac80\uc99d.", "file_type": "rationale", "source_file": "tests/test_cluster_dispersion.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 12, + "norm_label": "tests for src/scoring/cluster_dispersion.py \u2014 per-day \u1100\u1165\u11b7\u110c\u1173\u11bc.", + "id": "tests_test_cluster_dispersion_rationale_1" }, { - "id": "tests_test_cluster_dispersion_rationale_25", "label": "\uac19\uc740 \uc2dc\uad70\uad6c + \uac70\ub9ac < 30km \u2192 \ud328\ub110\ud2f0 0.", "file_type": "rationale", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L25", - "_origin": "ast" + "source_location": "L27", + "_origin": "ast", + "community": 12, + "norm_label": "\u1100\u1161\u11c0\u110b\u1173\u11ab \u1109\u1175\u1100\u116e\u11ab\u1100\u116e + \u1100\u1165\u1105\u1175 < 30km \u2192 \u1111\u1162\u1102\u1165\u11af\u1110\u1175 0.", + "id": "tests_test_cluster_dispersion_rationale_27" }, { - "id": "tests_test_cluster_dispersion_rationale_39", "label": "1\uc77c\ucc28\uc5d0 \uc11c\uc6b8\u2194\ubd80\uc0b0 \uc11e\uae30 \u2192 \uac70\ub9ac \uba54\ud2b8\ub9ad CRITICAL + \ucea1 \uc801\uc6a9.", "file_type": "rationale", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L39", - "_origin": "ast" + "source_location": "L43", + "_origin": "ast", + "community": 12, + "norm_label": "1\u110b\u1175\u11af\u110e\u1161\u110b\u1166 \u1109\u1165\u110b\u116e\u11af\u2194\u1107\u116e\u1109\u1161\u11ab \u1109\u1165\u11a9\u1100\u1175 \u2192 \u1100\u1165\u1105\u1175 \u1106\u1166\u1110\u1173\u1105\u1175\u11a8 critical + \u110f\u1162\u11b8 \u110c\u1165\u11a8\u110b\u116d\u11bc.", + "id": "tests_test_cluster_dispersion_rationale_43" }, { - "id": "tests_test_cluster_dispersion_rationale_54", "label": "Day1=\uc11c\uc6b8 / Day2=\ubd80\uc0b0 (\uac01 day \uc548\uc5d0\uc11c\ub294 \uc751\uc9d1) \u2192 \ud328\ub110\ud2f0 \uc5c6\uc74c.", "file_type": "rationale", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L54", - "_origin": "ast" + "source_location": "L60", + "_origin": "ast", + "community": 12, + "norm_label": "day1=\u1109\u1165\u110b\u116e\u11af / day2=\u1107\u116e\u1109\u1161\u11ab (\u1100\u1161\u11a8 day \u110b\u1161\u11ab\u110b\u1166\u1109\u1165\u1102\u1173\u11ab \u110b\u1173\u11bc\u110c\u1175\u11b8) \u2192 \u1111\u1162\u1102\u1165\u11af\u1110\u1175 \u110b\u1165\u11b9\u110b\u1173\u11b7.", + "id": "tests_test_cluster_dispersion_rationale_60" }, { - "id": "tests_test_cluster_dispersion_rationale_70", "label": "M4: \uacbd\uc8fc \u2014 \ub3d9\uc77c \uc2dc\uad70\uad6c\uc9c0\ub9cc \uc9c0\ub9ac\uc801\uc73c\ub85c \ubd84\uc0b0 \uc655\ubcf5 \u2192 M3=0\uc778\ub370 M4\u22651.", "file_type": "rationale", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L70", - "_origin": "ast" + "source_location": "L79", + "_origin": "ast", + "community": 12, + "norm_label": "m4: \u1100\u1167\u11bc\u110c\u116e \u2014 \u1103\u1169\u11bc\u110b\u1175\u11af \u1109\u1175\u1100\u116e\u11ab\u1100\u116e\u110c\u1175\u1106\u1161\u11ab \u110c\u1175\u1105\u1175\u110c\u1165\u11a8\u110b\u1173\u1105\u1169 \u1107\u116e\u11ab\u1109\u1161\u11ab \u110b\u116a\u11bc\u1107\u1169\u11a8 \u2192 m3=0\u110b\u1175\u11ab\u1103\u1166 m4\u22651.", + "id": "tests_test_cluster_dispersion_rationale_79" }, { - "id": "tests_test_cluster_dispersion_rationale_91", "label": "M4 false positive: \uac15\ub0a8\u2192\ud64d\ub300 \uc21c\ubc29\ud5a5 \ubc29\ubb38\uc740 \ud328\ub110\ud2f0 \uc5c6\uc5b4\uc57c.", "file_type": "rationale", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L91", - "_origin": "ast" + "source_location": "L101", + "_origin": "ast", + "community": 12, + "norm_label": "m4 false positive: \u1100\u1161\u11bc\u1102\u1161\u11b7\u2192\u1112\u1169\u11bc\u1103\u1162 \u1109\u116e\u11ab\u1107\u1161\u11bc\u1112\u1163\u11bc \u1107\u1161\u11bc\u1106\u116e\u11ab\u110b\u1173\u11ab \u1111\u1162\u1102\u1165\u11af\u1110\u1175 \u110b\u1165\u11b9\u110b\u1165\u110b\u1163.", + "id": "tests_test_cluster_dispersion_rationale_101" }, { - "id": "tests_test_cluster_dispersion_rationale_104", "label": "M3\uac00 \uc774\ubbf8 \ud0d0\uc9c0\ud55c \uc774\ubca4\ud2b8\uc5d0 M4\uac00 \uc911\ubcf5 \ud328\ub110\ud2f0\ub97c \ucd94\uac00\ud558\uc9c0 \uc54a\ub294\ub2e4. \uac15\ub0a8\uc5ed\u2194\uc5ed\uc0bc\uc5ed: ~0.9km (\uac19\uc740 geo cluster), \ud64d\ub300\uc785\uad6c:\u2026", "file_type": "rationale", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L104", - "_origin": "ast" + "source_location": "L115", + "_origin": "ast", + "community": 12, + "norm_label": "m3\u1100\u1161 \u110b\u1175\u1106\u1175 \u1110\u1161\u11b7\u110c\u1175\u1112\u1161\u11ab \u110b\u1175\u1107\u1166\u11ab\u1110\u1173\u110b\u1166 m4\u1100\u1161 \u110c\u116e\u11bc\u1107\u1169\u11a8 \u1111\u1162\u1102\u1165\u11af\u1110\u1175\u1105\u1173\u11af \u110e\u116e\u1100\u1161\u1112\u1161\u110c\u1175 \u110b\u1161\u11ad\u1102\u1173\u11ab\u1103\u1161. \u1100\u1161\u11bc\u1102\u1161\u11b7\u110b\u1167\u11a8\u2194\u110b\u1167\u11a8\u1109\u1161\u11b7\u110b\u1167\u11a8: ~0.9km (\u1100\u1161\u11c0\u110b\u1173\u11ab geo cluster), \u1112\u1169\u11bc\u1103\u1162\u110b\u1175\u11b8\u1100\u116e:...", + "id": "tests_test_cluster_dispersion_rationale_115" }, { - "id": "tests_test_cluster_dispersion_rationale_126", "label": "\uac70\ub9ac\ub294 \uc548 \uba40\uc9c0\ub9cc \uc2dc\uad70\uad6c \uc804\ud658 4\ud68c+ \u2192 \uc2dc\uad70\uad6c \ud328\ub110\ud2f0\ub9cc \ubc1c\uc0dd.", "file_type": "rationale", "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L126", - "_origin": "ast" + "source_location": "L139", + "_origin": "ast", + "community": 12, + "norm_label": "\u1100\u1165\u1105\u1175\u1102\u1173\u11ab \u110b\u1161\u11ab \u1106\u1165\u11af\u110c\u1175\u1106\u1161\u11ab \u1109\u1175\u1100\u116e\u11ab\u1100\u116e \u110c\u1165\u11ab\u1112\u116a\u11ab 4\u1112\u116c+ \u2192 \u1109\u1175\u1100\u116e\u11ab\u1100\u116e \u1111\u1162\u1102\u1165\u11af\u1110\u1175\u1106\u1161\u11ab \u1107\u1161\u11af\u1109\u1162\u11bc.", + "id": "tests_test_cluster_dispersion_rationale_139" }, { - "id": "tests_test_congestion_engine", "label": "test_congestion_engine.py", "file_type": "code", "source_file": "tests/test_congestion_engine.py", "source_location": "L1", - "_origin": "ast" - }, - { - "id": "tests_test_congestion_engine_py_fixture", - "label": "fixture", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "_origin": "ast", + "community": 26, + "norm_label": "test_congestion_engine.py", + "id": "tests_test_congestion_engine" }, { - "id": "tests_test_congestion_engine_engine", "label": "engine()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", - "source_location": "L48", - "_origin": "ast" - }, - { - "id": "parametrize", - "label": "parametrize", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 26, + "norm_label": "engine()", + "id": "tests_test_congestion_engine_engine" }, { - "id": "tests_test_congestion_engine_test_score_to_level", "label": "test_score_to_level()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", - "source_location": "L71", - "_origin": "ast" + "source_location": "L66", + "_origin": "ast", + "community": 26, + "norm_label": "test_score_to_level()", + "id": "tests_test_congestion_engine_test_score_to_level" }, { - "id": "tests_test_congestion_engine_test_exact_match", "label": "test_exact_match()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", - "source_location": "L79", - "_origin": "ast" + "source_location": "L75", + "_origin": "ast", + "community": 26, + "norm_label": "test_exact_match()", + "id": "tests_test_congestion_engine_test_exact_match" }, { - "id": "tests_test_congestion_engine_test_exact_match_low_season", "label": "test_exact_match_low_season()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", - "source_location": "L87", - "_origin": "ast" + "source_location": "L83", + "_origin": "ast", + "community": 26, + "norm_label": "test_exact_match_low_season()", + "id": "tests_test_congestion_engine_test_exact_match_low_season" }, { - "id": "tests_test_congestion_engine_test_partial_match_substring", "label": "test_partial_match_substring()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", - "source_location": "L98", - "_origin": "ast" + "source_location": "L95", + "_origin": "ast", + "community": 26, + "norm_label": "test_partial_match_substring()", + "id": "tests_test_congestion_engine_test_partial_match_substring" }, { - "id": "tests_test_congestion_engine_test_partial_match_superstring", "label": "test_partial_match_superstring()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", - "source_location": "L104", - "_origin": "ast" + "source_location": "L101", + "_origin": "ast", + "community": 26, + "norm_label": "test_partial_match_superstring()", + "id": "tests_test_congestion_engine_test_partial_match_superstring" }, { - "id": "tests_test_congestion_engine_test_global_fallback", "label": "test_global_fallback()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", - "source_location": "L114", - "_origin": "ast" + "source_location": "L112", + "_origin": "ast", + "community": 26, + "norm_label": "test_global_fallback()", + "id": "tests_test_congestion_engine_test_global_fallback" }, { - "id": "tests_test_congestion_engine_test_category_fallback", "label": "test_category_fallback()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", - "source_location": "L120", - "_origin": "ast" + "source_location": "L118", + "_origin": "ast", + "community": 26, + "norm_label": "test_category_fallback()", + "id": "tests_test_congestion_engine_test_category_fallback" }, { - "id": "tests_test_congestion_engine_test_invalid_month_raises", "label": "test_invalid_month_raises()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", - "source_location": "L130", - "_origin": "ast" + "source_location": "L129", + "_origin": "ast", + "community": 26, + "norm_label": "test_invalid_month_raises()", + "id": "tests_test_congestion_engine_test_invalid_month_raises" }, { - "id": "tests_test_congestion_engine_test_result_is_dataclass", "label": "test_result_is_dataclass()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", - "source_location": "L137", - "_origin": "ast" + "source_location": "L136", + "_origin": "ast", + "community": 26, + "norm_label": "test_result_is_dataclass()", + "id": "tests_test_congestion_engine_test_result_is_dataclass" }, { - "id": "tests_test_congestion_engine_test_is_crowded_true", "label": "test_is_crowded_true()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", "source_location": "L147", - "_origin": "ast" + "_origin": "ast", + "community": 26, + "norm_label": "test_is_crowded_true()", + "id": "tests_test_congestion_engine_test_is_crowded_true" }, { - "id": "tests_test_congestion_engine_test_is_crowded_false", "label": "test_is_crowded_false()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", "source_location": "L151", - "_origin": "ast" + "_origin": "ast", + "community": 26, + "norm_label": "test_is_crowded_false()", + "id": "tests_test_congestion_engine_test_is_crowded_false" }, { - "id": "tests_test_congestion_engine_test_score_itinerary", "label": "test_score_itinerary()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", "source_location": "L155", - "_origin": "ast" + "_origin": "ast", + "community": 26, + "norm_label": "test_score_itinerary()", + "id": "tests_test_congestion_engine_test_score_itinerary" }, { - "id": "tests_test_congestion_engine_test_missing_csv_raises", "label": "test_missing_csv_raises()", "file_type": "code", "source_file": "tests/test_congestion_engine.py", - "source_location": "L165", - "_origin": "ast" + "source_location": "L166", + "_origin": "ast", + "community": 28, + "norm_label": "test_missing_csv_raises()", + "id": "tests_test_congestion_engine_test_missing_csv_raises" }, { - "id": "tests_test_congestion_engine_rationale_1", "label": "Unit tests for CongestionEngine.", "file_type": "rationale", "source_file": "tests/test_congestion_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 26, + "norm_label": "unit tests for congestionengine.", + "id": "tests_test_congestion_engine_rationale_1" }, { - "id": "tests_test_dwell_db", "label": "test_dwell_db.py", "file_type": "code", "source_file": "tests/test_dwell_db.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 23, + "norm_label": "test_dwell_db.py", + "id": "tests_test_dwell_db" }, { - "id": "tests_test_dwell_db_testmanualoverride", "label": "TestManualOverride", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L16", - "_origin": "ast" + "source_location": "L14", + "_origin": "ast", + "community": 23, + "norm_label": "testmanualoverride", + "id": "tests_test_dwell_db_testmanualoverride" }, { - "id": "tests_test_dwell_db_testmanualoverride_test_\uacbd\ubcf5\uad81_returns_manual_source", "label": ".test_\uacbd\ubcf5\uad81_returns_manual_source()", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L17", - "_origin": "ast" + "source_location": "L15", + "_origin": "ast", + "community": 23, + "norm_label": ".test_\u1100\u1167\u11bc\u1107\u1169\u11a8\u1100\u116e\u11bc_returns_manual_source()", + "id": "tests_test_dwell_db_testmanualoverride_test_\uacbd\ubcf5\uad81_returns_manual_source" }, { - "id": "tests_test_dwell_db_testmanualoverride_test_normalization_handles_spaces", "label": ".test_normalization_handles_spaces()", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L23", - "_origin": "ast" + "source_location": "L21", + "_origin": "ast", + "community": 23, + "norm_label": ".test_normalization_handles_spaces()", + "id": "tests_test_dwell_db_testmanualoverride_test_normalization_handles_spaces" }, { - "id": "tests_test_dwell_db_testmanualoverride_test_n_seoul_tower_alias", "label": ".test_n_seoul_tower_alias()", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L28", - "_origin": "ast" + "source_location": "L26", + "_origin": "ast", + "community": 23, + "norm_label": ".test_n_seoul_tower_alias()", + "id": "tests_test_dwell_db_testmanualoverride_test_n_seoul_tower_alias" }, { - "id": "tests_test_dwell_db_testlclssystm3", "label": "TestLclsSystm3", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L35", - "_origin": "ast" + "source_location": "L33", + "_origin": "ast", + "community": 23, + "norm_label": "testlclssystm3", + "id": "tests_test_dwell_db_testlclssystm3" }, { - "id": "tests_test_dwell_db_testlclssystm3_test_museum_code", "label": ".test_museum_code()", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L36", - "_origin": "ast" + "source_location": "L34", + "_origin": "ast", + "community": 23, + "norm_label": ".test_museum_code()", + "id": "tests_test_dwell_db_testlclssystm3_test_museum_code" }, { - "id": "tests_test_dwell_db_testlclssystm1fallback", "label": "TestLclsSystm1Fallback", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L43", - "_origin": "ast" + "source_location": "L41", + "_origin": "ast", + "community": 23, + "norm_label": "testlclssystm1fallback", + "id": "tests_test_dwell_db_testlclssystm1fallback" }, { - "id": "tests_test_dwell_db_testlclssystm1fallback_test_lcls3_unknown_falls_back_to_lcls1", "label": ".test_lcls3_unknown_falls_back_to_lcls1()", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L44", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 23, + "norm_label": ".test_lcls3_unknown_falls_back_to_lcls1()", + "id": "tests_test_dwell_db_testlclssystm1fallback_test_lcls3_unknown_falls_back_to_lcls1" }, { - "id": "tests_test_dwell_db_testcontenttypefallback", "label": "TestContentTypeFallback", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L51", - "_origin": "ast" + "source_location": "L49", + "_origin": "ast", + "community": 23, + "norm_label": "testcontenttypefallback", + "id": "tests_test_dwell_db_testcontenttypefallback" }, { - "id": "tests_test_dwell_db_testcontenttypefallback_test_content_type_used_when_no_lcls", "label": ".test_content_type_used_when_no_lcls()", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L52", - "_origin": "ast" + "source_location": "L50", + "_origin": "ast", + "community": 23, + "norm_label": ".test_content_type_used_when_no_lcls()", + "id": "tests_test_dwell_db_testcontenttypefallback_test_content_type_used_when_no_lcls" }, { - "id": "tests_test_dwell_db_testdefaultfallback", "label": "TestDefaultFallback", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L58", - "_origin": "ast" + "source_location": "L56", + "_origin": "ast", + "community": 23, + "norm_label": "testdefaultfallback", + "id": "tests_test_dwell_db_testdefaultfallback" }, { - "id": "tests_test_dwell_db_testdefaultfallback_test_no_info_returns_default", "label": ".test_no_info_returns_default()", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L59", - "_origin": "ast" + "source_location": "L57", + "_origin": "ast", + "community": 23, + "norm_label": ".test_no_info_returns_default()", + "id": "tests_test_dwell_db_testdefaultfallback_test_no_info_returns_default" }, { - "id": "tests_test_dwell_db_testistooshort", "label": "TestIsTooShort", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L65", - "_origin": "ast" + "source_location": "L63", + "_origin": "ast", + "community": 23, + "norm_label": "testistooshort", + "id": "tests_test_dwell_db_testistooshort" }, { - "id": "tests_test_dwell_db_testistooshort_test_below_50pct_is_too_short", "label": ".test_below_50pct_is_too_short()", "file_type": "code", "source_file": "tests/test_dwell_db.py", - "source_location": "L66", - "_origin": "ast" + "source_location": "L64", + "_origin": "ast", + "community": 23, + "norm_label": ".test_below_50pct_is_too_short()", + "id": "tests_test_dwell_db_testistooshort_test_below_50pct_is_too_short" }, { - "id": "tests_test_dwell_db_rationale_1", "label": "Tests for src/data/dwell_db.py \u2014 5\ub2e8\uacc4 \ud3f4\ubc31 \uac80\uc99d.", "file_type": "rationale", "source_file": "tests/test_dwell_db.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 23, + "norm_label": "tests for src/data/dwell_db.py \u2014 5\u1103\u1161\u11ab\u1100\u1168 \u1111\u1169\u11af\u1107\u1162\u11a8 \u1100\u1165\u11b7\u110c\u1173\u11bc.", + "id": "tests_test_dwell_db_rationale_1" }, { - "id": "tests_test_estimated_hardfail", "label": "test_estimated_hardfail.py", "file_type": "code", "source_file": "tests/test_estimated_hardfail.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 31, + "norm_label": "test_estimated_hardfail.py", + "id": "tests_test_estimated_hardfail" }, { - "id": "tests_test_estimated_hardfail_poi", "label": "_poi()", "file_type": "code", "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L8", - "_origin": "ast" + "source_location": "L9", + "_origin": "ast", + "community": 31, + "norm_label": "_poi()", + "id": "tests_test_estimated_hardfail_poi" }, { - "id": "tests_test_estimated_hardfail_plan", "label": "_plan()", "file_type": "code", "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L22", - "_origin": "ast" + "source_location": "L23", + "_origin": "ast", + "community": 31, + "norm_label": "_plan()", + "id": "tests_test_estimated_hardfail_plan" }, { - "id": "tests_test_estimated_hardfail_test_estimated_hours_conflict_flagged_estimated", "label": "test_estimated_hours_conflict_flagged_estimated()", "file_type": "code", "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L31", - "_origin": "ast" + "source_location": "L32", + "_origin": "ast", + "community": 31, + "norm_label": "test_estimated_hours_conflict_flagged_estimated()", + "id": "tests_test_estimated_hardfail_test_estimated_hours_conflict_flagged_estimated" }, { - "id": "tests_test_estimated_hardfail_test_verified_hours_conflict_not_estimated_and_message_unchanged", "label": "test_verified_hours_conflict_not_estimated_and_message_unchanged()", "file_type": "code", "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L41", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 31, + "norm_label": "test_verified_hours_conflict_not_estimated_and_message_unchanged()", + "id": "tests_test_estimated_hardfail_test_verified_hours_conflict_not_estimated_and_message_unchanged" }, { - "id": "tests_test_estimated_hardfail_rationale_1", "label": "P1: \ucd94\uc815 \uc601\uc5c5\uc2dc\uac04 \ucda9\ub3cc\uc758 \ud558\ub4dc\ud398\uc77c \uac15\ub4f1 \ud14c\uc2a4\ud2b8.", "file_type": "rationale", "source_file": "tests/test_estimated_hardfail.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 31, + "norm_label": "p1: \u110e\u116e\u110c\u1165\u11bc \u110b\u1167\u11bc\u110b\u1165\u11b8\u1109\u1175\u1100\u1161\u11ab \u110e\u116e\u11bc\u1103\u1169\u11af\u110b\u1174 \u1112\u1161\u1103\u1173\u1111\u1166\u110b\u1175\u11af \u1100\u1161\u11bc\u1103\u1173\u11bc \u1110\u1166\u1109\u1173\u1110\u1173.", + "id": "tests_test_estimated_hardfail_rationale_1" }, { - "id": "tests_test_explain_engine", "label": "test_explain_engine.py", "file_type": "code", "source_file": "tests/test_explain_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 5, + "norm_label": "test_explain_engine.py", + "id": "tests_test_explain_engine" }, { - "id": "tests_test_explain_engine_make_plan", "label": "make_plan()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L34", - "_origin": "ast" + "source_location": "L33", + "_origin": "ast", + "community": 24, + "norm_label": "make_plan()", + "id": "tests_test_explain_engine_make_plan" }, { - "id": "tests_test_explain_engine_make_scores", "label": "make_scores()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L43", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 24, + "norm_label": "make_scores()", + "id": "tests_test_explain_engine_make_scores" }, { - "id": "tests_test_explain_engine_make_hard_fail", "label": "make_hard_fail()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L47", - "_origin": "ast" + "source_location": "L46", + "_origin": "ast", + "community": 33, + "norm_label": "make_hard_fail()", + "id": "tests_test_explain_engine_make_hard_fail" }, { - "id": "tests_test_explain_engine_make_warning", "label": "make_warning()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L57", - "_origin": "ast" + "source_location": "L56", + "_origin": "ast", + "community": 24, + "norm_label": "make_warning()", + "id": "tests_test_explain_engine_make_warning" }, { - "id": "tests_test_explain_engine_make_graph_stub", "label": "make_graph_stub()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L65", - "_origin": "ast" + "source_location": "L64", + "_origin": "ast", + "community": 48, + "norm_label": "make_graph_stub()", + "id": "tests_test_explain_engine_make_graph_stub" }, { - "id": "tests_test_explain_engine_make_disabled_graph_stub", "label": "make_disabled_graph_stub()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L83", - "_origin": "ast" + "source_location": "L88", + "_origin": "ast", + "community": 48, + "norm_label": "make_disabled_graph_stub()", + "id": "tests_test_explain_engine_make_disabled_graph_stub" }, { - "id": "tests_test_explain_engine_testcachekey", "label": "TestCacheKey", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L93", - "_origin": "ast" + "source_location": "L99", + "_origin": "ast", + "community": 5, + "norm_label": "testcachekey", + "id": "tests_test_explain_engine_testcachekey" }, { - "id": "tests_test_explain_engine_testcachekey_test_same_inputs_same_key", "label": ".test_same_inputs_same_key()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L94", - "_origin": "ast" + "source_location": "L100", + "_origin": "ast", + "community": 5, + "norm_label": ".test_same_inputs_same_key()", + "id": "tests_test_explain_engine_testcachekey_test_same_inputs_same_key" }, { - "id": "tests_test_explain_engine_testcachekey_test_different_score_different_key", "label": ".test_different_score_different_key()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L100", - "_origin": "ast" + "source_location": "L106", + "_origin": "ast", + "community": 5, + "norm_label": ".test_different_score_different_key()", + "id": "tests_test_explain_engine_testcachekey_test_different_score_different_key" }, { - "id": "tests_test_explain_engine_testcachekey_test_empty_inputs", "label": ".test_empty_inputs()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L104", - "_origin": "ast" + "source_location": "L110", + "_origin": "ast", + "community": 5, + "norm_label": ".test_empty_inputs()", + "id": "tests_test_explain_engine_testcachekey_test_empty_inputs" }, { - "id": "tests_test_explain_engine_testcachekey_test_different_day_index_different_key", "label": ".test_different_day_index_different_key()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L108", - "_origin": "ast" + "source_location": "L114", + "_origin": "ast", + "community": 5, + "norm_label": ".test_different_day_index_different_key()", + "id": "tests_test_explain_engine_testcachekey_test_different_day_index_different_key" }, { - "id": "tests_test_explain_engine_testgraphcontext", "label": "TestGraphContext", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L120", - "_origin": "ast" + "source_location": "L127", + "_origin": "ast", + "community": 48, + "norm_label": "testgraphcontext", + "id": "tests_test_explain_engine_testgraphcontext" }, { - "id": "tests_test_explain_engine_testgraphcontext_test_none_graph_returns_none", "label": ".test_none_graph_returns_none()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L121", - "_origin": "ast" + "source_location": "L128", + "_origin": "ast", + "community": 48, + "norm_label": ".test_none_graph_returns_none()", + "id": "tests_test_explain_engine_testgraphcontext_test_none_graph_returns_none" }, { - "id": "tests_test_explain_engine_testgraphcontext_test_disabled_graph_returns_none", "label": ".test_disabled_graph_returns_none()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L124", - "_origin": "ast" + "source_location": "L131", + "_origin": "ast", + "community": 48, + "norm_label": ".test_disabled_graph_returns_none()", + "id": "tests_test_explain_engine_testgraphcontext_test_disabled_graph_returns_none" }, { - "id": "tests_test_explain_engine_testgraphcontext_test_empty_poi_name_returns_none", "label": ".test_empty_poi_name_returns_none()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L127", - "_origin": "ast" + "source_location": "L134", + "_origin": "ast", + "community": 48, + "norm_label": ".test_empty_poi_name_returns_none()", + "id": "tests_test_explain_engine_testgraphcontext_test_empty_poi_name_returns_none" }, { - "id": "tests_test_explain_engine_testgraphcontext_test_no_match_returns_none", "label": ".test_no_match_returns_none()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L130", - "_origin": "ast" + "source_location": "L137", + "_origin": "ast", + "community": 48, + "norm_label": ".test_no_match_returns_none()", + "id": "tests_test_explain_engine_testgraphcontext_test_no_match_returns_none" }, { - "id": "tests_test_explain_engine_testgraphcontext_test_match_includes_region_and_category", "label": ".test_match_includes_region_and_category()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L135", - "_origin": "ast" + "source_location": "L142", + "_origin": "ast", + "community": 48, + "norm_label": ".test_match_includes_region_and_category()", + "id": "tests_test_explain_engine_testgraphcontext_test_match_includes_region_and_category" }, { - "id": "tests_test_explain_engine_testgraphcontext_test_match_includes_nearby_alternatives", "label": ".test_match_includes_nearby_alternatives()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L140", - "_origin": "ast" + "source_location": "L147", + "_origin": "ast", + "community": 48, + "norm_label": ".test_match_includes_nearby_alternatives()", + "id": "tests_test_explain_engine_testgraphcontext_test_match_includes_nearby_alternatives" }, { - "id": "tests_test_explain_engine_testgraphcontext_test_no_nearby_omits_key", "label": ".test_no_nearby_omits_key()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L145", - "_origin": "ast" + "source_location": "L152", + "_origin": "ast", + "community": 48, + "norm_label": ".test_no_nearby_omits_key()", + "id": "tests_test_explain_engine_testgraphcontext_test_no_nearby_omits_key" }, { - "id": "tests_test_explain_engine_testbuilduserprompt", "label": "TestBuildUserPrompt", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L154", - "_origin": "ast" + "source_location": "L162", + "_origin": "ast", + "community": 24, + "norm_label": "testbuilduserprompt", + "id": "tests_test_explain_engine_testbuilduserprompt" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_contains_plan_info", "label": ".test_contains_plan_info()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L155", - "_origin": "ast" + "source_location": "L163", + "_origin": "ast", + "community": 24, + "norm_label": ".test_contains_plan_info()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_contains_plan_info" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_hard_fail_in_prompt", "label": ".test_hard_fail_in_prompt()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L160", - "_origin": "ast" + "source_location": "L168", + "_origin": "ast", + "community": 24, + "norm_label": ".test_hard_fail_in_prompt()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_hard_fail_in_prompt" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_warning_in_prompt", "label": ".test_warning_in_prompt()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L165", - "_origin": "ast" + "source_location": "L173", + "_origin": "ast", + "community": 24, + "norm_label": ".test_warning_in_prompt()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_warning_in_prompt" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_penalty_in_prompt", "label": ".test_penalty_in_prompt()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L169", - "_origin": "ast" + "source_location": "L177", + "_origin": "ast", + "community": 24, + "norm_label": ".test_penalty_in_prompt()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_penalty_in_prompt" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_scores_included_when_provided", "label": ".test_scores_included_when_provided()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L173", - "_origin": "ast" + "source_location": "L181", + "_origin": "ast", + "community": 24, + "norm_label": ".test_scores_included_when_provided()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_scores_included_when_provided" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_overall_item_present", "label": ".test_overall_item_present()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L177", - "_origin": "ast" + "source_location": "L185", + "_origin": "ast", + "community": 24, + "norm_label": ".test_overall_item_present()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_overall_item_present" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched", "label": ".test_graph_evidence_included_when_matched()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L182", - "_origin": "ast" + "source_location": "L190", + "_origin": "ast", + "community": 24, + "norm_label": ".test_graph_evidence_included_when_matched()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_no_graph_omits_evidence_key", "label": ".test_no_graph_omits_evidence_key()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L190", - "_origin": "ast" + "source_location": "L204", + "_origin": "ast", + "community": 24, + "norm_label": ".test_no_graph_omits_evidence_key()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_no_graph_omits_evidence_key" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_hard_fail", "label": ".test_day_index_included_for_hard_fail()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L194", - "_origin": "ast" + "source_location": "L208", + "_origin": "ast", + "community": 24, + "norm_label": ".test_day_index_included_for_hard_fail()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_hard_fail" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_warning", "label": ".test_day_index_included_for_warning()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L200", - "_origin": "ast" + "source_location": "L214", + "_origin": "ast", + "community": 24, + "norm_label": ".test_day_index_included_for_warning()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_warning" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field", "label": ".test_no_day_index_omits_day_field()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L209", - "_origin": "ast" + "source_location": "L223", + "_origin": "ast", + "community": 24, + "norm_label": ".test_no_day_index_omits_day_field()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field" }, { - "id": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name", "label": ".test_warning_graph_evidence_uses_first_poi_name()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L213", - "_origin": "ast" + "source_location": "L229", + "_origin": "ast", + "community": 24, + "norm_label": ".test_warning_graph_evidence_uses_first_poi_name()", + "id": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name" }, { - "id": "tests_test_explain_engine_testparsellmresponse", "label": "TestParseLlmResponse", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L225", - "_origin": "ast" + "source_location": "L242", + "_origin": "ast", + "community": 59, + "norm_label": "testparsellmresponse", + "id": "tests_test_explain_engine_testparsellmresponse" }, { - "id": "tests_test_explain_engine_testparsellmresponse_test_parses_valid_json_array", "label": ".test_parses_valid_json_array()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L226", - "_origin": "ast" + "source_location": "L243", + "_origin": "ast", + "community": 59, + "norm_label": ".test_parses_valid_json_array()", + "id": "tests_test_explain_engine_testparsellmresponse_test_parses_valid_json_array" }, { - "id": "tests_test_explain_engine_testparsellmresponse_test_strips_code_block_wrapper", "label": ".test_strips_code_block_wrapper()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L240", - "_origin": "ast" + "source_location": "L261", + "_origin": "ast", + "community": 59, + "norm_label": ".test_strips_code_block_wrapper()", + "id": "tests_test_explain_engine_testparsellmresponse_test_strips_code_block_wrapper" }, { - "id": "tests_test_explain_engine_testparsellmresponse_test_multiple_items", "label": ".test_multiple_items()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L246", - "_origin": "ast" + "source_location": "L267", + "_origin": "ast", + "community": 59, + "norm_label": ".test_multiple_items()", + "id": "tests_test_explain_engine_testparsellmresponse_test_multiple_items" }, { - "id": "tests_test_explain_engine_testparsellmresponse_test_returns_explanation_items", "label": ".test_returns_explanation_items()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L254", - "_origin": "ast" + "source_location": "L291", + "_origin": "ast", + "community": 59, + "norm_label": ".test_returns_explanation_items()", + "id": "tests_test_explain_engine_testparsellmresponse_test_returns_explanation_items" }, { - "id": "tests_test_explain_engine_testparsellmresponse_test_day_index_echoed_back", "label": ".test_day_index_echoed_back()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L262", - "_origin": "ast" + "source_location": "L307", + "_origin": "ast", + "community": 59, + "norm_label": ".test_day_index_echoed_back()", + "id": "tests_test_explain_engine_testparsellmresponse_test_day_index_echoed_back" }, { - "id": "tests_test_explain_engine_testparsellmresponse_test_missing_day_index_defaults_to_none", "label": ".test_missing_day_index_defaults_to_none()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L270", - "_origin": "ast" + "source_location": "L324", + "_origin": "ast", + "community": 59, + "norm_label": ".test_missing_day_index_defaults_to_none()", + "id": "tests_test_explain_engine_testparsellmresponse_test_missing_day_index_defaults_to_none" }, { - "id": "tests_test_explain_engine_testfallback", "label": "TestFallback", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L283", - "_origin": "ast" + "source_location": "L346", + "_origin": "ast", + "community": 52, + "norm_label": "testfallback", + "id": "tests_test_explain_engine_testfallback" }, { - "id": "tests_test_explain_engine_testfallback_test_hard_fail_becomes_critical", "label": ".test_hard_fail_becomes_critical()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L284", - "_origin": "ast" + "source_location": "L347", + "_origin": "ast", + "community": 52, + "norm_label": ".test_hard_fail_becomes_critical()", + "id": "tests_test_explain_engine_testfallback_test_hard_fail_becomes_critical" }, { - "id": "tests_test_explain_engine_testfallback_test_warning_becomes_warning", "label": ".test_warning_becomes_warning()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L289", - "_origin": "ast" + "source_location": "L352", + "_origin": "ast", + "community": 52, + "norm_label": ".test_warning_becomes_warning()", + "id": "tests_test_explain_engine_testfallback_test_warning_becomes_warning" }, { - "id": "tests_test_explain_engine_testfallback_test_large_penalty_is_critical", "label": ".test_large_penalty_is_critical()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L294", - "_origin": "ast" + "source_location": "L357", + "_origin": "ast", + "community": 52, + "norm_label": ".test_large_penalty_is_critical()", + "id": "tests_test_explain_engine_testfallback_test_large_penalty_is_critical" }, { - "id": "tests_test_explain_engine_testfallback_test_small_penalty_is_warning", "label": ".test_small_penalty_is_warning()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L299", - "_origin": "ast" + "source_location": "L362", + "_origin": "ast", + "community": 52, + "norm_label": ".test_small_penalty_is_warning()", + "id": "tests_test_explain_engine_testfallback_test_small_penalty_is_warning" }, { - "id": "tests_test_explain_engine_testfallback_test_always_has_overall_item", "label": ".test_always_has_overall_item()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L304", - "_origin": "ast" + "source_location": "L367", + "_origin": "ast", + "community": 52, + "norm_label": ".test_always_has_overall_item()", + "id": "tests_test_explain_engine_testfallback_test_always_has_overall_item" }, { - "id": "tests_test_explain_engine_testfallback_test_failed_overall_is_critical", "label": ".test_failed_overall_is_critical()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L314", - "_origin": "ast" + "source_location": "L377", + "_origin": "ast", + "community": 52, + "norm_label": ".test_failed_overall_is_critical()", + "id": "tests_test_explain_engine_testfallback_test_failed_overall_is_critical" }, { - "id": "tests_test_explain_engine_testfallback_test_passed_overall_is_ok", "label": ".test_passed_overall_is_ok()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L319", - "_origin": "ast" + "source_location": "L382", + "_origin": "ast", + "community": 52, + "norm_label": ".test_passed_overall_is_ok()", + "id": "tests_test_explain_engine_testfallback_test_passed_overall_is_ok" }, { - "id": "tests_test_explain_engine_testfallback_test_hard_fail_day_index_propagated_and_prefixed", "label": ".test_hard_fail_day_index_propagated_and_prefixed()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L324", - "_origin": "ast" + "source_location": "L387", + "_origin": "ast", + "community": 52, + "norm_label": ".test_hard_fail_day_index_propagated_and_prefixed()", + "id": "tests_test_explain_engine_testfallback_test_hard_fail_day_index_propagated_and_prefixed" }, { - "id": "tests_test_explain_engine_testfallback_test_warning_day_index_propagated_and_prefixed", "label": ".test_warning_day_index_propagated_and_prefixed()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L332", - "_origin": "ast" + "source_location": "L395", + "_origin": "ast", + "community": 52, + "norm_label": ".test_warning_day_index_propagated_and_prefixed()", + "id": "tests_test_explain_engine_testfallback_test_warning_day_index_propagated_and_prefixed" }, { - "id": "tests_test_explain_engine_testfallback_test_no_day_index_no_prefix", "label": ".test_no_day_index_no_prefix()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L340", - "_origin": "ast" + "source_location": "L403", + "_origin": "ast", + "community": 52, + "norm_label": ".test_no_day_index_no_prefix()", + "id": "tests_test_explain_engine_testfallback_test_no_day_index_no_prefix" }, { - "id": "tests_test_explain_engine_testexplainenginenollm", "label": "TestExplainEngineNoLLM", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L351", - "_origin": "ast" + "source_location": "L415", + "_origin": "ast", + "community": 24, + "norm_label": "testexplainenginenollm", + "id": "tests_test_explain_engine_testexplainenginenollm" }, { - "id": "tests_test_explain_engine_testexplainenginenollm_setup_method", "label": ".setup_method()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L352", - "_origin": "ast" + "source_location": "L416", + "_origin": "ast", + "community": 24, + "norm_label": ".setup_method()", + "id": "tests_test_explain_engine_testexplainenginenollm_setup_method" }, { - "id": "tests_test_explain_engine_testexplainenginenollm_test_is_available_false_without_key", "label": ".test_is_available_false_without_key()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L356", - "_origin": "ast" + "source_location": "L420", + "_origin": "ast", + "community": 24, + "norm_label": ".test_is_available_false_without_key()", + "id": "tests_test_explain_engine_testexplainenginenollm_test_is_available_false_without_key" }, { - "id": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items", "label": ".test_generate_returns_list_of_explanation_items()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L359", - "_origin": "ast" + "source_location": "L423", + "_origin": "ast", + "community": 24, + "norm_label": ".test_generate_returns_list_of_explanation_items()", + "id": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items" }, { - "id": "tests_test_explain_engine_testexplainenginenollm_test_no_issues_returns_ok_overall", "label": ".test_no_issues_returns_ok_overall()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L372", - "_origin": "ast" + "source_location": "L436", + "_origin": "ast", + "community": 24, + "norm_label": ".test_no_issues_returns_ok_overall()", + "id": "tests_test_explain_engine_testexplainenginenollm_test_no_issues_returns_ok_overall" }, { - "id": "tests_test_explain_engine_testexplainenginenollm_test_hard_fail_present_in_results", "label": ".test_hard_fail_present_in_results()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L381", - "_origin": "ast" + "source_location": "L450", + "_origin": "ast", + "community": 24, + "norm_label": ".test_hard_fail_present_in_results()", + "id": "tests_test_explain_engine_testexplainenginenollm_test_hard_fail_present_in_results" }, { - "id": "tests_test_explain_engine_testexplainenginenollm_test_warning_present_in_results", "label": ".test_warning_present_in_results()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L389", - "_origin": "ast" + "source_location": "L463", + "_origin": "ast", + "community": 24, + "norm_label": ".test_warning_present_in_results()", + "id": "tests_test_explain_engine_testexplainenginenollm_test_warning_present_in_results" }, { - "id": "tests_test_explain_engine_testexplainenginenollm_test_penalty_present_in_results", "label": ".test_penalty_present_in_results()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L397", - "_origin": "ast" + "source_location": "L476", + "_origin": "ast", + "community": 24, + "norm_label": ".test_penalty_present_in_results()", + "id": "tests_test_explain_engine_testexplainenginenollm_test_penalty_present_in_results" }, { - "id": "tests_test_explain_engine_testexplainenginemockllm", "label": "TestExplainEngineMockLLM", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L410", - "_origin": "ast" + "source_location": "L495", + "_origin": "ast", + "community": 33, + "norm_label": "testexplainenginemockllm", + "id": "tests_test_explain_engine_testexplainenginemockllm" }, { - "id": "tests_test_explain_engine_testexplainenginemockllm_make_mock_client", "label": "._make_mock_client()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L411", - "_origin": "ast" + "source_location": "L496", + "_origin": "ast", + "community": 33, + "norm_label": "._make_mock_client()", + "id": "tests_test_explain_engine_testexplainenginemockllm_make_mock_client" }, { - "id": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available", "label": ".test_llm_response_used_when_available()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L421", - "_origin": "ast" + "source_location": "L506", + "_origin": "ast", + "community": 33, + "norm_label": ".test_llm_response_used_when_available()", + "id": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available" }, { - "id": "tests_test_explain_engine_testexplainenginemockllm_test_llm_failure_falls_back_gracefully", "label": ".test_llm_failure_falls_back_gracefully()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L445", - "_origin": "ast" + "source_location": "L538", + "_origin": "ast", + "community": 33, + "norm_label": ".test_llm_failure_falls_back_gracefully()", + "id": "tests_test_explain_engine_testexplainenginemockllm_test_llm_failure_falls_back_gracefully" }, { - "id": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call", "label": ".test_cache_prevents_second_llm_call()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L456", - "_origin": "ast" + "source_location": "L554", + "_origin": "ast", + "community": 33, + "norm_label": ".test_cache_prevents_second_llm_call()", + "id": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call" }, { - "id": "tests_test_explain_engine_testexplainenginemockllm_test_is_available_with_client", "label": ".test_is_available_with_client()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L472", - "_origin": "ast" + "source_location": "L577", + "_origin": "ast", + "community": 33, + "norm_label": ".test_is_available_with_client()", + "id": "tests_test_explain_engine_testexplainenginemockllm_test_is_available_with_client" }, { - "id": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", "label": ".test_graph_evidence_reaches_llm_prompt()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L477", - "_origin": "ast" + "source_location": "L582", + "_origin": "ast", + "community": 33, + "norm_label": ".test_graph_evidence_reaches_llm_prompt()", + "id": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt" }, { - "id": "tests_test_explain_engine_testexplainenginegraphdefault", "label": "TestExplainEngineGraphDefault", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L496", - "_origin": "ast" + "source_location": "L613", + "_origin": "ast", + "community": 5, + "norm_label": "testexplainenginegraphdefault", + "id": "tests_test_explain_engine_testexplainenginegraphdefault" }, { - "id": "tests_test_explain_engine_testexplainenginegraphdefault_test_default_graph_disabled_without_env", - "label": ".test_default_graph_disabled_without_env()", + "label": ".test_default_graph_uses_local_catalog_without_neo4j()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L497", - "_origin": "ast" + "source_location": "L614", + "_origin": "ast", + "community": 33, + "norm_label": ".test_default_graph_uses_local_catalog_without_neo4j()", + "id": "tests_test_explain_engine_testexplainenginegraphdefault_test_default_graph_uses_local_catalog_without_neo4j" }, { - "id": "tests_test_explain_engine_testbuildalternatives", "label": "TestBuildAlternatives", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L507", - "_origin": "ast" + "source_location": "L624", + "_origin": "ast", + "community": 33, + "norm_label": "testbuildalternatives", + "id": "tests_test_explain_engine_testbuildalternatives" }, { - "id": "tests_test_explain_engine_testbuildalternatives_test_no_hard_fails_returns_empty", "label": ".test_no_hard_fails_returns_empty()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L508", - "_origin": "ast" + "source_location": "L625", + "_origin": "ast", + "community": 33, + "norm_label": ".test_no_hard_fails_returns_empty()", + "id": "tests_test_explain_engine_testbuildalternatives_test_no_hard_fails_returns_empty" }, { - "id": "tests_test_explain_engine_testbuildalternatives_test_disabled_graph_returns_empty", "label": ".test_disabled_graph_returns_empty()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L512", - "_origin": "ast" + "source_location": "L629", + "_origin": "ast", + "community": 33, + "norm_label": ".test_disabled_graph_returns_empty()", + "id": "tests_test_explain_engine_testbuildalternatives_test_disabled_graph_returns_empty" }, { - "id": "tests_test_explain_engine_testbuildalternatives_test_hard_fail_without_poi_name_skipped", "label": ".test_hard_fail_without_poi_name_skipped()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L518", - "_origin": "ast" + "source_location": "L635", + "_origin": "ast", + "community": 33, + "norm_label": ".test_hard_fail_without_poi_name_skipped()", + "id": "tests_test_explain_engine_testbuildalternatives_test_hard_fail_without_poi_name_skipped" }, { - "id": "tests_test_explain_engine_testbuildalternatives_test_match_returns_alternatives_keyed_by_poi_name", "label": ".test_match_returns_alternatives_keyed_by_poi_name()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L524", - "_origin": "ast" + "source_location": "L641", + "_origin": "ast", + "community": 33, + "norm_label": ".test_match_returns_alternatives_keyed_by_poi_name()", + "id": "tests_test_explain_engine_testbuildalternatives_test_match_returns_alternatives_keyed_by_poi_name" }, { - "id": "tests_test_explain_engine_testbuildalternatives_test_no_nearby_omits_poi", "label": ".test_no_nearby_omits_poi()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L532", - "_origin": "ast" + "source_location": "L649", + "_origin": "ast", + "community": 33, + "norm_label": ".test_no_nearby_omits_poi()", + "id": "tests_test_explain_engine_testbuildalternatives_test_no_nearby_omits_poi" }, { - "id": "tests_test_explain_engine_testbuildalternatives_test_no_search_match_omits_poi", "label": ".test_no_search_match_omits_poi()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L540", - "_origin": "ast" + "source_location": "L657", + "_origin": "ast", + "community": 33, + "norm_label": ".test_no_search_match_omits_poi()", + "id": "tests_test_explain_engine_testbuildalternatives_test_no_search_match_omits_poi" }, { - "id": "tests_test_explain_engine_testbuildalternatives_test_duplicate_poi_name_only_looked_up_once", "label": ".test_duplicate_poi_name_only_looked_up_once()", "file_type": "code", "source_file": "tests/test_explain_engine.py", - "source_location": "L548", - "_origin": "ast" + "source_location": "L665", + "_origin": "ast", + "community": 33, + "norm_label": ".test_duplicate_poi_name_only_looked_up_once()", + "id": "tests_test_explain_engine_testbuildalternatives_test_duplicate_poi_name_only_looked_up_once" }, { - "id": "tests_test_explain_engine_rationale_1", "label": "Tests for ExplainEngine (TDD) \u2014 LLM\uc740 mock\uc73c\ub85c \ub300\uccb4.", "file_type": "rationale", "source_file": "tests/test_explain_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 5, + "norm_label": "tests for explainengine (tdd) \u2014 llm\u110b\u1173\u11ab mock\u110b\u1173\u1105\u1169 \u1103\u1162\u110e\u1166.", + "id": "tests_test_explain_engine_rationale_1" }, { - "id": "tests_test_explain_engine_rationale_66", - "label": "GraphRetriever \uc2a4\ud141 \u2014 \uc2e4\uc81c Neo4j \uc5f0\uacb0 \uc5c6\uc774 \uc131\uc0b0\uc77c\ucd9c\ubd09 \uac80\uc0c9 \uacb0\uacfc\ub97c \ud749\ub0b4\ub0b8\ub2e4.", + "label": "\uadfc\uac70 \ub9ac\ud2b8\ub9ac\ubc84 \uc2a4\ud141 \u2014 \uc678\ubd80 \uc11c\ube44\uc2a4 \uc5c6\uc774 \uc7a5\uc18c \uac80\uc0c9 \uacb0\uacfc\ub97c \ud749\ub0b4\ub0b8\ub2e4.", "file_type": "rationale", "source_file": "tests/test_explain_engine.py", - "source_location": "L66", - "_origin": "ast" + "source_location": "L65", + "_origin": "ast", + "community": 48, + "norm_label": "\u1100\u1173\u11ab\u1100\u1165 \u1105\u1175\u1110\u1173\u1105\u1175\u1107\u1165 \u1109\u1173\u1110\u1165\u11b8 \u2014 \u110b\u116c\u1107\u116e \u1109\u1165\u1107\u1175\u1109\u1173 \u110b\u1165\u11b9\u110b\u1175 \u110c\u1161\u11bc\u1109\u1169 \u1100\u1165\u11b7\u1109\u1162\u11a8 \u1100\u1167\u11af\u1100\u116a\u1105\u1173\u11af \u1112\u1172\u11bc\u1102\u1162\u1102\u1162\u11ab\u1103\u1161.", + "id": "tests_test_explain_engine_rationale_65" }, { - "id": "tests_test_geo", "label": "test_geo.py", "file_type": "code", "source_file": "tests/test_geo.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 9, + "norm_label": "test_geo.py", + "id": "tests_test_geo" }, { - "id": "tests_test_geo_make_poi", "label": "make_poi()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L10", - "_origin": "ast" + "source_location": "L11", + "_origin": "ast", + "community": 9, + "norm_label": "make_poi()", + "id": "tests_test_geo_make_poi" }, { - "id": "tests_test_geo_testhaversinekm", "label": "TestHaversineKm", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L23", - "_origin": "ast" + "source_location": "L28", + "_origin": "ast", + "community": 9, + "norm_label": "testhaversinekm", + "id": "tests_test_geo_testhaversinekm" }, { - "id": "tests_test_geo_testhaversinekm_test_same_point_is_zero", "label": ".test_same_point_is_zero()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L24", - "_origin": "ast" + "source_location": "L29", + "_origin": "ast", + "community": 9, + "norm_label": ".test_same_point_is_zero()", + "id": "tests_test_geo_testhaversinekm_test_same_point_is_zero" }, { - "id": "tests_test_geo_testhaversinekm_test_known_distance", "label": ".test_known_distance()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L27", - "_origin": "ast" + "source_location": "L32", + "_origin": "ast", + "community": 9, + "norm_label": ".test_known_distance()", + "id": "tests_test_geo_testhaversinekm_test_known_distance" }, { - "id": "tests_test_geo_testhaversinekm_test_symmetric", "label": ".test_symmetric()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L32", - "_origin": "ast" + "source_location": "L37", + "_origin": "ast", + "community": 9, + "norm_label": ".test_symmetric()", + "id": "tests_test_geo_testhaversinekm_test_symmetric" }, { - "id": "tests_test_geo_testhaversinekm_test_positive", "label": ".test_positive()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L37", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 9, + "norm_label": ".test_positive()", + "id": "tests_test_geo_testhaversinekm_test_positive" }, { - "id": "tests_test_geo_testbuilddistcache", "label": "TestBuildDistCache", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L45", - "_origin": "ast" + "source_location": "L51", + "_origin": "ast", + "community": 9, + "norm_label": "testbuilddistcache", + "id": "tests_test_geo_testbuilddistcache" }, { - "id": "tests_test_geo_testbuilddistcache_test_all_pairs_present", "label": ".test_all_pairs_present()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L46", - "_origin": "ast" + "source_location": "L52", + "_origin": "ast", + "community": 9, + "norm_label": ".test_all_pairs_present()", + "id": "tests_test_geo_testbuilddistcache_test_all_pairs_present" }, { - "id": "tests_test_geo_testbuilddistcache_test_no_self_pairs", "label": ".test_no_self_pairs()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L54", - "_origin": "ast" + "source_location": "L60", + "_origin": "ast", + "community": 9, + "norm_label": ".test_no_self_pairs()", + "id": "tests_test_geo_testbuilddistcache_test_no_self_pairs" }, { - "id": "tests_test_geo_testbuilddistcache_test_values_match_haversine", "label": ".test_values_match_haversine()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L60", - "_origin": "ast" + "source_location": "L66", + "_origin": "ast", + "community": 9, + "norm_label": ".test_values_match_haversine()", + "id": "tests_test_geo_testbuilddistcache_test_values_match_haversine" }, { - "id": "tests_test_geo_testbuilddistcache_test_single_poi_empty_cache", "label": ".test_single_poi_empty_cache()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L70", - "_origin": "ast" + "source_location": "L76", + "_origin": "ast", + "community": 9, + "norm_label": ".test_single_poi_empty_cache()", + "id": "tests_test_geo_testbuilddistcache_test_single_poi_empty_cache" }, { - "id": "tests_test_geo_testbuilddistcache_test_empty_list_empty_cache", "label": ".test_empty_list_empty_cache()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L75", - "_origin": "ast" + "source_location": "L81", + "_origin": "ast", + "community": 9, + "norm_label": ".test_empty_list_empty_cache()", + "id": "tests_test_geo_testbuilddistcache_test_empty_list_empty_cache" }, { - "id": "tests_test_geo_testnnheuristickm", "label": "TestNnHeuristicKm", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L83", - "_origin": "ast" + "source_location": "L90", + "_origin": "ast", + "community": 9, + "norm_label": "testnnheuristickm", + "id": "tests_test_geo_testnnheuristickm" }, { - "id": "tests_test_geo_testnnheuristickm_test_single_poi_returns_zero", "label": ".test_single_poi_returns_zero()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L84", - "_origin": "ast" + "source_location": "L91", + "_origin": "ast", + "community": 9, + "norm_label": ".test_single_poi_returns_zero()", + "id": "tests_test_geo_testnnheuristickm_test_single_poi_returns_zero" }, { - "id": "tests_test_geo_testnnheuristickm_test_two_pois_returns_distance", "label": ".test_two_pois_returns_distance()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L88", - "_origin": "ast" + "source_location": "L95", + "_origin": "ast", + "community": 9, + "norm_label": ".test_two_pois_returns_distance()", + "id": "tests_test_geo_testnnheuristickm_test_two_pois_returns_distance" }, { - "id": "tests_test_geo_testnnheuristickm_test_nn_le_actual_for_suboptimal", "label": ".test_nn_le_actual_for_suboptimal()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L93", - "_origin": "ast" + "source_location": "L100", + "_origin": "ast", + "community": 9, + "norm_label": ".test_nn_le_actual_for_suboptimal()", + "id": "tests_test_geo_testnnheuristickm_test_nn_le_actual_for_suboptimal" }, { - "id": "tests_test_geo_testnnheuristickm_test_cache_gives_same_result", "label": ".test_cache_gives_same_result()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L109", - "_origin": "ast" + "source_location": "L116", + "_origin": "ast", + "community": 9, + "norm_label": ".test_cache_gives_same_result()", + "id": "tests_test_geo_testnnheuristickm_test_cache_gives_same_result" }, { - "id": "tests_test_geo_testnnheuristickm_test_collinear_optimal_order_matches_nn", "label": ".test_collinear_optimal_order_matches_nn()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L114", - "_origin": "ast" + "source_location": "L121", + "_origin": "ast", + "community": 9, + "norm_label": ".test_collinear_optimal_order_matches_nn()", + "id": "tests_test_geo_testnnheuristickm_test_collinear_optimal_order_matches_nn" }, { - "id": "tests_test_geo_testgettravelmin", "label": "TestGetTravelMin", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L128", - "_origin": "ast" + "source_location": "L135", + "_origin": "ast", + "community": 9, + "norm_label": "testgettravelmin", + "id": "tests_test_geo_testgettravelmin" }, { - "id": "tests_test_geo_testgettravelmin_test_uses_matrix_when_available", "label": ".test_uses_matrix_when_available()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L129", - "_origin": "ast" + "source_location": "L136", + "_origin": "ast", + "community": 9, + "norm_label": ".test_uses_matrix_when_available()", + "id": "tests_test_geo_testgettravelmin_test_uses_matrix_when_available" }, { - "id": "tests_test_geo_testgettravelmin_test_haversine_fallback_when_no_matrix", "label": ".test_haversine_fallback_when_no_matrix()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L135", - "_origin": "ast" + "source_location": "L142", + "_origin": "ast", + "community": 9, + "norm_label": ".test_haversine_fallback_when_no_matrix()", + "id": "tests_test_geo_testgettravelmin_test_haversine_fallback_when_no_matrix" }, { - "id": "tests_test_geo_testgettravelmin_test_cache_fallback_when_no_matrix", "label": ".test_cache_fallback_when_no_matrix()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L143", - "_origin": "ast" + "source_location": "L150", + "_origin": "ast", + "community": 9, + "norm_label": ".test_cache_fallback_when_no_matrix()", + "id": "tests_test_geo_testgettravelmin_test_cache_fallback_when_no_matrix" }, { - "id": "tests_test_geo_testgettravelmin_test_matrix_takes_priority_over_cache", "label": ".test_matrix_takes_priority_over_cache()", "file_type": "code", "source_file": "tests/test_geo.py", - "source_location": "L150", - "_origin": "ast" + "source_location": "L157", + "_origin": "ast", + "community": 9, + "norm_label": ".test_matrix_takes_priority_over_cache()", + "id": "tests_test_geo_testgettravelmin_test_matrix_takes_priority_over_cache" }, { - "id": "tests_test_geo_rationale_1", "label": "Tests for src/utils/geo.py (TDD).", "file_type": "rationale", "source_file": "tests/test_geo.py", "source_location": "L1", - "_origin": "ast" - }, - { - "id": "tests_test_graph_retriever", - "label": "test_graph_retriever.py", - "file_type": "code", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "tests_test_graph_retriever_test_disabled_without_uri_returns_empty", - "label": "test_disabled_without_uri_returns_empty()", - "file_type": "code", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L12", - "_origin": "ast" - }, - { - "id": "tests_test_graph_retriever_test_search_places_parses_records", - "label": "test_search_places_parses_records()", - "file_type": "code", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L19", - "_origin": "ast" - }, - { - "id": "tests_test_graph_retriever_test_search_places_empty_query_skips_call", - "label": "test_search_places_empty_query_skips_call()", - "file_type": "code", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L39", - "_origin": "ast" - }, - { - "id": "tests_test_graph_retriever_test_search_places_neo4j_error_returns_empty", - "label": "test_search_places_neo4j_error_returns_empty()", - "file_type": "code", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L46", - "_origin": "ast" - }, - { - "id": "tests_test_graph_retriever_test_find_nearby_parses_and_converts_distance", - "label": "test_find_nearby_parses_and_converts_distance()", - "file_type": "code", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L53", - "_origin": "ast" - }, - { - "id": "tests_test_graph_retriever_test_repeated_failures_skip_driver_call_during_cooldown", - "label": "test_repeated_failures_skip_driver_call_during_cooldown()", - "file_type": "code", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L68", - "_origin": "ast" - }, - { - "id": "tests_test_graph_retriever_test_close_closes_driver", - "label": "test_close_closes_driver()", - "file_type": "code", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L79", - "_origin": "ast" + "_origin": "ast", + "community": 9, + "norm_label": "tests for src/utils/geo.py (tdd).", + "id": "tests_test_geo_rationale_1" }, { - "id": "tests_test_graph_retriever_test_from_env_reads_variables", - "label": "test_from_env_reads_variables()", + "label": "Path", "file_type": "code", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L86", - "_origin": "ast" - }, - { - "id": "tests_test_graph_retriever_rationale_1", - "label": "GraphRetriever \ud14c\uc2a4\ud2b8 (\uc2e4\uc81c Neo4j \ud638\ucd9c X \u2014 \ubaa8\ub450 mock).", - "file_type": "rationale", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L1", - "_origin": "ast" + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 113, + "norm_label": "path", + "id": "tests_test_graph_retriever_py_path" }, { - "id": "tests_test_hard_fail", "label": "test_hard_fail.py", "file_type": "code", "source_file": "tests/test_hard_fail.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 10, + "norm_label": "test_hard_fail.py", + "id": "tests_test_hard_fail" }, { - "id": "tests_test_hard_fail_make_poi", "label": "make_poi()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L13", - "_origin": "ast" + "source_location": "L15", + "_origin": "ast", + "community": 10, + "norm_label": "make_poi()", + "id": "tests_test_hard_fail_make_poi" }, { - "id": "tests_test_hard_fail_make_plan", "label": "make_plan()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L30", - "_origin": "ast" + "source_location": "L37", + "_origin": "ast", + "community": 10, + "norm_label": "make_plan()", + "id": "tests_test_hard_fail_make_plan" }, { - "id": "tests_test_hard_fail_make_matrix", "label": "make_matrix()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L41", - "_origin": "ast" - }, - { - "id": "tests_test_hard_fail_py_fixture", - "label": "fixture", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L48", + "_origin": "ast", + "community": 10, + "norm_label": "make_matrix()", + "id": "tests_test_hard_fail_make_matrix" }, { - "id": "tests_test_hard_fail_detector", "label": "detector()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L58", - "_origin": "ast" + "source_location": "L66", + "_origin": "ast", + "community": 10, + "norm_label": "detector()", + "id": "tests_test_hard_fail_detector" }, { - "id": "tests_test_hard_fail_open_poi", "label": "open_poi()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L63", - "_origin": "ast" + "source_location": "L71", + "_origin": "ast", + "community": 10, + "norm_label": "open_poi()", + "id": "tests_test_hard_fail_open_poi" }, { - "id": "tests_test_hard_fail_testhelpers", "label": "TestHelpers", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L71", - "_origin": "ast" + "source_location": "L80", + "_origin": "ast", + "community": 10, + "norm_label": "testhelpers", + "id": "tests_test_hard_fail_testhelpers" }, { - "id": "tests_test_hard_fail_testhelpers_test_time_to_min", "label": ".test_time_to_min()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L72", - "_origin": "ast" + "source_location": "L81", + "_origin": "ast", + "community": 10, + "norm_label": ".test_time_to_min()", + "id": "tests_test_hard_fail_testhelpers_test_time_to_min" }, { - "id": "tests_test_hard_fail_testhelpers_test_min_to_time", "label": ".test_min_to_time()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L75", - "_origin": "ast" + "source_location": "L84", + "_origin": "ast", + "community": 10, + "norm_label": ".test_min_to_time()", + "id": "tests_test_hard_fail_testhelpers_test_min_to_time" }, { - "id": "tests_test_hard_fail_testhelpers_test_time_to_min_midnight", "label": ".test_time_to_min_midnight()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L78", - "_origin": "ast" + "source_location": "L87", + "_origin": "ast", + "community": 10, + "norm_label": ".test_time_to_min_midnight()", + "id": "tests_test_hard_fail_testhelpers_test_time_to_min_midnight" }, { - "id": "tests_test_hard_fail_testhelpers_test_min_to_time_midnight", "label": ".test_min_to_time_midnight()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L81", - "_origin": "ast" + "source_location": "L90", + "_origin": "ast", + "community": 10, + "norm_label": ".test_min_to_time_midnight()", + "id": "tests_test_hard_fail_testhelpers_test_min_to_time_midnight" }, { - "id": "tests_test_hard_fail_testhelpers_test_min_to_time_wraps_past_24h", "label": ".test_min_to_time_wraps_past_24h()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L84", - "_origin": "ast" + "source_location": "L93", + "_origin": "ast", + "community": 10, + "norm_label": ".test_min_to_time_wraps_past_24h()", + "id": "tests_test_hard_fail_testhelpers_test_min_to_time_wraps_past_24h" }, { - "id": "tests_test_hard_fail_testoperatinghours", "label": "TestOperatingHours", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L92", - "_origin": "ast" + "source_location": "L102", + "_origin": "ast", + "community": 10, + "norm_label": "testoperatinghours", + "id": "tests_test_hard_fail_testoperatinghours" }, { - "id": "tests_test_hard_fail_testoperatinghours_test_no_fail_within_hours", "label": ".test_no_fail_within_hours()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L93", - "_origin": "ast" + "source_location": "L103", + "_origin": "ast", + "community": 10, + "norm_label": ".test_no_fail_within_hours()", + "id": "tests_test_hard_fail_testoperatinghours_test_no_fail_within_hours" + }, + { + "label": ".test_stay_must_finish_before_closing()", + "file_type": "code", + "source_file": "tests/test_hard_fail.py", + "source_location": "L111", + "_origin": "ast", + "community": 10, + "norm_label": ".test_stay_must_finish_before_closing()", + "id": "tests_test_hard_fail_testoperatinghours_test_stay_must_finish_before_closing" }, { - "id": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_before_open", "label": ".test_fail_arrive_before_open()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L101", - "_origin": "ast" + "source_location": "L125", + "_origin": "ast", + "community": 10, + "norm_label": ".test_fail_arrive_before_open()", + "id": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_before_open" }, { - "id": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_after_close", "label": ".test_fail_arrive_after_close()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L112", - "_origin": "ast" + "source_location": "L136", + "_origin": "ast", + "community": 10, + "norm_label": ".test_fail_arrive_after_close()", + "id": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_after_close" }, { - "id": "tests_test_hard_fail_testoperatinghours_test_no_fail_for_fallback_hours", "label": ".test_no_fail_for_fallback_hours()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L121", - "_origin": "ast" + "source_location": "L145", + "_origin": "ast", + "community": 10, + "norm_label": ".test_no_fail_for_fallback_hours()", + "id": "tests_test_hard_fail_testoperatinghours_test_no_fail_for_fallback_hours" }, { - "id": "tests_test_hard_fail_testtraveltimeimpossible", "label": "TestTravelTimeImpossible", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L135", - "_origin": "ast" + "source_location": "L160", + "_origin": "ast", + "community": 10, + "norm_label": "testtraveltimeimpossible", + "id": "tests_test_hard_fail_testtraveltimeimpossible" }, { - "id": "tests_test_hard_fail_testtraveltimeimpossible_test_travel_impossible", "label": ".test_travel_impossible()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L136", - "_origin": "ast" + "source_location": "L161", + "_origin": "ast", + "community": 10, + "norm_label": ".test_travel_impossible()", + "id": "tests_test_hard_fail_testtraveltimeimpossible_test_travel_impossible" }, { - "id": "tests_test_hard_fail_testtraveltimeimpossible_test_no_fail_sufficient_window", "label": ".test_no_fail_sufficient_window()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L150", - "_origin": "ast" + "source_location": "L177", + "_origin": "ast", + "community": 10, + "norm_label": ".test_no_fail_sufficient_window()", + "id": "tests_test_hard_fail_testtraveltimeimpossible_test_no_fail_sufficient_window" }, { - "id": "tests_test_hard_fail_testscheduleinfeasible", "label": "TestScheduleInfeasible", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L165", - "_origin": "ast" + "source_location": "L197", + "_origin": "ast", + "community": 10, + "norm_label": "testscheduleinfeasible", + "id": "tests_test_hard_fail_testscheduleinfeasible" }, { - "id": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_exceeds_24h", "label": ".test_schedule_exceeds_24h()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L166", - "_origin": "ast" + "source_location": "L198", + "_origin": "ast", + "community": 10, + "norm_label": ".test_schedule_exceeds_24h()", + "id": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_exceeds_24h" }, { - "id": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_within_24h", "label": ".test_schedule_within_24h()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L184", - "_origin": "ast" + "source_location": "L218", + "_origin": "ast", + "community": 10, + "norm_label": ".test_schedule_within_24h()", + "id": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_within_24h" }, { - "id": "tests_test_hard_fail_testnormalplan", "label": "TestNormalPlan", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L201", - "_origin": "ast" + "source_location": "L233", + "_origin": "ast", + "community": 10, + "norm_label": "testnormalplan", + "id": "tests_test_hard_fail_testnormalplan" }, { - "id": "tests_test_hard_fail_testnormalplan_test_normal_plan_no_fails", "label": ".test_normal_plan_no_fails()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L202", - "_origin": "ast" + "source_location": "L234", + "_origin": "ast", + "community": 10, + "norm_label": ".test_normal_plan_no_fails()", + "id": "tests_test_hard_fail_testnormalplan_test_normal_plan_no_fails" }, { - "id": "tests_test_hard_fail_testdayindex", "label": "TestDayIndex", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L221", - "_origin": "ast" + "source_location": "L258", + "_origin": "ast", + "community": 10, + "norm_label": "testdayindex", + "id": "tests_test_hard_fail_testdayindex" }, { - "id": "tests_test_hard_fail_testdayindex_test_day_index_defaults_to_none", "label": ".test_day_index_defaults_to_none()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L222", - "_origin": "ast" + "source_location": "L259", + "_origin": "ast", + "community": 10, + "norm_label": ".test_day_index_defaults_to_none()", + "id": "tests_test_hard_fail_testdayindex_test_day_index_defaults_to_none" }, { - "id": "tests_test_hard_fail_testdayindex_test_day_index_set_when_passed", "label": ".test_day_index_set_when_passed()", "file_type": "code", "source_file": "tests/test_hard_fail.py", - "source_location": "L229", - "_origin": "ast" + "source_location": "L266", + "_origin": "ast", + "community": 10, + "norm_label": ".test_day_index_set_when_passed()", + "id": "tests_test_hard_fail_testdayindex_test_day_index_set_when_passed" }, { - "id": "tests_test_hard_fail_rationale_1", "label": "Tests for HardFailDetector (TDD).", "file_type": "rationale", "source_file": "tests/test_hard_fail.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 10, + "norm_label": "tests for hardfaildetector (tdd).", + "id": "tests_test_hard_fail_rationale_1" }, { - "id": "tests_test_kakao_local", "label": "test_kakao_local.py", "file_type": "code", "source_file": "tests/test_kakao_local.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 14, + "norm_label": "test_kakao_local.py", + "id": "tests_test_kakao_local" }, { - "id": "tests_test_kakao_local_ok_response", "label": "_ok_response()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L10", - "_origin": "ast" + "source_location": "L11", + "_origin": "ast", + "community": 14, + "norm_label": "_ok_response()", + "id": "tests_test_kakao_local_ok_response" }, { - "id": "tests_test_kakao_local_test_disabled_without_key_returns_none", "label": "test_disabled_without_key_returns_none()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L29", - "_origin": "ast" + "source_location": "L30", + "_origin": "ast", + "community": 14, + "norm_label": "test_disabled_without_key_returns_none()", + "id": "tests_test_kakao_local_test_disabled_without_key_returns_none" }, { - "id": "tests_test_kakao_local_test_search_parses_first_document", "label": "test_search_parses_first_document()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L35", - "_origin": "ast" + "source_location": "L36", + "_origin": "ast", + "community": 14, + "norm_label": "test_search_parses_first_document()", + "id": "tests_test_kakao_local_test_search_parses_first_document" }, { - "id": "tests_test_kakao_local_test_result_is_cached", "label": "test_result_is_cached()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L46", - "_origin": "ast" + "source_location": "L47", + "_origin": "ast", + "community": 14, + "norm_label": "test_result_is_cached()", + "id": "tests_test_kakao_local_test_result_is_cached" }, { - "id": "tests_test_kakao_local_test_empty_documents_returns_none", "label": "test_empty_documents_returns_none()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L55", - "_origin": "ast" + "source_location": "L56", + "_origin": "ast", + "community": 14, + "norm_label": "test_empty_documents_returns_none()", + "id": "tests_test_kakao_local_test_empty_documents_returns_none" }, { - "id": "tests_test_kakao_local_test_http_error_falls_back_to_none", "label": "test_http_error_falls_back_to_none()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L64", - "_origin": "ast" + "source_location": "L65", + "_origin": "ast", + "community": 14, + "norm_label": "test_http_error_falls_back_to_none()", + "id": "tests_test_kakao_local_test_http_error_falls_back_to_none" }, { - "id": "tests_test_kakao_local_multi_response", "label": "_multi_response()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L73", - "_origin": "ast" + "source_location": "L74", + "_origin": "ast", + "community": 14, + "norm_label": "_multi_response()", + "id": "tests_test_kakao_local_multi_response" }, { - "id": "tests_test_kakao_local_test_search_keyword_list_parses_all", "label": "test_search_keyword_list_parses_all()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L87", - "_origin": "ast" + "source_location": "L98", + "_origin": "ast", + "community": 14, + "norm_label": "test_search_keyword_list_parses_all()", + "id": "tests_test_kakao_local_test_search_keyword_list_parses_all" }, { - "id": "tests_test_kakao_local_test_search_keyword_list_disabled_returns_empty", "label": "test_search_keyword_list_disabled_returns_empty()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L96", - "_origin": "ast" + "source_location": "L107", + "_origin": "ast", + "community": 14, + "norm_label": "test_search_keyword_list_disabled_returns_empty()", + "id": "tests_test_kakao_local_test_search_keyword_list_disabled_returns_empty" }, { - "id": "tests_test_kakao_local_address_response", "label": "_address_response()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L101", - "_origin": "ast" + "source_location": "L112", + "_origin": "ast", + "community": 14, + "norm_label": "_address_response()", + "id": "tests_test_kakao_local_address_response" }, { - "id": "tests_test_kakao_local_test_geocode_address_parses_lat_lng", "label": "test_geocode_address_parses_lat_lng()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L116", - "_origin": "ast" + "source_location": "L127", + "_origin": "ast", + "community": 14, + "norm_label": "test_geocode_address_parses_lat_lng()", + "id": "tests_test_kakao_local_test_geocode_address_parses_lat_lng" }, { - "id": "tests_test_kakao_local_test_geocode_address_disabled_without_key_returns_none", "label": "test_geocode_address_disabled_without_key_returns_none()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L124", - "_origin": "ast" + "source_location": "L135", + "_origin": "ast", + "community": 14, + "norm_label": "test_geocode_address_disabled_without_key_returns_none()", + "id": "tests_test_kakao_local_test_geocode_address_disabled_without_key_returns_none" }, { - "id": "tests_test_kakao_local_test_geocode_address_is_cached", "label": "test_geocode_address_is_cached()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L129", - "_origin": "ast" + "source_location": "L140", + "_origin": "ast", + "community": 14, + "norm_label": "test_geocode_address_is_cached()", + "id": "tests_test_kakao_local_test_geocode_address_is_cached" }, { - "id": "tests_test_kakao_local_test_geocode_address_empty_documents_returns_none", "label": "test_geocode_address_empty_documents_returns_none()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L138", - "_origin": "ast" + "source_location": "L149", + "_origin": "ast", + "community": 14, + "norm_label": "test_geocode_address_empty_documents_returns_none()", + "id": "tests_test_kakao_local_test_geocode_address_empty_documents_returns_none" }, { - "id": "tests_test_kakao_local_test_geocode_address_http_error_falls_back_to_none", "label": "test_geocode_address_http_error_falls_back_to_none()", "file_type": "code", "source_file": "tests/test_kakao_local.py", - "source_location": "L147", - "_origin": "ast" + "source_location": "L158", + "_origin": "ast", + "community": 14, + "norm_label": "test_geocode_address_http_error_falls_back_to_none()", + "id": "tests_test_kakao_local_test_geocode_address_http_error_falls_back_to_none" }, { - "id": "tests_test_kakao_local_rationale_1", "label": "KakaoLocalClient \ud14c\uc2a4\ud2b8 (\uc2e4\uc81c API \ud638\ucd9c X \u2014 \ubaa8\ub450 mock).", "file_type": "rationale", "source_file": "tests/test_kakao_local.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 14, + "norm_label": "kakaolocalclient \u1110\u1166\u1109\u1173\u1110\u1173 (\u1109\u1175\u11af\u110c\u1166 api \u1112\u1169\u110e\u116e\u11af x \u2014 \u1106\u1169\u1103\u116e mock).", + "id": "tests_test_kakao_local_rationale_1" }, { - "id": "tests_test_kakao_matrix", "label": "test_kakao_matrix.py", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 3, + "norm_label": "test_kakao_matrix.py", + "id": "tests_test_kakao_matrix" }, { - "id": "tests_test_kakao_matrix_place", "label": "_place()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L13", - "_origin": "ast" + "source_location": "L14", + "_origin": "ast", + "community": 3, + "norm_label": "_place()", + "id": "tests_test_kakao_matrix_place" }, { - "id": "tests_test_kakao_matrix_ok_response", "label": "_ok_response()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L20", - "_origin": "ast" + "source_location": "L26", + "_origin": "ast", + "community": 3, + "norm_label": "_ok_response()", + "id": "tests_test_kakao_matrix_ok_response" }, { - "id": "tests_test_kakao_matrix_httpx_sync_client", "label": "_httpx_sync_client()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L33", - "_origin": "ast" + "source_location": "L41", + "_origin": "ast", + "community": 3, + "norm_label": "_httpx_sync_client()", + "id": "tests_test_kakao_matrix_httpx_sync_client" }, { - "id": "tests_test_kakao_matrix_testsamepoint", "label": "TestSamePoint", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L47", - "_origin": "ast" + "source_location": "L56", + "_origin": "ast", + "community": 3, + "norm_label": "testsamepoint", + "id": "tests_test_kakao_matrix_testsamepoint" }, { - "id": "tests_test_kakao_matrix_testsamepoint_test_same_coords_returns_zero", "label": ".test_same_coords_returns_zero()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L48", - "_origin": "ast" + "source_location": "L57", + "_origin": "ast", + "community": 3, + "norm_label": ".test_same_coords_returns_zero()", + "id": "tests_test_kakao_matrix_testsamepoint_test_same_coords_returns_zero" }, { - "id": "tests_test_kakao_matrix_testapicall", "label": "TestApiCall", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L58", - "_origin": "ast" + "source_location": "L68", + "_origin": "ast", + "community": 3, + "norm_label": "testapicall", + "id": "tests_test_kakao_matrix_testapicall" }, { - "id": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache", "label": ".test_sync_call_populates_cache()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L59", - "_origin": "ast" + "source_location": "L69", + "_origin": "ast", + "community": 3, + "norm_label": ".test_sync_call_populates_cache()", + "id": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache" }, { - "id": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call", "label": ".test_get_travel_time_uses_cache_after_sync_call()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L71", - "_origin": "ast" + "source_location": "L83", + "_origin": "ast", + "community": 3, + "norm_label": ".test_get_travel_time_uses_cache_after_sync_call()", + "id": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call" }, { - "id": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit", "label": ".test_get_travel_time_second_call_cache_hit()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L85", - "_origin": "ast" + "source_location": "L99", + "_origin": "ast", + "community": 3, + "norm_label": ".test_get_travel_time_second_call_cache_hit()", + "id": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit" }, { - "id": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached", "label": ".test_reverse_direction_also_cached()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L98", - "_origin": "ast" + "source_location": "L114", + "_origin": "ast", + "community": 3, + "norm_label": ".test_reverse_direction_also_cached()", + "id": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached" }, { - "id": "tests_test_kakao_matrix_testquotaexhaustion", "label": "TestQuotaExhaustion", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L116", - "_origin": "ast" + "source_location": "L135", + "_origin": "ast", + "community": 3, + "norm_label": "testquotaexhaustion", + "id": "tests_test_kakao_matrix_testquotaexhaustion" }, { - "id": "tests_test_kakao_matrix_testquotaexhaustion_test_429_sets_quota_exhausted", "label": ".test_429_sets_quota_exhausted()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L117", - "_origin": "ast" + "source_location": "L136", + "_origin": "ast", + "community": 3, + "norm_label": ".test_429_sets_quota_exhausted()", + "id": "tests_test_kakao_matrix_testquotaexhaustion_test_429_sets_quota_exhausted" }, { - "id": "tests_test_kakao_matrix_testquotaexhaustion_test_get_travel_time_haversine_fallback_when_no_cache", "label": ".test_get_travel_time_haversine_fallback_when_no_cache()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L132", - "_origin": "ast" + "source_location": "L152", + "_origin": "ast", + "community": 3, + "norm_label": ".test_get_travel_time_haversine_fallback_when_no_cache()", + "id": "tests_test_kakao_matrix_testquotaexhaustion_test_get_travel_time_haversine_fallback_when_no_cache" }, { - "id": "tests_test_kakao_matrix_testquotaexhaustion_test_after_quota_exhausted_get_travel_time_falls_back", "label": ".test_after_quota_exhausted_get_travel_time_falls_back()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L141", - "_origin": "ast" + "source_location": "L161", + "_origin": "ast", + "community": 3, + "norm_label": ".test_after_quota_exhausted_get_travel_time_falls_back()", + "id": "tests_test_kakao_matrix_testquotaexhaustion_test_after_quota_exhausted_get_travel_time_falls_back" }, { - "id": "tests_test_kakao_matrix_testautherror", "label": "TestAuthError", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L155", - "_origin": "ast" + "source_location": "L176", + "_origin": "ast", + "community": 3, + "norm_label": "testautherror", + "id": "tests_test_kakao_matrix_testautherror" }, { - "id": "tests_test_kakao_matrix_testautherror_test_401_raises", "label": ".test_401_raises()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L156", - "_origin": "ast" + "source_location": "L177", + "_origin": "ast", + "community": 3, + "norm_label": ".test_401_raises()", + "id": "tests_test_kakao_matrix_testautherror_test_401_raises" }, { - "id": "tests_test_kakao_matrix_testcachepersistence", "label": "TestCachePersistence", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L174", - "_origin": "ast" + "source_location": "L197", + "_origin": "ast", + "community": 3, + "norm_label": "testcachepersistence", + "id": "tests_test_kakao_matrix_testcachepersistence" }, { - "id": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache", "label": ".test_save_and_load_cache()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L175", - "_origin": "ast" + "source_location": "L198", + "_origin": "ast", + "community": 3, + "norm_label": ".test_save_and_load_cache()", + "id": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache" }, { - "id": "tests_test_kakao_matrix_testfromenv", "label": "TestFromEnv", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L201", - "_origin": "ast" + "source_location": "L227", + "_origin": "ast", + "community": 3, + "norm_label": "testfromenv", + "id": "tests_test_kakao_matrix_testfromenv" }, { - "id": "tests_test_kakao_matrix_testfromenv_test_no_key_raises", "label": ".test_no_key_raises()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L202", - "_origin": "ast" + "source_location": "L228", + "_origin": "ast", + "community": 3, + "norm_label": ".test_no_key_raises()", + "id": "tests_test_kakao_matrix_testfromenv_test_no_key_raises" }, { - "id": "tests_test_kakao_matrix_testfromenv_test_uses_mobility_key_first", "label": ".test_uses_mobility_key_first()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L208", - "_origin": "ast" + "source_location": "L234", + "_origin": "ast", + "community": 3, + "norm_label": ".test_uses_mobility_key_first()", + "id": "tests_test_kakao_matrix_testfromenv_test_uses_mobility_key_first" }, { - "id": "tests_test_kakao_matrix_testfromenv_test_falls_back_to_rest_key", "label": ".test_falls_back_to_rest_key()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L214", - "_origin": "ast" + "source_location": "L240", + "_origin": "ast", + "community": 3, + "norm_label": ".test_falls_back_to_rest_key()", + "id": "tests_test_kakao_matrix_testfromenv_test_falls_back_to_rest_key" }, { - "id": "tests_test_kakao_matrix_testasyncprefetch", "label": "TestAsyncPrefetch", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L225", - "_origin": "ast" + "source_location": "L252", + "_origin": "ast", + "community": 3, + "norm_label": "testasyncprefetch", + "id": "tests_test_kakao_matrix_testasyncprefetch" }, { - "id": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_populates_cache_and_hit_on_get", "label": ".test_aprefetch_populates_cache_and_hit_on_get()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L226", - "_origin": "ast" + "source_location": "L253", + "_origin": "ast", + "community": 3, + "norm_label": ".test_aprefetch_populates_cache_and_hit_on_get()", + "id": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_populates_cache_and_hit_on_get" }, { - "id": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_deduplicates_bidirectional", "label": ".test_aprefetch_deduplicates_bidirectional()", "file_type": "code", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L241", - "_origin": "ast" + "source_location": "L267", + "_origin": "ast", + "community": 3, + "norm_label": ".test_aprefetch_deduplicates_bidirectional()", + "id": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_deduplicates_bidirectional" }, { - "id": "tests_test_kakao_matrix_rationale_1", "label": "KakaoMobilityMatrix \ud14c\uc2a4\ud2b8 (\uc2e4\uc81c API \ud638\ucd9c X \u2014 \ubaa8\ub450 mock).", "file_type": "rationale", "source_file": "tests/test_kakao_matrix.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 3, + "norm_label": "kakaomobilitymatrix \u1110\u1166\u1109\u1173\u1110\u1173 (\u1109\u1175\u11af\u110c\u1166 api \u1112\u1169\u110e\u116e\u11af x \u2014 \u1106\u1169\u1103\u116e mock).", + "id": "tests_test_kakao_matrix_rationale_1" }, { - "id": "tests_test_kakao_matrix_rationale_21", "label": "\uce74\uce74\uc624 \uc815\uc0c1 \uc751\ub2f5 mock \u2014 duration 600\ucd08.", "file_type": "rationale", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L21", - "_origin": "ast" + "source_location": "L27", + "_origin": "ast", + "community": 3, + "norm_label": "\u110f\u1161\u110f\u1161\u110b\u1169 \u110c\u1165\u11bc\u1109\u1161\u11bc \u110b\u1173\u11bc\u1103\u1161\u11b8 mock \u2014 duration 600\u110e\u1169.", + "id": "tests_test_kakao_matrix_rationale_27" }, { - "id": "tests_test_kakao_matrix_rationale_34", "label": "httpx.Client() context manager mock.", "file_type": "rationale", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L34", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 3, + "norm_label": "httpx.client() context manager mock.", + "id": "tests_test_kakao_matrix_rationale_42" }, { - "id": "tests_test_kakao_matrix_rationale_227", "label": "aprefetch_matrix \ud6c4 get_travel_time\uc774 \uce90\uc2dc\ub97c \uc0ac\uc6a9\ud55c\ub2e4.", "file_type": "rationale", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L227", - "_origin": "ast" + "source_location": "L254", + "_origin": "ast", + "community": 3, + "norm_label": "aprefetch_matrix \u1112\u116e get_travel_time\u110b\u1175 \u110f\u1162\u1109\u1175\u1105\u1173\u11af \u1109\u1161\u110b\u116d\u11bc\u1112\u1161\u11ab\u1103\u1161.", + "id": "tests_test_kakao_matrix_rationale_254" }, { - "id": "tests_test_kakao_matrix_rationale_242", "label": "A\u2192B \uce90\uc2dc \uc874\uc7ac \uc2dc B\u2192A prefetch\ub294 \uc2a4\ud0b5\ub41c\ub2e4.", "file_type": "rationale", "source_file": "tests/test_kakao_matrix.py", - "source_location": "L242", - "_origin": "ast" + "source_location": "L268", + "_origin": "ast", + "community": 3, + "norm_label": "a\u2192b \u110f\u1162\u1109\u1175 \u110c\u1169\u11ab\u110c\u1162 \u1109\u1175 b\u2192a prefetch\u1102\u1173\u11ab \u1109\u1173\u110f\u1175\u11b8\u1103\u116c\u11ab\u1103\u1161.", + "id": "tests_test_kakao_matrix_rationale_268" }, { - "id": "tests_test_party_config", "label": "test_party_config.py", "file_type": "code", "source_file": "tests/test_party_config.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 20, + "norm_label": "test_party_config.py", + "id": "tests_test_party_config" }, { - "id": "tests_test_party_config_testpartyprofiles", "label": "TestPartyProfiles", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L9", - "_origin": "ast" + "source_location": "L12", + "_origin": "ast", + "community": 20, + "norm_label": "testpartyprofiles", + "id": "tests_test_party_config_testpartyprofiles" }, { - "id": "tests_test_party_config_testpartyprofiles_test_all_types_defined", "label": ".test_all_types_defined()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L10", - "_origin": "ast" + "source_location": "L13", + "_origin": "ast", + "community": 20, + "norm_label": ".test_all_types_defined()", + "id": "tests_test_party_config_testpartyprofiles_test_all_types_defined" }, { - "id": "tests_test_party_config_testpartyprofiles_test_friends_speed_factor_one", "label": ".test_friends_speed_factor_one()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L14", - "_origin": "ast" + "source_location": "L17", + "_origin": "ast", + "community": 20, + "norm_label": ".test_friends_speed_factor_one()", + "id": "tests_test_party_config_testpartyprofiles_test_friends_speed_factor_one" }, { - "id": "tests_test_party_config_testpartyprofiles_test_baby_speed_factor_below_one", "label": ".test_baby_speed_factor_below_one()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L17", - "_origin": "ast" + "source_location": "L20", + "_origin": "ast", + "community": 20, + "norm_label": ".test_baby_speed_factor_below_one()", + "id": "tests_test_party_config_testpartyprofiles_test_baby_speed_factor_below_one" }, { - "id": "tests_test_party_config_testpartyprofiles_test_elderly_speed_factor_below_one", "label": ".test_elderly_speed_factor_below_one()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L20", - "_origin": "ast" + "source_location": "L23", + "_origin": "ast", + "community": 20, + "norm_label": ".test_elderly_speed_factor_below_one()", + "id": "tests_test_party_config_testpartyprofiles_test_elderly_speed_factor_below_one" }, { - "id": "tests_test_party_config_testpartyprofiles_test_baby_fatigue_hours_lower_than_friends", "label": ".test_baby_fatigue_hours_lower_than_friends()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L23", - "_origin": "ast" + "source_location": "L26", + "_origin": "ast", + "community": 20, + "norm_label": ".test_baby_fatigue_hours_lower_than_friends()", + "id": "tests_test_party_config_testpartyprofiles_test_baby_fatigue_hours_lower_than_friends" }, { - "id": "tests_test_party_config_testpartyprofiles_test_elderly_fatigue_hours_lower_than_friends", "label": ".test_elderly_fatigue_hours_lower_than_friends()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L28", - "_origin": "ast" + "source_location": "L31", + "_origin": "ast", + "community": 20, + "norm_label": ".test_elderly_fatigue_hours_lower_than_friends()", + "id": "tests_test_party_config_testpartyprofiles_test_elderly_fatigue_hours_lower_than_friends" }, { - "id": "tests_test_party_config_testpartyprofiles_test_family_fatigue_between_friends_and_baby", "label": ".test_family_fatigue_between_friends_and_baby()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L33", - "_origin": "ast" + "source_location": "L36", + "_origin": "ast", + "community": 20, + "norm_label": ".test_family_fatigue_between_friends_and_baby()", + "id": "tests_test_party_config_testpartyprofiles_test_family_fatigue_between_friends_and_baby" }, { - "id": "tests_test_party_config_testpartyprofiles_test_unknown_type_returns_default", "label": ".test_unknown_type_returns_default()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L39", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 20, + "norm_label": ".test_unknown_type_returns_default()", + "id": "tests_test_party_config_testpartyprofiles_test_unknown_type_returns_default" }, { - "id": "tests_test_party_config_testpartyprofiles_test_profile_is_frozen", "label": ".test_profile_is_frozen()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L44", - "_origin": "ast" + "source_location": "L47", + "_origin": "ast", + "community": 20, + "norm_label": ".test_profile_is_frozen()", + "id": "tests_test_party_config_testpartyprofiles_test_profile_is_frozen" }, { - "id": "tests_test_party_config_testpartyprofilevalues", "label": "TestPartyProfileValues", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L50", - "_origin": "ast" + "source_location": "L53", + "_origin": "ast", + "community": 20, + "norm_label": "testpartyprofilevalues", + "id": "tests_test_party_config_testpartyprofilevalues" }, { - "id": "tests_test_party_config_testpartyprofilevalues_test_friends_fatigue_12h", "label": ".test_friends_fatigue_12h()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L51", - "_origin": "ast" + "source_location": "L54", + "_origin": "ast", + "community": 20, + "norm_label": ".test_friends_fatigue_12h()", + "id": "tests_test_party_config_testpartyprofilevalues_test_friends_fatigue_12h" }, { - "id": "tests_test_party_config_testpartyprofilevalues_test_baby_fatigue_8h", "label": ".test_baby_fatigue_8h()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L54", - "_origin": "ast" + "source_location": "L57", + "_origin": "ast", + "community": 20, + "norm_label": ".test_baby_fatigue_8h()", + "id": "tests_test_party_config_testpartyprofilevalues_test_baby_fatigue_8h" }, { - "id": "tests_test_party_config_testpartyprofilevalues_test_elderly_fatigue_8h", "label": ".test_elderly_fatigue_8h()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L57", - "_origin": "ast" + "source_location": "L60", + "_origin": "ast", + "community": 20, + "norm_label": ".test_elderly_fatigue_8h()", + "id": "tests_test_party_config_testpartyprofilevalues_test_elderly_fatigue_8h" }, { - "id": "tests_test_party_config_testpartyprofilevalues_test_family_fatigue_10h", "label": ".test_family_fatigue_10h()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L60", - "_origin": "ast" + "source_location": "L63", + "_origin": "ast", + "community": 20, + "norm_label": ".test_family_fatigue_10h()", + "id": "tests_test_party_config_testpartyprofilevalues_test_family_fatigue_10h" }, { - "id": "tests_test_party_config_testpartyprofilevalues_test_baby_speed_factor_is_point_eight", "label": ".test_baby_speed_factor_is_point_eight()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L63", - "_origin": "ast" + "source_location": "L66", + "_origin": "ast", + "community": 20, + "norm_label": ".test_baby_speed_factor_is_point_eight()", + "id": "tests_test_party_config_testpartyprofilevalues_test_baby_speed_factor_is_point_eight" }, { - "id": "tests_test_party_config_testpartyprofilevalues_test_family_speed_factor_is_point_nine", "label": ".test_family_speed_factor_is_point_nine()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L66", - "_origin": "ast" + "source_location": "L69", + "_origin": "ast", + "community": 20, + "norm_label": ".test_family_speed_factor_is_point_nine()", + "id": "tests_test_party_config_testpartyprofilevalues_test_family_speed_factor_is_point_nine" }, { - "id": "tests_test_party_config_teststrainthresholdlogic", "label": "TestStrainThresholdLogic", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L70", - "_origin": "ast" + "source_location": "L73", + "_origin": "ast", + "community": 20, + "norm_label": "teststrainthresholdlogic", + "id": "tests_test_party_config_teststrainthresholdlogic" }, { - "id": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_lower_than_friends", "label": ".test_baby_threshold_lower_than_friends()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L75", - "_origin": "ast" + "source_location": "L78", + "_origin": "ast", + "community": 20, + "norm_label": ".test_baby_threshold_lower_than_friends()", + "id": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_lower_than_friends" }, { - "id": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_is_24km", "label": ".test_baby_threshold_is_24km()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L80", - "_origin": "ast" + "source_location": "L83", + "_origin": "ast", + "community": 20, + "norm_label": ".test_baby_threshold_is_24km()", + "id": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_is_24km" }, { - "id": "tests_test_party_config_teststrainthresholdlogic_test_friends_threshold_unchanged", "label": ".test_friends_threshold_unchanged()", "file_type": "code", "source_file": "tests/test_party_config.py", - "source_location": "L84", - "_origin": "ast" + "source_location": "L87", + "_origin": "ast", + "community": 20, + "norm_label": ".test_friends_threshold_unchanged()", + "id": "tests_test_party_config_teststrainthresholdlogic_test_friends_threshold_unchanged" }, { - "id": "tests_test_party_config_rationale_1", "label": "PartyProfile \uc218\ub7c9\ud654 \ub85c\uc9c1 \ud14c\uc2a4\ud2b8.", "file_type": "rationale", "source_file": "tests/test_party_config.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 20, + "norm_label": "partyprofile \u1109\u116e\u1105\u1163\u11bc\u1112\u116a \u1105\u1169\u110c\u1175\u11a8 \u1110\u1166\u1109\u1173\u1110\u1173.", + "id": "tests_test_party_config_rationale_1" }, { - "id": "tests_test_party_config_rationale_71", "label": "speed_factor\uac00 \uccb4\ub825 \ubd80\ub2f4 \uc784\uacc4\uc5d0 \uc62c\ubc14\ub974\uac8c \ubc18\uc601\ub418\ub294\uc9c0 \ud655\uc778.", "file_type": "rationale", "source_file": "tests/test_party_config.py", - "source_location": "L71", - "_origin": "ast" + "source_location": "L74", + "_origin": "ast", + "community": 20, + "norm_label": "speed_factor\u1100\u1161 \u110e\u1166\u1105\u1167\u11a8 \u1107\u116e\u1103\u1161\u11b7 \u110b\u1175\u11b7\u1100\u1168\u110b\u1166 \u110b\u1169\u11af\u1107\u1161\u1105\u1173\u1100\u1166 \u1107\u1161\u11ab\u110b\u1167\u11bc\u1103\u116c\u1102\u1173\u11ab\u110c\u1175 \u1112\u116a\u11a8\u110b\u1175\u11ab.", + "id": "tests_test_party_config_rationale_74" }, { - "id": "tests_test_pipeline_orchestrator", "label": "test_pipeline_orchestrator.py", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 11, + "norm_label": "test_pipeline_orchestrator.py", + "id": "tests_test_pipeline_orchestrator" }, { - "id": "tests_test_pipeline_orchestrator_make_poi", "label": "make_poi()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L17", - "_origin": "ast" + "source_location": "L25", + "_origin": "ast", + "community": 11, + "norm_label": "make_poi()", + "id": "tests_test_pipeline_orchestrator_make_poi" }, { - "id": "tests_test_pipeline_orchestrator_make_plan", "label": "make_plan()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L33", - "_origin": "ast" + "source_location": "L44", + "_origin": "ast", + "community": 11, + "norm_label": "make_plan()", + "id": "tests_test_pipeline_orchestrator_make_plan" }, { - "id": "tests_test_pipeline_orchestrator_make_multi_day_plan", "label": "make_multi_day_plan()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L47", - "_origin": "ast" + "source_location": "L58", + "_origin": "ast", + "community": 11, + "norm_label": "make_multi_day_plan()", + "id": "tests_test_pipeline_orchestrator_make_multi_day_plan" }, { - "id": "tests_test_pipeline_orchestrator_make_empty_bonus_engine", "label": "make_empty_bonus_engine()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L56", - "_origin": "ast" - }, - { - "id": "tests_test_pipeline_orchestrator_py_fixture", - "label": "fixture", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L67", + "_origin": "ast", + "community": 11, + "norm_label": "make_empty_bonus_engine()", + "id": "tests_test_pipeline_orchestrator_make_empty_bonus_engine" }, { - "id": "tests_test_pipeline_orchestrator_pipeline", "label": "pipeline()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L61", - "_origin": "ast" + "source_location": "L72", + "_origin": "ast", + "community": 11, + "norm_label": "pipeline()", + "id": "tests_test_pipeline_orchestrator_pipeline" }, { - "id": "tests_test_pipeline_orchestrator_sample_pois", "label": "sample_pois()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L66", - "_origin": "ast" + "source_location": "L77", + "_origin": "ast", + "community": 11, + "norm_label": "sample_pois()", + "id": "tests_test_pipeline_orchestrator_sample_pois" }, { - "id": "tests_test_pipeline_orchestrator_sample_plan", "label": "sample_plan()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L76", - "_origin": "ast" + "source_location": "L87", + "_origin": "ast", + "community": 11, + "norm_label": "sample_plan()", + "id": "tests_test_pipeline_orchestrator_sample_plan" }, { - "id": "tests_test_pipeline_orchestrator_testtovrptwday", "label": "TestToVrptwDay", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L84", - "_origin": "ast" + "source_location": "L96", + "_origin": "ast", + "community": 74, + "norm_label": "testtovrptwday", + "id": "tests_test_pipeline_orchestrator_testtovrptwday" }, { - "id": "tests_test_pipeline_orchestrator_testtovrptwday_test_converts_poi_fields", "label": ".test_converts_poi_fields()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L85", - "_origin": "ast" + "source_location": "L97", + "_origin": "ast", + "community": 74, + "norm_label": ".test_converts_poi_fields()", + "id": "tests_test_pipeline_orchestrator_testtovrptwday_test_converts_poi_fields" }, { - "id": "tests_test_pipeline_orchestrator_testtovrptwday_test_is_depot_false", "label": ".test_is_depot_false()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L94", - "_origin": "ast" + "source_location": "L106", + "_origin": "ast", + "community": 74, + "norm_label": ".test_is_depot_false()", + "id": "tests_test_pipeline_orchestrator_testtovrptwday_test_is_depot_false" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebasic", "label": "TestPipelineBasic", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L104", - "_origin": "ast" + "source_location": "L117", + "_origin": "ast", + "community": 66, + "norm_label": "testpipelinebasic", + "id": "tests_test_pipeline_orchestrator_testpipelinebasic" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_returns_validation_result", "label": ".test_returns_validation_result()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L105", - "_origin": "ast" + "source_location": "L118", + "_origin": "ast", + "community": 66, + "norm_label": ".test_returns_validation_result()", + "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_returns_validation_result" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_final_score_in_range", "label": ".test_final_score_in_range()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L113", - "_origin": "ast" + "source_location": "L126", + "_origin": "ast", + "community": 66, + "norm_label": ".test_final_score_in_range()", + "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_final_score_in_range" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_plan_id_matches", "label": ".test_plan_id_matches()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L121", - "_origin": "ast" + "source_location": "L134", + "_origin": "ast", + "community": 66, + "norm_label": ".test_plan_id_matches()", + "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_plan_id_matches" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_scores_populated", "label": ".test_scores_populated()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L129", - "_origin": "ast" + "source_location": "L142", + "_origin": "ast", + "community": 66, + "norm_label": ".test_scores_populated()", + "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_scores_populated" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_empty_pois_returns_zero_score", "label": ".test_empty_pois_returns_zero_score()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L138", - "_origin": "ast" + "source_location": "L151", + "_origin": "ast", + "community": 66, + "norm_label": ".test_empty_pois_returns_zero_score()", + "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_empty_pois_returns_zero_score" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_base_score_populated", "label": ".test_base_score_populated()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L143", - "_origin": "ast" + "source_location": "L156", + "_origin": "ast", + "community": 66, + "norm_label": ".test_base_score_populated()", + "id": "tests_test_pipeline_orchestrator_testpipelinebasic_test_base_score_populated" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinehardfail", "label": "TestPipelineHardFail", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L156", - "_origin": "ast" + "source_location": "L170", + "_origin": "ast", + "community": 11, + "norm_label": "testpipelinehardfail", + "id": "tests_test_pipeline_orchestrator_testpipelinehardfail" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_open_hours_conflict_caps_score", "label": ".test_open_hours_conflict_caps_score()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L157", - "_origin": "ast" + "source_location": "L171", + "_origin": "ast", + "community": 11, + "norm_label": ".test_open_hours_conflict_caps_score()", + "id": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_open_hours_conflict_caps_score" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_no_hard_fail_score_above_59_possible", "label": ".test_no_hard_fail_score_above_59_possible()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L173", - "_origin": "ast" + "source_location": "L191", + "_origin": "ast", + "community": 11, + "norm_label": ".test_no_hard_fail_score_above_59_possible()", + "id": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_no_hard_fail_score_above_59_possible" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_hard_fail_day_index_matches_offending_day", "label": ".test_hard_fail_day_index_matches_offending_day()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L181", - "_origin": "ast" + "source_location": "L199", + "_origin": "ast", + "community": 11, + "norm_label": ".test_hard_fail_day_index_matches_offending_day()", + "id": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_hard_fail_day_index_matches_offending_day" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", "label": ".test_alternatives_populated_from_explain_engine()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L196", - "_origin": "ast" + "source_location": "L218", + "_origin": "ast", + "community": 11, + "norm_label": ".test_alternatives_populated_from_explain_engine()", + "id": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_not_computed_without_hard_fails", "label": ".test_alternatives_not_computed_without_hard_fails()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L215", - "_origin": "ast" + "source_location": "L245", + "_origin": "ast", + "community": 11, + "norm_label": ".test_alternatives_not_computed_without_hard_fails()", + "id": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_not_computed_without_hard_fails" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown", "label": "TestPipelineBreakdown", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L225", - "_origin": "ast" + "source_location": "L256", + "_origin": "ast", + "community": 11, + "norm_label": "testpipelinebreakdown", + "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_breakdown_fields_are_dicts", "label": ".test_breakdown_fields_are_dicts()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L226", - "_origin": "ast" + "source_location": "L257", + "_origin": "ast", + "community": 11, + "norm_label": ".test_breakdown_fields_are_dicts()", + "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_breakdown_fields_are_dicts" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", "label": ".test_wellness_bonus_reflected_in_breakdown()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L235", - "_origin": "ast" + "source_location": "L266", + "_origin": "ast", + "community": 11, + "norm_label": ".test_wellness_bonus_reflected_in_breakdown()", + "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", "label": ".test_accessibility_bonus_for_accessible_party()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L246", - "_origin": "ast" + "source_location": "L277", + "_origin": "ast", + "community": 11, + "norm_label": ".test_accessibility_bonus_for_accessible_party()", + "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_when_enabled", "label": ".test_pet_friendly_bonus_when_enabled()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L257", - "_origin": "ast" + "source_location": "L288", + "_origin": "ast", + "community": 11, + "norm_label": ".test_pet_friendly_bonus_when_enabled()", + "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_when_enabled" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_absent_when_disabled", "label": ".test_pet_friendly_bonus_absent_when_disabled()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L266", - "_origin": "ast" + "source_location": "L295", + "_origin": "ast", + "community": 11, + "norm_label": ".test_pet_friendly_bonus_absent_when_disabled()", + "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_absent_when_disabled" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", "label": ".test_wellness_matched_exposed_on_result()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L274", - "_origin": "ast" + "source_location": "L303", + "_origin": "ast", + "community": 11, + "norm_label": ".test_wellness_matched_exposed_on_result()", + "id": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinemultiday", "label": "TestPipelineMultiDay", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L289", - "_origin": "ast" + "source_location": "L319", + "_origin": "ast", + "community": 11, + "norm_label": "testpipelinemultiday", + "id": "tests_test_pipeline_orchestrator_testpipelinemultiday" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_multi_day_runs_without_error", "label": ".test_multi_day_runs_without_error()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L290", - "_origin": "ast" + "source_location": "L320", + "_origin": "ast", + "community": 11, + "norm_label": ".test_multi_day_runs_without_error()", + "id": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_multi_day_runs_without_error" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_sigungu_codes_accepted", "label": ".test_sigungu_codes_accepted()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L301", - "_origin": "ast" + "source_location": "L333", + "_origin": "ast", + "community": 11, + "norm_label": ".test_sigungu_codes_accepted()", + "id": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_sigungu_codes_accepted" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinevrptw", "label": "TestPipelineVRPTW", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L318", - "_origin": "ast" + "source_location": "L351", + "_origin": "ast", + "community": 11, + "norm_label": "testpipelinevrptw", + "id": "tests_test_pipeline_orchestrator_testpipelinevrptw" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_fields_present", "label": ".test_vrptw_fields_present()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L319", - "_origin": "ast" + "source_location": "L352", + "_origin": "ast", + "community": 11, + "norm_label": ".test_vrptw_fields_present()", + "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_fields_present" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_efficiency_gap_is_float_or_none", "label": ".test_vrptw_efficiency_gap_is_float_or_none()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L329", - "_origin": "ast" + "source_location": "L362", + "_origin": "ast", + "community": 11, + "norm_label": ".test_vrptw_efficiency_gap_is_float_or_none()", + "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_efficiency_gap_is_float_or_none" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_efficiency_gap_non_negative", "label": ".test_vrptw_efficiency_gap_non_negative()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L337", - "_origin": "ast" + "source_location": "L370", + "_origin": "ast", + "community": 11, + "norm_label": ".test_vrptw_efficiency_gap_non_negative()", + "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_efficiency_gap_non_negative" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_optimal_route_per_day_count", "label": ".test_vrptw_optimal_route_per_day_count()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L346", - "_origin": "ast" + "source_location": "L379", + "_origin": "ast", + "community": 11, + "norm_label": ".test_vrptw_optimal_route_per_day_count()", + "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_optimal_route_per_day_count" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_in_breakdown_when_gap_exceeds_threshold", "label": ".test_vrptw_penalty_in_breakdown_when_gap_exceeds_threshold()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L359", - "_origin": "ast" + "source_location": "L394", + "_origin": "ast", + "community": 11, + "norm_label": ".test_vrptw_penalty_in_breakdown_when_gap_exceeds_threshold()", + "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_in_breakdown_when_gap_exceeds_threshold" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_does_not_double_count_with_single_poi", "label": ".test_vrptw_penalty_does_not_double_count_with_single_poi()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L373", - "_origin": "ast" + "source_location": "L408", + "_origin": "ast", + "community": 11, + "norm_label": ".test_vrptw_penalty_does_not_double_count_with_single_poi()", + "id": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_does_not_double_count_with_single_poi" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", "label": "TestPipelineRepairGainEstimation", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L385", - "_origin": "ast" + "source_location": "L421", + "_origin": "ast", + "community": 75, + "norm_label": "testpipelinerepairgainestimation", + "id": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag", "label": ".test_deletion_suggestion_carries_gain_and_resolves_flag()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L386", - "_origin": "ast" + "source_location": "L422", + "_origin": "ast", + "community": 75, + "norm_label": ".test_deletion_suggestion_carries_gain_and_resolves_flag()", + "id": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag" }, { - "id": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_no_repair_no_gain_fields_needed", "label": ".test_no_repair_no_gain_fields_needed()", "file_type": "code", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L406", - "_origin": "ast" + "source_location": "L448", + "_origin": "ast", + "community": 75, + "norm_label": ".test_no_repair_no_gain_fields_needed()", + "id": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_no_repair_no_gain_fields_needed" }, { - "id": "tests_test_pipeline_orchestrator_rationale_1", "label": "Tests for ValidatorPipeline (TDD).", "file_type": "rationale", "source_file": "tests/test_pipeline_orchestrator.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 11, + "norm_label": "tests for validatorpipeline (tdd).", + "id": "tests_test_pipeline_orchestrator_rationale_1" }, { - "id": "tests_test_pipeline_orchestrator_rationale_387", "label": "\uc9c0\ub9ac\uc801 \uc774\uc0c1\uce58\uc774\uc790 Hard Fail \uc720\ubc1c POI\ub97c \uc0ad\uc81c\ud558\uba74 \uc810\uc218\uac00 \uc624\ub974\uace0 \ubb38\uc81c\uac00 \ud574\uc18c\ub3fc\uc57c \ud55c\ub2e4.", "file_type": "rationale", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L387", - "_origin": "ast" + "source_location": "L423", + "_origin": "ast", + "community": 75, + "norm_label": "\u110c\u1175\u1105\u1175\u110c\u1165\u11a8 \u110b\u1175\u1109\u1161\u11bc\u110e\u1175\u110b\u1175\u110c\u1161 hard fail \u110b\u1172\u1107\u1161\u11af poi\u1105\u1173\u11af \u1109\u1161\u11a8\u110c\u1166\u1112\u1161\u1106\u1167\u11ab \u110c\u1165\u11b7\u1109\u116e\u1100\u1161 \u110b\u1169\u1105\u1173\u1100\u1169 \u1106\u116e\u11ab\u110c\u1166\u1100\u1161 \u1112\u1162\u1109\u1169\u1103\u116b\u110b\u1163 \u1112\u1161\u11ab\u1103\u1161.", + "id": "tests_test_pipeline_orchestrator_rationale_423" }, { - "id": "tests_test_pipeline_orchestrator_rationale_407", "label": "Hard Fail\uc774 \uc5c6\uc73c\uba74 repair \uc790\uccb4\uac00 \ube44\uc5b4 \uc788\uc5b4\uc57c \ud55c\ub2e4 (\uae30\uc874 \ub3d9\uc791 \uc720\uc9c0).", "file_type": "rationale", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L407", - "_origin": "ast" + "source_location": "L449", + "_origin": "ast", + "community": 75, + "norm_label": "hard fail\u110b\u1175 \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab repair \u110c\u1161\u110e\u1166\u1100\u1161 \u1107\u1175\u110b\u1165 \u110b\u1175\u11bb\u110b\u1165\u110b\u1163 \u1112\u1161\u11ab\u1103\u1161 (\u1100\u1175\u110c\u1169\u11ab \u1103\u1169\u11bc\u110c\u1161\u11a8 \u110b\u1172\u110c\u1175).", + "id": "tests_test_pipeline_orchestrator_rationale_449" }, { - "id": "tests_test_plan_extractor", "label": "test_plan_extractor.py", "file_type": "code", "source_file": "tests/test_plan_extractor.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 0, + "norm_label": "test_plan_extractor.py", + "id": "tests_test_plan_extractor" }, { - "id": "tests_test_plan_extractor_client_returning", "label": "_client_returning()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L11", - "_origin": "ast" + "source_location": "L12", + "_origin": "ast", + "community": 0, + "norm_label": "_client_returning()", + "id": "tests_test_plan_extractor_client_returning" }, { - "id": "tests_test_plan_extractor_test_extract_from_text_parses_llm_response", "label": "test_extract_from_text_parses_llm_response()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L19", - "_origin": "ast" + "source_location": "L20", + "_origin": "ast", + "community": 0, + "norm_label": "test_extract_from_text_parses_llm_response()", + "id": "tests_test_plan_extractor_test_extract_from_text_parses_llm_response" }, { - "id": "tests_test_plan_extractor_test_extract_from_text_strips_code_fence", "label": "test_extract_from_text_strips_code_fence()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L32", - "_origin": "ast" + "source_location": "L33", + "_origin": "ast", + "community": 0, + "norm_label": "test_extract_from_text_strips_code_fence()", + "id": "tests_test_plan_extractor_test_extract_from_text_strips_code_fence" }, { - "id": "tests_test_plan_extractor_test_extract_from_text_empty_raises", "label": "test_extract_from_text_empty_raises()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L41", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 0, + "norm_label": "test_extract_from_text_empty_raises()", + "id": "tests_test_plan_extractor_test_extract_from_text_empty_raises" }, { - "id": "tests_test_plan_extractor_test_extract_from_text_without_client_falls_back_to_heuristic", "label": "test_extract_from_text_without_client_falls_back_to_heuristic()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L47", - "_origin": "ast" + "source_location": "L48", + "_origin": "ast", + "community": 0, + "norm_label": "test_extract_from_text_without_client_falls_back_to_heuristic()", + "id": "tests_test_plan_extractor_test_extract_from_text_without_client_falls_back_to_heuristic" }, { - "id": "tests_test_plan_extractor_test_extract_from_document_without_client_raises", "label": "test_extract_from_document_without_client_raises()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L58", - "_origin": "ast" + "source_location": "L63", + "_origin": "ast", + "community": 0, + "norm_label": "test_extract_from_document_without_client_raises()", + "id": "tests_test_plan_extractor_test_extract_from_document_without_client_raises" }, { - "id": "tests_test_plan_extractor_test_extract_from_document_empty_bytes_raises", "label": "test_extract_from_document_empty_bytes_raises()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L64", - "_origin": "ast" + "source_location": "L69", + "_origin": "ast", + "community": 0, + "norm_label": "test_extract_from_document_empty_bytes_raises()", + "id": "tests_test_plan_extractor_test_extract_from_document_empty_bytes_raises" }, { - "id": "tests_test_plan_extractor_test_extract_from_document_sends_document_block_for_pdf", "label": "test_extract_from_document_sends_document_block_for_pdf()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L70", - "_origin": "ast" + "source_location": "L75", + "_origin": "ast", + "community": 0, + "norm_label": "test_extract_from_document_sends_document_block_for_pdf()", + "id": "tests_test_plan_extractor_test_extract_from_document_sends_document_block_for_pdf" }, { - "id": "tests_test_plan_extractor_test_extract_from_document_sends_image_block_for_png", "label": "test_extract_from_document_sends_image_block_for_png()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L81", - "_origin": "ast" + "source_location": "L86", + "_origin": "ast", + "community": 0, + "norm_label": "test_extract_from_document_sends_image_block_for_png()", + "id": "tests_test_plan_extractor_test_extract_from_document_sends_image_block_for_png" }, { - "id": "tests_test_plan_extractor_test_invalid_json_response_raises", "label": "test_invalid_json_response_raises()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L91", - "_origin": "ast" + "source_location": "L96", + "_origin": "ast", + "community": 0, + "norm_label": "test_invalid_json_response_raises()", + "id": "tests_test_plan_extractor_test_invalid_json_response_raises" }, { - "id": "tests_test_plan_extractor_test_api_call_failure_raises_extraction_error", "label": "test_api_call_failure_raises_extraction_error()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L97", - "_origin": "ast" + "source_location": "L102", + "_origin": "ast", + "community": 0, + "norm_label": "test_api_call_failure_raises_extraction_error()", + "id": "tests_test_plan_extractor_test_api_call_failure_raises_extraction_error" }, { - "id": "tests_test_plan_extractor_test_system_prompt_uses_prompt_caching", "label": "test_system_prompt_uses_prompt_caching()", "file_type": "code", "source_file": "tests/test_plan_extractor.py", - "source_location": "L106", - "_origin": "ast" + "source_location": "L111", + "_origin": "ast", + "community": 0, + "norm_label": "test_system_prompt_uses_prompt_caching()", + "id": "tests_test_plan_extractor_test_system_prompt_uses_prompt_caching" }, { - "id": "tests_test_plan_extractor_rationale_1", "label": "PlanExtractor \ud14c\uc2a4\ud2b8 (\uc2e4\uc81c Claude API \ud638\ucd9c X \u2014 \ubaa8\ub450 mock).", "file_type": "rationale", "source_file": "tests/test_plan_extractor.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 0, + "norm_label": "planextractor \u1110\u1166\u1109\u1173\u1110\u1173 (\u1109\u1175\u11af\u110c\u1166 claude api \u1112\u1169\u110e\u116e\u11af x \u2014 \u1106\u1169\u1103\u116e mock).", + "id": "tests_test_plan_extractor_rationale_1" }, { - "id": "tests_test_plan_extractor_rationale_107", "label": "system \ud504\ub86c\ud504\ud2b8\ub294 \ub9e4 \ud638\ucd9c \ub3d9\uc77c\ud558\ubbc0\ub85c ephemeral \uce90\uc2f1 \ub300\uc0c1\uc774\uc5b4\uc57c \ud568(\uc9c0\uc5f0/\ud1a0\ud070 \uc808\uac10).", "file_type": "rationale", "source_file": "tests/test_plan_extractor.py", - "source_location": "L107", - "_origin": "ast" + "source_location": "L112", + "_origin": "ast", + "community": 0, + "norm_label": "system \u1111\u1173\u1105\u1169\u11b7\u1111\u1173\u1110\u1173\u1102\u1173\u11ab \u1106\u1162 \u1112\u1169\u110e\u116e\u11af \u1103\u1169\u11bc\u110b\u1175\u11af\u1112\u1161\u1106\u1173\u1105\u1169 ephemeral \u110f\u1162\u1109\u1175\u11bc \u1103\u1162\u1109\u1161\u11bc\u110b\u1175\u110b\u1165\u110b\u1163 \u1112\u1161\u11b7(\u110c\u1175\u110b\u1167\u11ab/\u1110\u1169\u110f\u1173\u11ab \u110c\u1165\u11af\u1100\u1161\u11b7).", + "id": "tests_test_plan_extractor_rationale_112" }, { - "id": "tests_test_region_config", "label": "test_region_config.py", "file_type": "code", "source_file": "tests/test_region_config.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 36, + "norm_label": "test_region_config.py", + "id": "tests_test_region_config" }, { - "id": "tests_test_region_config_testgetthresholds", "label": "TestGetThresholds", "file_type": "code", "source_file": "tests/test_region_config.py", - "source_location": "L12", - "_origin": "ast" + "source_location": "L13", + "_origin": "ast", + "community": 36, + "norm_label": "testgetthresholds", + "id": "tests_test_region_config_testgetthresholds" }, { - "id": "tests_test_region_config_testgetthresholds_test_seoul_code_returns_high", "label": ".test_seoul_code_returns_high()", "file_type": "code", "source_file": "tests/test_region_config.py", - "source_location": "L13", - "_origin": "ast" + "source_location": "L14", + "_origin": "ast", + "community": 36, + "norm_label": ".test_seoul_code_returns_high()", + "id": "tests_test_region_config_testgetthresholds_test_seoul_code_returns_high" }, { - "id": "tests_test_region_config_testgetthresholds_test_busan_code_returns_high", "label": ".test_busan_code_returns_high()", "file_type": "code", "source_file": "tests/test_region_config.py", - "source_location": "L16", - "_origin": "ast" + "source_location": "L17", + "_origin": "ast", + "community": 36, + "norm_label": ".test_busan_code_returns_high()", + "id": "tests_test_region_config_testgetthresholds_test_busan_code_returns_high" }, { - "id": "tests_test_region_config_testgetthresholds_test_daegu_code_returns_medium", "label": ".test_daegu_code_returns_medium()", "file_type": "code", "source_file": "tests/test_region_config.py", - "source_location": "L19", - "_origin": "ast" + "source_location": "L20", + "_origin": "ast", + "community": 36, + "norm_label": ".test_daegu_code_returns_medium()", + "id": "tests_test_region_config_testgetthresholds_test_daegu_code_returns_medium" }, { - "id": "tests_test_region_config_testgetthresholds_test_rural_code_returns_low", "label": ".test_rural_code_returns_low()", "file_type": "code", "source_file": "tests/test_region_config.py", - "source_location": "L22", - "_origin": "ast" + "source_location": "L23", + "_origin": "ast", + "community": 36, + "norm_label": ".test_rural_code_returns_low()", + "id": "tests_test_region_config_testgetthresholds_test_rural_code_returns_low" }, { - "id": "tests_test_region_config_testgetthresholds_test_none_returns_medium", "label": ".test_none_returns_medium()", "file_type": "code", "source_file": "tests/test_region_config.py", - "source_location": "L25", - "_origin": "ast" + "source_location": "L26", + "_origin": "ast", + "community": 36, + "norm_label": ".test_none_returns_medium()", + "id": "tests_test_region_config_testgetthresholds_test_none_returns_medium" }, { - "id": "tests_test_region_config_testgetthresholds_test_unknown_code_returns_low", "label": ".test_unknown_code_returns_low()", "file_type": "code", "source_file": "tests/test_region_config.py", - "source_location": "L28", - "_origin": "ast" + "source_location": "L29", + "_origin": "ast", + "community": 36, + "norm_label": ".test_unknown_code_returns_low()", + "id": "tests_test_region_config_testgetthresholds_test_unknown_code_returns_low" }, { - "id": "tests_test_region_config_testgetthresholds_test_high_dist_warn_smaller_than_low", "label": ".test_high_dist_warn_smaller_than_low()", "file_type": "code", "source_file": "tests/test_region_config.py", - "source_location": "L31", - "_origin": "ast" + "source_location": "L32", + "_origin": "ast", + "community": 36, + "norm_label": ".test_high_dist_warn_smaller_than_low()", + "id": "tests_test_region_config_testgetthresholds_test_high_dist_warn_smaller_than_low" }, { - "id": "tests_test_region_config_testgetthresholds_test_high_physical_strain_smaller_than_low", "label": ".test_high_physical_strain_smaller_than_low()", "file_type": "code", "source_file": "tests/test_region_config.py", - "source_location": "L34", - "_origin": "ast" + "source_location": "L35", + "_origin": "ast", + "community": 36, + "norm_label": ".test_high_physical_strain_smaller_than_low()", + "id": "tests_test_region_config_testgetthresholds_test_high_physical_strain_smaller_than_low" }, { - "id": "tests_test_region_config_testgetthresholds_test_tier_fields_ordered", "label": ".test_tier_fields_ordered()", "file_type": "code", "source_file": "tests/test_region_config.py", - "source_location": "L37", - "_origin": "ast" + "source_location": "L38", + "_origin": "ast", + "community": 36, + "norm_label": ".test_tier_fields_ordered()", + "id": "tests_test_region_config_testgetthresholds_test_tier_fields_ordered" }, { - "id": "tests_test_region_config_rationale_1", "label": "RegionThresholds \uc720\ub2db \ud14c\uc2a4\ud2b8.", "file_type": "rationale", "source_file": "tests/test_region_config.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 36, + "norm_label": "regionthresholds \u110b\u1172\u1102\u1175\u11ba \u1110\u1166\u1109\u1173\u1110\u1173.", + "id": "tests_test_region_config_rationale_1" }, { - "id": "tests_test_repair", "label": "test_repair.py", "file_type": "code", "source_file": "tests/test_repair.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 1, + "norm_label": "test_repair.py", + "id": "tests_test_repair" }, { - "id": "tests_test_repair_repairengine", "label": "RepairEngine()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L10", - "_origin": "ast" - }, - { - "id": "repairengineclass", - "label": "_RepairEngineClass", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L11", + "_origin": "ast", + "community": 1, + "norm_label": "repairengine()", + "id": "tests_test_repair_repairengine" }, { - "id": "tests_test_repair_poi", "label": "_poi()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L15", - "_origin": "ast" + "source_location": "L16", + "_origin": "ast", + "community": 1, + "norm_label": "_poi()", + "id": "tests_test_repair_poi" }, { - "id": "tests_test_repair_plan", "label": "_plan()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L31", - "_origin": "ast" + "source_location": "L37", + "_origin": "ast", + "community": 1, + "norm_label": "_plan()", + "id": "tests_test_repair_plan" }, { - "id": "tests_test_repair_fail", "label": "_fail()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L42", - "_origin": "ast" + "source_location": "L48", + "_origin": "ast", + "community": 1, + "norm_label": "_fail()", + "id": "tests_test_repair_fail" }, { - "id": "tests_test_repair_testrepairenginenoop", "label": "TestRepairEngineNoop", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L53", - "_origin": "ast" + "source_location": "L62", + "_origin": "ast", + "community": 1, + "norm_label": "testrepairenginenoop", + "id": "tests_test_repair_testrepairenginenoop" }, { - "id": "tests_test_repair_testrepairenginenoop_test_empty_when_no_hard_fails", "label": ".test_empty_when_no_hard_fails()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L54", - "_origin": "ast" + "source_location": "L63", + "_origin": "ast", + "community": 1, + "norm_label": ".test_empty_when_no_hard_fails()", + "id": "tests_test_repair_testrepairenginenoop_test_empty_when_no_hard_fails" }, { - "id": "tests_test_repair_testrepairenginenoop_test_empty_when_pois_list_is_empty", "label": ".test_empty_when_pois_list_is_empty()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L60", - "_origin": "ast" + "source_location": "L69", + "_origin": "ast", + "community": 1, + "norm_label": ".test_empty_when_pois_list_is_empty()", + "id": "tests_test_repair_testrepairenginenoop_test_empty_when_pois_list_is_empty" }, { - "id": "tests_test_repair_outlier_pois", "label": "_outlier_pois()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L74", - "_origin": "ast" + "source_location": "L84", + "_origin": "ast", + "community": 1, + "norm_label": "_outlier_pois()", + "id": "tests_test_repair_outlier_pois" }, { - "id": "tests_test_repair_testdeletionsuggestion", "label": "TestDeletionSuggestion", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L88", - "_origin": "ast" + "source_location": "L98", + "_origin": "ast", + "community": 1, + "norm_label": "testdeletionsuggestion", + "id": "tests_test_repair_testdeletionsuggestion" }, { - "id": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier", "label": ".test_identifies_geometric_outlier()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L89", - "_origin": "ast" + "source_location": "L99", + "_origin": "ast", + "community": 1, + "norm_label": ".test_identifies_geometric_outlier()", + "id": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier" }, { - "id": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings", "label": ".test_outlier_deletion_has_positive_savings()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L97", - "_origin": "ast" + "source_location": "L107", + "_origin": "ast", + "community": 1, + "norm_label": ".test_outlier_deletion_has_positive_savings()", + "id": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings" }, { - "id": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois", "label": ".test_no_deletion_for_two_pois()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L104", - "_origin": "ast" + "source_location": "L114", + "_origin": "ast", + "community": 1, + "norm_label": ".test_no_deletion_for_two_pois()", + "id": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois" }, { - "id": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate", "label": ".test_deletion_reason_mentions_candidate()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L110", - "_origin": "ast" + "source_location": "L120", + "_origin": "ast", + "community": 1, + "norm_label": ".test_deletion_reason_mentions_candidate()", + "id": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate" }, { - "id": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", "label": ".test_deletion_recommends_nearby_restaurant_when_available()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L117", - "_origin": "ast" + "source_location": "L127", + "_origin": "ast", + "community": 1, + "norm_label": ".test_deletion_recommends_nearby_restaurant_when_available()", + "id": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available" }, { - "id": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", "label": ".test_deletion_explains_when_no_restaurant_nearby()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L127", - "_origin": "ast" + "source_location": "L137", + "_origin": "ast", + "community": 1, + "norm_label": ".test_deletion_explains_when_no_restaurant_nearby()", + "id": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby" }, { - "id": "tests_test_repair_testtimetunesuggestion", "label": "TestTimeTuneSuggestion", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L140", - "_origin": "ast" + "source_location": "L151", + "_origin": "ast", + "community": 1, + "norm_label": "testtimetunesuggestion", + "id": "tests_test_repair_testtimetunesuggestion" }, { - "id": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit", "label": ".test_no_tune_when_within_limit()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L141", - "_origin": "ast" + "source_location": "L152", + "_origin": "ast", + "community": 1, + "norm_label": ".test_no_tune_when_within_limit()", + "id": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit" }, { - "id": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit", "label": ".test_tune_suggested_when_over_limit()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L149", - "_origin": "ast" + "source_location": "L160", + "_origin": "ast", + "community": 1, + "norm_label": ".test_tune_suggested_when_over_limit()", + "id": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit" }, { - "id": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum", "label": ".test_adjusted_durations_above_minimum()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L158", - "_origin": "ast" + "source_location": "L169", + "_origin": "ast", + "community": 1, + "norm_label": ".test_adjusted_durations_above_minimum()", + "id": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum" }, { - "id": "tests_test_repair_testresultmodel", "label": "TestResultModel", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L173", - "_origin": "ast" + "source_location": "L185", + "_origin": "ast", + "community": 1, + "norm_label": "testresultmodel", + "id": "tests_test_repair_testresultmodel" }, { - "id": "tests_test_repair_testresultmodel_test_to_dict_is_serializable", "label": ".test_to_dict_is_serializable()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L174", - "_origin": "ast" + "source_location": "L186", + "_origin": "ast", + "community": 1, + "norm_label": ".test_to_dict_is_serializable()", + "id": "tests_test_repair_testresultmodel_test_to_dict_is_serializable" }, { - "id": "tests_test_repair_testresultmodel_test_is_empty_true_when_no_suggestions", "label": ".test_is_empty_true_when_no_suggestions()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L182", - "_origin": "ast" + "source_location": "L194", + "_origin": "ast", + "community": 1, + "norm_label": ".test_is_empty_true_when_no_suggestions()", + "id": "tests_test_repair_testresultmodel_test_is_empty_true_when_no_suggestions" }, { - "id": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion", "label": ".test_is_empty_false_when_has_deletion()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L188", - "_origin": "ast" + "source_location": "L200", + "_origin": "ast", + "community": 1, + "norm_label": ".test_is_empty_false_when_has_deletion()", + "id": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion" }, { - "id": "tests_test_repair_testtotalestimatedgain", "label": "TestTotalEstimatedGain", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L199", - "_origin": "ast" + "source_location": "L212", + "_origin": "ast", + "community": 1, + "norm_label": "testtotalestimatedgain", + "id": "tests_test_repair_testtotalestimatedgain" }, { - "id": "tests_test_repair_testtotalestimatedgain_test_sums_across_different_days", "label": ".test_sums_across_different_days()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L200", - "_origin": "ast" + "source_location": "L213", + "_origin": "ast", + "community": 1, + "norm_label": ".test_sums_across_different_days()", + "id": "tests_test_repair_testtotalestimatedgain_test_sums_across_different_days" }, { - "id": "tests_test_repair_testtotalestimatedgain_test_takes_max_of_alternatives_on_same_day", "label": ".test_takes_max_of_alternatives_on_same_day()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L207", - "_origin": "ast" + "source_location": "L234", + "_origin": "ast", + "community": 1, + "norm_label": ".test_takes_max_of_alternatives_on_same_day()", + "id": "tests_test_repair_testtotalestimatedgain_test_takes_max_of_alternatives_on_same_day" }, { - "id": "tests_test_repair_testtotalestimatedgain_test_zero_when_empty", "label": ".test_zero_when_empty()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L214", - "_origin": "ast" + "source_location": "L255", + "_origin": "ast", + "community": 1, + "norm_label": ".test_zero_when_empty()", + "id": "tests_test_repair_testtotalestimatedgain_test_zero_when_empty" }, { - "id": "tests_test_repair_testtotalestimatedgain_test_included_in_to_dict", "label": ".test_included_in_to_dict()", "file_type": "code", "source_file": "tests/test_repair.py", - "source_location": "L217", - "_origin": "ast" + "source_location": "L258", + "_origin": "ast", + "community": 1, + "norm_label": ".test_included_in_to_dict()", + "id": "tests_test_repair_testtotalestimatedgain_test_included_in_to_dict" }, { - "id": "tests_test_repair_rationale_11", "label": "\ud14c\uc2a4\ud2b8 \uc804\uc6a9 \ud329\ud1a0\ub9ac \u2014 \ube48 \uce74\ud0c8\ub85c\uadf8\ub97c \uae30\ubcf8\uac12\uc73c\ub85c \uc368\uc11c \uc2e4\uc81c CSV I/O\ub97c \ud53c\ud55c\ub2e4.", "file_type": "rationale", "source_file": "tests/test_repair.py", - "source_location": "L11", - "_origin": "ast" + "source_location": "L12", + "_origin": "ast", + "community": 1, + "norm_label": "\u1110\u1166\u1109\u1173\u1110\u1173 \u110c\u1165\u11ab\u110b\u116d\u11bc \u1111\u1162\u11a8\u1110\u1169\u1105\u1175 \u2014 \u1107\u1175\u11ab \u110f\u1161\u1110\u1161\u11af\u1105\u1169\u1100\u1173\u1105\u1173\u11af \u1100\u1175\u1107\u1169\u11ab\u1100\u1161\u11b9\u110b\u1173\u1105\u1169 \u110a\u1165\u1109\u1165 \u1109\u1175\u11af\u110c\u1166 csv i/o\u1105\u1173\u11af \u1111\u1175\u1112\u1161\u11ab\u1103\u1161.", + "id": "tests_test_repair_rationale_12" }, { - "id": "tests_test_repair_rationale_75", "label": "8\uac1c POI \u2014 D(lat=38.5)\uac00 A-C, E-H(lat=37.5) \uc0ac\uc774\uc758 \uc9c0\ub9ac\uc801 \uc774\uc0c1\uce58.", "file_type": "rationale", "source_file": "tests/test_repair.py", - "source_location": "L75", - "_origin": "ast" + "source_location": "L85", + "_origin": "ast", + "community": 1, + "norm_label": "8\u1100\u1162 poi \u2014 d(lat=38.5)\u1100\u1161 a-c, e-h(lat=37.5) \u1109\u1161\u110b\u1175\u110b\u1174 \u110c\u1175\u1105\u1175\u110c\u1165\u11a8 \u110b\u1175\u1109\u1161\u11bc\u110e\u1175.", + "id": "tests_test_repair_rationale_85" }, { - "id": "tests_test_repair_rationale_142", "label": "\uce5c\uad6c(720min) \uae30\uc900, \ucd1d 120min \u2192 \uc870\uc815 \ubd88\ud544\uc694.", "file_type": "rationale", "source_file": "tests/test_repair.py", - "source_location": "L142", - "_origin": "ast" + "source_location": "L153", + "_origin": "ast", + "community": 1, + "norm_label": "\u110e\u1175\u11ab\u1100\u116e(720min) \u1100\u1175\u110c\u116e\u11ab, \u110e\u1169\u11bc 120min \u2192 \u110c\u1169\u110c\u1165\u11bc \u1107\u116e\u11af\u1111\u1175\u11af\u110b\u116d.", + "id": "tests_test_repair_rationale_153" }, { - "id": "tests_test_repair_rationale_150", "label": "5 \u00d7 200min = 1000min > 720min \u2192 \ud29c\ub2dd \ud544\uc694.", "file_type": "rationale", "source_file": "tests/test_repair.py", - "source_location": "L150", - "_origin": "ast" + "source_location": "L161", + "_origin": "ast", + "community": 1, + "norm_label": "5 \u00d7 200min = 1000min > 720min \u2192 \u1110\u1172\u1102\u1175\u11bc \u1111\u1175\u11af\u110b\u116d.", + "id": "tests_test_repair_rationale_161" }, { - "id": "tests_test_repair_rationale_159", "label": "\uc870\uc815 \ud6c4 duration\uc774 \uc808\ub300 \ucd5c\uc19f\uac12(20\ubd84) \uc774\uc0c1 \ubcf4\uc7a5.", "file_type": "rationale", "source_file": "tests/test_repair.py", - "source_location": "L159", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi", - "label": "test_resolve_poi.py", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_write_jeju_xlsx", - "label": "_write_jeju_xlsx()", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L19", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_py_fixture", - "label": "fixture", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_jeju_xlsx_index", - "label": "jeju_xlsx_index()", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L29", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_test_jeju_index_prefers_tourapi_hours_over_legacy_text", - "label": "test_jeju_index_prefers_tourapi_hours_over_legacy_text()", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L51", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_test_jeju_index_sets_contentid_when_tourapi_matched", - "label": "test_jeju_index_sets_contentid_when_tourapi_matched()", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L56", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_test_jeju_index_falls_back_to_legacy_hours_when_unmatched", - "label": "test_jeju_index_falls_back_to_legacy_hours_when_unmatched()", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L61", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_test_jeju_index_sets_pet_friendly_flag_when_y", - "label": "test_jeju_index_sets_pet_friendly_flag_when_y()", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L67", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_test_jeju_index_defaults_pet_friendly_false_when_blank", - "label": "test_jeju_index_defaults_pet_friendly_false_when_blank()", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L72", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_test_resolve_poi_propagates_pet_friendly_flag", - "label": "test_resolve_poi_propagates_pet_friendly_flag()", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L77", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_test_geocode_fallback_used_when_keyword_search_fails", - "label": "test_geocode_fallback_used_when_keyword_search_fails()", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L94", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_test_seoul_fallback_when_geocode_also_fails", - "label": "test_seoul_fallback_when_geocode_also_fails()", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L110", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_test_resolve_coords_endpoint_returns_poi_per_place", - "label": "test_resolve_coords_endpoint_returns_poi_per_place()", - "file_type": "code", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L123", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_rationale_1", - "label": "_resolve_poi() \uc88c\ud45c \ud574\uc11d \ud3f4\ubc31 \uc21c\uc11c \ud14c\uc2a4\ud2b8 (\uce74\ud0c8\ub85c\uadf8 \u2192 csv \u2192 kakao \ud0a4\uc6cc\ub4dc \u2192 \uc9c0\uc624\ucf54\ub529 \u2192 \uc11c\uc6b8 \ud3f4\ubc31).", - "file_type": "rationale", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L1", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_rationale_30", - "label": "data/\uc81c\uc8fc\ud2b9\ubcc4\uc790\uce58\ub3c4_\ud1b5\ud569_TourAPI\ubcd1\ud569.xlsx \ub97c \uc784\uc2dc \ud30c\uc77c\ub85c \ub300\uccb4\ud574 _build_jeju_place_index()\ub97c \uaca9\ub9ac \uc2e4\ud589.", - "file_type": "rationale", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L30", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_rationale_78", - "label": "_resolve_poi()\uac00 place dict\uc758 pet_friendly \uc18d\uc131\uc744 POI\u00b7POIInfo\ub85c \uc804\ub2ec\ud55c\ub2e4.", - "file_type": "rationale", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L78", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_rationale_95", - "label": "\uce74\uce74\uc624 \ud0a4\uc6cc\ub4dc \uac80\uc0c9\uc774 \uc2e4\ud328\ud574\ub3c4 \uc8fc\uc18c\uac00 \uc788\uc73c\uba74 \uc9c0\uc624\ucf54\ub529\uc73c\ub85c \uc88c\ud45c\ub97c \ubcf4\uac15\ud55c\ub2e4.", - "file_type": "rationale", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L95", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_rationale_111", - "label": "\uc9c0\uc624\ucf54\ub529\uae4c\uc9c0 \uc2e4\ud328\ud558\uba74 \uae30\uc874\uacfc \ub3d9\uc77c\ud558\uac8c \uc11c\uc6b8 \ud3f4\ubc31\uc73c\ub85c \ub5a8\uc5b4\uc9c4\ub2e4.", - "file_type": "rationale", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L111", - "_origin": "ast" - }, - { - "id": "tests_test_resolve_poi_rationale_124", - "label": "POST /api/resolve-coords \u2014 Step2 \ube4c\ub354 \uc9c0\ub3c4\uc6a9 \uc88c\ud45c \uc870\ud68c (\uac80\uc99d \ud30c\uc774\ud504\ub77c\uc778 \uc5c6\uc774 \uc88c\ud45c\ub9cc).", - "file_type": "rationale", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L124", - "_origin": "ast" + "source_location": "L170", + "_origin": "ast", + "community": 1, + "norm_label": "\u110c\u1169\u110c\u1165\u11bc \u1112\u116e duration\u110b\u1175 \u110c\u1165\u11af\u1103\u1162 \u110e\u116c\u1109\u1169\u11ba\u1100\u1161\u11b9(20\u1107\u116e\u11ab) \u110b\u1175\u1109\u1161\u11bc \u1107\u1169\u110c\u1161\u11bc.", + "id": "tests_test_repair_rationale_170" }, { - "id": "tests_test_restaurant_catalog", "label": "test_restaurant_catalog.py", "file_type": "code", "source_file": "tests/test_restaurant_catalog.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 1, + "norm_label": "test_restaurant_catalog.py", + "id": "tests_test_restaurant_catalog" }, { - "id": "tests_test_restaurant_catalog_catalog", "label": "_catalog()", "file_type": "code", "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L7", - "_origin": "ast" + "source_location": "L8", + "_origin": "ast", + "community": 1, + "norm_label": "_catalog()", + "id": "tests_test_restaurant_catalog_catalog" }, { - "id": "tests_test_restaurant_catalog_test_nearby_returns_within_radius_sorted_by_distance", "label": "test_nearby_returns_within_radius_sorted_by_distance()", "file_type": "code", "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L15", - "_origin": "ast" + "source_location": "L18", + "_origin": "ast", + "community": 1, + "norm_label": "test_nearby_returns_within_radius_sorted_by_distance()", + "id": "tests_test_restaurant_catalog_test_nearby_returns_within_radius_sorted_by_distance" }, { - "id": "tests_test_restaurant_catalog_test_nearby_excludes_self", "label": "test_nearby_excludes_self()", "file_type": "code", "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L22", - "_origin": "ast" + "source_location": "L25", + "_origin": "ast", + "community": 1, + "norm_label": "test_nearby_excludes_self()", + "id": "tests_test_restaurant_catalog_test_nearby_excludes_self" }, { - "id": "tests_test_restaurant_catalog_test_nearby_empty_when_no_restaurants_in_radius", "label": "test_nearby_empty_when_no_restaurants_in_radius()", "file_type": "code", "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L27", - "_origin": "ast" + "source_location": "L30", + "_origin": "ast", + "community": 1, + "norm_label": "test_nearby_empty_when_no_restaurants_in_radius()", + "id": "tests_test_restaurant_catalog_test_nearby_empty_when_no_restaurants_in_radius" }, { - "id": "tests_test_restaurant_catalog_rationale_1", "label": "RestaurantCatalog \uc720\ub2db \ud14c\uc2a4\ud2b8 (\uc2e4\uc81c CSV I/O \uc5c6\uc74c \u2014 \uc778\uba54\ubaa8\ub9ac \ub370\uc774\ud130 \uc0ac\uc6a9).", "file_type": "rationale", "source_file": "tests/test_restaurant_catalog.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 1, + "norm_label": "restaurantcatalog \u110b\u1172\u1102\u1175\u11ba \u1110\u1166\u1109\u1173\u1110\u1173 (\u1109\u1175\u11af\u110c\u1166 csv i/o \u110b\u1165\u11b9\u110b\u1173\u11b7 \u2014 \u110b\u1175\u11ab\u1106\u1166\u1106\u1169\u1105\u1175 \u1103\u1166\u110b\u1175\u1110\u1165 \u1109\u1161\u110b\u116d\u11bc).", + "id": "tests_test_restaurant_catalog_rationale_1" }, { - "id": "tests_test_reward_engine", "label": "test_reward_engine.py", "file_type": "code", "source_file": "tests/test_reward_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 40, + "norm_label": "test_reward_engine.py", + "id": "tests_test_reward_engine" }, { - "id": "tests_test_reward_engine_scores", "label": "_scores()", "file_type": "code", "source_file": "tests/test_reward_engine.py", - "source_location": "L10", - "_origin": "ast" + "source_location": "L9", + "_origin": "ast", + "community": 40, + "norm_label": "_scores()", + "id": "tests_test_reward_engine_scores" }, { - "id": "tests_test_reward_engine_testgeneraterewards", "label": "TestGenerateRewards", "file_type": "code", "source_file": "tests/test_reward_engine.py", - "source_location": "L16", - "_origin": "ast" + "source_location": "L15", + "_origin": "ast", + "community": 40, + "norm_label": "testgeneraterewards", + "id": "tests_test_reward_engine_testgeneraterewards" }, { - "id": "tests_test_reward_engine_testgeneraterewards_test_hard_fail_returns_empty", "label": ".test_hard_fail_returns_empty()", "file_type": "code", "source_file": "tests/test_reward_engine.py", - "source_location": "L17", - "_origin": "ast" + "source_location": "L16", + "_origin": "ast", + "community": 40, + "norm_label": ".test_hard_fail_returns_empty()", + "id": "tests_test_reward_engine_testgeneraterewards_test_hard_fail_returns_empty" }, { - "id": "tests_test_reward_engine_testgeneraterewards_test_excellent_flow_generates_message", "label": ".test_excellent_flow_generates_message()", "file_type": "code", "source_file": "tests/test_reward_engine.py", - "source_location": "L27", - "_origin": "ast" + "source_location": "L26", + "_origin": "ast", + "community": 40, + "norm_label": ".test_excellent_flow_generates_message()", + "id": "tests_test_reward_engine_testgeneraterewards_test_excellent_flow_generates_message" }, { - "id": "tests_test_reward_engine_testgeneraterewards_test_excellent_efficiency_generates_message", "label": ".test_excellent_efficiency_generates_message()", "file_type": "code", "source_file": "tests/test_reward_engine.py", - "source_location": "L37", - "_origin": "ast" + "source_location": "L36", + "_origin": "ast", + "community": 40, + "norm_label": ".test_excellent_efficiency_generates_message()", + "id": "tests_test_reward_engine_testgeneraterewards_test_excellent_efficiency_generates_message" }, { - "id": "tests_test_reward_engine_testgeneraterewards_test_low_travel_ratio_generates_message", "label": ".test_low_travel_ratio_generates_message()", "file_type": "code", "source_file": "tests/test_reward_engine.py", - "source_location": "L47", - "_origin": "ast" + "source_location": "L46", + "_origin": "ast", + "community": 40, + "norm_label": ".test_low_travel_ratio_generates_message()", + "id": "tests_test_reward_engine_testgeneraterewards_test_low_travel_ratio_generates_message" }, { - "id": "tests_test_reward_engine_testgeneraterewards_test_excellent_purpose_fit_generates_message", "label": ".test_excellent_purpose_fit_generates_message()", "file_type": "code", "source_file": "tests/test_reward_engine.py", - "source_location": "L57", - "_origin": "ast" + "source_location": "L56", + "_origin": "ast", + "community": 40, + "norm_label": ".test_excellent_purpose_fit_generates_message()", + "id": "tests_test_reward_engine_testgeneraterewards_test_excellent_purpose_fit_generates_message" }, { - "id": "tests_test_reward_engine_testgeneraterewards_test_no_warnings_generates_message", "label": ".test_no_warnings_generates_message()", "file_type": "code", "source_file": "tests/test_reward_engine.py", - "source_location": "L67", - "_origin": "ast" + "source_location": "L66", + "_origin": "ast", + "community": 40, + "norm_label": ".test_no_warnings_generates_message()", + "id": "tests_test_reward_engine_testgeneraterewards_test_no_warnings_generates_message" }, { - "id": "tests_test_reward_engine_testgeneraterewards_test_zero_cluster_penalty_generates_message", "label": ".test_zero_cluster_penalty_generates_message()", "file_type": "code", "source_file": "tests/test_reward_engine.py", - "source_location": "L77", - "_origin": "ast" + "source_location": "L76", + "_origin": "ast", + "community": 40, + "norm_label": ".test_zero_cluster_penalty_generates_message()", + "id": "tests_test_reward_engine_testgeneraterewards_test_zero_cluster_penalty_generates_message" }, { - "id": "tests_test_reward_engine_testgeneraterewards_test_perfect_plan_all_messages", "label": ".test_perfect_plan_all_messages()", "file_type": "code", "source_file": "tests/test_reward_engine.py", - "source_location": "L87", - "_origin": "ast" + "source_location": "L86", + "_origin": "ast", + "community": 40, + "norm_label": ".test_perfect_plan_all_messages()", + "id": "tests_test_reward_engine_testgeneraterewards_test_perfect_plan_all_messages" }, { - "id": "tests_test_reward_engine_testgeneraterewards_test_mediocre_plan_few_messages", "label": ".test_mediocre_plan_few_messages()", "file_type": "code", "source_file": "tests/test_reward_engine.py", - "source_location": "L97", - "_origin": "ast" + "source_location": "L96", + "_origin": "ast", + "community": 40, + "norm_label": ".test_mediocre_plan_few_messages()", + "id": "tests_test_reward_engine_testgeneraterewards_test_mediocre_plan_few_messages" + }, + { + "label": "test_route_matrix.py", + "file_type": "code", + "source_file": "tests/test_route_matrix.py", + "source_location": "L1", + "_origin": "ast", + "community": 27, + "norm_label": "test_route_matrix.py", + "id": "tests_test_route_matrix" + }, + { + "label": "_poi()", + "file_type": "code", + "source_file": "tests/test_route_matrix.py", + "source_location": "L10", + "_origin": "ast", + "community": 27, + "norm_label": "_poi()", + "id": "tests_test_route_matrix_poi" + }, + { + "label": "FakeRouteProvider", + "file_type": "code", + "source_file": "tests/test_route_matrix.py", + "source_location": "L23", + "_origin": "ast", + "community": 27, + "norm_label": "fakerouteprovider", + "id": "tests_test_route_matrix_fakerouteprovider" + }, + { + "label": ".__init__()", + "file_type": "code", + "source_file": "tests/test_route_matrix.py", + "source_location": "L24", + "_origin": "ast", + "community": 27, + "norm_label": ".__init__()", + "id": "tests_test_route_matrix_fakerouteprovider_init" + }, + { + "label": ".aprefetch_matrix()", + "file_type": "code", + "source_file": "tests/test_route_matrix.py", + "source_location": "L27", + "_origin": "ast", + "community": 27, + "norm_label": ".aprefetch_matrix()", + "id": "tests_test_route_matrix_fakerouteprovider_aprefetch_matrix" + }, + { + "label": ".get_travel_time()", + "file_type": "code", + "source_file": "tests/test_route_matrix.py", + "source_location": "L30", + "_origin": "ast", + "community": 27, + "norm_label": ".get_travel_time()", + "id": "tests_test_route_matrix_fakerouteprovider_get_travel_time" + }, + { + "label": "test_build_uses_provider_seconds_as_minutes()", + "file_type": "code", + "source_file": "tests/test_route_matrix.py", + "source_location": "L34", + "_origin": "ast", + "community": 27, + "norm_label": "test_build_uses_provider_seconds_as_minutes()", + "id": "tests_test_route_matrix_test_build_uses_provider_seconds_as_minutes" + }, + { + "label": "test_haversine_provider_is_used_when_api_key_is_unavailable()", + "file_type": "code", + "source_file": "tests/test_route_matrix.py", + "source_location": "L47", + "_origin": "ast", + "community": 27, + "norm_label": "test_haversine_provider_is_used_when_api_key_is_unavailable()", + "id": "tests_test_route_matrix_test_haversine_provider_is_used_when_api_key_is_unavailable" + }, + { + "label": "\uc6b4\uc601 \uac80\uc99d\uc6a9 indexed route matrix \uc11c\ube44\uc2a4 \ud14c\uc2a4\ud2b8.", + "file_type": "rationale", + "source_file": "tests/test_route_matrix.py", + "source_location": "L1", + "_origin": "ast", + "community": 27, + "norm_label": "\u110b\u116e\u11ab\u110b\u1167\u11bc \u1100\u1165\u11b7\u110c\u1173\u11bc\u110b\u116d\u11bc indexed route matrix \u1109\u1165\u1107\u1175\u1109\u1173 \u1110\u1166\u1109\u1173\u1110\u1173.", + "id": "tests_test_route_matrix_rationale_1" }, { - "id": "tests_test_scoring", "label": "test_scoring.py", "file_type": "code", "source_file": "tests/test_scoring.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 6, + "norm_label": "test_scoring.py", + "id": "tests_test_scoring" }, { - "id": "tests_test_scoring_make_poi", "label": "make_poi()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L14", - "_origin": "ast" + "source_location": "L15", + "_origin": "ast", + "community": 6, + "norm_label": "make_poi()", + "id": "tests_test_scoring_make_poi" }, { - "id": "tests_test_scoring_make_plan", "label": "make_plan()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L29", - "_origin": "ast" + "source_location": "L35", + "_origin": "ast", + "community": 6, + "norm_label": "make_plan()", + "id": "tests_test_scoring_make_plan" }, { - "id": "tests_test_scoring_make_matrix", "label": "make_matrix()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L42", - "_origin": "ast" + "source_location": "L48", + "_origin": "ast", + "community": 6, + "norm_label": "make_matrix()", + "id": "tests_test_scoring_make_matrix" }, { - "id": "tests_test_scoring_make_hard_fail", "label": "make_hard_fail()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L52", - "_origin": "ast" - }, - { - "id": "tests_test_scoring_py_fixture", - "label": "fixture", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L58", + "_origin": "ast", + "community": 6, + "norm_label": "make_hard_fail()", + "id": "tests_test_scoring_make_hard_fail" }, { - "id": "tests_test_scoring_calc", "label": "calc()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L66", - "_origin": "ast" + "source_location": "L73", + "_origin": "ast", + "community": 6, + "norm_label": "calc()", + "id": "tests_test_scoring_calc" }, { - "id": "tests_test_scoring_sample_pois", "label": "sample_pois()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L71", - "_origin": "ast" + "source_location": "L78", + "_origin": "ast", + "community": 6, + "norm_label": "sample_pois()", + "id": "tests_test_scoring_sample_pois" }, { - "id": "tests_test_scoring_sample_matrix", "label": "sample_matrix()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L81", - "_origin": "ast" + "source_location": "L88", + "_origin": "ast", + "community": 6, + "norm_label": "sample_matrix()", + "id": "tests_test_scoring_sample_matrix" }, { - "id": "tests_test_scoring_sample_plan", "label": "sample_plan()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L87", - "_origin": "ast" + "source_location": "L94", + "_origin": "ast", + "community": 6, + "norm_label": "sample_plan()", + "id": "tests_test_scoring_sample_plan" }, { - "id": "tests_test_scoring_testweights", "label": "TestWeights", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L95", - "_origin": "ast" + "source_location": "L103", + "_origin": "ast", + "community": 6, + "norm_label": "testweights", + "id": "tests_test_scoring_testweights" }, { - "id": "tests_test_scoring_testweights_test_weights_sum_to_one", "label": ".test_weights_sum_to_one()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L96", - "_origin": "ast" + "source_location": "L104", + "_origin": "ast", + "community": 6, + "norm_label": ".test_weights_sum_to_one()", + "id": "tests_test_scoring_testweights_test_weights_sum_to_one" }, { - "id": "tests_test_scoring_testweights_test_weights_keys", "label": ".test_weights_keys()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L100", - "_origin": "ast" + "source_location": "L108", + "_origin": "ast", + "community": 6, + "norm_label": ".test_weights_keys()", + "id": "tests_test_scoring_testweights_test_weights_keys" }, { - "id": "tests_test_scoring_testcompute", "label": "TestCompute", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L110", - "_origin": "ast" + "source_location": "L123", + "_origin": "ast", + "community": 6, + "norm_label": "testcompute", + "id": "tests_test_scoring_testcompute" }, { - "id": "tests_test_scoring_testcompute_test_final_score_in_range", "label": ".test_final_score_in_range()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L111", - "_origin": "ast" + "source_location": "L124", + "_origin": "ast", + "community": 6, + "norm_label": ".test_final_score_in_range()", + "id": "tests_test_scoring_testcompute_test_final_score_in_range" }, { - "id": "tests_test_scoring_testcompute_test_hard_fail_caps_score_at_59", "label": ".test_hard_fail_caps_score_at_59()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L115", - "_origin": "ast" + "source_location": "L128", + "_origin": "ast", + "community": 6, + "norm_label": ".test_hard_fail_caps_score_at_59()", + "id": "tests_test_scoring_testcompute_test_hard_fail_caps_score_at_59" }, { - "id": "tests_test_scoring_testcompute_test_no_hard_fail_can_exceed_59", "label": ".test_no_hard_fail_can_exceed_59()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L121", - "_origin": "ast" + "source_location": "L132", + "_origin": "ast", + "community": 6, + "norm_label": ".test_no_hard_fail_can_exceed_59()", + "id": "tests_test_scoring_testcompute_test_no_hard_fail_can_exceed_59" }, { - "id": "tests_test_scoring_testcompute_test_scores_object_fields", "label": ".test_scores_object_fields()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L127", - "_origin": "ast" + "source_location": "L138", + "_origin": "ast", + "community": 6, + "norm_label": ".test_scores_object_fields()", + "id": "tests_test_scoring_testcompute_test_scores_object_fields" }, { - "id": "tests_test_scoring_testefficiency", "label": "TestEfficiency", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L140", - "_origin": "ast" + "source_location": "L152", + "_origin": "ast", + "community": 6, + "norm_label": "testefficiency", + "id": "tests_test_scoring_testefficiency" }, { - "id": "tests_test_scoring_testefficiency_test_optimal_order_is_one", "label": ".test_optimal_order_is_one()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L141", - "_origin": "ast" + "source_location": "L153", + "_origin": "ast", + "community": 6, + "norm_label": ".test_optimal_order_is_one()", + "id": "tests_test_scoring_testefficiency_test_optimal_order_is_one" }, { - "id": "tests_test_scoring_testefficiency_test_suboptimal_order_below_one", "label": ".test_suboptimal_order_below_one()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L150", - "_origin": "ast" + "source_location": "L161", + "_origin": "ast", + "community": 6, + "norm_label": ".test_suboptimal_order_below_one()", + "id": "tests_test_scoring_testefficiency_test_suboptimal_order_below_one" }, { - "id": "tests_test_scoring_testefficiency_test_single_poi_returns_one", "label": ".test_single_poi_returns_one()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L161", - "_origin": "ast" + "source_location": "L172", + "_origin": "ast", + "community": 6, + "norm_label": ".test_single_poi_returns_one()", + "id": "tests_test_scoring_testefficiency_test_single_poi_returns_one" }, { - "id": "tests_test_scoring_testfeasibility", "label": "TestFeasibility", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L170", - "_origin": "ast" + "source_location": "L182", + "_origin": "ast", + "community": 6, + "norm_label": "testfeasibility", + "id": "tests_test_scoring_testfeasibility" }, { - "id": "tests_test_scoring_testfeasibility_test_no_hard_fails_hard_is_one", "label": ".test_no_hard_fails_hard_is_one()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L171", - "_origin": "ast" + "source_location": "L183", + "_origin": "ast", + "community": 6, + "norm_label": ".test_no_hard_fails_hard_is_one()", + "id": "tests_test_scoring_testfeasibility_test_no_hard_fails_hard_is_one" }, { - "id": "tests_test_scoring_testfeasibility_test_hard_fail_reduces_feasibility", "label": ".test_hard_fail_reduces_feasibility()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L176", - "_origin": "ast" + "source_location": "L188", + "_origin": "ast", + "community": 6, + "norm_label": ".test_hard_fail_reduces_feasibility()", + "id": "tests_test_scoring_testfeasibility_test_hard_fail_reduces_feasibility" }, { - "id": "tests_test_scoring_testfeasibility_test_feasibility_in_range", "label": ".test_feasibility_in_range()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L181", - "_origin": "ast" + "source_location": "L195", + "_origin": "ast", + "community": 6, + "norm_label": ".test_feasibility_in_range()", + "id": "tests_test_scoring_testfeasibility_test_feasibility_in_range" }, { - "id": "tests_test_scoring_testpurposefit", "label": "TestPurposeFit", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L190", - "_origin": "ast" + "source_location": "L205", + "_origin": "ast", + "community": 6, + "norm_label": "testpurposefit", + "id": "tests_test_scoring_testpurposefit" }, { - "id": "tests_test_scoring_testpurposefit_test_cultural_all_cultural_high", "label": ".test_cultural_all_cultural_high()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L191", - "_origin": "ast" + "source_location": "L206", + "_origin": "ast", + "community": 6, + "norm_label": ".test_cultural_all_cultural_high()", + "id": "tests_test_scoring_testpurposefit_test_cultural_all_cultural_high" }, { - "id": "tests_test_scoring_testpurposefit_test_cultural_all_sports_low", "label": ".test_cultural_all_sports_low()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L197", - "_origin": "ast" + "source_location": "L212", + "_origin": "ast", + "community": 6, + "norm_label": ".test_cultural_all_sports_low()", + "id": "tests_test_scoring_testpurposefit_test_cultural_all_sports_low" }, { - "id": "tests_test_scoring_testpurposefit_test_no_travel_type_returns_half", "label": ".test_no_travel_type_returns_half()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L203", - "_origin": "ast" + "source_location": "L218", + "_origin": "ast", + "community": 6, + "norm_label": ".test_no_travel_type_returns_half()", + "id": "tests_test_scoring_testpurposefit_test_no_travel_type_returns_half" }, { - "id": "tests_test_scoring_testcosinedistance", "label": "TestCosineDistance", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L213", - "_origin": "ast" + "source_location": "L229", + "_origin": "ast", + "community": 31, + "norm_label": "testcosinedistance", + "id": "tests_test_scoring_testcosinedistance" }, { - "id": "tests_test_scoring_testcosinedistance_test_identical_vectors", "label": ".test_identical_vectors()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L214", - "_origin": "ast" + "source_location": "L230", + "_origin": "ast", + "community": 31, + "norm_label": ".test_identical_vectors()", + "id": "tests_test_scoring_testcosinedistance_test_identical_vectors" }, { - "id": "tests_test_scoring_testcosinedistance_test_orthogonal_vectors", "label": ".test_orthogonal_vectors()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L218", - "_origin": "ast" + "source_location": "L234", + "_origin": "ast", + "community": 31, + "norm_label": ".test_orthogonal_vectors()", + "id": "tests_test_scoring_testcosinedistance_test_orthogonal_vectors" }, { - "id": "tests_test_scoring_testcosinedistance_test_zero_vector", "label": ".test_zero_vector()", "file_type": "code", "source_file": "tests/test_scoring.py", - "source_location": "L223", - "_origin": "ast" + "source_location": "L239", + "_origin": "ast", + "community": 31, + "norm_label": ".test_zero_vector()", + "id": "tests_test_scoring_testcosinedistance_test_zero_vector" }, { - "id": "tests_test_scoring_rationale_1", "label": "Tests for ScoreCalculator (TDD).", "file_type": "rationale", "source_file": "tests/test_scoring.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 6, + "norm_label": "tests for scorecalculator (tdd).", + "id": "tests_test_scoring_rationale_1" }, { - "id": "tests_test_theme_alignment", - "label": "test_theme_alignment.py", + "label": "test_settings.py", "file_type": "code", - "source_file": "tests/test_theme_alignment.py", + "source_file": "tests/test_settings.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 84, + "norm_label": "test_settings.py", + "id": "tests_test_settings" }, { - "id": "tests_test_theme_alignment_py_fixture", - "label": "fixture", + "label": "test_settings_env_file_is_project_absolute_path()", "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_file": "tests/test_settings.py", + "source_location": "L8", + "_origin": "ast", + "community": 84, + "norm_label": "test_settings_env_file_is_project_absolute_path()", + "id": "tests_test_settings_test_settings_env_file_is_project_absolute_path" + }, + { + "label": "\uc124\uc815 \ud30c\uc77c \uacbd\ub85c\uc640 \ud658\uacbd\ubcc0\uc218 \uacbd\uacc4 \ud14c\uc2a4\ud2b8.", + "file_type": "rationale", + "source_file": "tests/test_settings.py", + "source_location": "L1", + "_origin": "ast", + "community": 84, + "norm_label": "\u1109\u1165\u11af\u110c\u1165\u11bc \u1111\u1161\u110b\u1175\u11af \u1100\u1167\u11bc\u1105\u1169\u110b\u116a \u1112\u116a\u11ab\u1100\u1167\u11bc\u1107\u1167\u11ab\u1109\u116e \u1100\u1167\u11bc\u1100\u1168 \u1110\u1166\u1109\u1173\u1110\u1173.", + "id": "tests_test_settings_rationale_1" + }, + { + "label": "test_theme_alignment.py", + "file_type": "code", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L1", + "_origin": "ast", + "community": 2, + "norm_label": "test_theme_alignment.py", + "id": "tests_test_theme_alignment" }, { - "id": "tests_test_theme_alignment_clear_cache", "label": "_clear_cache()", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L22", - "_origin": "ast" + "source_location": "L21", + "_origin": "ast", + "community": 2, + "norm_label": "_clear_cache()", + "id": "tests_test_theme_alignment_clear_cache" }, { - "id": "tests_test_theme_alignment_testnoapikey", "label": "TestNoApiKey", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L29", - "_origin": "ast" + "source_location": "L28", + "_origin": "ast", + "community": 2, + "norm_label": "testnoapikey", + "id": "tests_test_theme_alignment_testnoapikey" }, { - "id": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only", "label": ".test_skip_returns_informational_only()", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L30", - "_origin": "ast" + "source_location": "L29", + "_origin": "ast", + "community": 2, + "norm_label": ".test_skip_returns_informational_only()", + "id": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only" }, { - "id": "tests_test_theme_alignment_testclassifyscore", "label": "TestClassifyScore", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L41", - "_origin": "ast" + "source_location": "L40", + "_origin": "ast", + "community": 2, + "norm_label": "testclassifyscore", + "id": "tests_test_theme_alignment_testclassifyscore" }, { - "id": "tests_test_theme_alignment_testclassifyscore_test_high_score_no_penalty", "label": ".test_high_score_no_penalty()", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L42", - "_origin": "ast" + "source_location": "L41", + "_origin": "ast", + "community": 2, + "norm_label": ".test_high_score_no_penalty()", + "id": "tests_test_theme_alignment_testclassifyscore_test_high_score_no_penalty" }, { - "id": "tests_test_theme_alignment_testclassifyscore_test_low_score_critical", "label": ".test_low_score_critical()", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L47", - "_origin": "ast" + "source_location": "L46", + "_origin": "ast", + "community": 2, + "norm_label": ".test_low_score_critical()", + "id": "tests_test_theme_alignment_testclassifyscore_test_low_score_critical" }, { - "id": "tests_test_theme_alignment_testparsellmresponse", "label": "TestParseLlmResponse", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L53", - "_origin": "ast" + "source_location": "L52", + "_origin": "ast", + "community": 2, + "norm_label": "testparsellmresponse", + "id": "tests_test_theme_alignment_testparsellmresponse" }, { - "id": "tests_test_theme_alignment_testparsellmresponse_test_clean_json", "label": ".test_clean_json()", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L54", - "_origin": "ast" + "source_location": "L53", + "_origin": "ast", + "community": 2, + "norm_label": ".test_clean_json()", + "id": "tests_test_theme_alignment_testparsellmresponse_test_clean_json" }, { - "id": "tests_test_theme_alignment_testparsellmresponse_test_score_clamped_to_1", "label": ".test_score_clamped_to_1()", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L61", - "_origin": "ast" + "source_location": "L60", + "_origin": "ast", + "community": 2, + "norm_label": ".test_score_clamped_to_1()", + "id": "tests_test_theme_alignment_testparsellmresponse_test_score_clamped_to_1" }, { - "id": "tests_test_theme_alignment_testparsellmresponse_test_code_block_stripped", "label": ".test_code_block_stripped()", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L66", - "_origin": "ast" + "source_location": "L65", + "_origin": "ast", + "community": 2, + "norm_label": ".test_code_block_stripped()", + "id": "tests_test_theme_alignment_testparsellmresponse_test_code_block_stripped" }, { - "id": "tests_test_theme_alignment_testevaluatewithmockclient", "label": "TestEvaluateWithMockClient", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L72", - "_origin": "ast" + "source_location": "L71", + "_origin": "ast", + "community": 2, + "norm_label": "testevaluatewithmockclient", + "id": "tests_test_theme_alignment_testevaluatewithmockclient" }, { - "id": "tests_test_theme_alignment_testevaluatewithmockclient_test_high_alignment_no_penalty", "label": ".test_high_alignment_no_penalty()", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L73", - "_origin": "ast" + "source_location": "L72", + "_origin": "ast", + "community": 2, + "norm_label": ".test_high_alignment_no_penalty()", + "id": "tests_test_theme_alignment_testevaluatewithmockclient_test_high_alignment_no_penalty" }, { - "id": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical", "label": ".test_low_alignment_critical()", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L90", - "_origin": "ast" + "source_location": "L94", + "_origin": "ast", + "community": 2, + "norm_label": ".test_low_alignment_critical()", + "id": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical" }, { - "id": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call", "label": ".test_cache_hit_skips_second_call()", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L106", - "_origin": "ast" + "source_location": "L115", + "_origin": "ast", + "community": 2, + "norm_label": ".test_cache_hit_skips_second_call()", + "id": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call" }, { - "id": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational", "label": ".test_llm_failure_returns_informational()", "file_type": "code", "source_file": "tests/test_theme_alignment.py", - "source_location": "L121", - "_origin": "ast" + "source_location": "L132", + "_origin": "ast", + "community": 2, + "norm_label": ".test_llm_failure_returns_informational()", + "id": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational" }, { - "id": "tests_test_theme_alignment_rationale_1", "label": "Tests for src/scoring/theme_alignment.py \u2014 LLM mocking \ud544\uc218.", "file_type": "rationale", "source_file": "tests/test_theme_alignment.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 2, + "norm_label": "tests for src/scoring/theme_alignment.py \u2014 llm mocking \u1111\u1175\u11af\u1109\u116e.", + "id": "tests_test_theme_alignment_rationale_1" }, { - "id": "tests_test_theme_alignment_rationale_31", "label": "API \ud0a4 \uc5c6\uc73c\uba74 LLM \ud638\ucd9c \uc2a4\ud0b5 + \uc815\ubcf4\uc131 DeepDive.", "file_type": "rationale", "source_file": "tests/test_theme_alignment.py", - "source_location": "L31", - "_origin": "ast" + "source_location": "L30", + "_origin": "ast", + "community": 2, + "norm_label": "api \u110f\u1175 \u110b\u1165\u11b9\u110b\u1173\u1106\u1167\u11ab llm \u1112\u1169\u110e\u116e\u11af \u1109\u1173\u110f\u1175\u11b8 + \u110c\u1165\u11bc\u1107\u1169\u1109\u1165\u11bc deepdive.", + "id": "tests_test_theme_alignment_rationale_30" }, { - "id": "tests_test_theme_alignment_rationale_91", "label": "LLM\uc774 0.3 \uc751\ub2f5 \u2192 CRITICAL \ud328\ub110\ud2f0.", "file_type": "rationale", "source_file": "tests/test_theme_alignment.py", - "source_location": "L91", - "_origin": "ast" + "source_location": "L95", + "_origin": "ast", + "community": 2, + "norm_label": "llm\u110b\u1175 0.3 \u110b\u1173\u11bc\u1103\u1161\u11b8 \u2192 critical \u1111\u1162\u1102\u1165\u11af\u1110\u1175.", + "id": "tests_test_theme_alignment_rationale_95" }, { - "id": "tests_test_theme_alignment_rationale_107", "label": "\ub3d9\uc77c \uc785\ub825\uc73c\ub85c \ub450 \ubc88 \ud638\ucd9c \uc2dc LLM\uc740 1\ud68c\ub9cc \ud638\ucd9c.", "file_type": "rationale", "source_file": "tests/test_theme_alignment.py", - "source_location": "L107", - "_origin": "ast" + "source_location": "L116", + "_origin": "ast", + "community": 2, + "norm_label": "\u1103\u1169\u11bc\u110b\u1175\u11af \u110b\u1175\u11b8\u1105\u1167\u11a8\u110b\u1173\u1105\u1169 \u1103\u116e \u1107\u1165\u11ab \u1112\u1169\u110e\u116e\u11af \u1109\u1175 llm\u110b\u1173\u11ab 1\u1112\u116c\u1106\u1161\u11ab \u1112\u1169\u110e\u116e\u11af.", + "id": "tests_test_theme_alignment_rationale_116" }, { - "id": "tests_test_theme_alignment_rationale_122", "label": "LLM \ud638\ucd9c\uc774 \uc608\uc678 \ub358\uc9c0\uba74 \uc815\ubcf4\uc131 DeepDive\ub85c \ud3f4\ubc31.", "file_type": "rationale", "source_file": "tests/test_theme_alignment.py", - "source_location": "L122", - "_origin": "ast" + "source_location": "L133", + "_origin": "ast", + "community": 2, + "norm_label": "llm \u1112\u1169\u110e\u116e\u11af\u110b\u1175 \u110b\u1168\u110b\u116c \u1103\u1165\u11ab\u110c\u1175\u1106\u1167\u11ab \u110c\u1165\u11bc\u1107\u1169\u1109\u1165\u11bc deepdive\u1105\u1169 \u1111\u1169\u11af\u1107\u1162\u11a8.", + "id": "tests_test_theme_alignment_rationale_133" }, { - "id": "tests_test_theme_taxonomy", "label": "test_theme_taxonomy.py", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 2, + "norm_label": "test_theme_taxonomy.py", + "id": "tests_test_theme_taxonomy" }, { - "id": "tests_test_theme_taxonomy_testplacetypecount", "label": "TestPlaceTypeCount", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L15", - "_origin": "ast" + "source_location": "L16", + "_origin": "ast", + "community": 2, + "norm_label": "testplacetypecount", + "id": "tests_test_theme_taxonomy_testplacetypecount" }, { - "id": "tests_test_theme_taxonomy_testplacetypecount_test_9_place_types", "label": ".test_9_place_types()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L16", - "_origin": "ast" + "source_location": "L17", + "_origin": "ast", + "community": 2, + "norm_label": ".test_9_place_types()", + "id": "tests_test_theme_taxonomy_testplacetypecount_test_9_place_types" }, { - "id": "tests_test_theme_taxonomy_testplacetypecount_test_9_travel_styles", "label": ".test_9_travel_styles()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L21", - "_origin": "ast" + "source_location": "L22", + "_origin": "ast", + "community": 2, + "norm_label": ".test_9_travel_styles()", + "id": "tests_test_theme_taxonomy_testplacetypecount_test_9_travel_styles" }, { - "id": "tests_test_theme_taxonomy_testuserpreferences", "label": "TestUserPreferences", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L27", - "_origin": "ast" + "source_location": "L28", + "_origin": "ast", + "community": 2, + "norm_label": "testuserpreferences", + "id": "tests_test_theme_taxonomy_testuserpreferences" }, { - "id": "tests_test_theme_taxonomy_testuserpreferences_test_valid_input", "label": ".test_valid_input()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L28", - "_origin": "ast" + "source_location": "L29", + "_origin": "ast", + "community": 2, + "norm_label": ".test_valid_input()", + "id": "tests_test_theme_taxonomy_testuserpreferences_test_valid_input" }, { - "id": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_place_type_raises", "label": ".test_invalid_place_type_raises()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L33", - "_origin": "ast" + "source_location": "L34", + "_origin": "ast", + "community": 2, + "norm_label": ".test_invalid_place_type_raises()", + "id": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_place_type_raises" }, { - "id": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_style_raises", "label": ".test_invalid_style_raises()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L37", - "_origin": "ast" + "source_location": "L38", + "_origin": "ast", + "community": 2, + "norm_label": ".test_invalid_style_raises()", + "id": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_style_raises" }, { - "id": "tests_test_theme_taxonomy_testuserpreferences_test_empty_both_axes_raises", "label": ".test_empty_both_axes_raises()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L41", - "_origin": "ast" + "source_location": "L42", + "_origin": "ast", + "community": 2, + "norm_label": ".test_empty_both_axes_raises()", + "id": "tests_test_theme_taxonomy_testuserpreferences_test_empty_both_axes_raises" }, { - "id": "tests_test_theme_taxonomy_testmatchesplacetype", "label": "TestMatchesPlaceType", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L46", - "_origin": "ast" + "source_location": "L47", + "_origin": "ast", + "community": 2, + "norm_label": "testmatchesplacetype", + "id": "tests_test_theme_taxonomy_testmatchesplacetype" }, { - "id": "tests_test_theme_taxonomy_testmatchesplacetype_test_mountain_matches_na04", "label": ".test_mountain_matches_NA04()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L47", - "_origin": "ast" + "source_location": "L48", + "_origin": "ast", + "community": 2, + "norm_label": ".test_mountain_matches_na04()", + "id": "tests_test_theme_taxonomy_testmatchesplacetype_test_mountain_matches_na04" }, { - "id": "tests_test_theme_taxonomy_testmatchesplacetype_test_beach_matches_na12", "label": ".test_beach_matches_NA12()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L51", - "_origin": "ast" + "source_location": "L52", + "_origin": "ast", + "community": 2, + "norm_label": ".test_beach_matches_na12()", + "id": "tests_test_theme_taxonomy_testmatchesplacetype_test_beach_matches_na12" }, { - "id": "tests_test_theme_taxonomy_testmatchesplacetype_test_festival_matches_content_type_15", "label": ".test_festival_matches_content_type_15()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L54", - "_origin": "ast" + "source_location": "L55", + "_origin": "ast", + "community": 2, + "norm_label": ".test_festival_matches_content_type_15()", + "id": "tests_test_theme_taxonomy_testmatchesplacetype_test_festival_matches_content_type_15" }, { - "id": "tests_test_theme_taxonomy_testmatchesplacetype_test_no_match", "label": ".test_no_match()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L57", - "_origin": "ast" + "source_location": "L58", + "_origin": "ast", + "community": 2, + "norm_label": ".test_no_match()", + "id": "tests_test_theme_taxonomy_testmatchesplacetype_test_no_match" }, { - "id": "tests_test_theme_taxonomy_testgetplacetypesfor", "label": "TestGetPlaceTypesFor", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L62", - "_origin": "ast" + "source_location": "L63", + "_origin": "ast", + "community": 2, + "norm_label": "testgetplacetypesfor", + "id": "tests_test_theme_taxonomy_testgetplacetypesfor" }, { - "id": "tests_test_theme_taxonomy_testgetplacetypesfor_test_mountain_code_returns_list", "label": ".test_mountain_code_returns_list()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L63", - "_origin": "ast" + "source_location": "L64", + "_origin": "ast", + "community": 2, + "norm_label": ".test_mountain_code_returns_list()", + "id": "tests_test_theme_taxonomy_testgetplacetypesfor_test_mountain_code_returns_list" }, { - "id": "tests_test_theme_taxonomy_testgetplacetypesfor_test_no_code_returns_empty", "label": ".test_no_code_returns_empty()", "file_type": "code", "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L67", - "_origin": "ast" + "source_location": "L68", + "_origin": "ast", + "community": 2, + "norm_label": ".test_no_code_returns_empty()", + "id": "tests_test_theme_taxonomy_testgetplacetypesfor_test_no_code_returns_empty" }, { - "id": "tests_test_theme_taxonomy_rationale_1", "label": "Tests for src/data/theme_taxonomy.py \u2014 2\ucd95 \ud14c\ub9c8 + \ub9e4\ud551.", "file_type": "rationale", "source_file": "tests/test_theme_taxonomy.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 2, + "norm_label": "tests for src/data/theme_taxonomy.py \u2014 2\u110e\u116e\u11a8 \u1110\u1166\u1106\u1161 + \u1106\u1162\u1111\u1175\u11bc.", + "id": "tests_test_theme_taxonomy_rationale_1" + }, + { + "label": "test_tour_api_runtime.py", + "file_type": "code", + "source_file": "tests/test_tour_api_runtime.py", + "source_location": "L1", + "_origin": "ast", + "community": 7, + "norm_label": "test_tour_api_runtime.py", + "id": "tests_test_tour_api_runtime" + }, + { + "label": "test_search_poi_sync_adapts_async_client()", + "file_type": "code", + "source_file": "tests/test_tour_api_runtime.py", + "source_location": "L7", + "_origin": "ast", + "community": 7, + "norm_label": "test_search_poi_sync_adapts_async_client()", + "id": "tests_test_tour_api_runtime_test_search_poi_sync_adapts_async_client" + }, + { + "label": "TourAPI runtime adapter tests.", + "file_type": "rationale", + "source_file": "tests/test_tour_api_runtime.py", + "source_location": "L1", + "_origin": "ast", + "community": 7, + "norm_label": "tourapi runtime adapter tests.", + "id": "tests_test_tour_api_runtime_rationale_1" }, { - "id": "tests_test_travel_ratio", "label": "test_travel_ratio.py", "file_type": "code", "source_file": "tests/test_travel_ratio.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 60, + "norm_label": "test_travel_ratio.py", + "id": "tests_test_travel_ratio" }, { - "id": "tests_test_travel_ratio_make_place", "label": "_make_place()", "file_type": "code", "source_file": "tests/test_travel_ratio.py", - "source_location": "L15", - "_origin": "ast" + "source_location": "L12", + "_origin": "ast", + "community": 60, + "norm_label": "_make_place()", + "id": "tests_test_travel_ratio_make_place" }, { - "id": "tests_test_travel_ratio_test_no_penalty_when_ratio_low", "label": "test_no_penalty_when_ratio_low()", "file_type": "code", "source_file": "tests/test_travel_ratio.py", - "source_location": "L22", - "_origin": "ast" + "source_location": "L24", + "_origin": "ast", + "community": 60, + "norm_label": "test_no_penalty_when_ratio_low()", + "id": "tests_test_travel_ratio_test_no_penalty_when_ratio_low" }, { - "id": "tests_test_travel_ratio_test_penalty_when_ratio_high", "label": "test_penalty_when_ratio_high()", "file_type": "code", "source_file": "tests/test_travel_ratio.py", - "source_location": "L35", - "_origin": "ast" + "source_location": "L39", + "_origin": "ast", + "community": 60, + "norm_label": "test_penalty_when_ratio_high()", + "id": "tests_test_travel_ratio_test_penalty_when_ratio_high" }, { - "id": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days", "label": "test_overall_ratio_aggregates_across_days()", "file_type": "code", "source_file": "tests/test_travel_ratio.py", - "source_location": "L48", - "_origin": "ast" + "source_location": "L54", + "_origin": "ast", + "community": 60, + "norm_label": "test_overall_ratio_aggregates_across_days()", + "id": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days" }, { - "id": "tests_test_travel_ratio_rationale_1", "label": "Tests for src/scoring/travel_ratio.py.", "file_type": "rationale", "source_file": "tests/test_travel_ratio.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 60, + "norm_label": "tests for src/scoring/travel_ratio.py.", + "id": "tests_test_travel_ratio_rationale_1" }, { - "id": "tests_test_travel_ratio_rationale_23", "label": "4\uac1c \uc7a5\uc18c\uac00 \ubaa8\ub450 \uac00\uae4c\uc774 \uc788\uc73c\uba74 travel_ratio\uac00 \ub0ae\uc74c \u2192 \ud328\ub110\ud2f0 0.", "file_type": "rationale", "source_file": "tests/test_travel_ratio.py", - "source_location": "L23", - "_origin": "ast" + "source_location": "L25", + "_origin": "ast", + "community": 60, + "norm_label": "4\u1100\u1162 \u110c\u1161\u11bc\u1109\u1169\u1100\u1161 \u1106\u1169\u1103\u116e \u1100\u1161\u1101\u1161\u110b\u1175 \u110b\u1175\u11bb\u110b\u1173\u1106\u1167\u11ab travel_ratio\u1100\u1161 \u1102\u1161\u11bd\u110b\u1173\u11b7 \u2192 \u1111\u1162\u1102\u1165\u11af\u1110\u1175 0.", + "id": "tests_test_travel_ratio_rationale_25" }, { - "id": "tests_test_travel_ratio_rationale_36", "label": "\uc7a5\uc18c\uac00 \uba40\ub9ac \ub5a8\uc5b4\uc838 \uc774\ub3d9 \uc2dc\uac04\uc774 \uad00\uad11 \uc2dc\uac04\uc744 \uc555\ub3c4\ud558\uba74 \ud328\ub110\ud2f0 \ubc1c\uc0dd.", "file_type": "rationale", "source_file": "tests/test_travel_ratio.py", - "source_location": "L36", - "_origin": "ast" + "source_location": "L40", + "_origin": "ast", + "community": 60, + "norm_label": "\u110c\u1161\u11bc\u1109\u1169\u1100\u1161 \u1106\u1165\u11af\u1105\u1175 \u1104\u1165\u11af\u110b\u1165\u110c\u1167 \u110b\u1175\u1103\u1169\u11bc \u1109\u1175\u1100\u1161\u11ab\u110b\u1175 \u1100\u116a\u11ab\u1100\u116a\u11bc \u1109\u1175\u1100\u1161\u11ab\u110b\u1173\u11af \u110b\u1161\u11b8\u1103\u1169\u1112\u1161\u1106\u1167\u11ab \u1111\u1162\u1102\u1165\u11af\u1110\u1175 \u1107\u1161\u11af\u1109\u1162\u11bc.", + "id": "tests_test_travel_ratio_rationale_40" }, { - "id": "tests_test_vrptw_engine", "label": "test_vrptw_engine.py", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 4, + "norm_label": "test_vrptw_engine.py", + "id": "tests_test_vrptw_engine" }, { - "id": "tests_test_vrptw_engine_make_place", "label": "make_place()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L24", - "_origin": "ast" + "source_location": "L25", + "_origin": "ast", + "community": 44, + "norm_label": "make_place()", + "id": "tests_test_vrptw_engine_make_place" }, { - "id": "tests_test_vrptw_engine_testhaversinematrix", "label": "TestHaversineMatrix", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L54", - "_origin": "ast" + "source_location": "L56", + "_origin": "ast", + "community": 4, + "norm_label": "testhaversinematrix", + "id": "tests_test_vrptw_engine_testhaversinematrix" }, { - "id": "tests_test_vrptw_engine_testhaversinematrix_test_same_point_is_zero", "label": ".test_same_point_is_zero()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L55", - "_origin": "ast" + "source_location": "L57", + "_origin": "ast", + "community": 4, + "norm_label": ".test_same_point_is_zero()", + "id": "tests_test_vrptw_engine_testhaversinematrix_test_same_point_is_zero" }, { - "id": "tests_test_vrptw_engine_testhaversinematrix_test_known_distance", "label": ".test_known_distance()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L59", - "_origin": "ast" + "source_location": "L61", + "_origin": "ast", + "community": 4, + "norm_label": ".test_known_distance()", + "id": "tests_test_vrptw_engine_testhaversinematrix_test_known_distance" }, { - "id": "tests_test_vrptw_engine_testhaversinematrix_test_symmetry", "label": ".test_symmetry()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L66", - "_origin": "ast" + "source_location": "L68", + "_origin": "ast", + "community": 4, + "norm_label": ".test_symmetry()", + "id": "tests_test_vrptw_engine_testhaversinematrix_test_symmetry" }, { - "id": "tests_test_vrptw_engine_testcachedroutematrix", "label": "TestCachedRouteMatrix", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L75", - "_origin": "ast" + "source_location": "L78", + "_origin": "ast", + "community": 4, + "norm_label": "testcachedroutematrix", + "id": "tests_test_vrptw_engine_testcachedroutematrix" }, { - "id": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_hit", "label": ".test_cache_hit()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L76", - "_origin": "ast" + "source_location": "L79", + "_origin": "ast", + "community": 4, + "norm_label": ".test_cache_hit()", + "id": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_hit" }, { - "id": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_miss_falls_back_to_haversine", "label": ".test_cache_miss_falls_back_to_haversine()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L81", - "_origin": "ast" + "source_location": "L84", + "_origin": "ast", + "community": 4, + "norm_label": ".test_cache_miss_falls_back_to_haversine()", + "id": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_miss_falls_back_to_haversine" }, { - "id": "tests_test_vrptw_engine_testcachedroutematrix_test_reverse_key_fallback", "label": ".test_reverse_key_fallback()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L87", - "_origin": "ast" + "source_location": "L90", + "_origin": "ast", + "community": 4, + "norm_label": ".test_reverse_key_fallback()", + "id": "tests_test_vrptw_engine_testcachedroutematrix_test_reverse_key_fallback" }, { - "id": "tests_test_vrptw_engine_testcachedroutematrix_test_load_from_dict", "label": ".test_load_from_dict()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L93", - "_origin": "ast" + "source_location": "L96", + "_origin": "ast", + "community": 4, + "norm_label": ".test_load_from_dict()", + "id": "tests_test_vrptw_engine_testcachedroutematrix_test_load_from_dict" }, { - "id": "tests_test_vrptw_engine_testdepotconstraint", "label": "TestDepotConstraint", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L105", - "_origin": "ast" + "source_location": "L109", + "_origin": "ast", + "community": 4, + "norm_label": "testdepotconstraint", + "id": "tests_test_vrptw_engine_testdepotconstraint" }, { - "id": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine", "label": "._engine_with_haversine()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L106", - "_origin": "ast" + "source_location": "L110", + "_origin": "ast", + "community": 4, + "norm_label": "._engine_with_haversine()", + "id": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine" }, { - "id": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot", "label": ".test_2n3d_day1_must_end_at_depot()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L109", - "_origin": "ast" + "source_location": "L113", + "_origin": "ast", + "community": 4, + "norm_label": ".test_2n3d_day1_must_end_at_depot()", + "id": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot" }, { - "id": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_middle_day_must_start_and_end_at_depot", "label": ".test_2n3d_middle_day_must_start_and_end_at_depot()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L126", - "_origin": "ast" + "source_location": "L129", + "_origin": "ast", + "community": 4, + "norm_label": ".test_2n3d_middle_day_must_start_and_end_at_depot()", + "id": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_middle_day_must_start_and_end_at_depot" }, { - "id": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied", "label": ".test_1n2d_no_depot_constraint_applied()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L139", - "_origin": "ast" + "source_location": "L144", + "_origin": "ast", + "community": 4, + "norm_label": ".test_1n2d_no_depot_constraint_applied()", + "id": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied" }, { - "id": "tests_test_vrptw_engine_testtimewindowfeasibility", "label": "TestTimeWindowFeasibility", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L161", - "_origin": "ast" + "source_location": "L167", + "_origin": "ast", + "community": 44, + "norm_label": "testtimewindowfeasibility", + "id": "tests_test_vrptw_engine_testtimewindowfeasibility" }, { - "id": "tests_test_vrptw_engine_testtimewindowfeasibility_engine", "label": "._engine()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L162", - "_origin": "ast" + "source_location": "L168", + "_origin": "ast", + "community": 44, + "norm_label": "._engine()", + "id": "tests_test_vrptw_engine_testtimewindowfeasibility_engine" }, { - "id": "tests_test_vrptw_engine_testtimewindowfeasibility_test_feasible_schedule_passes", "label": ".test_feasible_schedule_passes()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L165", - "_origin": "ast" + "source_location": "L171", + "_origin": "ast", + "community": 44, + "norm_label": ".test_feasible_schedule_passes()", + "id": "tests_test_vrptw_engine_testtimewindowfeasibility_test_feasible_schedule_passes" }, { - "id": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical", "label": ".test_infeasible_close_time_triggers_critical()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L174", - "_origin": "ast" + "source_location": "L180", + "_origin": "ast", + "community": 44, + "norm_label": ".test_infeasible_close_time_triggers_critical()", + "id": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical" }, { - "id": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning", "label": ".test_safety_margin_warning()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L185", - "_origin": "ast" + "source_location": "L189", + "_origin": "ast", + "community": 44, + "norm_label": ".test_safety_margin_warning()", + "id": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning" + }, + { + "label": ".test_request_start_time_is_used()", + "file_type": "code", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L200", + "_origin": "ast", + "community": 44, + "norm_label": ".test_request_start_time_is_used()", + "id": "tests_test_vrptw_engine_testtimewindowfeasibility_test_request_start_time_is_used" }, { - "id": "tests_test_vrptw_engine_testefficiencygap", "label": "TestEfficiencyGap", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L203", - "_origin": "ast" + "source_location": "L217", + "_origin": "ast", + "community": 4, + "norm_label": "testefficiencygap", + "id": "tests_test_vrptw_engine_testefficiencygap" }, { - "id": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap", "label": ".test_optimal_order_same_as_user_gives_zero_gap()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L204", - "_origin": "ast" + "source_location": "L218", + "_origin": "ast", + "community": 4, + "norm_label": ".test_optimal_order_same_as_user_gives_zero_gap()", + "id": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap" }, { - "id": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap", "label": ".test_reversed_inefficient_route_shows_gap()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L212", - "_origin": "ast" + "source_location": "L226", + "_origin": "ast", + "community": 4, + "norm_label": ".test_reversed_inefficient_route_shows_gap()", + "id": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap" }, { - "id": "tests_test_vrptw_engine_testfatiguescore", "label": "TestFatigueScore", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L225", - "_origin": "ast" + "source_location": "L240", + "_origin": "ast", + "community": 4, + "norm_label": "testfatiguescore", + "id": "tests_test_vrptw_engine_testfatiguescore" }, { - "id": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", "label": ".test_12h_schedule_no_fatigue_penalty()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L226", - "_origin": "ast" + "source_location": "L241", + "_origin": "ast", + "community": 4, + "norm_label": ".test_12h_schedule_no_fatigue_penalty()", + "id": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty" }, { - "id": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", "label": ".test_long_schedule_triggers_fatigue()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L239", - "_origin": "ast" + "source_location": "L254", + "_origin": "ast", + "community": 4, + "norm_label": ".test_long_schedule_triggers_fatigue()", + "id": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue" }, { - "id": "tests_test_vrptw_engine_testortoolsdegradation", "label": "TestORToolsDegradation", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L256", - "_origin": "ast" + "source_location": "L272", + "_origin": "ast", + "community": 4, + "norm_label": "testortoolsdegradation", + "id": "tests_test_vrptw_engine_testortoolsdegradation" }, { - "id": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result", "label": ".test_missing_ortools_still_returns_result()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L257", - "_origin": "ast" + "source_location": "L273", + "_origin": "ast", + "community": 4, + "norm_label": ".test_missing_ortools_still_returns_result()", + "id": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result" }, { - "id": "tests_test_vrptw_engine_testriskscore", "label": "TestRiskScore", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L277", - "_origin": "ast" + "source_location": "L300", + "_origin": "ast", + "community": 4, + "norm_label": "testriskscore", + "id": "tests_test_vrptw_engine_testriskscore" }, { - "id": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100", "label": ".test_risk_score_in_0_100()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L278", - "_origin": "ast" + "source_location": "L301", + "_origin": "ast", + "community": 4, + "norm_label": ".test_risk_score_in_0_100()", + "id": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100" }, { - "id": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold", "label": ".test_pass_fail_threshold()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L284", - "_origin": "ast" + "source_location": "L307", + "_origin": "ast", + "community": 4, + "norm_label": ".test_pass_fail_threshold()", + "id": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold" }, { - "id": "tests_test_vrptw_engine_test_constants_accessible", "label": "test_constants_accessible()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L298", - "_origin": "ast" + "source_location": "L322", + "_origin": "ast", + "community": 4, + "norm_label": "test_constants_accessible()", + "id": "tests_test_vrptw_engine_test_constants_accessible" }, { - "id": "tests_test_vrptw_engine_testmodelvalidation", "label": "TestModelValidation", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L308", - "_origin": "ast" + "source_location": "L333", + "_origin": "ast", + "community": 30, + "norm_label": "testmodelvalidation", + "id": "tests_test_vrptw_engine_testmodelvalidation" }, { - "id": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lat_raises", "label": ".test_invalid_lat_raises()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L309", - "_origin": "ast" + "source_location": "L334", + "_origin": "ast", + "community": 30, + "norm_label": ".test_invalid_lat_raises()", + "id": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lat_raises" }, { - "id": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lng_raises", "label": ".test_invalid_lng_raises()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L313", - "_origin": "ast" + "source_location": "L338", + "_origin": "ast", + "community": 30, + "norm_label": ".test_invalid_lng_raises()", + "id": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lng_raises" }, { - "id": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_format_raises", "label": ".test_invalid_time_format_raises()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L317", - "_origin": "ast" + "source_location": "L342", + "_origin": "ast", + "community": 30, + "norm_label": ".test_invalid_time_format_raises()", + "id": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_format_raises" }, { - "id": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_value_raises", "label": ".test_invalid_time_value_raises()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L321", - "_origin": "ast" + "source_location": "L346", + "_origin": "ast", + "community": 30, + "norm_label": ".test_invalid_time_value_raises()", + "id": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_value_raises" }, { - "id": "tests_test_vrptw_engine_testmodelvalidation_test_negative_stay_raises", "label": ".test_negative_stay_raises()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L325", - "_origin": "ast" + "source_location": "L350", + "_origin": "ast", + "community": 30, + "norm_label": ".test_negative_stay_raises()", + "id": "tests_test_vrptw_engine_testmodelvalidation_test_negative_stay_raises" }, { - "id": "tests_test_vrptw_engine_testmodelvalidation_test_zero_stay_allowed_for_depot", "label": ".test_zero_stay_allowed_for_depot()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L329", - "_origin": "ast" + "source_location": "L354", + "_origin": "ast", + "community": 30, + "norm_label": ".test_zero_stay_allowed_for_depot()", + "id": "tests_test_vrptw_engine_testmodelvalidation_test_zero_stay_allowed_for_depot" }, { - "id": "tests_test_vrptw_engine_testmodelvalidation_test_empty_day_raises", "label": ".test_empty_day_raises()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L334", - "_origin": "ast" + "source_location": "L366", + "_origin": "ast", + "community": 30, + "norm_label": ".test_empty_day_raises()", + "id": "tests_test_vrptw_engine_testmodelvalidation_test_empty_day_raises" }, { - "id": "tests_test_vrptw_engine_testmodelvalidation_test_empty_days_raises", "label": ".test_empty_days_raises()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L338", - "_origin": "ast" + "source_location": "L370", + "_origin": "ast", + "community": 4, + "norm_label": ".test_empty_days_raises()", + "id": "tests_test_vrptw_engine_testmodelvalidation_test_empty_days_raises" }, { - "id": "tests_test_vrptw_engine_testmodelvalidation_test_open_minutes_property", "label": ".test_open_minutes_property()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L342", - "_origin": "ast" + "source_location": "L374", + "_origin": "ast", + "community": 44, + "norm_label": ".test_open_minutes_property()", + "id": "tests_test_vrptw_engine_testmodelvalidation_test_open_minutes_property" }, { - "id": "tests_test_vrptw_engine_testmodelvalidation_test_close_minutes_property", "label": ".test_close_minutes_property()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L346", - "_origin": "ast" + "source_location": "L378", + "_origin": "ast", + "community": 44, + "norm_label": ".test_close_minutes_property()", + "id": "tests_test_vrptw_engine_testmodelvalidation_test_close_minutes_property" }, { - "id": "tests_test_vrptw_engine_testefficiencygapthreshold", "label": "TestEfficiencyGapThreshold", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L355", - "_origin": "ast" + "source_location": "L388", + "_origin": "ast", + "community": 4, + "norm_label": "testefficiencygapthreshold", + "id": "tests_test_vrptw_engine_testefficiencygapthreshold" }, { - "id": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", "label": ".test_gap_over_threshold_adds_warning()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L356", - "_origin": "ast" + "source_location": "L389", + "_origin": "ast", + "community": 4, + "norm_label": ".test_gap_over_threshold_adds_warning()", + "id": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning" }, { - "id": "tests_test_vrptw_engine_testmultidayresult", "label": "TestMultiDayResult", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L376", - "_origin": "ast" + "source_location": "L410", + "_origin": "ast", + "community": 4, + "norm_label": "testmultidayresult", + "id": "tests_test_vrptw_engine_testmultidayresult" }, { - "id": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison", "label": ".test_multi_day_returns_per_day_comparison()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L377", - "_origin": "ast" + "source_location": "L411", + "_origin": "ast", + "community": 4, + "norm_label": ".test_multi_day_returns_per_day_comparison()", + "id": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison" }, { - "id": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum", "label": ".test_multi_day_user_total_travel_is_sum()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L391", - "_origin": "ast" + "source_location": "L425", + "_origin": "ast", + "community": 4, + "norm_label": ".test_multi_day_user_total_travel_is_sum()", + "id": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum" }, { - "id": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel", "label": ".test_single_place_day_no_travel()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L404", - "_origin": "ast" + "source_location": "L438", + "_origin": "ast", + "community": 4, + "norm_label": ".test_single_place_day_no_travel()", + "id": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel" }, { - "id": "tests_test_vrptw_engine_test_summary_contains_score", "label": "test_summary_contains_score()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L415", - "_origin": "ast" + "source_location": "L450", + "_origin": "ast", + "community": 4, + "norm_label": "test_summary_contains_score()", + "id": "tests_test_vrptw_engine_test_summary_contains_score" }, { - "id": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", "label": "test_deep_dive_items_have_all_fields()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L427", - "_origin": "ast" + "source_location": "L463", + "_origin": "ast", + "community": 4, + "norm_label": "test_deep_dive_items_have_all_fields()", + "id": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields" }, { - "id": "tests_test_vrptw_engine_test_cached_matrix_from_actual_file", "label": "test_cached_matrix_from_actual_file()", "file_type": "code", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L444", - "_origin": "ast" + "source_location": "L481", + "_origin": "ast", + "community": 44, + "norm_label": "test_cached_matrix_from_actual_file()", + "id": "tests_test_vrptw_engine_test_cached_matrix_from_actual_file" }, { - "id": "tests_test_vrptw_engine_rationale_1", "label": "Tests for VRPTW validation engine (TDD).", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 4, + "norm_label": "tests for vrptw validation engine (tdd).", + "id": "tests_test_vrptw_engine_rationale_1" }, { - "id": "tests_test_vrptw_engine_rationale_88", "label": "If only the reverse direction is cached, use it.", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L88", - "_origin": "ast" + "source_location": "L91", + "_origin": "ast", + "community": 4, + "norm_label": "if only the reverse direction is cached, use it.", + "id": "tests_test_vrptw_engine_rationale_91" }, { - "id": "tests_test_vrptw_engine_rationale_110", "label": "2\ubc153\uc77c: day1 last place must be depot.", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L110", - "_origin": "ast" + "source_location": "L114", + "_origin": "ast", + "community": 4, + "norm_label": "2\u1107\u1161\u11a83\u110b\u1175\u11af: day1 last place must be depot.", + "id": "tests_test_vrptw_engine_rationale_114" }, { - "id": "tests_test_vrptw_engine_rationale_140", "label": "1\ubc152\uc77c: depot constraint NOT enforced.", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L140", - "_origin": "ast" + "source_location": "L145", + "_origin": "ast", + "community": 4, + "norm_label": "1\u1107\u1161\u11a82\u110b\u1175\u11af: depot constraint not enforced.", + "id": "tests_test_vrptw_engine_rationale_145" }, { - "id": "tests_test_vrptw_engine_rationale_175", "label": "A place that closes at 09:05 \u2014 impossible to visit after travel from A.", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L175", - "_origin": "ast" + "source_location": "L181", + "_origin": "ast", + "community": 44, + "norm_label": "a place that closes at 09:05 \u2014 impossible to visit after travel from a.", + "id": "tests_test_vrptw_engine_rationale_181" }, { - "id": "tests_test_vrptw_engine_rationale_186", "label": "Arrival within 60 min of close triggers safety margin warning.", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L186", - "_origin": "ast" + "source_location": "L190", + "_origin": "ast", + "community": 44, + "norm_label": "arrival within 60 min of close triggers safety margin warning.", + "id": "tests_test_vrptw_engine_rationale_190" }, { - "id": "tests_test_vrptw_engine_rationale_205", "label": "With 2 POIs the optimal is always the same, gap should be 0 or minimal.", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L205", - "_origin": "ast" + "source_location": "L219", + "_origin": "ast", + "community": 4, + "norm_label": "with 2 pois the optimal is always the same, gap should be 0 or minimal.", + "id": "tests_test_vrptw_engine_rationale_219" }, { - "id": "tests_test_vrptw_engine_rationale_213", "label": "A\u2192C\u2192B is longer than A\u2192B\u2192C when laid out linearly.", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L213", - "_origin": "ast" + "source_location": "L227", + "_origin": "ast", + "community": 4, + "norm_label": "a\u2192c\u2192b is longer than a\u2192b\u2192c when laid out linearly.", + "id": "tests_test_vrptw_engine_rationale_227" }, { - "id": "tests_test_vrptw_engine_rationale_258", "label": "When ortools is not available, engine still returns a VRPTWResult.", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L258", - "_origin": "ast" + "source_location": "L274", + "_origin": "ast", + "community": 4, + "norm_label": "when ortools is not available, engine still returns a vrptwresult.", + "id": "tests_test_vrptw_engine_rationale_274" }, { - "id": "tests_test_vrptw_engine_rationale_357", "label": "If efficiency gap > 20%, a deep_dive WARNING should appear.", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L357", - "_origin": "ast" + "source_location": "L390", + "_origin": "ast", + "community": 4, + "norm_label": "if efficiency gap > 20%, a deep_dive warning should appear.", + "id": "tests_test_vrptw_engine_rationale_390" }, { - "id": "tests_test_vrptw_engine_rationale_428", "label": "Every DeepDiveItem must have non-empty fact, rule, risk, suggestion.", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L428", - "_origin": "ast" + "source_location": "L464", + "_origin": "ast", + "community": 4, + "norm_label": "every deepdiveitem must have non-empty fact, rule, risk, suggestion.", + "id": "tests_test_vrptw_engine_rationale_464" }, { - "id": "tests_test_vrptw_engine_rationale_445", "label": "Smoke test: load real cache_route.json and verify at least one hit.", "file_type": "rationale", "source_file": "tests/test_vrptw_engine.py", - "source_location": "L445", - "_origin": "ast" + "source_location": "L482", + "_origin": "ast", + "community": 44, + "norm_label": "smoke test: load real cache_route.json and verify at least one hit.", + "id": "tests_test_vrptw_engine_rationale_482" }, { - "id": "tests_test_warning", "label": "test_warning.py", "file_type": "code", "source_file": "tests/test_warning.py", "source_location": "L1", - "_origin": "ast" + "_origin": "ast", + "community": 18, + "norm_label": "test_warning.py", + "id": "tests_test_warning" }, { - "id": "tests_test_warning_make_poi", "label": "make_poi()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L14", - "_origin": "ast" + "source_location": "L15", + "_origin": "ast", + "community": 18, + "norm_label": "make_poi()", + "id": "tests_test_warning_make_poi" }, { - "id": "tests_test_warning_make_plan", "label": "make_plan()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L29", - "_origin": "ast" + "source_location": "L35", + "_origin": "ast", + "community": 18, + "norm_label": "make_plan()", + "id": "tests_test_warning_make_plan" }, { - "id": "tests_test_warning_make_matrix", "label": "make_matrix()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L44", - "_origin": "ast" - }, - { - "id": "tests_test_warning_py_fixture", - "label": "fixture", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast" + "source_location": "L50", + "_origin": "ast", + "community": 18, + "norm_label": "make_matrix()", + "id": "tests_test_warning_make_matrix" }, { - "id": "tests_test_warning_detector", "label": "detector()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L59", - "_origin": "ast" + "source_location": "L66", + "_origin": "ast", + "community": 18, + "norm_label": "detector()", + "id": "tests_test_warning_detector" }, { - "id": "tests_test_warning_testdenseschedule", "label": "TestDenseSchedule", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L67", - "_origin": "ast" + "source_location": "L75", + "_origin": "ast", + "community": 18, + "norm_label": "testdenseschedule", + "id": "tests_test_warning_testdenseschedule" }, { - "id": "tests_test_warning_testdenseschedule_test_dense_trigger_baby", "label": ".test_dense_trigger_baby()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L68", - "_origin": "ast" + "source_location": "L76", + "_origin": "ast", + "community": 18, + "norm_label": ".test_dense_trigger_baby()", + "id": "tests_test_warning_testdenseschedule_test_dense_trigger_baby" }, { - "id": "tests_test_warning_testdenseschedule_test_dense_trigger_friends_heavy", "label": ".test_dense_trigger_friends_heavy()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L77", - "_origin": "ast" + "source_location": "L85", + "_origin": "ast", + "community": 18, + "norm_label": ".test_dense_trigger_friends_heavy()", + "id": "tests_test_warning_testdenseschedule_test_dense_trigger_friends_heavy" }, { - "id": "tests_test_warning_testdenseschedule_test_no_dense_within_threshold", "label": ".test_no_dense_within_threshold()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L86", - "_origin": "ast" + "source_location": "L94", + "_origin": "ast", + "community": 18, + "norm_label": ".test_no_dense_within_threshold()", + "id": "tests_test_warning_testdenseschedule_test_no_dense_within_threshold" }, { - "id": "tests_test_warning_testdenseschedule_test_dense_message_includes_party_type", "label": ".test_dense_message_includes_party_type()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L95", - "_origin": "ast" + "source_location": "L103", + "_origin": "ast", + "community": 18, + "norm_label": ".test_dense_message_includes_party_type()", + "id": "tests_test_warning_testdenseschedule_test_dense_message_includes_party_type" }, { - "id": "tests_test_warning_testphysicalstrain", "label": "TestPhysicalStrain", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L109", - "_origin": "ast" + "source_location": "L118", + "_origin": "ast", + "community": 18, + "norm_label": "testphysicalstrain", + "id": "tests_test_warning_testphysicalstrain" }, { - "id": "tests_test_warning_testphysicalstrain_test_strain_trigger", "label": ".test_strain_trigger()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L110", - "_origin": "ast" + "source_location": "L119", + "_origin": "ast", + "community": 18, + "norm_label": ".test_strain_trigger()", + "id": "tests_test_warning_testphysicalstrain_test_strain_trigger" }, { - "id": "tests_test_warning_testphysicalstrain_test_no_strain_short_distance", "label": ".test_no_strain_short_distance()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L123", - "_origin": "ast" + "source_location": "L132", + "_origin": "ast", + "community": 18, + "norm_label": ".test_no_strain_short_distance()", + "id": "tests_test_warning_testphysicalstrain_test_no_strain_short_distance" }, { - "id": "tests_test_warning_testpurposemismatch", "label": "TestPurposeMismatch", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L138", - "_origin": "ast" + "source_location": "L145", + "_origin": "ast", + "community": 18, + "norm_label": "testpurposemismatch", + "id": "tests_test_warning_testpurposemismatch" }, { - "id": "tests_test_warning_testpurposemismatch_test_mismatch_cultural_all_sports", "label": ".test_mismatch_cultural_all_sports()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L139", - "_origin": "ast" + "source_location": "L146", + "_origin": "ast", + "community": 18, + "norm_label": ".test_mismatch_cultural_all_sports()", + "id": "tests_test_warning_testpurposemismatch_test_mismatch_cultural_all_sports" }, { - "id": "tests_test_warning_testpurposemismatch_test_no_mismatch_cultural_all_cultural", "label": ".test_no_mismatch_cultural_all_cultural()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L150", - "_origin": "ast" + "source_location": "L154", + "_origin": "ast", + "community": 18, + "norm_label": ".test_no_mismatch_cultural_all_cultural()", + "id": "tests_test_warning_testpurposemismatch_test_no_mismatch_cultural_all_cultural" }, { - "id": "tests_test_warning_testpurposemismatch_test_no_mismatch_when_no_travel_type", "label": ".test_no_mismatch_when_no_travel_type()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L161", - "_origin": "ast" + "source_location": "L162", + "_origin": "ast", + "community": 18, + "norm_label": ".test_no_mismatch_when_no_travel_type()", + "id": "tests_test_warning_testpurposemismatch_test_no_mismatch_when_no_travel_type" }, { - "id": "tests_test_warning_testarearevisit", "label": "TestAreaRevisit", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L173", - "_origin": "ast" + "source_location": "L175", + "_origin": "ast", + "community": 18, + "norm_label": "testarearevisit", + "id": "tests_test_warning_testarearevisit" }, { - "id": "tests_test_warning_testarearevisit_test_consecutive_same_category_triggers", "label": ".test_consecutive_same_category_triggers()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L174", - "_origin": "ast" + "source_location": "L176", + "_origin": "ast", + "community": 18, + "norm_label": ".test_consecutive_same_category_triggers()", + "id": "tests_test_warning_testarearevisit_test_consecutive_same_category_triggers" }, { - "id": "tests_test_warning_testarearevisit_test_all_different_no_revisit", "label": ".test_all_different_no_revisit()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L187", - "_origin": "ast" + "source_location": "L189", + "_origin": "ast", + "community": 18, + "norm_label": ".test_all_different_no_revisit()", + "id": "tests_test_warning_testarearevisit_test_all_different_no_revisit" }, { - "id": "tests_test_warning_testarearevisit_test_three_consecutive_triggers", "label": ".test_three_consecutive_triggers()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L199", - "_origin": "ast" + "source_location": "L201", + "_origin": "ast", + "community": 18, + "norm_label": ".test_three_consecutive_triggers()", + "id": "tests_test_warning_testarearevisit_test_three_consecutive_triggers" }, { - "id": "tests_test_warning_testarearevisit_test_two_consecutive_no_trigger", "label": ".test_two_consecutive_no_trigger()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L212", - "_origin": "ast" + "source_location": "L214", + "_origin": "ast", + "community": 18, + "norm_label": ".test_two_consecutive_no_trigger()", + "id": "tests_test_warning_testarearevisit_test_two_consecutive_no_trigger" }, { - "id": "tests_test_warning_testwarningfields", "label": "TestWarningFields", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L230", - "_origin": "ast" + "source_location": "L233", + "_origin": "ast", + "community": 18, + "norm_label": "testwarningfields", + "id": "tests_test_warning_testwarningfields" }, { - "id": "tests_test_warning_testwarningfields_test_warning_has_confidence_from_types", "label": ".test_warning_has_confidence_from_types()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L231", - "_origin": "ast" + "source_location": "L234", + "_origin": "ast", + "community": 18, + "norm_label": ".test_warning_has_confidence_from_types()", + "id": "tests_test_warning_testwarningfields_test_warning_has_confidence_from_types" }, { - "id": "tests_test_warning_testwarningfields_test_warning_message_not_empty", "label": ".test_warning_message_not_empty()", "file_type": "code", "source_file": "tests/test_warning.py", "source_location": "L242", - "_origin": "ast" + "_origin": "ast", + "community": 18, + "norm_label": ".test_warning_message_not_empty()", + "id": "tests_test_warning_testwarningfields_test_warning_message_not_empty" }, { - "id": "tests_test_warning_testdayindex", "label": "TestDayIndex", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L255", - "_origin": "ast" + "source_location": "L256", + "_origin": "ast", + "community": 18, + "norm_label": "testdayindex", + "id": "tests_test_warning_testdayindex" }, { - "id": "tests_test_warning_testdayindex_test_day_index_defaults_to_none", "label": ".test_day_index_defaults_to_none()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L256", - "_origin": "ast" + "source_location": "L257", + "_origin": "ast", + "community": 18, + "norm_label": ".test_day_index_defaults_to_none()", + "id": "tests_test_warning_testdayindex_test_day_index_defaults_to_none" }, { - "id": "tests_test_warning_testdayindex_test_day_index_and_poi_names_set_when_passed", "label": ".test_day_index_and_poi_names_set_when_passed()", "file_type": "code", "source_file": "tests/test_warning.py", - "source_location": "L266", - "_origin": "ast" + "source_location": "L267", + "_origin": "ast", + "community": 18, + "norm_label": ".test_day_index_and_poi_names_set_when_passed()", + "id": "tests_test_warning_testdayindex_test_day_index_and_poi_names_set_when_passed" }, { - "id": "tests_test_warning_rationale_1", "label": "Tests for WarningDetector (TDD).", "file_type": "rationale", "source_file": "tests/test_warning.py", "source_location": "L1", - "_origin": "ast" - } - ], - "edges": [ + "_origin": "ast", + "community": 18, + "norm_label": "tests for warningdetector (tdd).", + "id": "tests_test_warning_rationale_1" + }, { - "source": "gun_scripts_build_hours_db", - "target": "re", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L17", - "weight": 1.0, - "_origin": "ast" + "label": "router.py", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1", + "_origin": "ast", + "community": 25, + "norm_label": "router.py", + "id": "src_api_router" }, { - "source": "gun_scripts_build_hours_db", - "target": "pathlib", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L18", - "weight": 1.0, - "_origin": "ast" + "label": "_kakao_hint()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L60", + "_origin": "ast", + "community": 45, + "norm_label": "_kakao_hint()", + "id": "src_api_router_kakao_hint" }, { - "source": "gun_scripts_build_hours_db", - "target": "collections", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L19", - "weight": 1.0, - "_origin": "ast" + "label": "_kakao_cat_code()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L74", + "_origin": "ast", + "community": 25, + "norm_label": "_kakao_cat_code()", + "id": "src_api_router_kakao_cat_code" }, { - "source": "gun_scripts_build_hours_db", - "target": "openpyxl", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L21", - "weight": 1.0, - "_origin": "ast" + "label": "_extract_chosung()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L848", + "_origin": "ast", + "community": 25, + "norm_label": "_extract_chosung()", + "id": "src_api_router_extract_chosung" }, { - "source": "gun_scripts_build_hours_db", - "target": "openpyxl_styles", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L22", - "weight": 1.0, - "_origin": "ast" + "label": "_normalize()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L859", + "_origin": "ast", + "community": 25, + "norm_label": "_normalize()", + "id": "src_api_router_normalize" }, { - "source": "gun_scripts_build_hours_db", - "target": "openpyxl_utils", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L23", - "weight": 1.0, - "_origin": "ast" + "label": "_guess_dwell()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L868", + "_origin": "ast", + "community": 25, + "norm_label": "_guess_dwell()", + "id": "src_api_router_guess_dwell" }, { - "source": "gun_scripts_build_hours_db", - "target": "gun_scripts_build_hours_db_match_sub_category", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L403", - "weight": 1.0, - "_origin": "ast" + "label": "_addr_to_region()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L905", + "_origin": "ast", + "community": 25, + "norm_label": "_addr_to_region()", + "id": "src_api_router_addr_to_region" }, { - "source": "gun_scripts_build_hours_db", - "target": "gun_scripts_build_hours_db_confidence", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L428", - "weight": 1.0, - "_origin": "ast" + "label": "_parse_jeju_hours()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L922", + "_origin": "ast", + "community": 25, + "norm_label": "_parse_jeju_hours()", + "id": "src_api_router_parse_jeju_hours" }, { - "source": "gun_scripts_build_hours_db", - "target": "gun_scripts_build_hours_db_build_place_hours_xlsx", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L442", - "weight": 1.0, - "_origin": "ast" + "label": "_build_jeju_place_index()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L933", + "_origin": "ast", + "community": 25, + "norm_label": "_build_jeju_place_index()", + "id": "src_api_router_build_jeju_place_index" }, { - "source": "gun_scripts_build_hours_db_build_place_hours_xlsx", - "target": "counter", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L442", - "weight": 1.0, - "_origin": "ast" + "label": "_build_coord_index()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L983", + "_origin": "ast", + "community": 25, + "norm_label": "_build_coord_index()", + "id": "src_api_router_build_coord_index" }, { - "source": "gun_scripts_build_hours_db", - "target": "gun_scripts_build_hours_db_build_category_std_xlsx", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L543", - "weight": 1.0, - "_origin": "ast" + "label": "_build_place_list()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1036", + "_origin": "ast", + "community": 25, + "norm_label": "_build_place_list()", + "id": "src_api_router_build_place_list" }, { - "source": "gun_scripts_build_hours_db_build_category_std_xlsx", - "target": "counter", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L543", - "weight": 1.0, - "_origin": "ast" + "label": "_build_full_place_list()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1097", + "_origin": "ast", + "community": 25, + "norm_label": "_build_full_place_list()", + "id": "src_api_router_build_full_place_list" }, { - "source": "gun_scripts_build_hours_db", - "target": "gun_scripts_build_hours_db_build_hours_db_py", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L605", - "weight": 1.0, - "_origin": "ast" + "label": "_build_monthly_congestion()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1217", + "_origin": "ast", + "community": 41, + "norm_label": "_build_monthly_congestion()", + "id": "src_api_router_build_monthly_congestion" }, { - "source": "gun_scripts_build_hours_db", - "target": "gun_scripts_build_hours_db_main", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L700", - "weight": 1.0, - "_origin": "ast" + "label": "_lookup_place()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1269", + "_origin": "ast", + "community": 25, + "norm_label": "_lookup_place()", + "id": "src_api_router_lookup_place" }, { - "source": "gun_scripts_build_hours_db_build_place_hours_xlsx", - "target": "counter", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L456", - "weight": 1.0, - "_origin": "ast" + "label": "_resolve_poi()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1288", + "_origin": "ast", + "community": 45, + "norm_label": "_resolve_poi()", + "id": "src_api_router_resolve_poi" }, { - "source": "gun_scripts_build_hours_db_build_place_hours_xlsx", - "target": "gun_scripts_build_hours_db_match_sub_category", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L459", - "weight": 1.0, - "_origin": "ast" + "label": "POI", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 45, + "norm_label": "poi", + "id": "poi" }, { - "source": "gun_scripts_build_hours_db_build_place_hours_xlsx", - "target": "gun_scripts_build_hours_db_confidence", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L474", - "weight": 1.0, - "_origin": "ast" + "label": "POIInfo", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 45, + "norm_label": "poiinfo", + "id": "poiinfo" }, { - "source": "gun_scripts_build_hours_db_main", - "target": "gun_scripts_build_hours_db_build_place_hours_xlsx", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L701", - "weight": 1.0, - "_origin": "ast" + "label": "_calc_reliability_score()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1394", + "_origin": "ast", + "community": 45, + "norm_label": "_calc_reliability_score()", + "id": "src_api_router_calc_reliability_score" }, { - "source": "gun_scripts_build_hours_db_main", - "target": "gun_scripts_build_hours_db_build_category_std_xlsx", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L702", - "weight": 1.0, - "_origin": "ast" + "label": "_get_pipeline()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1404", + "_origin": "ast", + "community": 45, + "norm_label": "_get_pipeline()", + "id": "src_api_router_get_pipeline" }, { - "source": "gun_scripts_build_hours_db_main", - "target": "gun_scripts_build_hours_db_build_hours_db_py", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L703", - "weight": 1.0, - "_origin": "ast" + "label": "ValidatorPipeline", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 45, + "norm_label": "validatorpipeline", + "id": "validatorpipeline" }, { - "source": "gun_scripts_build_hours_db_rationale_1", - "target": "gun_scripts_build_hours_db", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "label": "get", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 41, + "norm_label": "get", + "id": "get" }, { - "source": "gun_scripts_build_hours_db_rationale_404", - "target": "gun_scripts_build_hours_db_match_sub_category", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L404", - "weight": 1.0, - "_origin": "ast" + "label": "list_places()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1412", + "_origin": "ast", + "community": 25, + "norm_label": "list_places()", + "id": "src_api_router_list_places" }, { - "source": "gun_scripts_build_hours_db_rationale_429", - "target": "gun_scripts_build_hours_db_confidence", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_hours_db.py", - "source_location": "L429", - "weight": 1.0, - "_origin": "ast" + "label": "PlacesResponse", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 25, + "norm_label": "placesresponse", + "id": "placesresponse" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "argparse", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L25", - "weight": 1.0, - "_origin": "ast" + "label": "monthly_congestion()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1494", + "_origin": "ast", + "community": 25, + "norm_label": "monthly_congestion()", + "id": "src_api_router_monthly_congestion" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "csv", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L26", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "gun_scripts_build_itinerary_excel", - "target": "json", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L27", - "weight": 1.0, - "_origin": "ast" + "label": "list_regions()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1506", + "_origin": "ast", + "community": 41, + "norm_label": "list_regions()", + "id": "src_api_router_list_regions" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "sys", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L28", - "weight": 1.0, - "_origin": "ast" + "label": "parse_text()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1521", + "_origin": "ast", + "community": 58, + "norm_label": "parse_text()", + "id": "src_api_router_parse_text" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "collections", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L29", - "weight": 1.0, - "_origin": "ast" + "label": "ParseTextRequest", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 58, + "norm_label": "parsetextrequest", + "id": "parsetextrequest" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "datetime", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L30", - "weight": 1.0, - "_origin": "ast" + "label": "ParsedPlanResponse", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 58, + "norm_label": "parsedplanresponse", + "id": "parsedplanresponse" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "pathlib", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L31", - "weight": 1.0, - "_origin": "ast" + "label": "parse_document()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1530", + "_origin": "ast", + "community": 58, + "norm_label": "parse_document()", + "id": "src_api_router_parse_document" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "typing", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L32", - "weight": 1.0, - "_origin": "ast" + "label": "resolve_coords()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1547", + "_origin": "ast", + "community": 45, + "norm_label": "resolve_coords()", + "id": "src_api_router_resolve_coords" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "pandas", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L34", - "weight": 1.0, - "_origin": "ast" + "label": "DayPlanWeb", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 45, + "norm_label": "dayplanweb", + "id": "dayplanweb" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_data_dwell_db", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L41", - "weight": 1.0, - "_origin": "ast" + "label": "validate_plan()", + "file_type": "code", + "source_file": "src/api/router.py", + "source_location": "L1567", + "_origin": "ast", + "community": 45, + "norm_label": "validate_plan()", + "id": "src_api_router_validate_plan" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_data_hours_db", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L42", - "weight": 1.0, - "_origin": "ast" + "label": "ValidateRequest", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 45, + "norm_label": "validaterequest", + "id": "validaterequest" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L43", - "weight": 1.0, - "_origin": "ast" + "label": "ValidateResponse", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 45, + "norm_label": "validateresponse", + "id": "validateresponse" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_scoring_cluster_dispersion", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L44", - "weight": 1.0, - "_origin": "ast" + "label": "FastAPI \ub77c\uc6b0\ud130 \u2014 /validate, /places \uc5d4\ub4dc\ud3ec\uc778\ud2b8.", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L1", + "_origin": "ast", + "community": 25, + "norm_label": "fastapi \u1105\u1161\u110b\u116e\u1110\u1165 \u2014 /validate, /places \u110b\u1166\u11ab\u1103\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173.", + "id": "src_api_router_rationale_1" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_scoring_travel_ratio", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L45", - "weight": 1.0, - "_origin": "ast" + "label": "\uce74\uce74\uc624 category_name \u2192 hours_db \uce74\ud14c\uace0\ub9ac \ud78c\ud2b8.", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L61", + "_origin": "ast", + "community": 45, + "norm_label": "\u110f\u1161\u110f\u1161\u110b\u1169 category_name \u2192 hours_db \u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175 \u1112\u1175\u11ab\u1110\u1173.", + "id": "src_api_router_rationale_61" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_validation_kakao_matrix", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L46", - "weight": 1.0, - "_origin": "ast" + "label": "\uce74\uce74\uc624 category_name \u2192 \uc571 \uce74\ud14c\uace0\ub9ac \ucf54\ub4dc(12 \uad00\uad11\uc9c0\u00b714 \ubb38\ud654\u00b738 \uc1fc\ud551\u00b739 \uc74c\uc2dd\uc810\u00b732 \uc219\ubc15).", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L75", + "_origin": "ast", + "community": 25, + "norm_label": "\u110f\u1161\u110f\u1161\u110b\u1169 category_name \u2192 \u110b\u1162\u11b8 \u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175 \u110f\u1169\u1103\u1173(12 \u1100\u116a\u11ab\u1100\u116a\u11bc\u110c\u1175\u00b714 \u1106\u116e\u11ab\u1112\u116a\u00b738 \u1109\u116d\u1111\u1175\u11bc\u00b739 \u110b\u1173\u11b7\u1109\u1175\u11a8\u110c\u1165\u11b7\u00b732 \u1109\u116e\u11a8\u1107\u1161\u11a8).", + "id": "src_api_router_rationale_75" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_validation_vrptw_engine", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L47", - "weight": 1.0, - "_origin": "ast" + "label": "09:00~18:00 (\ub9e4\ud45c\ub9c8\uac10 17:00)' \uac19\uc740 \uc6d0\ubb38\uc5d0\uc11c \uccab HH:MM~HH:MM \uad6c\uac04\ub9cc \ubf51\uc544\ub0b8\ub2e4.", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L923", + "_origin": "ast", + "community": 25, + "norm_label": "09:00~18:00 (\u1106\u1162\u1111\u116d\u1106\u1161\u1100\u1161\u11b7 17:00)' \u1100\u1161\u11c0\u110b\u1173\u11ab \u110b\u116f\u11ab\u1106\u116e\u11ab\u110b\u1166\u1109\u1165 \u110e\u1165\u11ba hh:mm~hh:mm \u1100\u116e\u1100\u1161\u11ab\u1106\u1161\u11ab \u1108\u1169\u11b8\u110b\u1161\u1102\u1162\u11ab\u1103\u1161.", + "id": "src_api_router_rationale_923" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "gun_scripts_build_itinerary_excel_parse_weekday", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L99", - "weight": 1.0, - "_origin": "ast" + "label": "data/\uc81c\uc8fc\ud2b9\ubcc4\uc790\uce58\ub3c4_\ud1b5\ud569_TourAPI\ubcd1\ud569.xlsx \u2014 \uc2e4\uce21 \uc88c\ud45c\ub97c \uac00\uc9c4 \uc81c\uc8fc \uc804\uc5ed 26,679\uac74 \ud1b5\ud569 DB. \uae30\uc874\u2026", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L934", + "_origin": "ast", + "community": 25, + "norm_label": "data/\u110c\u1166\u110c\u116e\u1110\u1173\u11a8\u1107\u1167\u11af\u110c\u1161\u110e\u1175\u1103\u1169_\u1110\u1169\u11bc\u1112\u1161\u11b8_tourapi\u1107\u1167\u11bc\u1112\u1161\u11b8.xlsx \u2014 \u1109\u1175\u11af\u110e\u1173\u11a8 \u110c\u116a\u1111\u116d\u1105\u1173\u11af \u1100\u1161\u110c\u1175\u11ab \u110c\u1166\u110c\u116e \u110c\u1165\u11ab\u110b\u1167\u11a8 26,679\u1100\u1165\u11ab \u1110\u1169\u11bc\u1112\u1161\u11b8 db. \u1100\u1175\u110c\u1169\u11ab...", + "id": "src_api_router_rationale_934" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "gun_scripts_build_itinerary_excel_minutes_to_hhmm", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L109", - "weight": 1.0, - "_origin": "ast" + "label": "\uc88c\ud45c \uc778\ub371\uc2a4 \ube4c\ub4dc. 1\ucc28: data/pois.csv \u2014 TourAPI \ubc8c\ud06c \uc218\uc9d1 (20,168 POI, \uc804\uad6d \uc88c\ud45c \uc8fc\uc18c\uc6d0\ubcf8) 2\ucc28:\u2026", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L984", + "_origin": "ast", + "community": 25, + "norm_label": "\u110c\u116a\u1111\u116d \u110b\u1175\u11ab\u1103\u1166\u11a8\u1109\u1173 \u1107\u1175\u11af\u1103\u1173. 1\u110e\u1161: data/pois.csv \u2014 tourapi \u1107\u1165\u11af\u110f\u1173 \u1109\u116e\u110c\u1175\u11b8 (20,168 poi, \u110c\u1165\u11ab\u1100\u116e\u11a8 \u110c\u116a\u1111\u116d \u110c\u116e\u1109\u1169\u110b\u116f\u11ab\u1107\u1169\u11ab) 2\u110e\u1161:...", + "id": "src_api_router_rationale_984" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "gun_scripts_build_itinerary_excel_check_hours_violations", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L115", - "weight": 1.0, - "_origin": "ast" + "label": "congestion_stats.csv \uc5d0\uc11c \uace0\uc720 \uc7a5\uc18c + annual_max \uc9d1\uacc4 \u2192 \uc88c\ud45c \uacb0\ud569 \u2192 \uc815\ub82c.", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L1037", + "_origin": "ast", + "community": 25, + "norm_label": "congestion_stats.csv \u110b\u1166\u1109\u1165 \u1100\u1169\u110b\u1172 \u110c\u1161\u11bc\u1109\u1169 + annual_max \u110c\u1175\u11b8\u1100\u1168 \u2192 \u110c\u116a\u1111\u116d \u1100\u1167\u11af\u1112\u1161\u11b8 \u2192 \u110c\u1165\u11bc\u1105\u1167\u11af.", + "id": "src_api_router_rationale_1037" }, { - "source": "gun_scripts_build_itinerary_excel_check_hours_violations", - "target": "src_data_hours_db_hoursspec", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L115", - "weight": 1.0, - "_origin": "ast" + "label": "pois.csv(20,168) + wellness(175) + barrier_free(1,799) \ud1b5\ud569 \uc7a5\uc18c \ubaa9\ub85d.", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L1098", + "_origin": "ast", + "community": 25, + "norm_label": "pois.csv(20,168) + wellness(175) + barrier_free(1,799) \u1110\u1169\u11bc\u1112\u1161\u11b8 \u110c\u1161\u11bc\u1109\u1169 \u1106\u1169\u11a8\u1105\u1169\u11a8.", + "id": "src_api_router_rationale_1098" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "gun_scripts_build_itinerary_excel_poimatcher", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L161", - "weight": 1.0, - "_origin": "ast" + "label": "congestion_stats.csv\uc758 \uc6d4\ubcc4 \ud63c\uc7a1\ub3c4 \uc810\uc218 \uc778\ub371\uc2a4.", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L1218", + "_origin": "ast", + "community": 41, + "norm_label": "congestion_stats.csv\u110b\u1174 \u110b\u116f\u11af\u1107\u1167\u11af \u1112\u1169\u11ab\u110c\u1161\u11b8\u1103\u1169 \u110c\u1165\u11b7\u1109\u116e \u110b\u1175\u11ab\u1103\u1166\u11a8\u1109\u1173.", + "id": "src_api_router_rationale_1218" }, { - "source": "gun_scripts_build_itinerary_excel_poimatcher", - "target": "gun_scripts_build_itinerary_excel_poimatcher_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L164", - "weight": 1.0, - "_origin": "ast" + "label": "\uc774\ub984\uc73c\ub85c place dict \uc870\ud68c. \uc815\ud655 \u2192 \ubd80\ubd84 \uc21c\uc73c\ub85c \uc2dc\ub3c4. congestion \uae30\ubc18 \uc778\uae30 \uc7a5\uc18c(_PLACE_NORM_INDEX) \uc6b0\uc120,\u2026", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L1270", + "_origin": "ast", + "community": 25, + "norm_label": "\u110b\u1175\u1105\u1173\u11b7\u110b\u1173\u1105\u1169 place dict \u110c\u1169\u1112\u116c. \u110c\u1165\u11bc\u1112\u116a\u11a8 \u2192 \u1107\u116e\u1107\u116e\u11ab \u1109\u116e\u11ab\u110b\u1173\u1105\u1169 \u1109\u1175\u1103\u1169. congestion \u1100\u1175\u1107\u1161\u11ab \u110b\u1175\u11ab\u1100\u1175 \u110c\u1161\u11bc\u1109\u1169(_place_norm_index) \u110b\u116e\u1109\u1165\u11ab,...", + "id": "src_api_router_rationale_1270" }, { - "source": "gun_scripts_build_itinerary_excel_poimatcher_init", - "target": "gun_scripts_build_itinerary_excel_py_path", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L164", - "weight": 1.0, - "_origin": "ast" + "label": "\ub4f1\ub85d \uc7a5\uc18c \ubaa9\ub85d. q=\uac80\uc0c9\uc5b4, region=\uc9c0\uc5ed \ud544\ud130, cat=\uce74\ud14c\uace0\ub9ac \ucf54\ub4dc, extended=\uc804\uccb4DB \ucd08\uae30 \ub85c\ub4dc. offset/limit\uc73c\ub85c\u2026", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L1420", + "_origin": "ast", + "community": 25, + "norm_label": "\u1103\u1173\u11bc\u1105\u1169\u11a8 \u110c\u1161\u11bc\u1109\u1169 \u1106\u1169\u11a8\u1105\u1169\u11a8. q=\u1100\u1165\u11b7\u1109\u1162\u11a8\u110b\u1165, region=\u110c\u1175\u110b\u1167\u11a8 \u1111\u1175\u11af\u1110\u1165, cat=\u110f\u1161\u1110\u1166\u1100\u1169\u1105\u1175 \u110f\u1169\u1103\u1173, extended=\u110c\u1165\u11ab\u110e\u1166db \u110e\u1169\u1100\u1175 \u1105\u1169\u1103\u1173. offset/limit\u110b\u1173\u1105\u1169...", + "id": "src_api_router_rationale_1420" }, { - "source": "gun_scripts_build_itinerary_excel_poimatcher", - "target": "gun_scripts_build_itinerary_excel_poimatcher_match", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L179", - "weight": 1.0, - "_origin": "ast" + "label": "\ucd94\ucc9c \uacbd\ub85c\ub97c \ubcf5\uc0ac\ud55c \ud14d\uc2a4\ud2b8 \u2192 \ucffc\ub9ac \ub9ac\ub77c\uc774\ud305\uc73c\ub85c day/place \uad6c\uc870 \ucd94\ucd9c.", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L1522", + "_origin": "ast", + "community": 58, + "norm_label": "\u110e\u116e\u110e\u1165\u11ab \u1100\u1167\u11bc\u1105\u1169\u1105\u1173\u11af \u1107\u1169\u11a8\u1109\u1161\u1112\u1161\u11ab \u1110\u1166\u11a8\u1109\u1173\u1110\u1173 \u2192 \u110f\u116f\u1105\u1175 \u1105\u1175\u1105\u1161\u110b\u1175\u1110\u1175\u11bc\u110b\u1173\u1105\u1169 day/place \u1100\u116e\u110c\u1169 \u110e\u116e\u110e\u116e\u11af.", + "id": "src_api_router_rationale_1522" }, { - "source": "gun_scripts_build_itinerary_excel_poimatcher", - "target": "gun_scripts_build_itinerary_excel_poimatcher_row_to_dict", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L203", - "weight": 1.0, - "_origin": "ast" + "label": "AI \ud50c\ub798\ub108 \uacb0\uacfc PDF\u00b7\uc2a4\ud06c\ub9b0\uc0f7(PNG/JPG) \u2192 Claude Vision\uc73c\ub85c day/place \uad6c\uc870 \ucd94\ucd9c.", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L1531", + "_origin": "ast", + "community": 58, + "norm_label": "ai \u1111\u1173\u11af\u1105\u1162\u1102\u1165 \u1100\u1167\u11af\u1100\u116a pdf\u00b7\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba(png/jpg) \u2192 claude vision\u110b\u1173\u1105\u1169 day/place \u1100\u116e\u110c\u1169 \u110e\u116e\u110e\u116e\u11af.", + "id": "src_api_router_rationale_1531" }, { - "source": "gun_scripts_build_itinerary_excel_poimatcher_row_to_dict", - "target": "gun_scripts_build_itinerary_excel_py_any", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L203", - "weight": 1.0, - "_origin": "ast" + "label": "\ube4c\ub354(Step2) \uc9c0\ub3c4\uc6a9 \uc88c\ud45c \uc870\ud68c. \uac80\uc99d \ud30c\uc774\ud504\ub77c\uc778(Hard Fail/\uc2a4\ucf54\uc5b4\ub9c1/LLM \uc124\uba85) \uc5c6\uc774 \uc88c\ud45c \ud574\uc11d\ub9cc \uc218\ud589\ud574 \ube60\ub974\uac8c \uc751\ub2f5\ud55c\ub2e4.", + "file_type": "rationale", + "source_file": "src/api/router.py", + "source_location": "L1548", + "_origin": "ast", + "community": 45, + "norm_label": "\u1107\u1175\u11af\u1103\u1165(step2) \u110c\u1175\u1103\u1169\u110b\u116d\u11bc \u110c\u116a\u1111\u116d \u110c\u1169\u1112\u116c. \u1100\u1165\u11b7\u110c\u1173\u11bc \u1111\u1161\u110b\u1175\u1111\u1173\u1105\u1161\u110b\u1175\u11ab(hard fail/\u1109\u1173\u110f\u1169\u110b\u1165\u1105\u1175\u11bc/llm \u1109\u1165\u11af\u1106\u1167\u11bc) \u110b\u1165\u11b9\u110b\u1175 \u110c\u116a\u1111\u116d \u1112\u1162\u1109\u1165\u11a8\u1106\u1161\u11ab \u1109\u116e\u1112\u1162\u11bc\u1112\u1162 \u1108\u1161\u1105\u1173\u1100\u1166 \u110b\u1173\u11bc\u1103\u1161\u11b8\u1112\u1161\u11ab\u1103\u1161.", + "id": "src_api_router_rationale_1548" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "gun_scripts_build_itinerary_excel_to_vrptw_place", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L219", - "weight": 1.0, - "_origin": "ast" + "label": "place_resolver.py", + "file_type": "code", + "source_file": "src/data/place_resolver.py", + "source_location": "L1", + "_origin": "ast", + "community": 7, + "norm_label": "place_resolver.py", + "id": "src_data_place_resolver" }, { - "source": "gun_scripts_build_itinerary_excel_to_vrptw_place", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L219", - "weight": 1.0, - "_origin": "ast" + "label": "_normalize()", + "file_type": "code", + "source_file": "src/data/place_resolver.py", + "source_location": "L12", + "_origin": "ast", + "community": 7, + "norm_label": "_normalize()", + "id": "src_data_place_resolver_normalize" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "gun_scripts_build_itinerary_excel_process_one_day", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L237", - "weight": 1.0, - "_origin": "ast" + "label": "ExternalPlaceResolver", + "file_type": "code", + "source_file": "src/data/place_resolver.py", + "source_location": "L16", + "_origin": "ast", + "community": 7, + "norm_label": "externalplaceresolver", + "id": "src_data_place_resolver_externalplaceresolver" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "gun_scripts_build_itinerary_excel_main", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L356", - "weight": 1.0, - "_origin": "ast" + "label": ".__init__()", + "file_type": "code", + "source_file": "src/data/place_resolver.py", + "source_location": "L19", + "_origin": "ast", + "community": 7, + "norm_label": ".__init__()", + "id": "src_data_place_resolver_externalplaceresolver_init" }, { - "source": "gun_scripts_build_itinerary_excel_check_hours_violations", - "target": "gun_scripts_build_itinerary_excel_minutes_to_hhmm", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L135", - "weight": 1.0, - "_origin": "ast" + "label": "KakaoLocalClient", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 7, + "norm_label": "kakaolocalclient", + "id": "kakaolocalclient" }, { - "source": "gun_scripts_build_itinerary_excel_poimatcher_match", - "target": "gun_scripts_build_itinerary_excel_poimatcher_row_to_dict", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L188", - "weight": 1.0, - "_origin": "ast" + "label": "TourAPIClient", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 7, + "norm_label": "tourapiclient", + "id": "tourapiclient" }, { - "source": "gun_scripts_build_itinerary_excel_to_vrptw_place", - "target": "src_data_models_vrptwplace", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L226", - "weight": 1.0, - "_origin": "ast" + "label": ".from_settings()", + "file_type": "code", + "source_file": "src/data/place_resolver.py", + "source_location": "L28", + "_origin": "ast", + "community": 7, + "norm_label": ".from_settings()", + "id": "src_data_place_resolver_externalplaceresolver_from_settings" }, { - "source": "gun_scripts_build_itinerary_excel_process_one_day", - "target": "gun_scripts_build_itinerary_excel_to_vrptw_place", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L246", - "weight": 1.0, - "_origin": "ast" + "label": "Settings", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 7, + "norm_label": "settings", + "id": "settings" }, { - "source": "gun_scripts_build_itinerary_excel_process_one_day", - "target": "gun_scripts_build_itinerary_excel_parse_weekday", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L273", - "weight": 1.0, - "_origin": "ast" + "label": ".resolve()", + "file_type": "code", + "source_file": "src/data/place_resolver.py", + "source_location": "L34", + "_origin": "ast", + "community": 7, + "norm_label": ".resolve()", + "id": "src_data_place_resolver_externalplaceresolver_resolve" }, { - "source": "gun_scripts_build_itinerary_excel_process_one_day", - "target": "gun_scripts_build_itinerary_excel_check_hours_violations", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L280", - "weight": 1.0, - "_origin": "ast" + "label": "ExternalPlaceResolution", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 7, + "norm_label": "externalplaceresolution", + "id": "externalplaceresolution" }, { - "source": "gun_scripts_build_itinerary_excel_process_one_day", - "target": "gun_scripts_build_itinerary_excel_minutes_to_hhmm", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L285", - "weight": 1.0, - "_origin": "ast" + "label": ".search_keyword_list()", + "file_type": "code", + "source_file": "src/data/place_resolver.py", + "source_location": "L84", + "_origin": "ast", + "community": 7, + "norm_label": ".search_keyword_list()", + "id": "src_data_place_resolver_externalplaceresolver_search_keyword_list" }, { - "source": "gun_scripts_build_itinerary_excel_main", - "target": "gun_scripts_build_itinerary_excel_py_path", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L364", - "weight": 1.0, - "_origin": "ast" + "label": "KakaoPlace", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 7, + "norm_label": "kakaoplace", + "id": "kakaoplace" }, { - "source": "gun_scripts_build_itinerary_excel_main", - "target": "gun_scripts_build_itinerary_excel_poimatcher", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L384", - "weight": 1.0, - "_origin": "ast" + "label": "\uc678\ubd80 \uc7a5\uc18c \ud074\ub77c\uc774\uc5b8\ud2b8\ub97c \uc870\ud569\ud558\ub294 \ub370\uc774\ud130 \ub808\uc774\uc5b4 resolver.", + "file_type": "rationale", + "source_file": "src/data/place_resolver.py", + "source_location": "L1", + "_origin": "ast", + "community": 7, + "norm_label": "\u110b\u116c\u1107\u116e \u110c\u1161\u11bc\u1109\u1169 \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173\u1105\u1173\u11af \u110c\u1169\u1112\u1161\u11b8\u1112\u1161\u1102\u1173\u11ab \u1103\u1166\u110b\u1175\u1110\u1165 \u1105\u1166\u110b\u1175\u110b\u1165 resolver.", + "id": "src_data_place_resolver_rationale_1" }, { - "source": "gun_scripts_build_itinerary_excel_main", - "target": "gun_scripts_build_itinerary_excel_poimatcher_match", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L389", - "weight": 1.0, - "_origin": "ast" + "label": "TourAPI, Kakao \ud0a4\uc6cc\ub4dc \uac80\uc0c9, \uc8fc\uc18c \uc9c0\uc624\ucf54\ub529\uc758 \uc6b0\uc120\uc21c\uc704\ub97c \uad00\ub9ac\ud55c\ub2e4.", + "file_type": "rationale", + "source_file": "src/data/place_resolver.py", + "source_location": "L17", + "_origin": "ast", + "community": 7, + "norm_label": "tourapi, kakao \u110f\u1175\u110b\u116f\u1103\u1173 \u1100\u1165\u11b7\u1109\u1162\u11a8, \u110c\u116e\u1109\u1169 \u110c\u1175\u110b\u1169\u110f\u1169\u1103\u1175\u11bc\u110b\u1174 \u110b\u116e\u1109\u1165\u11ab\u1109\u116e\u11ab\u110b\u1171\u1105\u1173\u11af \u1100\u116a\u11ab\u1105\u1175\u1112\u1161\u11ab\u1103\u1161.", + "id": "src_data_place_resolver_rationale_17" }, { - "source": "gun_scripts_build_itinerary_excel_main", - "target": "gun_scripts_build_itinerary_excel_parse_weekday", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L427", - "weight": 1.0, - "_origin": "ast" + "label": "\uce74\uce74\uc624 \uc7a5\uc18c \ubaa9\ub85d \uac80\uc0c9\uc744 data \ub808\uc774\uc5b4\uc5d0\uc11c \uc218\ud589\ud55c\ub2e4.", + "file_type": "rationale", + "source_file": "src/data/place_resolver.py", + "source_location": "L85", + "_origin": "ast", + "community": 7, + "norm_label": "\u110f\u1161\u110f\u1161\u110b\u1169 \u110c\u1161\u11bc\u1109\u1169 \u1106\u1169\u11a8\u1105\u1169\u11a8 \u1100\u1165\u11b7\u1109\u1162\u11a8\u110b\u1173\u11af data \u1105\u1166\u110b\u1175\u110b\u1165\u110b\u1166\u1109\u1165 \u1109\u116e\u1112\u1162\u11bc\u1112\u1161\u11ab\u1103\u1161.", + "id": "src_data_place_resolver_rationale_85" }, { - "source": "gun_scripts_build_itinerary_excel_main", - "target": "gun_scripts_build_itinerary_excel_process_one_day", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L466", - "weight": 1.0, - "_origin": "ast" + "label": "matrix/__init__.py", + "file_type": "code", + "source_file": "src/matrix/__init__.py", + "source_location": "L1", + "_origin": "ast", + "community": 106, + "norm_label": "matrix/__init__.py", + "id": "src_matrix_init" }, { - "source": "gun_scripts_build_itinerary_excel_rationale_1", - "target": "gun_scripts_build_itinerary_excel", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", + "label": "test_place_resolver.py", + "file_type": "code", + "source_file": "tests/test_place_resolver.py", "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "community": 7, + "norm_label": "test_place_resolver.py", + "id": "tests_test_place_resolver" }, { - "source": "gun_scripts_build_itinerary_excel_rationale_100", - "target": "gun_scripts_build_itinerary_excel_parse_weekday", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L100", - "weight": 1.0, - "_origin": "ast" + "label": "test_resolver_prefers_tour_api_and_returns_pydantic_model()", + "file_type": "code", + "source_file": "tests/test_place_resolver.py", + "source_location": "L7", + "_origin": "ast", + "community": 7, + "norm_label": "test_resolver_prefers_tour_api_and_returns_pydantic_model()", + "id": "tests_test_place_resolver_test_resolver_prefers_tour_api_and_returns_pydantic_model" }, { - "source": "gun_scripts_build_itinerary_excel_rationale_110", - "target": "gun_scripts_build_itinerary_excel_minutes_to_hhmm", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L110", - "weight": 1.0, - "_origin": "ast" + "label": "test_resolver_falls_back_to_kakao_then_geocode()", + "file_type": "code", + "source_file": "tests/test_place_resolver.py", + "source_location": "L38", + "_origin": "ast", + "community": 7, + "norm_label": "test_resolver_falls_back_to_kakao_then_geocode()", + "id": "tests_test_place_resolver_test_resolver_falls_back_to_kakao_then_geocode" }, { - "source": "gun_scripts_build_itinerary_excel_rationale_121", - "target": "gun_scripts_build_itinerary_excel_check_hours_violations", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L121", - "weight": 1.0, - "_origin": "ast" + "label": "\uc678\ubd80 \uc7a5\uc18c resolver\uc758 \ud638\ucd9c \uc6b0\uc120\uc21c\uc704\uc640 \uc815\uaddc\ud654 \ud14c\uc2a4\ud2b8.", + "file_type": "rationale", + "source_file": "tests/test_place_resolver.py", + "source_location": "L1", + "_origin": "ast", + "community": 7, + "norm_label": "\u110b\u116c\u1107\u116e \u110c\u1161\u11bc\u1109\u1169 resolver\u110b\u1174 \u1112\u1169\u110e\u116e\u11af \u110b\u116e\u1109\u1165\u11ab\u1109\u116e\u11ab\u110b\u1171\u110b\u116a \u110c\u1165\u11bc\u1100\u1172\u1112\u116a \u1110\u1166\u1109\u1173\u1110\u1173.", + "id": "tests_test_place_resolver_rationale_1" }, { - "source": "gun_scripts_build_itinerary_excel_rationale_162", - "target": "gun_scripts_build_itinerary_excel_poimatcher", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L162", - "weight": 1.0, - "_origin": "ast" + "label": "test_resolve_poi.py", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L1", + "_origin": "ast", + "community": 29, + "norm_label": "test_resolve_poi.py", + "id": "tests_test_resolve_poi" }, { - "source": "gun_scripts_build_itinerary_excel_rationale_180", - "target": "gun_scripts_build_itinerary_excel_poimatcher_match", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L180", - "weight": 1.0, - "_origin": "ast" + "label": "_write_jeju_xlsx()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L29", + "_origin": "ast", + "community": 29, + "norm_label": "_write_jeju_xlsx()", + "id": "tests_test_resolve_poi_write_jeju_xlsx" }, { - "source": "gun_scripts_build_itinerary_excel_rationale_220", - "target": "gun_scripts_build_itinerary_excel_to_vrptw_place", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L220", - "weight": 1.0, - "_origin": "ast" + "label": "fixture", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 29, + "norm_label": "fixture", + "id": "fixture" }, { - "source": "gun_scripts_build_itinerary_excel_rationale_241", - "target": "gun_scripts_build_itinerary_excel_process_one_day", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L241", - "weight": 1.0, - "_origin": "ast" + "label": "jeju_xlsx_index()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L39", + "_origin": "ast", + "community": 29, + "norm_label": "jeju_xlsx_index()", + "id": "tests_test_resolve_poi_jeju_xlsx_index" }, { - "source": "gun_scripts_build_ppt", - "target": "ref_pptxgenjs", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", - "source_location": "L17", - "weight": 1.0, - "_origin": "ast" + "label": "test_jeju_index_prefers_tourapi_hours_over_legacy_text()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L74", + "_origin": "ast", + "community": 29, + "norm_label": "test_jeju_index_prefers_tourapi_hours_over_legacy_text()", + "id": "tests_test_resolve_poi_test_jeju_index_prefers_tourapi_hours_over_legacy_text" }, { - "source": "gun_scripts_build_ppt", - "target": "gun_scripts_build_ppt_pptxgen", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", - "source_location": "L17", - "weight": 1.0, - "_origin": "ast" + "label": "test_jeju_index_sets_contentid_when_tourapi_matched()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L79", + "_origin": "ast", + "community": 29, + "norm_label": "test_jeju_index_sets_contentid_when_tourapi_matched()", + "id": "tests_test_resolve_poi_test_jeju_index_sets_contentid_when_tourapi_matched" }, { - "source": "gun_scripts_build_ppt", - "target": "ref_path", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", - "source_location": "L18", - "weight": 1.0, - "_origin": "ast" + "label": "test_jeju_index_falls_back_to_legacy_hours_when_unmatched()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L84", + "_origin": "ast", + "community": 29, + "norm_label": "test_jeju_index_falls_back_to_legacy_hours_when_unmatched()", + "id": "tests_test_resolve_poi_test_jeju_index_falls_back_to_legacy_hours_when_unmatched" }, { - "source": "gun_scripts_build_ppt", - "target": "gun_scripts_build_ppt_path", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", - "source_location": "L18", - "weight": 1.0, - "_origin": "ast" + "label": "test_jeju_index_sets_pet_friendly_flag_when_y()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L90", + "_origin": "ast", + "community": 29, + "norm_label": "test_jeju_index_sets_pet_friendly_flag_when_y()", + "id": "tests_test_resolve_poi_test_jeju_index_sets_pet_friendly_flag_when_y" }, { - "source": "gun_scripts_build_ppt", - "target": "gun_scripts_build_ppt_pres", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", + "label": "test_jeju_index_defaults_pet_friendly_false_when_blank()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L95", + "_origin": "ast", + "community": 29, + "norm_label": "test_jeju_index_defaults_pet_friendly_false_when_blank()", + "id": "tests_test_resolve_poi_test_jeju_index_defaults_pet_friendly_false_when_blank" + }, + { + "label": "test_resolve_poi_propagates_pet_friendly_flag()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L100", + "_origin": "ast", + "community": 29, + "norm_label": "test_resolve_poi_propagates_pet_friendly_flag()", + "id": "tests_test_resolve_poi_test_resolve_poi_propagates_pet_friendly_flag" + }, + { + "label": "test_geocode_fallback_used_when_keyword_search_fails()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L123", + "_origin": "ast", + "community": 29, + "norm_label": "test_geocode_fallback_used_when_keyword_search_fails()", + "id": "tests_test_resolve_poi_test_geocode_fallback_used_when_keyword_search_fails" + }, + { + "label": "test_seoul_fallback_when_geocode_also_fails()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L139", + "_origin": "ast", + "community": 29, + "norm_label": "test_seoul_fallback_when_geocode_also_fails()", + "id": "tests_test_resolve_poi_test_seoul_fallback_when_geocode_also_fails" + }, + { + "label": "test_resolve_coords_endpoint_returns_poi_per_place()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L152", + "_origin": "ast", + "community": 29, + "norm_label": "test_resolve_coords_endpoint_returns_poi_per_place()", + "id": "tests_test_resolve_poi_test_resolve_coords_endpoint_returns_poi_per_place" + }, + { + "label": "test_resolve_poi_can_use_tour_api_before_kakao()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L171", + "_origin": "ast", + "community": 29, + "norm_label": "test_resolve_poi_can_use_tour_api_before_kakao()", + "id": "tests_test_resolve_poi_test_resolve_poi_can_use_tour_api_before_kakao" + }, + { + "label": "test_resolve_coords_rejects_unresolved_place()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L200", + "_origin": "ast", + "community": 29, + "norm_label": "test_resolve_coords_rejects_unresolved_place()", + "id": "tests_test_resolve_poi_test_resolve_coords_rejects_unresolved_place" + }, + { + "label": "test_validate_uses_external_place_resolver()", + "file_type": "code", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L215", + "_origin": "ast", + "community": 29, + "norm_label": "test_validate_uses_external_place_resolver()", + "id": "tests_test_resolve_poi_test_validate_uses_external_place_resolver" + }, + { + "label": "_resolve_poi() \uc88c\ud45c \ud574\uc11d \ud3f4\ubc31 \uc21c\uc11c \ud14c\uc2a4\ud2b8 (\uce74\ud0c8\ub85c\uadf8 \u2192 csv \u2192 kakao \ud0a4\uc6cc\ub4dc \u2192 \uc9c0\uc624\ucf54\ub529 \u2192 \uc11c\uc6b8 \ud3f4\ubc31).", + "file_type": "rationale", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L1", + "_origin": "ast", + "community": 29, + "norm_label": "_resolve_poi() \u110c\u116a\u1111\u116d \u1112\u1162\u1109\u1165\u11a8 \u1111\u1169\u11af\u1107\u1162\u11a8 \u1109\u116e\u11ab\u1109\u1165 \u1110\u1166\u1109\u1173\u1110\u1173 (\u110f\u1161\u1110\u1161\u11af\u1105\u1169\u1100\u1173 \u2192 csv \u2192 kakao \u110f\u1175\u110b\u116f\u1103\u1173 \u2192 \u110c\u1175\u110b\u1169\u110f\u1169\u1103\u1175\u11bc \u2192 \u1109\u1165\u110b\u116e\u11af \u1111\u1169\u11af\u1107\u1162\u11a8).", + "id": "tests_test_resolve_poi_rationale_1" + }, + { + "label": "data/\uc81c\uc8fc\ud2b9\ubcc4\uc790\uce58\ub3c4_\ud1b5\ud569_TourAPI\ubcd1\ud569.xlsx \ub97c \uc784\uc2dc \ud30c\uc77c\ub85c \ub300\uccb4\ud574 _build_jeju_place_index()\ub97c \uaca9\ub9ac \uc2e4\ud589.", + "file_type": "rationale", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L40", + "_origin": "ast", + "community": 29, + "norm_label": "data/\u110c\u1166\u110c\u116e\u1110\u1173\u11a8\u1107\u1167\u11af\u110c\u1161\u110e\u1175\u1103\u1169_\u1110\u1169\u11bc\u1112\u1161\u11b8_tourapi\u1107\u1167\u11bc\u1112\u1161\u11b8.xlsx \u1105\u1173\u11af \u110b\u1175\u11b7\u1109\u1175 \u1111\u1161\u110b\u1175\u11af\u1105\u1169 \u1103\u1162\u110e\u1166\u1112\u1162 _build_jeju_place_index()\u1105\u1173\u11af \u1100\u1167\u11a8\u1105\u1175 \u1109\u1175\u11af\u1112\u1162\u11bc.", + "id": "tests_test_resolve_poi_rationale_40" + }, + { + "label": "_resolve_poi()\uac00 place dict\uc758 pet_friendly \uc18d\uc131\uc744 POI\u00b7POIInfo\ub85c \uc804\ub2ec\ud55c\ub2e4.", + "file_type": "rationale", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L101", + "_origin": "ast", + "community": 29, + "norm_label": "_resolve_poi()\u1100\u1161 place dict\u110b\u1174 pet_friendly \u1109\u1169\u11a8\u1109\u1165\u11bc\u110b\u1173\u11af poi\u00b7poiinfo\u1105\u1169 \u110c\u1165\u11ab\u1103\u1161\u11af\u1112\u1161\u11ab\u1103\u1161.", + "id": "tests_test_resolve_poi_rationale_101" + }, + { + "label": "\uce74\uce74\uc624 \ud0a4\uc6cc\ub4dc \uac80\uc0c9\uc774 \uc2e4\ud328\ud574\ub3c4 \uc8fc\uc18c\uac00 \uc788\uc73c\uba74 \uc9c0\uc624\ucf54\ub529\uc73c\ub85c \uc88c\ud45c\ub97c \ubcf4\uac15\ud55c\ub2e4.", + "file_type": "rationale", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L124", + "_origin": "ast", + "community": 29, + "norm_label": "\u110f\u1161\u110f\u1161\u110b\u1169 \u110f\u1175\u110b\u116f\u1103\u1173 \u1100\u1165\u11b7\u1109\u1162\u11a8\u110b\u1175 \u1109\u1175\u11af\u1111\u1162\u1112\u1162\u1103\u1169 \u110c\u116e\u1109\u1169\u1100\u1161 \u110b\u1175\u11bb\u110b\u1173\u1106\u1167\u11ab \u110c\u1175\u110b\u1169\u110f\u1169\u1103\u1175\u11bc\u110b\u1173\u1105\u1169 \u110c\u116a\u1111\u116d\u1105\u1173\u11af \u1107\u1169\u1100\u1161\u11bc\u1112\u1161\u11ab\u1103\u1161.", + "id": "tests_test_resolve_poi_rationale_124" + }, + { + "label": "\uc9c0\uc624\ucf54\ub529\uae4c\uc9c0 \uc2e4\ud328\ud558\uba74 \uae30\uc874\uacfc \ub3d9\uc77c\ud558\uac8c \uc11c\uc6b8 \ud3f4\ubc31\uc73c\ub85c \ub5a8\uc5b4\uc9c4\ub2e4.", + "file_type": "rationale", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L140", + "_origin": "ast", + "community": 29, + "norm_label": "\u110c\u1175\u110b\u1169\u110f\u1169\u1103\u1175\u11bc\u1101\u1161\u110c\u1175 \u1109\u1175\u11af\u1111\u1162\u1112\u1161\u1106\u1167\u11ab \u1100\u1175\u110c\u1169\u11ab\u1100\u116a \u1103\u1169\u11bc\u110b\u1175\u11af\u1112\u1161\u1100\u1166 \u1109\u1165\u110b\u116e\u11af \u1111\u1169\u11af\u1107\u1162\u11a8\u110b\u1173\u1105\u1169 \u1104\u1165\u11af\u110b\u1165\u110c\u1175\u11ab\u1103\u1161.", + "id": "tests_test_resolve_poi_rationale_140" + }, + { + "label": "POST /api/resolve-coords \u2014 Step2 \ube4c\ub354 \uc9c0\ub3c4\uc6a9 \uc88c\ud45c \uc870\ud68c (\uac80\uc99d \ud30c\uc774\ud504\ub77c\uc778 \uc5c6\uc774 \uc88c\ud45c\ub9cc).", + "file_type": "rationale", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L153", + "_origin": "ast", + "community": 29, + "norm_label": "post /api/resolve-coords \u2014 step2 \u1107\u1175\u11af\u1103\u1165 \u110c\u1175\u1103\u1169\u110b\u116d\u11bc \u110c\u116a\u1111\u116d \u110c\u1169\u1112\u116c (\u1100\u1165\u11b7\u110c\u1173\u11bc \u1111\u1161\u110b\u1175\u1111\u1173\u1105\u1161\u110b\u1175\u11ab \u110b\u1165\u11b9\u110b\u1175 \u110c\u116a\u1111\u116d\u1106\u1161\u11ab).", + "id": "tests_test_resolve_poi_rationale_153" + }, + { + "label": "test_dependency_manifests.py", + "file_type": "code", + "source_file": "tests/test_dependency_manifests.py", + "source_location": "L1", + "_origin": "ast", + "community": 81, + "norm_label": "test_dependency_manifests.py", + "id": "tests_test_dependency_manifests" + }, + { + "label": "_package_name()", + "file_type": "code", + "source_file": "tests/test_dependency_manifests.py", + "source_location": "L10", + "_origin": "ast", + "community": 81, + "norm_label": "_package_name()", + "id": "tests_test_dependency_manifests_package_name" + }, + { + "label": "test_runtime_dependency_manifests_are_in_sync()", + "file_type": "code", + "source_file": "tests/test_dependency_manifests.py", + "source_location": "L16", + "_origin": "ast", + "community": 81, + "norm_label": "test_runtime_dependency_manifests_are_in_sync()", + "id": "tests_test_dependency_manifests_test_runtime_dependency_manifests_are_in_sync" + }, + { + "label": "\ubc30\ud3ec\uc6a9 requirements\uc640 \ud504\ub85c\uc81d\ud2b8 \uc120\uc5b8\uc758 \uc758\uc874\uc131 \uc77c\uce58 \uac80\uc99d.", + "file_type": "rationale", + "source_file": "tests/test_dependency_manifests.py", + "source_location": "L1", + "_origin": "ast", + "community": 81, + "norm_label": "\u1107\u1162\u1111\u1169\u110b\u116d\u11bc requirements\u110b\u116a \u1111\u1173\u1105\u1169\u110c\u1166\u11a8\u1110\u1173 \u1109\u1165\u11ab\u110b\u1165\u11ab\u110b\u1174 \u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc \u110b\u1175\u11af\u110e\u1175 \u1100\u1165\u11b7\u110c\u1173\u11bc.", + "id": "tests_test_dependency_manifests_rationale_1" + }, + { + "label": "test_evidence_retriever.py", + "file_type": "code", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L1", + "_origin": "ast", + "community": 67, + "norm_label": "test_evidence_retriever.py", + "id": "tests_test_evidence_retriever" + }, + { + "label": "_catalog()", + "file_type": "code", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L9", + "_origin": "ast", + "community": 67, + "norm_label": "_catalog()", + "id": "tests_test_evidence_retriever_catalog" + }, + { + "label": "Path", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "community": 67, + "norm_label": "path", + "id": "path" + }, + { + "label": "test_missing_catalog_is_disabled()", + "file_type": "code", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L20", + "_origin": "ast", + "community": 67, + "norm_label": "test_missing_catalog_is_disabled()", + "id": "tests_test_evidence_retriever_test_missing_catalog_is_disabled" + }, + { + "label": "test_search_places_reads_local_catalog()", + "file_type": "code", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L26", + "_origin": "ast", + "community": 67, + "norm_label": "test_search_places_reads_local_catalog()", + "id": "tests_test_evidence_retriever_test_search_places_reads_local_catalog" + }, + { + "label": "test_find_nearby_returns_local_alternatives()", + "file_type": "code", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L35", + "_origin": "ast", + "community": 67, + "norm_label": "test_find_nearby_returns_local_alternatives()", + "id": "tests_test_evidence_retriever_test_find_nearby_returns_local_alternatives" + }, + { + "label": "main.py", + "file_type": "code", + "source_file": "src/api/main.py", + "source_location": "L1", + "_origin": "ast", + "id": "src_api_main", + "community": 41, + "norm_label": "main.py" + }, + { + "label": "index()", + "file_type": "code", + "source_file": "src/api/main.py", + "source_location": "L44", + "_origin": "ast", + "id": "src_api_main_index", + "community": 41, + "norm_label": "index()" + }, + { + "label": "manifest()", + "file_type": "code", + "source_file": "src/api/main.py", + "source_location": "L52", + "_origin": "ast", + "id": "src_api_main_manifest", + "community": 41, + "norm_label": "manifest()" + }, + { + "label": "service_worker()", + "file_type": "code", + "source_file": "src/api/main.py", + "source_location": "L60", + "_origin": "ast", + "id": "src_api_main_service_worker", + "community": 41, + "norm_label": "service_worker()" + }, + { + "label": "health()", + "file_type": "code", + "source_file": "src/api/main.py", + "source_location": "L72", + "_origin": "ast", + "id": "src_api_main_health", + "community": 41, + "norm_label": "health()" + }, + { + "label": "JSONResponse", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "jsonresponse", + "community": 41, + "norm_label": "jsonresponse" + }, + { + "label": "\ub77c\uc774\ube0c\ub2c8\uc2a4 + \uad6c\uc131 \uc9c4\ub2e8. \uc2dc\ud06c\ub9bf \uac12\uc740 \uc808\ub300 \ub178\ucd9c\ud558\uc9c0 \uc54a\uace0, \ud0a4 \uc124\uc815 \uc5ec\ubd80(bool)\uc640 \ub85c\ub529\ub41c \ub370\uc774\ud130 \uac74\uc218\ub9cc \ubc18\ud658\ud55c\ub2e4. \uc2ec\uc0ac \uc2dc \uc678\ubd80 API\u2026", + "file_type": "rationale", + "source_file": "src/api/main.py", + "source_location": "L73", + "_origin": "ast", + "id": "src_api_main_rationale_73", + "community": 41, + "norm_label": "\u1105\u1161\u110b\u1175\u1107\u1173\u1102\u1175\u1109\u1173 + \u1100\u116e\u1109\u1165\u11bc \u110c\u1175\u11ab\u1103\u1161\u11ab. \u1109\u1175\u110f\u1173\u1105\u1175\u11ba \u1100\u1161\u11b9\u110b\u1173\u11ab \u110c\u1165\u11af\u1103\u1162 \u1102\u1169\u110e\u116e\u11af\u1112\u1161\u110c\u1175 \u110b\u1161\u11ad\u1100\u1169, \u110f\u1175 \u1109\u1165\u11af\u110c\u1165\u11bc \u110b\u1167\u1107\u116e(bool)\u110b\u116a \u1105\u1169\u1103\u1175\u11bc\u1103\u116c\u11ab \u1103\u1166\u110b\u1175\u1110\u1165 \u1100\u1165\u11ab\u1109\u116e\u1106\u1161\u11ab \u1107\u1161\u11ab\u1112\u116a\u11ab\u1112\u1161\u11ab\u1103\u1161. \u1109\u1175\u11b7\u1109\u1161 \u1109\u1175 \u110b\u116c\u1107\u116e api..." + }, + { + "label": "security.py", + "file_type": "code", + "source_file": "src/api/security.py", + "source_location": "L1", + "_origin": "ast", + "id": "src_api_security", + "community": 55, + "norm_label": "security.py" + }, + { + "label": "InMemoryRateLimiter", + "file_type": "code", + "source_file": "src/api/security.py", + "source_location": "L16", + "_origin": "ast", + "id": "src_api_security_inmemoryratelimiter", + "community": 55, + "norm_label": "inmemoryratelimiter" + }, + { + "label": ".__init__()", + "file_type": "code", + "source_file": "src/api/security.py", + "source_location": "L19", + "_origin": "ast", + "id": "src_api_security_inmemoryratelimiter_init", + "community": 55, + "norm_label": ".__init__()" + }, + { + "label": ".allow()", + "file_type": "code", + "source_file": "src/api/security.py", + "source_location": "L23", + "_origin": "ast", + "id": "src_api_security_inmemoryratelimiter_allow", + "community": 55, + "norm_label": ".allow()" + }, + { + "label": "_client_key()", + "file_type": "code", + "source_file": "src/api/security.py", + "source_location": "L39", + "_origin": "ast", + "id": "src_api_security_client_key", + "community": 55, + "norm_label": "_client_key()" + }, + { + "label": "security_middleware()", + "file_type": "code", + "source_file": "src/api/security.py", "source_location": "L43", - "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "id": "src_api_security_security_middleware", + "community": 55, + "norm_label": "security_middleware()" }, { - "source": "gun_scripts_build_ppt", - "target": "gun_scripts_build_ppt_addpageheader", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", - "source_location": "L54", - "weight": 1.0, - "_origin": "ast" + "label": "API \uc694\uccad \ubcf4\ud638: \ud658\uacbd \uae30\ubc18 \uc778\uc99d\uacfc \ud504\ub85c\uc138\uc2a4 \ub85c\uceec \ub808\uc774\ud2b8\ub9ac\ubc0b.", + "file_type": "rationale", + "source_file": "src/api/security.py", + "source_location": "L1", + "_origin": "ast", + "id": "src_api_security_rationale_1", + "community": 55, + "norm_label": "api \u110b\u116d\u110e\u1165\u11bc \u1107\u1169\u1112\u1169: \u1112\u116a\u11ab\u1100\u1167\u11bc \u1100\u1175\u1107\u1161\u11ab \u110b\u1175\u11ab\u110c\u1173\u11bc\u1100\u116a \u1111\u1173\u1105\u1169\u1109\u1166\u1109\u1173 \u1105\u1169\u110f\u1165\u11af \u1105\u1166\u110b\u1175\u1110\u1173\u1105\u1175\u1106\u1175\u11ba." }, { - "source": "gun_scripts_build_ppt", - "target": "gun_scripts_build_ppt_addtitle", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", - "source_location": "L69", - "weight": 1.0, - "_origin": "ast" + "label": "\ub2e8\uc77c \ud504\ub85c\uc138\uc2a4 \uac1c\ubc1c/\uc18c\uaddc\ubaa8 \ubc30\ud3ec\uc6a9 sliding-window \uc81c\ud55c\uae30.", + "file_type": "rationale", + "source_file": "src/api/security.py", + "source_location": "L17", + "_origin": "ast", + "id": "src_api_security_rationale_17", + "community": 55, + "norm_label": "\u1103\u1161\u11ab\u110b\u1175\u11af \u1111\u1173\u1105\u1169\u1109\u1166\u1109\u1173 \u1100\u1162\u1107\u1161\u11af/\u1109\u1169\u1100\u1172\u1106\u1169 \u1107\u1162\u1111\u1169\u110b\u116d\u11bc sliding-window \u110c\u1166\u1112\u1161\u11ab\u1100\u1175." }, { - "source": "gun_scripts_build_ppt", - "target": "gun_scripts_build_ppt_addfooter", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", - "source_location": "L82", - "weight": 1.0, - "_origin": "ast" + "label": "\ube44\uc6a9\uc774 \ud070 API\ub97c \uc778\uc99d\ud558\uace0, \ubaa8\ub4e0 API \uc694\uccad\uc5d0 \uae30\ubcf8 \ub808\uc774\ud2b8\ub9ac\ubc0b\uc744 \uc801\uc6a9\ud55c\ub2e4.", + "file_type": "rationale", + "source_file": "src/api/security.py", + "source_location": "L44", + "_origin": "ast", + "id": "src_api_security_rationale_44", + "community": 55, + "norm_label": "\u1107\u1175\u110b\u116d\u11bc\u110b\u1175 \u110f\u1173\u11ab api\u1105\u1173\u11af \u110b\u1175\u11ab\u110c\u1173\u11bc\u1112\u1161\u1100\u1169, \u1106\u1169\u1103\u1173\u11ab api \u110b\u116d\u110e\u1165\u11bc\u110b\u1166 \u1100\u1175\u1107\u1169\u11ab \u1105\u1166\u110b\u1175\u1110\u1173\u1105\u1175\u1106\u1175\u11ba\u110b\u1173\u11af \u110c\u1165\u11a8\u110b\u116d\u11bc\u1112\u1161\u11ab\u1103\u1161." }, { - "source": "gun_scripts_build_ppt", - "target": "gun_scripts_build_ppt_addcard", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", - "source_location": "L94", - "weight": 1.0, - "_origin": "ast" + "label": "test_health.py", + "file_type": "code", + "source_file": "tests/test_health.py", + "source_location": "L1", + "_origin": "ast", + "id": "tests_test_health", + "community": 82, + "norm_label": "test_health.py" }, { - "source": "gun_scripts_build_ppt", - "target": "gun_scripts_build_ppt_addstat", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", - "source_location": "L112", - "weight": 1.0, - "_origin": "ast" + "label": "test_health_returns_ok_when_required_data_is_loaded()", + "file_type": "code", + "source_file": "tests/test_health.py", + "source_location": "L9", + "_origin": "ast", + "id": "tests_test_health_test_health_returns_ok_when_required_data_is_loaded", + "community": 82, + "norm_label": "test_health_returns_ok_when_required_data_is_loaded()" }, { - "source": "gun_scripts_build_ppt", - "target": "gun_scripts_build_ppt_addnumberchip", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", - "source_location": "L126", - "weight": 1.0, - "_origin": "ast" + "label": "test_health_returns_503_when_required_data_is_missing()", + "file_type": "code", + "source_file": "tests/test_health.py", + "source_location": "L17", + "_origin": "ast", + "id": "tests_test_health_test_health_returns_503_when_required_data_is_missing", + "community": 82, + "norm_label": "test_health_returns_503_when_required_data_is_missing()" }, { - "source": "gun_scripts_build_ppt", - "target": "gun_scripts_build_ppt_output", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_ppt.js", - "source_location": "L1656", - "weight": 1.0, - "_origin": "ast" + "label": "\ubc30\ud3ec \ud504\ub85c\ube0c\uac00 \uc2e4\uc81c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc900\ube44 \uc0c1\ud0dc\ub97c \ubc18\uc601\ud558\ub294\uc9c0 \uac80\uc99d\ud55c\ub2e4.", + "file_type": "rationale", + "source_file": "tests/test_health.py", + "source_location": "L1", + "_origin": "ast", + "id": "tests_test_health_rationale_1", + "community": 82, + "norm_label": "\u1107\u1162\u1111\u1169 \u1111\u1173\u1105\u1169\u1107\u1173\u1100\u1161 \u1109\u1175\u11af\u110c\u1166 \u110b\u1162\u1111\u1173\u11af\u1105\u1175\u110f\u1166\u110b\u1175\u1109\u1167\u11ab \u110c\u116e\u11ab\u1107\u1175 \u1109\u1161\u11bc\u1110\u1162\u1105\u1173\u11af \u1107\u1161\u11ab\u110b\u1167\u11bc\u1112\u1161\u1102\u1173\u11ab\u110c\u1175 \u1100\u1165\u11b7\u110c\u1173\u11bc\u1112\u1161\u11ab\u1103\u1161." }, { - "source": "gun_scripts_build_travel_matrix", - "target": "argparse", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L27", - "weight": 1.0, - "_origin": "ast" + "label": "test_security.py", + "file_type": "code", + "source_file": "tests/test_security.py", + "source_location": "L1", + "_origin": "ast", + "id": "tests_test_security", + "community": 41, + "norm_label": "test_security.py" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "csv", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L28", - "weight": 1.0, - "_origin": "ast" + "label": "test_production_requires_bearer_token()", + "file_type": "code", + "source_file": "tests/test_security.py", + "source_location": "L8", + "_origin": "ast", + "id": "tests_test_security_test_production_requires_bearer_token", + "community": 41, + "norm_label": "test_production_requires_bearer_token()" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "sys", - "relation": "imports", - "context": "import", + "label": "test_production_without_auth_token_fails_closed()", + "file_type": "code", + "source_file": "tests/test_security.py", + "source_location": "L22", + "_origin": "ast", + "id": "tests_test_security_test_production_without_auth_token_fails_closed", + "community": 41, + "norm_label": "test_production_without_auth_token_fails_closed()" + } + ], + "links": [ + { + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L29", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L543", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db", + "target": "gun_scripts_build_hours_db_build_category_std_xlsx" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "time", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L30", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L605", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db", + "target": "gun_scripts_build_hours_db_build_hours_db_py" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L31", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L442", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db", + "target": "gun_scripts_build_hours_db_build_place_hours_xlsx" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L39", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L428", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db", + "target": "gun_scripts_build_hours_db_confidence" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "src_validation_kakao_matrix", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L40", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L700", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db", + "target": "gun_scripts_build_hours_db_main" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "gun_scripts_build_travel_matrix_resolve_base_dir", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L43", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L403", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db", + "target": "gun_scripts_build_hours_db_match_sub_category" }, { - "source": "gun_scripts_build_travel_matrix_resolve_base_dir", - "target": "gun_scripts_build_travel_matrix_py_path", - "relation": "references", - "context": "return_type", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L43", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db_rationale_1", + "target": "gun_scripts_build_hours_db" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "gun_scripts_build_travel_matrix_load_pois", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L55", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L459", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db_build_place_hours_xlsx", + "target": "gun_scripts_build_hours_db_match_sub_category" }, { - "source": "gun_scripts_build_travel_matrix_load_pois", - "target": "gun_scripts_build_travel_matrix_py_path", - "relation": "references", - "context": "parameter_type", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L55", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L404", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db_rationale_404", + "target": "gun_scripts_build_hours_db_match_sub_category" }, { - "source": "gun_scripts_build_travel_matrix_load_pois", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L55", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L474", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db_build_place_hours_xlsx", + "target": "gun_scripts_build_hours_db_confidence" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "gun_scripts_build_travel_matrix_build_matrix", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L83", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L429", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db_rationale_429", + "target": "gun_scripts_build_hours_db_confidence" }, { - "source": "gun_scripts_build_travel_matrix_build_matrix", - "target": "src_data_models_vrptwplace", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L83", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L442", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db_build_place_hours_xlsx", + "target": "counter" }, { - "source": "gun_scripts_build_travel_matrix_build_matrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L83", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L701", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db_main", + "target": "gun_scripts_build_hours_db_build_place_hours_xlsx" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "gun_scripts_build_travel_matrix_main", - "relation": "contains", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L122", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L543", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db_build_category_std_xlsx", + "target": "counter" }, { - "source": "gun_scripts_build_travel_matrix_resolve_base_dir", - "target": "gun_scripts_build_travel_matrix_py_path", "relation": "calls", "context": "call", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L45", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "scripts/collect_naver_full.py", + "source_location": "L457", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "scripts_collect_naver_full_print_stats", + "target": "counter" }, { - "source": "gun_scripts_build_travel_matrix_load_pois", - "target": "src_data_models_vrptwplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L74", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L702", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db_main", + "target": "gun_scripts_build_hours_db_build_category_std_xlsx" }, { - "source": "gun_scripts_build_travel_matrix_main", - "target": "gun_scripts_build_travel_matrix_py_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L157", + "source_file": "gun/scripts/build_hours_db.py", + "source_location": "L703", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_hours_db_main", + "target": "gun_scripts_build_hours_db_build_hours_db_py" }, { - "source": "gun_scripts_build_travel_matrix_main", - "target": "gun_scripts_build_travel_matrix_load_pois", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L164", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "gun_scripts_build_itinerary_excel_check_hours_violations" }, { - "source": "gun_scripts_build_travel_matrix_main", - "target": "gun_scripts_build_travel_matrix_build_matrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L184", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L356", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "gun_scripts_build_itinerary_excel_main" }, { - "source": "gun_scripts_build_travel_matrix_rationale_1", - "target": "gun_scripts_build_travel_matrix", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L1", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "gun_scripts_build_itinerary_excel_minutes_to_hhmm" }, { - "source": "gun_scripts_build_travel_matrix_rationale_62", - "target": "gun_scripts_build_travel_matrix_load_pois", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L62", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "gun_scripts_build_itinerary_excel_parse_weekday" }, { - "source": "gun_scripts_build_travel_matrix_rationale_88", - "target": "gun_scripts_build_travel_matrix_build_matrix", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L88", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L161", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "gun_scripts_build_itinerary_excel_poimatcher" }, { - "source": "gun_scripts_create_input_template", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/create_input_template.py", - "source_location": "L11", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L237", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "gun_scripts_build_itinerary_excel_process_one_day" }, { - "source": "gun_scripts_create_input_template", - "target": "openpyxl", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/create_input_template.py", - "source_location": "L13", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L219", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "gun_scripts_build_itinerary_excel_to_vrptw_place" }, { - "source": "gun_scripts_create_input_template", - "target": "openpyxl_styles", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/create_input_template.py", - "source_location": "L14", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_data_dwell_db" }, { - "source": "gun_scripts_create_input_template", - "target": "openpyxl_utils", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/create_input_template.py", - "source_location": "L15", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "gun_scripts_create_input_template", - "target": "openpyxl_worksheet_datavalidation", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/create_input_template.py", - "source_location": "L16", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_data_hours_db" }, { - "source": "gun_scripts_create_input_template", - "target": "gun_scripts_create_input_template_make_workbook", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/create_input_template.py", - "source_location": "L57", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_data_hours_db_hoursspec" }, { - "source": "gun_scripts_create_input_template_make_workbook", - "target": "gun_scripts_create_input_template_py_workbook", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/create_input_template.py", - "source_location": "L57", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_data_hours_db_resolve_hours" }, { - "source": "gun_scripts_create_input_template", - "target": "gun_scripts_create_input_template_main", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/create_input_template.py", - "source_location": "L157", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_data_hours_db_to_minutes" }, { - "source": "gun_scripts_create_input_template_make_workbook", - "target": "gun_scripts_create_input_template_py_workbook", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/create_input_template.py", - "source_location": "L58", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_data_models" }, { - "source": "gun_scripts_create_input_template_main", - "target": "gun_scripts_create_input_template_make_workbook", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/create_input_template.py", - "source_location": "L158", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_data_models_vrptwday" }, { - "source": "gun_scripts_create_input_template_rationale_1", - "target": "gun_scripts_create_input_template", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/create_input_template.py", - "source_location": "L1", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_data_models_vrptwplace" }, { - "source": "gun_scripts_curated_itineraries", - "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/curated_itineraries.py", - "source_location": "L20", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_scoring_cluster_dispersion" }, { - "source": "gun_scripts_curated_itineraries", - "target": "openpyxl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/curated_itineraries.py", - "source_location": "L22", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "gun_scripts_curated_itineraries", - "target": "openpyxl_styles", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/curated_itineraries.py", - "source_location": "L23", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_scoring_travel_ratio" }, { - "source": "gun_scripts_curated_itineraries", - "target": "openpyxl_utils", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/curated_itineraries.py", - "source_location": "L24", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_scoring_travel_ratio_evaluate_travel_ratio" }, { - "source": "gun_scripts_curated_itineraries", - "target": "openpyxl_worksheet_datavalidation", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/curated_itineraries.py", - "source_location": "L25", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L46", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_validation_kakao_matrix" }, { - "source": "gun_scripts_curated_itineraries", - "target": "gun_scripts_curated_itineraries_make_workbook", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/curated_itineraries.py", - "source_location": "L572", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L46", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "gun_scripts_curated_itineraries_make_workbook", - "target": "gun_scripts_curated_itineraries_py_workbook", - "relation": "references", - "context": "return_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/curated_itineraries.py", - "source_location": "L572", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_validation_vrptw_engine" }, { - "source": "gun_scripts_curated_itineraries", - "target": "gun_scripts_curated_itineraries_main", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/curated_itineraries.py", - "source_location": "L658", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel", + "target": "src_validation_vrptw_engine_haversinematrix" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L1", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_rationale_1", + "target": "gun_scripts_build_itinerary_excel" }, { - "source": "gun_scripts_curated_itineraries_make_workbook", - "target": "gun_scripts_curated_itineraries_py_workbook", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/curated_itineraries.py", - "source_location": "L573", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L427", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_main", + "target": "gun_scripts_build_itinerary_excel_parse_weekday" }, { - "source": "gun_scripts_curated_itineraries_main", - "target": "gun_scripts_curated_itineraries_make_workbook", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/curated_itineraries.py", - "source_location": "L659", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L273", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_process_one_day", + "target": "gun_scripts_build_itinerary_excel_parse_weekday" }, { - "source": "gun_scripts_curated_itineraries_rationale_1", - "target": "gun_scripts_curated_itineraries", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/curated_itineraries.py", - "source_location": "L1", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_rationale_100", + "target": "gun_scripts_build_itinerary_excel_parse_weekday" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "argparse", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L17", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L135", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_check_hours_violations", + "target": "gun_scripts_build_itinerary_excel_minutes_to_hhmm" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "csv", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L18", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L285", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_process_one_day", + "target": "gun_scripts_build_itinerary_excel_minutes_to_hhmm" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L19", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_rationale_110", + "target": "gun_scripts_build_itinerary_excel_minutes_to_hhmm" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L20", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_check_hours_violations", + "target": "src_data_hours_db_hoursspec" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L21", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_check_hours_violations", + "target": "src_data_hours_db_to_minutes" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "time", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L22", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L280", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_process_one_day", + "target": "gun_scripts_build_itinerary_excel_check_hours_violations" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L23", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L121", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_rationale_121", + "target": "gun_scripts_build_itinerary_excel_check_hours_violations" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L24", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L384", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_main", + "target": "gun_scripts_build_itinerary_excel_poimatcher" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "httpx", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L26", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_poimatcher", + "target": "gun_scripts_build_itinerary_excel_poimatcher_init" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "openpyxl", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L27", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L179", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_poimatcher", + "target": "gun_scripts_build_itinerary_excel_poimatcher_match" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "gun_scripts_fetch_google_hours_load_env", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L41", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L203", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_poimatcher", + "target": "gun_scripts_build_itinerary_excel_poimatcher_row_to_dict" }, { - "source": "gun_scripts_fetch_google_hours_load_env", - "target": "gun_scripts_fetch_google_hours_py_path", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L41", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L42", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "gun_scripts_build_itinerary_excel_poimatcher", + "target": "src_data_hours_db_hoursspec" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "gun_scripts_fetch_google_hours_text_search", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L58", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L43", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "gun_scripts_build_itinerary_excel_poimatcher", + "target": "src_data_models_vrptwday" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "gun_scripts_fetch_google_hours_place_details", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L83", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L43", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "gun_scripts_build_itinerary_excel_poimatcher", + "target": "src_data_models_vrptwplace" }, { - "source": "gun_scripts_fetch_google_hours_place_details", - "target": "gun_scripts_fetch_google_hours_py_any", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L83", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L46", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "gun_scripts_build_itinerary_excel_poimatcher", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "gun_scripts_fetch_google_hours_parse_periods", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L102", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L47", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "gun_scripts_build_itinerary_excel_poimatcher", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "gun_scripts_fetch_google_hours_load_targets", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L124", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L162", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_rationale_162", + "target": "gun_scripts_build_itinerary_excel_poimatcher" }, { - "source": "gun_scripts_fetch_google_hours_load_targets", - "target": "gun_scripts_fetch_google_hours_py_path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L124", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_poimatcher_init", + "target": "gun_scripts_build_itinerary_excel_py_path" }, { - "source": "gun_scripts_fetch_google_hours", - "target": "gun_scripts_fetch_google_hours_main", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L148", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L364", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_main", + "target": "gun_scripts_build_itinerary_excel_py_path" }, { - "source": "gun_scripts_fetch_google_hours_main", - "target": "gun_scripts_fetch_google_hours_load_targets", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L156", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L389", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_main", + "target": "gun_scripts_build_itinerary_excel_poimatcher_match" }, { - "source": "gun_scripts_fetch_google_hours_main", - "target": "gun_scripts_fetch_google_hours_py_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L156", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L188", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_poimatcher_match", + "target": "gun_scripts_build_itinerary_excel_poimatcher_row_to_dict" }, { - "source": "gun_scripts_fetch_google_hours_main", - "target": "gun_scripts_fetch_google_hours_text_search", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L176", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L180", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_rationale_180", + "target": "gun_scripts_build_itinerary_excel_poimatcher_match" }, { - "source": "gun_scripts_fetch_google_hours_main", - "target": "gun_scripts_fetch_google_hours_place_details", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L185", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L203", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_poimatcher_row_to_dict", + "target": "gun_scripts_build_itinerary_excel_py_any" }, { - "source": "gun_scripts_fetch_google_hours_main", - "target": "gun_scripts_fetch_google_hours_parse_periods", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L197", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L246", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_process_one_day", + "target": "gun_scripts_build_itinerary_excel_to_vrptw_place" }, { - "source": "gun_scripts_fetch_google_hours_rationale_1", - "target": "gun_scripts_fetch_google_hours", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L1", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L220", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_rationale_220", + "target": "gun_scripts_build_itinerary_excel_to_vrptw_place" }, { - "source": "gun_scripts_fetch_google_hours_rationale_59", - "target": "gun_scripts_fetch_google_hours_text_search", - "relation": "rationale_for", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L59", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L219", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_to_vrptw_place", + "target": "src_data_models_vrptwplace" }, { - "source": "gun_scripts_fetch_google_hours_rationale_103", - "target": "gun_scripts_fetch_google_hours_parse_periods", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_google_hours.py", - "source_location": "L103", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L466", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_main", + "target": "gun_scripts_build_itinerary_excel_process_one_day" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "argparse", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L51", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L276", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_process_one_day", + "target": "src_data_hours_db_resolve_hours" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "csv", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L52", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L262", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_process_one_day", + "target": "src_data_hours_db_to_minutes" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L53", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L306", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_process_one_day", + "target": "src_data_models_vrptwday" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L54", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L307", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_process_one_day", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L55", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L316", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_process_one_day", + "target": "src_scoring_travel_ratio_evaluate_travel_ratio" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "time", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L56", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L241", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_rationale_241", + "target": "gun_scripts_build_itinerary_excel_process_one_day" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L57", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L405", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_main", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "datetime", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L58", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L415", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_main", + "target": "src_data_hours_db_resolve_hours" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L59", + "confidence_score": 1.0, + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L453", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "gun_scripts_build_itinerary_excel_main", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L60", + "source_file": "gun/scripts/build_itinerary_excel.py", + "source_location": "L451", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_itinerary_excel_main", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "requests", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L62", + "source_file": "gun/scripts/build_ppt.js", + "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_ppt", + "target": "gun_scripts_build_ppt_addcard" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_resolve_base_dir", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L132", + "source_file": "gun/scripts/build_ppt.js", + "source_location": "L82", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_ppt", + "target": "gun_scripts_build_ppt_addfooter" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_resolve_base_dir", - "target": "gun_scripts_fetch_tourapi_to_csv_py_path", - "relation": "references", - "context": "return_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L132", + "source_file": "gun/scripts/build_ppt.js", + "source_location": "L126", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_ppt", + "target": "gun_scripts_build_ppt_addnumberchip" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_load_env", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L156", + "source_file": "gun/scripts/build_ppt.js", + "source_location": "L54", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_ppt", + "target": "gun_scripts_build_ppt_addpageheader" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L177", + "source_file": "gun/scripts/build_ppt.js", + "source_location": "L112", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_ppt", + "target": "gun_scripts_build_ppt_addstat" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_load", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L188", + "source_file": "gun/scripts/build_ppt.js", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_ppt", + "target": "gun_scripts_build_ppt_addtitle" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_save", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L200", + "source_file": "gun/scripts/build_ppt.js", + "source_location": "L1656", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_ppt", + "target": "gun_scripts_build_ppt_output" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_increment_daily", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L213", + "source_file": "gun/scripts/build_ppt.js", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_ppt", + "target": "gun_scripts_build_ppt_path" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L222", + "source_file": "gun/scripts/build_ppt.js", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_ppt", + "target": "gun_scripts_build_ppt_pptxgen" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_key", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L229", + "source_file": "gun/scripts/build_ppt.js", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_ppt", + "target": "gun_scripts_build_ppt_pres" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_is_done", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L232", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix", + "target": "gun_scripts_build_travel_matrix_build_matrix" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_mark_done", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L235", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L55", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix", + "target": "gun_scripts_build_travel_matrix_load_pois" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_dailylimitreached", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L240", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L122", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix", + "target": "gun_scripts_build_travel_matrix_main" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix", + "target": "gun_scripts_build_travel_matrix_resolve_base_dir" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_dailylimitreached", - "target": "gun_scripts_fetch_tourapi_to_csv_py_exception", - "relation": "inherits", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L240", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix", + "target": "src_data_models" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_call_api", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L244", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L40", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix", + "target": "src_validation_kakao_matrix" + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L40", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L1", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix_rationale_1", + "target": "gun_scripts_build_travel_matrix" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_call_api", - "target": "gun_scripts_fetch_tourapi_to_csv_py_any", "relation": "references", - "context": "generic_arg", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L244", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix_resolve_base_dir", + "target": "gun_scripts_build_travel_matrix_py_path" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_call_api", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L244", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L55", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix_load_pois", + "target": "gun_scripts_build_travel_matrix_py_path" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_parse_items", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L333", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L157", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix_main", + "target": "gun_scripts_build_travel_matrix_py_path" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_get_total_count", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L345", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L55", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix_load_pois", + "target": "src_data_models_vrptwplace" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L351", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix_main", + "target": "gun_scripts_build_travel_matrix_load_pois" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_csvappender", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_init", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L352", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L62", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix_rationale_62", + "target": "gun_scripts_build_travel_matrix_load_pois" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_csvappender_init", - "target": "gun_scripts_fetch_tourapi_to_csv_py_path", "relation": "references", - "context": "parameter_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L352", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix_build_matrix", + "target": "src_data_models_vrptwplace" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_csvappender", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_enter", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L358", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix_build_matrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_csvappender", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_exit", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L367", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L184", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix_main", + "target": "gun_scripts_build_travel_matrix_build_matrix" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_csvappender", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_write", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L371", + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_build_travel_matrix_rationale_88", + "target": "gun_scripts_build_travel_matrix_build_matrix" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_csvappender", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_write_many", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L374", + "confidence_score": 1.0, + "source_file": "gun/scripts/build_travel_matrix.py", + "source_location": "L177", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "gun_scripts_build_travel_matrix_main", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_is_valid_kr_coord", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L379", + "source_file": "gun/scripts/create_input_template.py", + "source_location": "L157", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_create_input_template", + "target": "gun_scripts_create_input_template_main" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L391", + "source_file": "gun/scripts/create_input_template.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_create_input_template", + "target": "gun_scripts_create_input_template_make_workbook" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "relation": "references", - "context": "parameter_type", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L391", + "source_file": "gun/scripts/create_input_template.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_create_input_template_rationale_1", + "target": "gun_scripts_create_input_template" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L503", + "source_file": "gun/scripts/create_input_template.py", + "source_location": "L158", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_create_input_template_main", + "target": "gun_scripts_create_input_template_make_workbook" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint", "relation": "references", - "context": "parameter_type", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L503", + "source_file": "gun/scripts/create_input_template.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_create_input_template_make_workbook", + "target": "gun_scripts_create_input_template_py_workbook" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L565", + "source_file": "gun/scripts/curated_itineraries.py", + "source_location": "L658", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_curated_itineraries", + "target": "gun_scripts_curated_itineraries_main" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L565", + "source_file": "gun/scripts/curated_itineraries.py", + "source_location": "L572", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_curated_itineraries", + "target": "gun_scripts_curated_itineraries_make_workbook" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_process_items", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L648", + "source_file": "gun/scripts/curated_itineraries.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_curated_itineraries_rationale_1", + "target": "gun_scripts_curated_itineraries" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_process_items", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L648", + "source_file": "gun/scripts/curated_itineraries.py", + "source_location": "L659", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_curated_itineraries_main", + "target": "gun_scripts_curated_itineraries_make_workbook" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_process_items", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint", "relation": "references", - "context": "parameter_type", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L648", + "source_file": "gun/scripts/curated_itineraries.py", + "source_location": "L572", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_curated_itineraries_make_workbook", + "target": "gun_scripts_curated_itineraries_py_workbook" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L673", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours", + "target": "gun_scripts_fetch_google_hours_load_env" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L673", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L124", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours", + "target": "gun_scripts_fetch_google_hours_load_targets" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L756", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L148", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours", + "target": "gun_scripts_fetch_google_hours_main" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L756", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours", + "target": "gun_scripts_fetch_google_hours_parse_periods" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_test_connection", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L815", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours", + "target": "gun_scripts_fetch_google_hours_place_details" }, { - "source": "gun_scripts_fetch_tourapi_to_csv", - "target": "gun_scripts_fetch_tourapi_to_csv_main", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L839", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours", + "target": "gun_scripts_fetch_google_hours_text_search" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_resolve_base_dir", - "target": "gun_scripts_fetch_tourapi_to_csv_py_path", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L134", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours_rationale_1", + "target": "gun_scripts_fetch_google_hours" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint_is_done", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_key", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L233", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours_load_env", + "target": "gun_scripts_fetch_google_hours_py_path" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint_mark_done", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_key", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L236", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L124", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours_load_targets", + "target": "gun_scripts_fetch_google_hours_py_path" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_call_api", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L254", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L156", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours_main", + "target": "gun_scripts_fetch_google_hours_py_path" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_call_api", - "target": "gun_scripts_fetch_tourapi_to_csv_dailylimitreached", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L256", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L176", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours_main", + "target": "gun_scripts_fetch_google_hours_text_search" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_call_api", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_increment_daily", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L273", - "weight": 1.0, - "_origin": "ast" + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L59", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours_rationale_59", + "target": "gun_scripts_fetch_google_hours_text_search" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", - "target": "gun_scripts_fetch_tourapi_to_csv_call_api", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L400", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L185", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours_main", + "target": "gun_scripts_fetch_google_hours_place_details" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", - "target": "gun_scripts_fetch_tourapi_to_csv_parse_items", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L410", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours_place_details", + "target": "gun_scripts_fetch_google_hours_py_any" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", - "target": "gun_scripts_fetch_tourapi_to_csv_get_total_count", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L482", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L197", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours_main", + "target": "gun_scripts_fetch_google_hours_parse_periods" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes", - "target": "gun_scripts_fetch_tourapi_to_csv_call_api", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L510", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours_rationale_103", + "target": "gun_scripts_fetch_google_hours_parse_periods" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes", - "target": "gun_scripts_fetch_tourapi_to_csv_parse_items", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L520", + "source_file": "gun/scripts/fetch_google_hours.py", + "source_location": "L156", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_google_hours_main", + "target": "gun_scripts_fetch_google_hours_load_targets" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L579", + "source_location": "L244", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_call_api" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "target": "gun_scripts_fetch_tourapi_to_csv_call_api", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L601", + "source_location": "L177", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "target": "gun_scripts_fetch_tourapi_to_csv_get_total_count", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L607", + "source_location": "L351", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L609", + "source_location": "L240", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_dailylimitreached" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_is_done", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L614", + "source_location": "L756", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "target": "gun_scripts_fetch_tourapi_to_csv_process_items", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L615", + "source_location": "L503", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "target": "gun_scripts_fetch_tourapi_to_csv_parse_items", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L615", + "source_location": "L673", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_mark_done", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L617", + "source_location": "L391", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_save", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L628", + "source_location": "L565", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_pois" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_process_items", - "target": "gun_scripts_fetch_tourapi_to_csv_is_valid_kr_coord", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L662", + "source_location": "L345", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_get_total_count" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_process_items", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_write", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L666", + "source_location": "L379", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_is_valid_kr_coord" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", - "target": "gun_scripts_fetch_tourapi_to_csv_call_api", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L700", + "source_location": "L156", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_load_env" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", - "target": "gun_scripts_fetch_tourapi_to_csv_get_total_count", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L706", + "source_location": "L839", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_main" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L708", + "source_location": "L333", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_parse_items" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L732", + "source_location": "L648", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_process_items" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", - "target": "gun_scripts_fetch_tourapi_to_csv_parse_items", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L734", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_resolve_base_dir" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L773", + "source_location": "L815", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv", + "target": "gun_scripts_fetch_tourapi_to_csv_test_connection" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L777", + "source_location": "L2", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_rationale_2", + "target": "gun_scripts_fetch_tourapi_to_csv" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", - "target": "gun_scripts_fetch_tourapi_to_csv_call_api", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L780", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_resolve_base_dir", + "target": "gun_scripts_fetch_tourapi_to_csv_py_path" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", - "target": "gun_scripts_fetch_tourapi_to_csv_parse_items", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L794", + "source_location": "L352", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_csvappender_init", + "target": "gun_scripts_fetch_tourapi_to_csv_py_path" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", - "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_write", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L802", + "source_location": "L883", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_main", + "target": "gun_scripts_fetch_tourapi_to_csv_load_env" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_save", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L807", + "source_location": "L244", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_call_api", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_test_connection", - "target": "gun_scripts_fetch_tourapi_to_csv_call_api", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L818", + "source_location": "L213", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_increment_daily" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_test_connection", - "target": "gun_scripts_fetch_tourapi_to_csv_parse_items", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L828", + "source_location": "L232", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_is_done" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_main", - "target": "gun_scripts_fetch_tourapi_to_csv_load_env", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L883", + "source_location": "L229", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_key" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_main", - "target": "gun_scripts_fetch_tourapi_to_csv_test_connection", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L887", + "source_location": "L188", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_load" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_main", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L908", + "source_location": "L235", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_mark_done" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_main", - "target": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L917", + "source_location": "L222", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_main", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L922", + "source_location": "L200", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_save" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_main", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L923", + "source_location": "L756", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_main", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L961", + "source_location": "L503", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_main", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_save", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L969", + "source_location": "L673", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_rationale_2", - "target": "gun_scripts_fetch_tourapi_to_csv", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L2", + "source_location": "L391", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_rationale_178", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L178", + "source_location": "L565", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_rationale_241", - "target": "gun_scripts_fetch_tourapi_to_csv_dailylimitreached", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L241", + "source_location": "L648", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_process_items", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_rationale_250", - "target": "gun_scripts_fetch_tourapi_to_csv_call_api", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L250", + "source_location": "L178", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_rationale_178", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_rationale_334", - "target": "gun_scripts_fetch_tourapi_to_csv_parse_items", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", + "confidence_score": 1.0, "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L334", + "source_location": "L897", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "gun_scripts_fetch_tourapi_to_csv_main", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_load" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_rationale_392", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L392", + "source_location": "L807", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_save" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_rationale_504", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L504", + "source_location": "L628", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_save" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_rationale_572", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L572", + "source_location": "L969", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_main", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_save" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_rationale_653", - "target": "gun_scripts_fetch_tourapi_to_csv_process_items", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L653", + "source_location": "L273", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_call_api", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_increment_daily" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_rationale_679", - "target": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L679", + "source_location": "L254", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_call_api", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_rationale_757", - "target": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L757", + "source_location": "L773", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today" }, { - "source": "gun_scripts_inspect_json", - "target": "argparse", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L17", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L708", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today" }, { - "source": "gun_scripts_inspect_json", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L18", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L609", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_remaining_today" }, { - "source": "gun_scripts_inspect_json", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L19", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L233", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint_is_done", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_key" }, { - "source": "gun_scripts_inspect_json", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L20", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L236", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_checkpoint_mark_done", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_key" }, { - "source": "gun_scripts_inspect_json", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L21", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L614", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_is_done" }, { - "source": "gun_scripts_inspect_json", - "target": "gun_scripts_inspect_json_get_path", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L24", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L617", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", + "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_mark_done" }, { - "source": "gun_scripts_inspect_json_get_path", - "target": "gun_scripts_inspect_json_py_any", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L24", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L256", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_call_api", + "target": "gun_scripts_fetch_tourapi_to_csv_dailylimitreached" }, { - "source": "gun_scripts_inspect_json", - "target": "gun_scripts_inspect_json_describe", - "relation": "contains", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L44", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L240", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_dailylimitreached", + "target": "gun_scripts_fetch_tourapi_to_csv_py_exception" }, { - "source": "gun_scripts_inspect_json_describe", - "target": "gun_scripts_inspect_json_py_any", - "relation": "references", - "context": "parameter_type", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L44", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L241", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_rationale_241", + "target": "gun_scripts_fetch_tourapi_to_csv_dailylimitreached" }, { - "source": "gun_scripts_inspect_json", - "target": "gun_scripts_inspect_json_print_tree", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L59", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L244", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_call_api", + "target": "gun_scripts_fetch_tourapi_to_csv_py_any" }, { - "source": "gun_scripts_inspect_json_print_tree", - "target": "gun_scripts_inspect_json_py_any", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L59", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L780", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", + "target": "gun_scripts_fetch_tourapi_to_csv_call_api" }, { - "source": "gun_scripts_inspect_json", - "target": "gun_scripts_inspect_json_search_in", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L86", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L510", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes", + "target": "gun_scripts_fetch_tourapi_to_csv_call_api" }, { - "source": "gun_scripts_inspect_json_search_in", - "target": "gun_scripts_inspect_json_py_any", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L86", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L700", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", + "target": "gun_scripts_fetch_tourapi_to_csv_call_api" }, { - "source": "gun_scripts_inspect_json", - "target": "gun_scripts_inspect_json_main", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L105", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L400", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", + "target": "gun_scripts_fetch_tourapi_to_csv_call_api" }, { - "source": "gun_scripts_inspect_json_print_tree", - "target": "gun_scripts_inspect_json_describe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L70", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L601", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", + "target": "gun_scripts_fetch_tourapi_to_csv_call_api" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L250", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_rationale_250", + "target": "gun_scripts_fetch_tourapi_to_csv_call_api" }, { - "source": "gun_scripts_inspect_json_main", - "target": "gun_scripts_inspect_json_get_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L126", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L818", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_test_connection", + "target": "gun_scripts_fetch_tourapi_to_csv_call_api" }, { - "source": "gun_scripts_inspect_json_main", - "target": "gun_scripts_inspect_json_search_in", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L132", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L794", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", + "target": "gun_scripts_fetch_tourapi_to_csv_parse_items" }, { - "source": "gun_scripts_inspect_json_main", - "target": "gun_scripts_inspect_json_describe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L135", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L520", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes", + "target": "gun_scripts_fetch_tourapi_to_csv_parse_items" }, { - "source": "gun_scripts_inspect_json_main", - "target": "gun_scripts_inspect_json_print_tree", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L143", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L734", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", + "target": "gun_scripts_fetch_tourapi_to_csv_parse_items" }, { - "source": "gun_scripts_inspect_json_rationale_1", - "target": "gun_scripts_inspect_json", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L1", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L410", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", + "target": "gun_scripts_fetch_tourapi_to_csv_parse_items" }, { - "source": "gun_scripts_inspect_json_rationale_25", - "target": "gun_scripts_inspect_json_get_path", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L25", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L615", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", + "target": "gun_scripts_fetch_tourapi_to_csv_parse_items" }, { - "source": "gun_scripts_inspect_json_rationale_60", - "target": "gun_scripts_inspect_json_print_tree", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L60", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L334", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_rationale_334", + "target": "gun_scripts_fetch_tourapi_to_csv_parse_items" }, { - "source": "gun_scripts_inspect_json_rationale_87", - "target": "gun_scripts_inspect_json_search_in", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/inspect_json.py", - "source_location": "L87", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L828", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_test_connection", + "target": "gun_scripts_fetch_tourapi_to_csv_parse_items" }, { - "source": "gun_scripts_preprocess_pois", - "target": "argparse", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L25", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L706", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", + "target": "gun_scripts_fetch_tourapi_to_csv_get_total_count" }, { - "source": "gun_scripts_preprocess_pois", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L26", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L482", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes", + "target": "gun_scripts_fetch_tourapi_to_csv_get_total_count" }, { - "source": "gun_scripts_preprocess_pois", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L27", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L607", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", + "target": "gun_scripts_fetch_tourapi_to_csv_get_total_count" }, { - "source": "gun_scripts_preprocess_pois", - "target": "pandas", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L29", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L358", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_csvappender", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_enter" }, { - "source": "gun_scripts_preprocess_pois", - "target": "gun_scripts_preprocess_pois_parse_korean_address", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L37", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L367", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_csvappender", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_exit" }, { - "source": "gun_scripts_preprocess_pois", - "target": "gun_scripts_preprocess_pois_split_address_columns", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L92", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L352", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_csvappender", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_init" }, { - "source": "gun_scripts_preprocess_pois_split_address_columns", - "target": "gun_scripts_preprocess_pois_py_dataframe", - "relation": "references", - "context": "parameter_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L92", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L371", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_csvappender", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_write" }, { - "source": "gun_scripts_preprocess_pois", - "target": "gun_scripts_preprocess_pois_parse_eup_myeon_ri", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L120", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L374", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_csvappender", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_write_many" }, { - "source": "gun_scripts_preprocess_pois", - "target": "gun_scripts_preprocess_pois_split_eup_myeon_ri_columns", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L150", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L777", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender" }, { - "source": "gun_scripts_preprocess_pois_split_eup_myeon_ri_columns", - "target": "gun_scripts_preprocess_pois_py_dataframe", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L150", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L732", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender" }, { - "source": "gun_scripts_preprocess_pois", - "target": "gun_scripts_preprocess_pois_split_date_columns", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L175", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L579", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender" }, { - "source": "gun_scripts_preprocess_pois_split_date_columns", - "target": "gun_scripts_preprocess_pois_py_dataframe", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L175", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L648", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_process_items", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender" }, { - "source": "gun_scripts_preprocess_pois", - "target": "gun_scripts_preprocess_pois_preprocess", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L202", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L802", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_write" }, { - "source": "gun_scripts_preprocess_pois_preprocess", - "target": "gun_scripts_preprocess_pois_py_path", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L202", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L666", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_process_items", + "target": "gun_scripts_fetch_tourapi_to_csv_csvappender_write" }, { - "source": "gun_scripts_preprocess_pois", - "target": "gun_scripts_preprocess_pois_main", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L273", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "gun_scripts_preprocess_pois_split_address_columns", - "target": "gun_scripts_preprocess_pois_parse_korean_address", - "relation": "indirect_call", - "context": "argument", - "confidence": "INFERRED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L101", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L662", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_process_items", + "target": "gun_scripts_fetch_tourapi_to_csv_is_valid_kr_coord" }, { - "source": "gun_scripts_preprocess_pois_split_eup_myeon_ri_columns", - "target": "gun_scripts_preprocess_pois_parse_eup_myeon_ri", - "relation": "indirect_call", - "context": "argument", - "confidence": "INFERRED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L159", + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L922", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_main", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes" }, { - "source": "gun_scripts_preprocess_pois_preprocess", - "target": "gun_scripts_preprocess_pois_split_address_columns", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L223", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L392", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_rationale_392", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_ldong_codes" }, { - "source": "gun_scripts_preprocess_pois_preprocess", - "target": "gun_scripts_preprocess_pois_split_eup_myeon_ri_columns", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L226", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L923", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_main", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes" }, { - "source": "gun_scripts_preprocess_pois_preprocess", - "target": "gun_scripts_preprocess_pois_split_date_columns", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L232", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L504", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_rationale_504", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_classification_codes" }, { - "source": "gun_scripts_preprocess_pois_main", - "target": "gun_scripts_preprocess_pois_py_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L285", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L615", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_fetch_pois", + "target": "gun_scripts_fetch_tourapi_to_csv_process_items" }, { - "source": "gun_scripts_preprocess_pois_main", - "target": "gun_scripts_preprocess_pois_preprocess", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L295", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L961", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_main", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_pois" }, { - "source": "gun_scripts_preprocess_pois_rationale_1", - "target": "gun_scripts_preprocess_pois", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L1", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L572", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_rationale_572", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_pois" }, { - "source": "gun_scripts_preprocess_pois_rationale_38", - "target": "gun_scripts_preprocess_pois_parse_korean_address", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L38", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L653", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_rationale_653", + "target": "gun_scripts_fetch_tourapi_to_csv_process_items" }, { - "source": "gun_scripts_preprocess_pois_rationale_121", - "target": "gun_scripts_preprocess_pois_parse_eup_myeon_ri", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L121", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L908", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_main", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals" }, { - "source": "gun_scripts_preprocess_pois_rationale_181", - "target": "gun_scripts_preprocess_pois_split_date_columns", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/preprocess_pois.py", - "source_location": "L181", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L679", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_rationale_679", + "target": "gun_scripts_fetch_tourapi_to_csv_fetch_festivals" }, { - "source": "gun_scripts_setup_and_test", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/setup_and_test.py", - "source_location": "L11", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L917", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_main", + "target": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours" }, { - "source": "gun_scripts_setup_and_test", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/setup_and_test.py", - "source_location": "L12", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L757", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_rationale_757", + "target": "gun_scripts_fetch_tourapi_to_csv_enrich_operating_hours" }, { - "source": "gun_scripts_setup_and_test", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/setup_and_test.py", - "source_location": "L13", + "source_file": "gun/scripts/fetch_tourapi_to_csv.py", + "source_location": "L887", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_fetch_tourapi_to_csv_main", + "target": "gun_scripts_fetch_tourapi_to_csv_test_connection" }, { - "source": "gun_scripts_setup_and_test", - "target": "dotenv", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/setup_and_test.py", - "source_location": "L28", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json", + "target": "gun_scripts_inspect_json_describe" }, { - "source": "gun_scripts_setup_and_test", - "target": "src_validation_kakao_matrix", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/setup_and_test.py", - "source_location": "L47", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json", + "target": "gun_scripts_inspect_json_get_path" }, { - "source": "gun_scripts_setup_and_test", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/setup_and_test.py", - "source_location": "L48", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L105", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json", + "target": "gun_scripts_inspect_json_main" }, { - "source": "gun_scripts_setup_and_test_rationale_1", - "target": "gun_scripts_setup_and_test", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "gun/scripts/setup_and_test.py", - "source_location": "L1", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L59", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json", + "target": "gun_scripts_inspect_json_print_tree" }, { - "source": "package", - "target": "package_dependencies", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "package.json", - "source_location": "L2", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L86", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json", + "target": "gun_scripts_inspect_json_search_in" }, { - "source": "package_dependencies", - "target": "package_dependencies_pptxgenjs", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "package.json", - "source_location": "L3", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_rationale_1", + "target": "gun_scripts_inspect_json" }, { - "source": "package_dependencies_pptxgenjs", - "target": "pptxgenjs", - "relation": "imports", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "package.json", - "source_location": "L3", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L24", "weight": 1.0, - "context": "import", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_get_path", + "target": "gun_scripts_inspect_json_py_any" }, { - "source": "phases_0_setup_analyze", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L5", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L126", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_main", + "target": "gun_scripts_inspect_json_get_path" }, { - "source": "phases_0_setup_analyze", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L5", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_rationale_25", + "target": "gun_scripts_inspect_json_get_path" }, { - "source": "phases_0_setup_analyze", - "target": "re", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L5", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_describe", + "target": "gun_scripts_inspect_json_py_any" }, { - "source": "phases_0_setup_analyze", - "target": "time", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L5", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L59", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_print_tree", + "target": "gun_scripts_inspect_json_py_any" }, { - "source": "phases_0_setup_analyze", - "target": "requests", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L5", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L86", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_search_in", + "target": "gun_scripts_inspect_json_py_any" }, { - "source": "phases_0_setup_analyze", - "target": "statistics", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L5", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L135", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_main", + "target": "gun_scripts_inspect_json_describe" }, { - "source": "phases_0_setup_analyze", - "target": "math", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L5", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L70", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_print_tree", + "target": "gun_scripts_inspect_json_describe" }, { - "source": "phases_0_setup_analyze", - "target": "threading", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L5", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_main", + "target": "gun_scripts_inspect_json_print_tree" }, { - "source": "phases_0_setup_analyze", - "target": "concurrent_futures", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L6", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_rationale_60", + "target": "gun_scripts_inspect_json_print_tree" }, { - "source": "phases_0_setup_analyze", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L7", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_main", + "target": "gun_scripts_inspect_json_search_in" }, { - "source": "phases_0_setup_analyze", - "target": "collections", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L8", + "source_file": "gun/scripts/inspect_json.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_inspect_json_rationale_87", + "target": "gun_scripts_inspect_json_search_in" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_load_env", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L14", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L273", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois", + "target": "gun_scripts_preprocess_pois_main" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_parse_cell", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L43", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L120", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois", + "target": "gun_scripts_preprocess_pois_parse_eup_myeon_ri" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_geocode_tourapi", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L106", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois", + "target": "gun_scripts_preprocess_pois_parse_korean_address" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_geocode_kakao_local", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L129", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L202", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois", + "target": "gun_scripts_preprocess_pois_preprocess" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_geocode_nominatim", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L153", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L92", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois", + "target": "gun_scripts_preprocess_pois_split_address_columns" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_geocode_single", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L170", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L175", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois", + "target": "gun_scripts_preprocess_pois_split_date_columns" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_haversine_travel_sec", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L218", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois", + "target": "gun_scripts_preprocess_pois_split_eup_myeon_ri_columns" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_get_travel_time", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L225", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_rationale_1", + "target": "gun_scripts_preprocess_pois" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_haversine", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L258", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_rationale_38", + "target": "gun_scripts_preprocess_pois_parse_korean_address" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_cluster_label", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L266", + "relation": "indirect_call", + "context": "argument", + "confidence": "INFERRED", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L101", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 0.5, + "source": "gun_scripts_preprocess_pois_split_address_columns", + "target": "gun_scripts_preprocess_pois_parse_korean_address" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_percentile", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L351", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L223", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_preprocess", + "target": "gun_scripts_preprocess_pois_split_address_columns" }, { - "source": "phases_0_setup_analyze", - "target": "phases_0_setup_analyze_stats_block", - "relation": "contains", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L372", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L92", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_split_address_columns", + "target": "gun_scripts_preprocess_pois_py_dataframe" }, { - "source": "phases_0_setup_analyze_geocode_single", - "target": "phases_0_setup_analyze_geocode_tourapi", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L173", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L175", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_split_date_columns", + "target": "gun_scripts_preprocess_pois_py_dataframe" }, { - "source": "phases_0_setup_analyze_geocode_single", - "target": "phases_0_setup_analyze_geocode_kakao_local", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L175", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_split_eup_myeon_ri_columns", + "target": "gun_scripts_preprocess_pois_py_dataframe" }, { - "source": "phases_0_setup_analyze_geocode_single", - "target": "phases_0_setup_analyze_geocode_nominatim", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L179", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L121", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_rationale_121", + "target": "gun_scripts_preprocess_pois_parse_eup_myeon_ri" }, { - "source": "phases_0_setup_analyze_haversine_travel_sec", - "target": "phases_0_setup_analyze_haversine", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L220", + "relation": "indirect_call", + "context": "argument", + "confidence": "INFERRED", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L159", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 0.5, + "source": "gun_scripts_preprocess_pois_split_eup_myeon_ri_columns", + "target": "gun_scripts_preprocess_pois_parse_eup_myeon_ri" }, { - "source": "phases_0_setup_analyze_get_travel_time", - "target": "phases_0_setup_analyze_haversine_travel_sec", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L255", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L226", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_preprocess", + "target": "gun_scripts_preprocess_pois_split_eup_myeon_ri_columns" }, { - "source": "phases_0_setup_analyze_stats_block", - "target": "phases_0_setup_analyze_percentile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L380", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "phases_0_setup_analyze_rationale_1", - "target": "phases_0_setup_analyze", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "phases_0_setup_analyze_rationale_44", - "target": "phases_0_setup_analyze_parse_cell", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L44", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L232", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_preprocess", + "target": "gun_scripts_preprocess_pois_split_date_columns" }, { - "source": "phases_0_setup_analyze_rationale_130", - "target": "phases_0_setup_analyze_geocode_kakao_local", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L130", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L181", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_rationale_181", + "target": "gun_scripts_preprocess_pois_split_date_columns" }, { - "source": "phases_0_setup_analyze_rationale_171", - "target": "phases_0_setup_analyze_geocode_single", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L171", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L295", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_main", + "target": "gun_scripts_preprocess_pois_preprocess" }, { - "source": "phases_0_setup_analyze_rationale_219", - "target": "phases_0_setup_analyze_haversine_travel_sec", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L219", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L202", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_preprocess", + "target": "gun_scripts_preprocess_pois_py_path" }, { - "source": "phases_0_setup_analyze_rationale_267", - "target": "phases_0_setup_analyze_cluster_label", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze.py", - "source_location": "L267", + "source_file": "gun/scripts/preprocess_pois.py", + "source_location": "L285", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_preprocess_pois_main", + "target": "gun_scripts_preprocess_pois_py_path" }, { - "source": "phases_0_setup_analyze_triple", - "target": "json", - "relation": "imports", + "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L5", + "source_file": "gun/scripts/setup_and_test.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_setup_and_test", + "target": "src_data_models" }, { - "source": "phases_0_setup_analyze_triple", - "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L5", + "source_file": "gun/scripts/setup_and_test.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_setup_and_test", + "target": "src_data_models_vrptwplace" }, { - "source": "phases_0_setup_analyze_triple", - "target": "re", - "relation": "imports", + "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L5", + "source_file": "gun/scripts/setup_and_test.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_setup_and_test", + "target": "src_validation_kakao_matrix" }, { - "source": "phases_0_setup_analyze_triple", - "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L5", + "source_file": "gun/scripts/setup_and_test.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_setup_and_test", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "phases_0_setup_analyze_triple", - "target": "requests", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L5", + "source_file": "gun/scripts/setup_and_test.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "gun_scripts_setup_and_test_rationale_1", + "target": "gun_scripts_setup_and_test" }, { - "source": "phases_0_setup_analyze_triple", - "target": "statistics", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L5", + "source_file": "package.json", + "source_location": "L2", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "package", + "target": "package_dependencies" }, { - "source": "phases_0_setup_analyze_triple", - "target": "math", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L5", + "source_file": "package.json", + "source_location": "L3", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "package_dependencies", + "target": "package_dependencies_pptxgenjs" }, { - "source": "phases_0_setup_analyze_triple", - "target": "threading", "relation": "imports", - "context": "import", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L5", + "source_file": "package.json", + "source_location": "L3", "weight": 1.0, - "_origin": "ast" - }, - { - "source": "phases_0_setup_analyze_triple", - "target": "concurrent_futures", - "relation": "imports_from", "context": "import", - "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L6", - "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "package_dependencies_pptxgenjs", + "target": "pptxgenjs" }, { - "source": "phases_0_setup_analyze_triple", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L7", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L266", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_cluster_label" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_load_env", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L12", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L129", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_geocode_kakao_local" }, { - "source": "phases_0_setup_analyze_triple", - "target": "openpyxl", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L59", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_geocode_nominatim" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_parse_numbered", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L68", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L170", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_geocode_single" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_geocode_tourapi", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L159", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_geocode_tourapi" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_geocode_kakao_local", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L182", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_get_travel_time" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_geocode_nominatim", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L206", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L258", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_haversine" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_geocode_single", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L223", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L218", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_haversine_travel_sec" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_haversine", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L265", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_load_env" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_haversine_travel_sec", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L273", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_parse_cell" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_get_travel_time", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L279", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L351", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_percentile" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_cluster_label", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L308", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L372", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze", + "target": "phases_0_setup_analyze_stats_block" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_percentile", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L388", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_rationale_1", + "target": "phases_0_setup_analyze" }, { - "source": "phases_0_setup_analyze_triple", - "target": "phases_0_setup_analyze_triple_stats_block", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L394", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_rationale_44", + "target": "phases_0_setup_analyze_parse_cell" }, { - "source": "phases_0_setup_analyze_triple_geocode_single", - "target": "phases_0_setup_analyze_triple_geocode_tourapi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L226", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L173", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_geocode_single", + "target": "phases_0_setup_analyze_geocode_tourapi" }, { - "source": "phases_0_setup_analyze_triple_geocode_single", - "target": "phases_0_setup_analyze_triple_geocode_kakao_local", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L228", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L175", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_geocode_single", + "target": "phases_0_setup_analyze_geocode_kakao_local" }, { - "source": "phases_0_setup_analyze_triple_geocode_single", - "target": "phases_0_setup_analyze_triple_geocode_nominatim", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L232", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L130", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_rationale_130", + "target": "phases_0_setup_analyze_geocode_kakao_local" }, { - "source": "phases_0_setup_analyze_triple_haversine_travel_sec", - "target": "phases_0_setup_analyze_triple_haversine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L274", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L179", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_geocode_single", + "target": "phases_0_setup_analyze_geocode_nominatim" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L171", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_rationale_171", + "target": "phases_0_setup_analyze_geocode_single" }, { - "source": "phases_0_setup_analyze_triple_get_travel_time", - "target": "phases_0_setup_analyze_triple_haversine_travel_sec", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L305", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L255", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_get_travel_time", + "target": "phases_0_setup_analyze_haversine_travel_sec" }, { - "source": "phases_0_setup_analyze_triple_stats_block", - "target": "phases_0_setup_analyze_triple_percentile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L402", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L220", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_haversine_travel_sec", + "target": "phases_0_setup_analyze_haversine" }, { - "source": "phases_0_setup_analyze_triple_rationale_1", - "target": "phases_0_setup_analyze_triple", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L1", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L219", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_rationale_219", + "target": "phases_0_setup_analyze_haversine_travel_sec" }, { - "source": "phases_0_setup_analyze_triple_rationale_69", - "target": "phases_0_setup_analyze_triple_parse_numbered", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L69", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L267", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_rationale_267", + "target": "phases_0_setup_analyze_cluster_label" }, { - "source": "phases_0_setup_analyze_triple_rationale_183", - "target": "phases_0_setup_analyze_triple_geocode_kakao_local", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L183", + "source_file": "phases/0-setup/analyze.py", + "source_location": "L380", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_stats_block", + "target": "phases_0_setup_analyze_percentile" }, { - "source": "phases_0_setup_analyze_triple_rationale_224", - "target": "phases_0_setup_analyze_triple_geocode_single", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", "source_file": "phases/0-setup/analyze_triple.py", - "source_location": "L224", + "source_location": "L308", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_cluster_label" }, { - "source": "phases_0_setup_statistical_report", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/statistical_report.py", - "source_location": "L5", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L182", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_geocode_kakao_local" }, { - "source": "phases_0_setup_statistical_report", - "target": "math", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/statistical_report.py", - "source_location": "L6", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L206", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_geocode_nominatim" }, { - "source": "phases_0_setup_statistical_report", - "target": "statistics", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/statistical_report.py", - "source_location": "L7", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L223", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_geocode_single" }, { - "source": "phases_0_setup_statistical_report", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/statistical_report.py", - "source_location": "L8", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L159", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_geocode_tourapi" }, { - "source": "phases_0_setup_statistical_report", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/statistical_report.py", - "source_location": "L9", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L279", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_get_travel_time" }, { - "source": "phases_0_setup_statistical_report", - "target": "collections", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/statistical_report.py", - "source_location": "L10", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L265", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_haversine" }, { - "source": "phases_0_setup_statistical_report", - "target": "phases_0_setup_statistical_report_pct", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/statistical_report.py", - "source_location": "L37", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L273", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_haversine_travel_sec" }, { - "source": "phases_0_setup_statistical_report", - "target": "phases_0_setup_statistical_report_pctile", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/statistical_report.py", - "source_location": "L40", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_load_env" }, { - "source": "phases_0_setup_statistical_report", - "target": "phases_0_setup_statistical_report_header", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/statistical_report.py", - "source_location": "L87", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_parse_numbered" }, { - "source": "phases_0_setup_statistical_report_rationale_1", - "target": "phases_0_setup_statistical_report", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/statistical_report.py", - "source_location": "L1", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L388", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_percentile" }, { - "source": "phases_0_setup_visualize", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize.py", - "source_location": "L4", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L394", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple", + "target": "phases_0_setup_analyze_triple_stats_block" }, { - "source": "phases_0_setup_visualize", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize.py", - "source_location": "L4", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple_rationale_1", + "target": "phases_0_setup_analyze_triple" }, { - "source": "phases_0_setup_visualize", - "target": "matplotlib", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize.py", - "source_location": "L5", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple_rationale_69", + "target": "phases_0_setup_analyze_triple_parse_numbered" }, { - "source": "phases_0_setup_visualize", - "target": "matplotlib_pyplot", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize.py", - "source_location": "L6", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L226", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple_geocode_single", + "target": "phases_0_setup_analyze_triple_geocode_tourapi" }, { - "source": "phases_0_setup_visualize", - "target": "matplotlib_patches", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize.py", - "source_location": "L7", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L228", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple_geocode_single", + "target": "phases_0_setup_analyze_triple_geocode_kakao_local" }, { - "source": "phases_0_setup_visualize", - "target": "numpy", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize.py", - "source_location": "L8", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L183", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple_rationale_183", + "target": "phases_0_setup_analyze_triple_geocode_kakao_local" }, { - "source": "phases_0_setup_visualize", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize.py", - "source_location": "L9", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L232", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple_geocode_single", + "target": "phases_0_setup_analyze_triple_geocode_nominatim" }, { - "source": "phases_0_setup_visualize", - "target": "collections", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize.py", - "source_location": "L10", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L224", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple_rationale_224", + "target": "phases_0_setup_analyze_triple_geocode_single" }, { - "source": "phases_0_setup_visualize_rationale_1", - "target": "phases_0_setup_visualize", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize.py", - "source_location": "L1", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L274", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple_haversine_travel_sec", + "target": "phases_0_setup_analyze_triple_haversine" }, { - "source": "phases_0_setup_visualize_combined", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize_combined.py", - "source_location": "L6", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L305", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple_get_travel_time", + "target": "phases_0_setup_analyze_triple_haversine_travel_sec" }, { - "source": "phases_0_setup_visualize_combined", - "target": "matplotlib", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize_combined.py", - "source_location": "L7", + "source_file": "phases/0-setup/analyze_triple.py", + "source_location": "L402", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_analyze_triple_stats_block", + "target": "phases_0_setup_analyze_triple_percentile" }, { - "source": "phases_0_setup_visualize_combined", - "target": "matplotlib_pyplot", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize_combined.py", - "source_location": "L8", + "source_file": "phases/0-setup/statistical_report.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_statistical_report", + "target": "phases_0_setup_statistical_report_header" }, { - "source": "phases_0_setup_visualize_combined", - "target": "matplotlib_patches", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize_combined.py", - "source_location": "L9", + "source_file": "phases/0-setup/statistical_report.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_statistical_report", + "target": "phases_0_setup_statistical_report_pct" }, { - "source": "phases_0_setup_visualize_combined", - "target": "numpy", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize_combined.py", - "source_location": "L10", + "source_file": "phases/0-setup/statistical_report.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_statistical_report", + "target": "phases_0_setup_statistical_report_pctile" }, { - "source": "phases_0_setup_visualize_combined", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize_combined.py", - "source_location": "L11", + "source_file": "phases/0-setup/statistical_report.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_statistical_report_rationale_1", + "target": "phases_0_setup_statistical_report" }, { - "source": "phases_0_setup_visualize_combined", - "target": "collections", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "phases/0-setup/visualize_combined.py", - "source_location": "L12", + "source_file": "phases/0-setup/visualize.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_visualize_rationale_1", + "target": "phases_0_setup_visualize" }, { - "source": "phases_0_setup_visualize_combined_rationale_1", - "target": "phases_0_setup_visualize_combined", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "phases/0-setup/visualize_combined.py", "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "phases_0_setup_visualize_combined_rationale_1", + "target": "phases_0_setup_visualize_combined" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_fastapi", - "relation": "depends_on", - "context": "dependency", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L49", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset", + "target": "scripts_build_poi_dataset_build_barrier_free" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_uvicorn", - "relation": "depends_on", - "context": "dependency", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset", + "target": "scripts_build_poi_dataset_build_wellness" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_httpx", - "relation": "depends_on", - "context": "dependency", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset", + "target": "scripts_build_poi_dataset_main" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_pydantic", - "relation": "depends_on", - "context": "dependency", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset", + "target": "src_data_barrier_free_api" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_pydantic_settings", - "relation": "depends_on", - "context": "dependency", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset", + "target": "src_data_barrier_free_api_barrierfreeapiclient" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_python_dotenv", - "relation": "depends_on", - "context": "dependency", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset", + "target": "src_data_models" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_anthropic", - "relation": "depends_on", - "context": "dependency", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset", + "target": "src_data_models_settings" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_pandas", - "relation": "depends_on", - "context": "dependency", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset", + "target": "src_data_wellness_api" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_pdfplumber", - "relation": "depends_on", - "context": "dependency", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset", + "target": "src_data_wellness_api_wellnessapiclient" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_tqdm", - "relation": "depends_on", - "context": "dependency", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", + "source_file": "scripts/build_poi_dataset.py", "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset_rationale_1", + "target": "scripts_build_poi_dataset" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_openpyxl", - "relation": "depends_on", - "context": "dependency", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset_build_wellness", + "target": "src_data_wellness_api_wellnessapiclient" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_scipy", - "relation": "depends_on", - "context": "dependency", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset_main", + "target": "scripts_build_poi_dataset_build_wellness" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_neo4j", - "relation": "depends_on", - "context": "dependency", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L49", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset_build_barrier_free", + "target": "src_data_barrier_free_api_barrierfreeapiclient" }, { - "source": "pkg_travel_plan_validator", - "target": "pkg_python_multipart", - "relation": "depends_on", - "context": "dependency", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "pyproject.toml", - "source_location": "L1", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L86", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset_main", + "target": "scripts_build_poi_dataset_build_barrier_free" }, { - "source": "scripts_build_knowledge_graph", - "target": "math", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L17", + "confidence_score": 1.0, + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L70", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "scripts_build_poi_dataset_main", + "target": "src_data_barrier_free_api_barrierfreeapiclient_from_settings" }, { - "source": "scripts_build_knowledge_graph", - "target": "re", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L18", + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_build_poi_dataset_main", + "target": "src_data_models_settings" }, { - "source": "scripts_build_knowledge_graph", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L19", + "confidence_score": 1.0, + "source_file": "scripts/build_poi_dataset.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "scripts_build_poi_dataset_main", + "target": "src_data_wellness_api_wellnessapiclient_from_settings" }, { - "source": "scripts_build_knowledge_graph", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L20", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L315", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_build_summary_text" }, { - "source": "scripts_build_knowledge_graph", - "target": "numpy", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L22", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L214", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_count_hits" }, { - "source": "scripts_build_knowledge_graph", - "target": "pandas", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L23", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L255", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_extract_fields" }, { - "source": "scripts_build_knowledge_graph", - "target": "scipy_spatial", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L24", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L354", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_fetch_and_extract" }, { - "source": "scripts_build_knowledge_graph", - "target": "scripts_build_knowledge_graph_place_type", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L61", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L328", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_fetch_blog_texts" }, { - "source": "scripts_build_knowledge_graph", - "target": "scripts_build_knowledge_graph_parse_region_chain", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L67", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L127", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_increment_quota" }, { - "source": "scripts_build_knowledge_graph", - "target": "scripts_build_knowledge_graph_load_category_group_map", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L100", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L396", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_load_all_pois" }, { - "source": "scripts_build_knowledge_graph", - "target": "scripts_build_knowledge_graph_project_meters", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L113", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L406", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_load_progress" }, { - "source": "scripts_build_knowledge_graph_project_meters", - "target": "ndarray", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L113", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_load_quota" }, { - "source": "scripts_build_knowledge_graph", - "target": "scripts_build_knowledge_graph_build_near_by", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L121", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L464", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_main" }, { - "source": "scripts_build_knowledge_graph_build_near_by", - "target": "scripts_build_knowledge_graph_py_dataframe", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L121", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L232", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_parse_price" }, { - "source": "scripts_build_knowledge_graph", - "target": "scripts_build_knowledge_graph_selfcheck", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L154", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L431", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_print_stats" }, { - "source": "scripts_build_knowledge_graph", - "target": "scripts_build_knowledge_graph_main", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L170", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_rate_get" }, { - "source": "scripts_build_knowledge_graph_build_near_by", - "target": "scripts_build_knowledge_graph_project_meters", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L123", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L422", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_save_output" }, { - "source": "scripts_build_knowledge_graph_build_near_by", - "target": "scripts_build_knowledge_graph_py_dataframe", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L135", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L417", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_save_progress" }, { - "source": "scripts_build_knowledge_graph_selfcheck", - "target": "scripts_build_knowledge_graph_place_type", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L155", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L123", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_save_quota" }, { - "source": "scripts_build_knowledge_graph_selfcheck", - "target": "scripts_build_knowledge_graph_parse_region_chain", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L159", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full", + "target": "scripts_collect_naver_full_strip" }, { - "source": "scripts_build_knowledge_graph_main", - "target": "scripts_build_knowledge_graph_selfcheck", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L172", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L331", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_fetch_blog_texts", + "target": "scripts_collect_naver_full_rate_get" }, { - "source": "scripts_build_knowledge_graph_main", - "target": "scripts_build_knowledge_graph_load_category_group_map", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L176", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_rate_get", + "target": "scripts_collect_naver_full_py_client" }, { - "source": "scripts_build_knowledge_graph_main", - "target": "scripts_build_knowledge_graph_place_type", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L181", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_rate_get", + "target": "scripts_collect_naver_full_py_response" }, { - "source": "scripts_build_knowledge_graph_main", - "target": "scripts_build_knowledge_graph_py_dataframe", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L188", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L354", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_fetch_and_extract", + "target": "scripts_collect_naver_full_py_client" }, { - "source": "scripts_build_knowledge_graph_main", - "target": "scripts_build_knowledge_graph_parse_region_chain", - "relation": "indirect_call", - "context": "argument", - "confidence": "INFERRED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L218", + "relation": "references", + "context": "parameter_type", + "confidence": "EXTRACTED", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L328", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_fetch_blog_texts", + "target": "scripts_collect_naver_full_py_client" }, { - "source": "scripts_build_knowledge_graph_main", - "target": "scripts_build_knowledge_graph_build_near_by", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L245", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L512", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_main", + "target": "scripts_collect_naver_full_py_client" }, { - "source": "scripts_build_knowledge_graph_rationale_68", - "target": "scripts_build_knowledge_graph_parse_region_chain", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L68", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L481", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_main", + "target": "scripts_collect_naver_full_load_quota" }, { - "source": "scripts_build_knowledge_graph_rationale_114", - "target": "scripts_build_knowledge_graph_project_meters", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/build_knowledge_graph.py", - "source_location": "L114", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_build_poi_dataset", - "target": "asyncio", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L17", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_build_poi_dataset", - "target": "json", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L18", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L111", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_rationale_111", + "target": "scripts_collect_naver_full_load_quota" }, { - "source": "scripts_build_poi_dataset", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L19", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L133", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_increment_quota", + "target": "scripts_collect_naver_full_save_quota" }, { - "source": "scripts_build_poi_dataset", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L20", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L536", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_main", + "target": "scripts_collect_naver_full_save_quota" }, { - "source": "scripts_build_poi_dataset", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L21", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L361", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_fetch_and_extract", + "target": "scripts_collect_naver_full_increment_quota" }, { - "source": "scripts_build_poi_dataset", - "target": "src_data_barrier_free_api", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L25", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L128", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_rationale_128", + "target": "scripts_collect_naver_full_increment_quota" }, { - "source": "scripts_build_poi_dataset", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L26", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L345", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_fetch_blog_texts", + "target": "scripts_collect_naver_full_strip" }, { - "source": "scripts_build_poi_dataset", - "target": "src_data_wellness_api", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L27", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L270", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_extract_fields", + "target": "scripts_collect_naver_full_count_hits" }, { - "source": "scripts_build_poi_dataset", - "target": "scripts_build_poi_dataset_build_wellness", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L34", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L285", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_extract_fields", + "target": "scripts_collect_naver_full_parse_price" }, { - "source": "scripts_build_poi_dataset_build_wellness", - "target": "src_data_wellness_api_wellnessapiclient", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L34", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L378", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_fetch_and_extract", + "target": "scripts_collect_naver_full_extract_fields" }, { - "source": "scripts_build_poi_dataset", - "target": "scripts_build_poi_dataset_build_barrier_free", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L49", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L391", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_fetch_and_extract", + "target": "scripts_collect_naver_full_build_summary_text" }, { - "source": "scripts_build_poi_dataset_build_barrier_free", - "target": "src_data_barrier_free_api_barrierfreeapiclient", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L49", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L367", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_fetch_and_extract", + "target": "scripts_collect_naver_full_fetch_blog_texts" }, { - "source": "scripts_build_poi_dataset", - "target": "scripts_build_poi_dataset_main", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L64", + "relation": "indirect_call", + "context": "argument", + "confidence": "INFERRED", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L514", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 0.5, + "source": "scripts_collect_naver_full_main", + "target": "scripts_collect_naver_full_fetch_and_extract" }, { - "source": "scripts_build_poi_dataset_main", - "target": "scripts_build_poi_dataset_build_wellness", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L81", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L478", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_main", + "target": "scripts_collect_naver_full_load_all_pois" }, { - "source": "scripts_build_poi_dataset_main", - "target": "scripts_build_poi_dataset_build_barrier_free", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L86", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L477", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_main", + "target": "scripts_collect_naver_full_load_progress" }, { - "source": "scripts_build_poi_dataset_rationale_1", - "target": "scripts_build_poi_dataset", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L1", + "source_file": "scripts/collect_naver_full.py", + "source_location": "L407", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_rationale_407", + "target": "scripts_collect_naver_full_load_progress" }, { - "source": "scripts_collect_naver_full", - "target": "argparse", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/collect_naver_full.py", - "source_location": "L22", + "source_location": "L530", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_main", + "target": "scripts_collect_naver_full_save_progress" }, { - "source": "scripts_collect_naver_full", - "target": "csv", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/collect_naver_full.py", - "source_location": "L23", + "source_location": "L504", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_main", + "target": "scripts_collect_naver_full_save_output" }, { - "source": "scripts_collect_naver_full", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/collect_naver_full.py", - "source_location": "L24", + "source_location": "L494", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_full_main", + "target": "scripts_collect_naver_full_print_stats" }, { - "source": "scripts_collect_naver_full", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L25", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata", + "target": "scripts_collect_naver_metadata_build_place_block" }, { - "source": "scripts_collect_naver_full", - "target": "re", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L26", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata", + "target": "scripts_collect_naver_metadata_extract_metadata_batch" }, { - "source": "scripts_collect_naver_full", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L27", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L117", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata", + "target": "scripts_collect_naver_metadata_fetch_blog" }, { - "source": "scripts_collect_naver_full", - "target": "threading", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L28", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata", + "target": "scripts_collect_naver_metadata_load_csv_sample" }, { - "source": "scripts_collect_naver_full", - "target": "time", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L29", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L188", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata", + "target": "scripts_collect_naver_metadata_load_progress" }, { - "source": "scripts_collect_naver_full", - "target": "concurrent_futures", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L30", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L215", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata", + "target": "scripts_collect_naver_metadata_main" }, { - "source": "scripts_collect_naver_full", - "target": "datetime", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L31", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata", + "target": "scripts_collect_naver_metadata_merge_meta" }, { - "source": "scripts_collect_naver_full", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L32", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata", + "target": "scripts_collect_naver_metadata_rate_limited_get" }, { - "source": "scripts_collect_naver_full", - "target": "httpx", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L34", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L195", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata", + "target": "scripts_collect_naver_metadata_save_progress" }, { - "source": "scripts_collect_naver_full", - "target": "dotenv", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L35", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L125", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_fetch_blog", + "target": "scripts_collect_naver_metadata_rate_limited_get" }, { - "source": "scripts_collect_naver_full", - "target": "tqdm", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L36", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_rate_limited_get", + "target": "scripts_collect_naver_metadata_py_client" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_rate_get", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L93", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_rate_limited_get", + "target": "scripts_collect_naver_metadata_py_response" }, { - "source": "scripts_collect_naver_full_rate_get", - "target": "scripts_collect_naver_full_py_client", - "relation": "references", - "context": "parameter_type", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L93", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L51", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_rationale_51", + "target": "scripts_collect_naver_metadata_rate_limited_get" }, { - "source": "scripts_collect_naver_full_rate_get", - "target": "scripts_collect_naver_full_py_response", "relation": "references", - "context": "return_type", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L93", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L117", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_fetch_blog", + "target": "scripts_collect_naver_metadata_py_client" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_load_quota", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L110", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L234", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_main", + "target": "scripts_collect_naver_metadata_py_client" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_save_quota", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L123", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L221", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_main", + "target": "scripts_collect_naver_metadata_load_csv_sample" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_increment_quota", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L127", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L95", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_rationale_95", + "target": "scripts_collect_naver_metadata_load_csv_sample" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_strip", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L138", + "relation": "indirect_call", + "context": "argument", + "confidence": "INFERRED", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L236", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 0.5, + "source": "scripts_collect_naver_metadata_main", + "target": "scripts_collect_naver_metadata_fetch_blog" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_count_hits", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L214", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L118", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_rationale_118", + "target": "scripts_collect_naver_metadata_fetch_blog" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_parse_price", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L232", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L166", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_extract_metadata_batch", + "target": "scripts_collect_naver_metadata_build_place_block" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_extract_fields", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L255", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L251", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_main", + "target": "scripts_collect_naver_metadata_extract_metadata_batch" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_build_summary_text", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L315", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L224", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_main", + "target": "scripts_collect_naver_metadata_load_progress" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_fetch_blog_texts", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L328", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L257", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_main", + "target": "scripts_collect_naver_metadata_save_progress" }, { - "source": "scripts_collect_naver_full_fetch_blog_texts", - "target": "scripts_collect_naver_full_py_client", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L328", + "source_file": "scripts/collect_naver_metadata.py", + "source_location": "L256", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_metadata_main", + "target": "scripts_collect_naver_metadata_merge_meta" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_fetch_and_extract", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L354", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L297", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_build_summary_text" }, { - "source": "scripts_collect_naver_full_fetch_and_extract", - "target": "scripts_collect_naver_full_py_client", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L354", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L181", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_count_hits" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_load_all_pois", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L396", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L228", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_extract_fields" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_load_progress", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L406", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L334", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_fetch_and_extract" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_save_progress", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L417", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L311", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_fetch_blog_texts" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_save_output", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L422", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L372", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_load_csv_sample" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_print_stats", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L431", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L391", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_load_progress" }, { - "source": "scripts_collect_naver_full", - "target": "scripts_collect_naver_full_main", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L464", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L404", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_main" }, { - "source": "scripts_collect_naver_full_increment_quota", - "target": "scripts_collect_naver_full_save_quota", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L133", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L204", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_parse_price" }, { - "source": "scripts_collect_naver_full_extract_fields", - "target": "scripts_collect_naver_full_count_hits", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L270", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_rate_get" }, { - "source": "scripts_collect_naver_full_extract_fields", - "target": "scripts_collect_naver_full_parse_price", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L285", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L397", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_save_progress" }, { - "source": "scripts_collect_naver_full_fetch_blog_texts", - "target": "scripts_collect_naver_full_rate_get", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L331", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L80", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only", + "target": "scripts_collect_naver_only_strip" }, { - "source": "scripts_collect_naver_full_fetch_blog_texts", - "target": "scripts_collect_naver_full_strip", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L345", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L314", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_fetch_blog_texts", + "target": "scripts_collect_naver_only_rate_get" }, { - "source": "scripts_collect_naver_full_fetch_and_extract", - "target": "scripts_collect_naver_full_increment_quota", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L361", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_rate_get", + "target": "scripts_collect_naver_only_py_client" }, { - "source": "scripts_collect_naver_full_fetch_and_extract", - "target": "scripts_collect_naver_full_fetch_blog_texts", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L367", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_rate_get", + "target": "scripts_collect_naver_only_py_response" }, { - "source": "scripts_collect_naver_full_fetch_and_extract", - "target": "scripts_collect_naver_full_extract_fields", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L378", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L334", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_fetch_and_extract", + "target": "scripts_collect_naver_only_py_client" + }, + { + "relation": "references", + "context": "parameter_type", + "confidence": "EXTRACTED", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L311", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_fetch_blog_texts", + "target": "scripts_collect_naver_only_py_client" }, { - "source": "scripts_collect_naver_full_fetch_and_extract", - "target": "scripts_collect_naver_full_build_summary_text", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L391", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L418", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_main", + "target": "scripts_collect_naver_only_py_client" }, { - "source": "scripts_collect_naver_full_main", - "target": "scripts_collect_naver_full_load_progress", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L477", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L325", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_fetch_blog_texts", + "target": "scripts_collect_naver_only_strip" }, { - "source": "scripts_collect_naver_full_main", - "target": "scripts_collect_naver_full_load_all_pois", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L478", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L243", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_extract_fields", + "target": "scripts_collect_naver_only_count_hits" }, { - "source": "scripts_collect_naver_full_main", - "target": "scripts_collect_naver_full_load_quota", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L481", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L265", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_extract_fields", + "target": "scripts_collect_naver_only_parse_price" }, { - "source": "scripts_collect_naver_full_main", - "target": "scripts_collect_naver_full_print_stats", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L494", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L354", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_fetch_and_extract", + "target": "scripts_collect_naver_only_extract_fields" }, { - "source": "scripts_collect_naver_full_main", - "target": "scripts_collect_naver_full_save_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L504", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L367", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_fetch_and_extract", + "target": "scripts_collect_naver_only_build_summary_text" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L298", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_rationale_298", + "target": "scripts_collect_naver_only_build_summary_text" }, { - "source": "scripts_collect_naver_full_main", - "target": "scripts_collect_naver_full_py_client", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L512", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L343", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_fetch_and_extract", + "target": "scripts_collect_naver_only_fetch_blog_texts" }, { - "source": "scripts_collect_naver_full_main", - "target": "scripts_collect_naver_full_fetch_and_extract", "relation": "indirect_call", "context": "argument", "confidence": "INFERRED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L514", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L420", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 0.5, + "source": "scripts_collect_naver_only_main", + "target": "scripts_collect_naver_only_fetch_and_extract" }, { - "source": "scripts_collect_naver_full_main", - "target": "scripts_collect_naver_full_save_progress", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L530", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L410", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_main", + "target": "scripts_collect_naver_only_load_csv_sample" }, { - "source": "scripts_collect_naver_full_main", - "target": "scripts_collect_naver_full_save_quota", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L536", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L412", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_main", + "target": "scripts_collect_naver_only_load_progress" }, { - "source": "scripts_collect_naver_full_rationale_111", - "target": "scripts_collect_naver_full_load_quota", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L111", + "source_file": "scripts/collect_naver_only.py", + "source_location": "L430", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_collect_naver_only_main", + "target": "scripts_collect_naver_only_save_progress" }, { - "source": "scripts_collect_naver_full_rationale_128", - "target": "scripts_collect_naver_full_increment_quota", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L128", + "source_file": "scripts/execute.py", + "source_location": "L407", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute", + "target": "scripts_execute_main" }, { - "source": "scripts_collect_naver_full_rationale_407", - "target": "scripts_collect_naver_full_load_progress", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_full.py", - "source_location": "L407", + "source_file": "scripts/execute.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute", + "target": "scripts_execute_progress_indicator" }, { - "source": "scripts_collect_naver_metadata", - "target": "csv", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L4", + "source_file": "scripts/execute.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute", + "target": "scripts_execute_stepexecutor" }, { - "source": "scripts_collect_naver_metadata", - "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L5", + "source_file": "scripts/test_execute.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_execute" }, { - "source": "scripts_collect_naver_metadata", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L6", + "source_file": "scripts/execute.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_rationale_27", + "target": "scripts_execute_progress_indicator" }, { - "source": "scripts_collect_naver_metadata", - "target": "random", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L7", + "source_file": "scripts/execute.py", + "source_location": "L308", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_single_step", + "target": "scripts_execute_progress_indicator" }, { - "source": "scripts_collect_naver_metadata", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L8", + "source_file": "scripts/execute.py", + "source_location": "L413", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_main", + "target": "scripts_execute_stepexecutor" }, { - "source": "scripts_collect_naver_metadata", - "target": "threading", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L9", + "source_file": "scripts/execute.py", + "source_location": "L54", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_rationale_54", + "target": "scripts_execute_stepexecutor" }, { - "source": "scripts_collect_naver_metadata", - "target": "time", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L10", + "source_file": "scripts/execute.py", + "source_location": "L199", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_build_preamble" }, { - "source": "scripts_collect_naver_metadata", - "target": "concurrent_futures", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L11", + "source_file": "scripts/execute.py", + "source_location": "L189", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_build_step_context" }, { - "source": "scripts_collect_naver_metadata", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L12", + "source_file": "scripts/execute.py", + "source_location": "L269", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_check_blockers" }, { - "source": "scripts_collect_naver_metadata", - "target": "httpx", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L14", + "source_file": "scripts/execute.py", + "source_location": "L113", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_checkout_branch" }, { - "source": "scripts_collect_naver_metadata", - "target": "anthropic", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L15", + "source_file": "scripts/execute.py", + "source_location": "L136", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_commit_step" }, { - "source": "scripts_collect_naver_metadata", - "target": "dotenv", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L16", + "source_file": "scripts/execute.py", + "source_location": "L285", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_ensure_created_at" }, { - "source": "scripts_collect_naver_metadata", - "target": "tqdm", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L17", + "source_file": "scripts/execute.py", + "source_location": "L364", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_execute_all_steps" }, { - "source": "scripts_collect_naver_metadata", - "target": "scripts_collect_naver_metadata_rate_limited_get", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L50", + "source_file": "scripts/execute.py", + "source_location": "L293", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_execute_single_step" }, { - "source": "scripts_collect_naver_metadata_rate_limited_get", - "target": "scripts_collect_naver_metadata_py_client", - "relation": "references", - "context": "parameter_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L50", + "source_file": "scripts/execute.py", + "source_location": "L381", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_finalize" }, { - "source": "scripts_collect_naver_metadata_rate_limited_get", - "target": "scripts_collect_naver_metadata_py_response", - "relation": "references", - "context": "return_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L50", + "source_file": "scripts/execute.py", + "source_location": "L61", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_init" }, { - "source": "scripts_collect_naver_metadata", - "target": "scripts_collect_naver_metadata_load_csv_sample", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L94", + "source_file": "scripts/execute.py", + "source_location": "L229", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_invoke_claude" }, { - "source": "scripts_collect_naver_metadata", - "target": "scripts_collect_naver_metadata_fetch_blog", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L117", + "source_file": "scripts/execute.py", + "source_location": "L177", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_load_guardrails" }, { - "source": "scripts_collect_naver_metadata_fetch_blog", - "target": "scripts_collect_naver_metadata_py_client", - "relation": "references", - "context": "parameter_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L117", + "source_file": "scripts/execute.py", + "source_location": "L261", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_print_header" }, { - "source": "scripts_collect_naver_metadata", - "target": "scripts_collect_naver_metadata_build_place_block", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L143", + "source_file": "scripts/execute.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_read_json" }, { - "source": "scripts_collect_naver_metadata", - "target": "scripts_collect_naver_metadata_extract_metadata_batch", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L164", + "source_file": "scripts/execute.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_run" }, { - "source": "scripts_collect_naver_metadata", - "target": "scripts_collect_naver_metadata_load_progress", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L188", + "source_file": "scripts/execute.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_run_git" }, { - "source": "scripts_collect_naver_metadata", - "target": "scripts_collect_naver_metadata_save_progress", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L195", + "source_file": "scripts/execute.py", + "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_stamp" }, { - "source": "scripts_collect_naver_metadata", - "target": "scripts_collect_naver_metadata_merge_meta", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L201", + "source_file": "scripts/execute.py", + "source_location": "L161", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_update_top_index" }, { - "source": "scripts_collect_naver_metadata", - "target": "scripts_collect_naver_metadata_main", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L215", + "source_file": "scripts/execute.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor", + "target": "scripts_execute_stepexecutor_write_json" }, { - "source": "scripts_collect_naver_metadata_fetch_blog", - "target": "scripts_collect_naver_metadata_rate_limited_get", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L125", + "source_file": "scripts/execute.py", + "source_location": "L78", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_init", + "target": "scripts_execute_stepexecutor_read_json" }, { - "source": "scripts_collect_naver_metadata_extract_metadata_batch", - "target": "scripts_collect_naver_metadata_build_place_block", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L166", + "source_file": "scripts/execute.py", + "source_location": "L413", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_main", + "target": "scripts_execute_stepexecutor_run" }, { - "source": "scripts_collect_naver_metadata_main", - "target": "scripts_collect_naver_metadata_load_csv_sample", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L221", + "source_file": "scripts/execute.py", + "source_location": "L238", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_invoke_claude", + "target": "scripts_execute_stepexecutor_run" }, { - "source": "scripts_collect_naver_metadata_main", - "target": "scripts_collect_naver_metadata_load_progress", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L224", + "source_file": "scripts/execute.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_run", + "target": "scripts_execute_stepexecutor_check_blockers" }, { - "source": "scripts_collect_naver_metadata_main", - "target": "scripts_collect_naver_metadata_py_client", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L234", + "source_file": "scripts/execute.py", + "source_location": "L86", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_run", + "target": "scripts_execute_stepexecutor_checkout_branch" }, { - "source": "scripts_collect_naver_metadata_main", - "target": "scripts_collect_naver_metadata_fetch_blog", - "relation": "indirect_call", - "context": "argument", - "confidence": "INFERRED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L236", + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "scripts/execute.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_run", + "target": "scripts_execute_stepexecutor_ensure_created_at" }, { - "source": "scripts_collect_naver_metadata_main", - "target": "scripts_collect_naver_metadata_extract_metadata_batch", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L251", + "source_file": "scripts/execute.py", + "source_location": "L89", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_run", + "target": "scripts_execute_stepexecutor_execute_all_steps" }, { - "source": "scripts_collect_naver_metadata_main", - "target": "scripts_collect_naver_metadata_merge_meta", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L256", + "source_file": "scripts/execute.py", + "source_location": "L90", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_run", + "target": "scripts_execute_stepexecutor_finalize" }, { - "source": "scripts_collect_naver_metadata_main", - "target": "scripts_collect_naver_metadata_save_progress", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L257", + "source_file": "scripts/execute.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_run", + "target": "scripts_execute_stepexecutor_load_guardrails" }, { - "source": "scripts_collect_naver_metadata_rationale_51", - "target": "scripts_collect_naver_metadata_rate_limited_get", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L51", + "source_file": "scripts/execute.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_run", + "target": "scripts_execute_stepexecutor_print_header" }, { - "source": "scripts_collect_naver_metadata_rationale_95", - "target": "scripts_collect_naver_metadata_load_csv_sample", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L95", + "source_file": "scripts/execute.py", + "source_location": "L111", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_run_git", + "target": "scripts_execute_stepexecutor_run" }, { - "source": "scripts_collect_naver_metadata_rationale_118", - "target": "scripts_collect_naver_metadata_fetch_blog", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_metadata.py", - "source_location": "L118", + "source_file": "scripts/execute.py", + "source_location": "L288", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_ensure_created_at", + "target": "scripts_execute_stepexecutor_stamp" }, { - "source": "scripts_collect_naver_only", - "target": "csv", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L9", + "source_file": "scripts/execute.py", + "source_location": "L375", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_all_steps", + "target": "scripts_execute_stepexecutor_stamp" }, { - "source": "scripts_collect_naver_only", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L10", + "source_file": "scripts/execute.py", + "source_location": "L314", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_single_step", + "target": "scripts_execute_stepexecutor_stamp" }, { - "source": "scripts_collect_naver_only", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L11", + "source_file": "scripts/execute.py", + "source_location": "L383", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_finalize", + "target": "scripts_execute_stepexecutor_stamp" }, { - "source": "scripts_collect_naver_only", - "target": "random", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L12", + "source_file": "scripts/execute.py", + "source_location": "L165", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_update_top_index", + "target": "scripts_execute_stepexecutor_stamp" }, { - "source": "scripts_collect_naver_only", - "target": "re", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L13", + "source_file": "scripts/execute.py", + "source_location": "L270", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_check_blockers", + "target": "scripts_execute_stepexecutor_read_json" }, { - "source": "scripts_collect_naver_only", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L14", + "source_file": "scripts/execute.py", + "source_location": "L286", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_ensure_created_at", + "target": "scripts_execute_stepexecutor_read_json" }, { - "source": "scripts_collect_naver_only", - "target": "threading", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L15", + "source_file": "scripts/execute.py", + "source_location": "L366", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_all_steps", + "target": "scripts_execute_stepexecutor_read_json" }, { - "source": "scripts_collect_naver_only", - "target": "time", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L16", + "source_file": "scripts/execute.py", + "source_location": "L296", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_single_step", + "target": "scripts_execute_stepexecutor_read_json" }, { - "source": "scripts_collect_naver_only", - "target": "concurrent_futures", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L17", + "source_file": "scripts/execute.py", + "source_location": "L382", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_finalize", + "target": "scripts_execute_stepexecutor_read_json" }, { - "source": "scripts_collect_naver_only", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L18", + "source_file": "scripts/execute.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_read_json", + "target": "scripts_execute_py_path" }, { - "source": "scripts_collect_naver_only", - "target": "httpx", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L20", + "source_file": "scripts/execute.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_update_top_index", + "target": "scripts_execute_stepexecutor_read_json" }, { - "source": "scripts_collect_naver_only", - "target": "dotenv", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L21", + "source_file": "scripts/execute.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_write_json", + "target": "scripts_execute_py_path" }, { - "source": "scripts_collect_naver_only", - "target": "tqdm", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L22", + "source_file": "scripts/execute.py", + "source_location": "L289", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_ensure_created_at", + "target": "scripts_execute_stepexecutor_write_json" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_rate_get", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L66", + "source_file": "scripts/execute.py", + "source_location": "L376", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_all_steps", + "target": "scripts_execute_stepexecutor_write_json" }, { - "source": "scripts_collect_naver_only_rate_get", - "target": "scripts_collect_naver_only_py_client", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L66", + "source_file": "scripts/execute.py", + "source_location": "L320", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_single_step", + "target": "scripts_execute_stepexecutor_write_json" }, { - "source": "scripts_collect_naver_only_rate_get", - "target": "scripts_collect_naver_only_py_response", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L66", + "source_file": "scripts/execute.py", + "source_location": "L384", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_finalize", + "target": "scripts_execute_stepexecutor_write_json" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_strip", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L80", + "source_file": "scripts/execute.py", + "source_location": "L173", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_update_top_index", + "target": "scripts_execute_stepexecutor_write_json" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_count_hits", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L181", + "source_file": "scripts/execute.py", + "source_location": "L116", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_checkout_branch", + "target": "scripts_execute_stepexecutor_run_git" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_parse_price", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L204", + "source_file": "scripts/execute.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_commit_step", + "target": "scripts_execute_stepexecutor_run_git" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_extract_fields", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L228", + "source_file": "scripts/execute.py", + "source_location": "L387", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_finalize", + "target": "scripts_execute_stepexecutor_run_git" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_build_summary_text", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L297", + "source_file": "scripts/execute.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_run_git", + "target": "completedprocess" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_fetch_blog_texts", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L311", + "source_file": "scripts/execute.py", + "source_location": "L321", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_single_step", + "target": "scripts_execute_stepexecutor_commit_step" }, { - "source": "scripts_collect_naver_only_fetch_blog_texts", - "target": "scripts_collect_naver_only_py_client", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L311", + "source_file": "scripts/execute.py", + "source_location": "L333", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_single_step", + "target": "scripts_execute_stepexecutor_update_top_index" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_fetch_and_extract", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L334", + "source_file": "scripts/execute.py", + "source_location": "L385", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_finalize", + "target": "scripts_execute_stepexecutor_update_top_index" }, { - "source": "scripts_collect_naver_only_fetch_and_extract", - "target": "scripts_collect_naver_only_py_client", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L334", + "source_file": "scripts/execute.py", + "source_location": "L301", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_single_step", + "target": "scripts_execute_stepexecutor_build_step_context" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_load_csv_sample", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L372", + "source_file": "scripts/execute.py", + "source_location": "L302", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_single_step", + "target": "scripts_execute_stepexecutor_build_preamble" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_load_progress", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L391", + "source_file": "scripts/execute.py", + "source_location": "L309", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_single_step", + "target": "scripts_execute_stepexecutor_invoke_claude" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_save_progress", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L397", + "source_file": "scripts/execute.py", + "source_location": "L294", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_rationale_294", + "target": "scripts_execute_stepexecutor_execute_single_step" }, { - "source": "scripts_collect_naver_only", - "target": "scripts_collect_naver_only_main", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L404", + "source_file": "scripts/execute.py", + "source_location": "L379", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_execute_stepexecutor_execute_all_steps", + "target": "scripts_execute_stepexecutor_execute_single_step" }, { - "source": "scripts_collect_naver_only_extract_fields", - "target": "scripts_collect_naver_only_count_hits", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L243", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats", + "target": "scripts_extract_visitor_stats_compute_congestion" }, { - "source": "scripts_collect_naver_only_extract_fields", - "target": "scripts_collect_naver_only_parse_price", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L265", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L49", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats", + "target": "scripts_extract_visitor_stats_extract_year" }, { - "source": "scripts_collect_naver_only_fetch_blog_texts", - "target": "scripts_collect_naver_only_rate_get", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L314", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats", + "target": "scripts_extract_visitor_stats_is_header_row" }, { - "source": "scripts_collect_naver_only_fetch_blog_texts", - "target": "scripts_collect_naver_only_strip", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L325", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L134", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats", + "target": "scripts_extract_visitor_stats_main" }, { - "source": "scripts_collect_naver_only_fetch_and_extract", - "target": "scripts_collect_naver_only_fetch_blog_texts", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L343", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L31", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats", + "target": "scripts_extract_visitor_stats_parse_int" }, { - "source": "scripts_collect_naver_only_fetch_and_extract", - "target": "scripts_collect_naver_only_extract_fields", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L354", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_rationale_1", + "target": "scripts_extract_visitor_stats" }, { - "source": "scripts_collect_naver_only_fetch_and_extract", - "target": "scripts_collect_naver_only_build_summary_text", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L367", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L76", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_extract_year", + "target": "scripts_extract_visitor_stats_parse_int" }, { - "source": "scripts_collect_naver_only_main", - "target": "scripts_collect_naver_only_load_csv_sample", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L410", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L32", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_rationale_32", + "target": "scripts_extract_visitor_stats_parse_int" }, { - "source": "scripts_collect_naver_only_main", - "target": "scripts_collect_naver_only_load_progress", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L412", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_extract_year", + "target": "scripts_extract_visitor_stats_is_header_row" }, { - "source": "scripts_collect_naver_only_main", - "target": "scripts_collect_naver_only_py_client", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L418", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L49", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_extract_year", + "target": "scripts_extract_visitor_stats_py_dataframe" }, { - "source": "scripts_collect_naver_only_main", - "target": "scripts_collect_naver_only_fetch_and_extract", - "relation": "indirect_call", - "context": "argument", - "confidence": "INFERRED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L420", + "relation": "references", + "context": "parameter_type", + "confidence": "EXTRACTED", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L49", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_extract_year", + "target": "scripts_extract_visitor_stats_py_path" }, { - "source": "scripts_collect_naver_only_main", - "target": "scripts_collect_naver_only_save_progress", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L430", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_main", + "target": "scripts_extract_visitor_stats_extract_year" }, { - "source": "scripts_collect_naver_only_rationale_298", - "target": "scripts_collect_naver_only_build_summary_text", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/collect_naver_only.py", - "source_location": "L298", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_rationale_50", + "target": "scripts_extract_visitor_stats_extract_year" }, { - "source": "scripts_demo_live_e2e", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L12", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L134", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_main", + "target": "scripts_extract_visitor_stats_py_path" }, { - "source": "scripts_demo_live_e2e", - "target": "pathlib", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L13", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_demo_live_e2e", - "target": "dotenv", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L15", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_compute_congestion", + "target": "scripts_extract_visitor_stats_py_dataframe" }, { - "source": "scripts_demo_live_e2e", - "target": "src_data_graph_retriever", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L20", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L152", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_main", + "target": "scripts_extract_visitor_stats_compute_congestion" }, { - "source": "scripts_demo_live_e2e", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L21", + "source_file": "scripts/extract_visitor_stats.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_extract_visitor_stats_rationale_88", + "target": "scripts_extract_visitor_stats_compute_congestion" }, { - "source": "scripts_demo_live_e2e", - "target": "src_explain_explain_engine", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L22", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours", + "target": "scripts_fetch_jeju_hours_fetch_one" }, { - "source": "scripts_demo_live_e2e", - "target": "scripts_demo_live_e2e_main", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L27", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours", + "target": "scripts_fetch_jeju_hours_main" }, { - "source": "scripts_demo_live_e2e_rationale_1", - "target": "scripts_demo_live_e2e", - "relation": "rationale_for", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L1", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours", + "target": "src_data_models" }, { - "source": "scripts_execute", - "target": "argparse", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L9", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours", + "target": "src_data_models_settings" }, { - "source": "scripts_execute", - "target": "contextlib", - "relation": "imports", + "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L10", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours", + "target": "src_data_tour_api" }, { - "source": "scripts_execute", - "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L11", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours", + "target": "src_data_tour_api_tourapiclient" }, { - "source": "scripts_execute", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L12", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours_rationale_1", + "target": "scripts_fetch_jeju_hours" }, { - "source": "scripts_execute", - "target": "subprocess", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L13", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours_fetch_one", + "target": "semaphore" }, { - "source": "scripts_execute", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L14", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours_fetch_one", + "target": "src_data_tour_api_tourapiclient" }, { - "source": "scripts_execute", - "target": "threading", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L15", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L55", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours_main", + "target": "scripts_fetch_jeju_hours_fetch_one" }, { - "source": "scripts_execute", - "target": "time", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L16", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours_main", + "target": "semaphore" }, { - "source": "scripts_execute", - "target": "types", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L17", + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_jeju_hours_main", + "target": "src_data_models_settings" }, { - "source": "scripts_execute", - "target": "datetime", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L18", + "confidence_score": 1.0, + "source_file": "scripts/fetch_jeju_hours.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "scripts_fetch_jeju_hours_main", + "target": "src_data_tour_api_tourapiclient_from_settings" }, { - "source": "scripts_execute", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L19", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois", + "target": "scripts_fetch_missing_pois_fetch_page" }, { - "source": "scripts_execute", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L20", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois", + "target": "scripts_fetch_missing_pois_fetch_region_type" }, { - "source": "scripts_execute", - "target": "scripts_execute_progress_indicator", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L26", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois", + "target": "scripts_fetch_missing_pois_load_api_key" }, { - "source": "scripts_execute", - "target": "scripts_execute_stepexecutor", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L53", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois", + "target": "scripts_fetch_missing_pois_load_existing_ids" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_init", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L61", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois", + "target": "scripts_fetch_missing_pois_main" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_run", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L83", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois_rationale_1", + "target": "scripts_fetch_missing_pois" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_stamp", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L94", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L156", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois_main", + "target": "scripts_fetch_missing_pois_load_existing_ids" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_read_json", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L100", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L151", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois_main", + "target": "scripts_fetch_missing_pois_load_api_key" }, { - "source": "scripts_execute_stepexecutor_read_json", - "target": "scripts_execute_py_path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L100", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois_fetch_page", + "target": "asyncclient" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_write_json", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L104", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois_fetch_region_type", + "target": "scripts_fetch_missing_pois_fetch_page" }, { - "source": "scripts_execute_stepexecutor_write_json", - "target": "scripts_execute_py_path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L104", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois_fetch_region_type", + "target": "asyncclient" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_run_git", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L109", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L162", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois_main", + "target": "asyncclient" }, { - "source": "scripts_execute_stepexecutor_run_git", - "target": "completedprocess", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L109", + "source_file": "scripts/fetch_missing_pois.py", + "source_location": "L166", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_fetch_missing_pois_main", + "target": "scripts_fetch_missing_pois_fetch_region_type" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_checkout_branch", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L113", + "source_file": "scripts/geocode_jeju_missing_coords.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_geocode_jeju_missing_coords", + "target": "scripts_geocode_jeju_missing_coords_main" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_commit_step", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L136", + "source_file": "scripts/geocode_jeju_missing_coords.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_geocode_jeju_missing_coords", + "target": "src_data_kakao_local" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_update_top_index", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L161", + "source_file": "scripts/geocode_jeju_missing_coords.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_geocode_jeju_missing_coords", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_load_guardrails", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L177", + "source_file": "scripts/test_execute.py", + "source_location": "L78", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_executor" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_build_step_context", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L189", + "source_file": "scripts/test_execute.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_phase_dir" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_build_preamble", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L199", + "source_file": "scripts/test_execute.py", + "source_location": "L234", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_testbuildpreamble" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_invoke_claude", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L229", + "source_file": "scripts/test_execute.py", + "source_location": "L200", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_testbuildstepcontext" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_print_header", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L261", + "source_file": "scripts/test_execute.py", + "source_location": "L522", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_testcheckblockers" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_check_blockers", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L269", + "source_file": "scripts/test_execute.py", + "source_location": "L329", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_testcheckoutbranch" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_ensure_created_at", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L285", + "source_file": "scripts/test_execute.py", + "source_location": "L385", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_testcommitstep" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_execute_single_step", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L293", + "source_file": "scripts/test_execute.py", + "source_location": "L426", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_testinvokeclaude" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_execute_all_steps", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L364", + "source_file": "scripts/test_execute.py", + "source_location": "L118", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_testjsonhelpers" }, { - "source": "scripts_execute_stepexecutor", - "target": "scripts_execute_stepexecutor_finalize", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L381", + "source_file": "scripts/test_execute.py", + "source_location": "L148", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_testloadguardrails" }, { - "source": "scripts_execute", - "target": "scripts_execute_main", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L407", + "source_file": "scripts/test_execute.py", + "source_location": "L495", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_testmaincli" }, { - "source": "scripts_execute_stepexecutor_init", - "target": "scripts_execute_stepexecutor_read_json", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L78", + "source_file": "scripts/test_execute.py", + "source_location": "L477", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_testprogressindicator" }, { - "source": "scripts_execute_stepexecutor_run", - "target": "scripts_execute_stepexecutor_print_header", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L84", + "source_file": "scripts/test_execute.py", + "source_location": "L96", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_teststamp" }, { - "source": "scripts_execute_stepexecutor_run", - "target": "scripts_execute_stepexecutor_check_blockers", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L85", + "source_file": "scripts/test_execute.py", + "source_location": "L279", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_testupdatetopindex" }, { - "source": "scripts_execute_stepexecutor_run", - "target": "scripts_execute_stepexecutor_checkout_branch", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L86", + "source_file": "scripts/test_execute.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_tmp_project" }, { - "source": "scripts_execute_stepexecutor_run", - "target": "scripts_execute_stepexecutor_load_guardrails", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L87", + "source_file": "scripts/test_execute.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute", + "target": "scripts_test_execute_top_index" }, { - "source": "scripts_execute_stepexecutor_run", - "target": "scripts_execute_stepexecutor_ensure_created_at", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L88", + "source_file": "scripts/test_execute.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_rationale_1", + "target": "scripts_test_execute" }, { - "source": "scripts_execute_stepexecutor_run", - "target": "scripts_execute_stepexecutor_execute_all_steps", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L89", + "source_file": "scripts/test_execute.py", + "source_location": "L77", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_executor", + "target": "scripts_test_execute_py_fixture" }, { - "source": "scripts_execute_stepexecutor_run", - "target": "scripts_execute_stepexecutor_finalize", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L90", + "source_file": "scripts/test_execute.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_phase_dir", + "target": "scripts_test_execute_py_fixture" }, { - "source": "scripts_execute_stepexecutor_run_git", - "target": "scripts_execute_stepexecutor_run", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L111", + "source_file": "scripts/test_execute.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_tmp_project", + "target": "scripts_test_execute_py_fixture" }, { - "source": "scripts_execute_stepexecutor_checkout_branch", - "target": "scripts_execute_stepexecutor_run_git", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L116", + "source_file": "scripts/test_execute.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_execute_stepexecutor_commit_step", - "target": "scripts_execute_stepexecutor_run_git", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L140", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_execute_stepexecutor_update_top_index", - "target": "scripts_execute_stepexecutor_read_json", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L164", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_execute_stepexecutor_update_top_index", - "target": "scripts_execute_stepexecutor_stamp", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L165", - "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_top_index", + "target": "scripts_test_execute_py_fixture" }, { - "source": "scripts_execute_stepexecutor_update_top_index", - "target": "scripts_execute_stepexecutor_write_json", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L173", + "source_file": "scripts/test_execute.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_rationale_27", + "target": "scripts_test_execute_tmp_project" }, { - "source": "scripts_execute_stepexecutor_invoke_claude", - "target": "scripts_execute_stepexecutor_run", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L238", + "source_file": "scripts/test_execute.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_rationale_44", + "target": "scripts_test_execute_phase_dir" }, { - "source": "scripts_execute_stepexecutor_check_blockers", - "target": "scripts_execute_stepexecutor_read_json", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L270", + "source_file": "scripts/test_execute.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_rationale_65", + "target": "scripts_test_execute_top_index" }, { - "source": "scripts_execute_stepexecutor_ensure_created_at", - "target": "scripts_execute_stepexecutor_read_json", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L286", + "source_file": "scripts/test_execute.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_rationale_79", + "target": "scripts_test_execute_executor" }, { - "source": "scripts_execute_stepexecutor_ensure_created_at", - "target": "scripts_execute_stepexecutor_stamp", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L288", + "source_file": "scripts/test_execute.py", + "source_location": "L101", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_teststamp", + "target": "scripts_test_execute_teststamp_test_format_is_iso" }, { - "source": "scripts_execute_stepexecutor_ensure_created_at", - "target": "scripts_execute_stepexecutor_write_json", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L289", + "source_file": "scripts/test_execute.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_teststamp", + "target": "scripts_test_execute_teststamp_test_is_current_time" }, { - "source": "scripts_execute_stepexecutor_execute_single_step", - "target": "scripts_execute_stepexecutor_read_json", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L296", + "source_file": "scripts/test_execute.py", + "source_location": "L97", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_teststamp", + "target": "scripts_test_execute_teststamp_test_returns_kst_timestamp" }, { - "source": "scripts_execute_stepexecutor_execute_single_step", - "target": "scripts_execute_stepexecutor_build_step_context", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L301", + "source_file": "scripts/test_execute.py", + "source_location": "L139", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testjsonhelpers", + "target": "scripts_test_execute_testjsonhelpers_test_load_nonexistent_raises" }, { - "source": "scripts_execute_stepexecutor_execute_single_step", - "target": "scripts_execute_stepexecutor_build_preamble", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L302", + "source_file": "scripts/test_execute.py", + "source_location": "L119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testjsonhelpers", + "target": "scripts_test_execute_testjsonhelpers_test_roundtrip" }, { - "source": "scripts_execute_stepexecutor_execute_single_step", - "target": "scripts_execute_progress_indicator", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L308", + "source_file": "scripts/test_execute.py", + "source_location": "L126", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testjsonhelpers", + "target": "scripts_test_execute_testjsonhelpers_test_save_ensures_ascii_false" }, { - "source": "scripts_execute_stepexecutor_execute_single_step", - "target": "scripts_execute_stepexecutor_invoke_claude", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L309", + "source_file": "scripts/test_execute.py", + "source_location": "L133", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testjsonhelpers", + "target": "scripts_test_execute_testjsonhelpers_test_save_indented" }, { - "source": "scripts_execute_stepexecutor_execute_single_step", - "target": "scripts_execute_stepexecutor_stamp", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L314", + "source_file": "scripts/test_execute.py", + "source_location": "L162", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testloadguardrails", + "target": "scripts_test_execute_testloadguardrails_test_docs_sorted_alphabetically" }, { - "source": "scripts_execute_stepexecutor_execute_single_step", - "target": "scripts_execute_stepexecutor_write_json", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L320", + "source_file": "scripts/test_execute.py", + "source_location": "L184", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testloadguardrails", + "target": "scripts_test_execute_testloadguardrails_test_empty_project" }, { - "source": "scripts_execute_stepexecutor_execute_single_step", - "target": "scripts_execute_stepexecutor_commit_step", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L321", + "source_file": "scripts/test_execute.py", + "source_location": "L149", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testloadguardrails", + "target": "scripts_test_execute_testloadguardrails_test_loads_claude_md_and_docs" }, { - "source": "scripts_execute_stepexecutor_execute_single_step", - "target": "scripts_execute_stepexecutor_update_top_index", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L333", + "source_file": "scripts/test_execute.py", + "source_location": "L169", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testloadguardrails", + "target": "scripts_test_execute_testloadguardrails_test_no_claude_md" }, { - "source": "scripts_execute_stepexecutor_execute_all_steps", - "target": "scripts_execute_stepexecutor_read_json", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L366", + "source_file": "scripts/test_execute.py", + "source_location": "L176", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testloadguardrails", + "target": "scripts_test_execute_testloadguardrails_test_no_docs_dir" }, { - "source": "scripts_execute_stepexecutor_execute_all_steps", - "target": "scripts_execute_stepexecutor_stamp", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L375", + "source_file": "scripts/test_execute.py", + "source_location": "L157", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testloadguardrails", + "target": "scripts_test_execute_testloadguardrails_test_sections_separated_by_divider" }, { - "source": "scripts_execute_stepexecutor_execute_all_steps", - "target": "scripts_execute_stepexecutor_write_json", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L376", + "source_file": "scripts/test_execute.py", + "source_location": "L219", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildstepcontext", + "target": "scripts_test_execute_testbuildstepcontext_test_empty_when_no_completed" }, { - "source": "scripts_execute_stepexecutor_execute_all_steps", - "target": "scripts_execute_stepexecutor_execute_single_step", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L379", + "source_file": "scripts/test_execute.py", + "source_location": "L212", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildstepcontext", + "target": "scripts_test_execute_testbuildstepcontext_test_excludes_completed_without_summary" }, { - "source": "scripts_execute_stepexecutor_finalize", - "target": "scripts_execute_stepexecutor_read_json", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L382", + "source_file": "scripts/test_execute.py", + "source_location": "L207", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildstepcontext", + "target": "scripts_test_execute_testbuildstepcontext_test_excludes_pending" }, { - "source": "scripts_execute_stepexecutor_finalize", - "target": "scripts_execute_stepexecutor_stamp", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L383", + "source_file": "scripts/test_execute.py", + "source_location": "L224", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildstepcontext", + "target": "scripts_test_execute_testbuildstepcontext_test_has_header" }, { - "source": "scripts_execute_stepexecutor_finalize", - "target": "scripts_execute_stepexecutor_write_json", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L384", + "source_file": "scripts/test_execute.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildstepcontext", + "target": "scripts_test_execute_testbuildstepcontext_test_includes_completed_with_summary" }, { - "source": "scripts_execute_stepexecutor_finalize", - "target": "scripts_execute_stepexecutor_update_top_index", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L385", + "source_file": "scripts/test_execute.py", + "source_location": "L248", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildpreamble", + "target": "scripts_test_execute_testbuildpreamble_test_includes_commit_example" }, { - "source": "scripts_execute_stepexecutor_finalize", - "target": "scripts_execute_stepexecutor_run_git", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L387", + "source_file": "scripts/test_execute.py", + "source_location": "L239", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildpreamble", + "target": "scripts_test_execute_testbuildpreamble_test_includes_guardrails" }, { - "source": "scripts_execute_main", - "target": "scripts_execute_stepexecutor_run", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L413", + "source_file": "scripts/test_execute.py", + "source_location": "L270", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildpreamble", + "target": "scripts_test_execute_testbuildpreamble_test_includes_index_path" }, { - "source": "scripts_execute_main", - "target": "scripts_execute_stepexecutor", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L413", + "source_file": "scripts/test_execute.py", + "source_location": "L266", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildpreamble", + "target": "scripts_test_execute_testbuildpreamble_test_includes_max_retries" }, { - "source": "scripts_execute_rationale_27", - "target": "scripts_execute_progress_indicator", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L27", + "source_file": "scripts/test_execute.py", + "source_location": "L235", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildpreamble", + "target": "scripts_test_execute_testbuildpreamble_test_includes_project_name" }, { - "source": "scripts_execute_rationale_54", - "target": "scripts_execute_stepexecutor", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L54", + "source_file": "scripts/test_execute.py", + "source_location": "L252", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildpreamble", + "target": "scripts_test_execute_testbuildpreamble_test_includes_rules" }, { - "source": "scripts_execute_rationale_294", - "target": "scripts_execute_stepexecutor_execute_single_step", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/execute.py", - "source_location": "L294", + "source_file": "scripts/test_execute.py", + "source_location": "L243", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildpreamble", + "target": "scripts_test_execute_testbuildpreamble_test_includes_step_context" }, { - "source": "scripts_extract_visitor_stats", - "target": "argparse", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L9", + "source_file": "scripts/test_execute.py", + "source_location": "L257", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildpreamble", + "target": "scripts_test_execute_testbuildpreamble_test_no_retry_section_by_default" }, { - "source": "scripts_extract_visitor_stats", - "target": "re", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L10", + "source_file": "scripts/test_execute.py", + "source_location": "L261", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testbuildpreamble", + "target": "scripts_test_execute_testbuildpreamble_test_retry_section_with_prev_error" }, { - "source": "scripts_extract_visitor_stats", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L11", + "source_file": "scripts/test_execute.py", + "source_location": "L296", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testupdatetopindex", + "target": "scripts_test_execute_testupdatetopindex_test_blocked" }, { - "source": "scripts_extract_visitor_stats", - "target": "pandas", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L13", + "source_file": "scripts/test_execute.py", + "source_location": "L280", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testupdatetopindex", + "target": "scripts_test_execute_testupdatetopindex_test_completed" }, { - "source": "scripts_extract_visitor_stats", - "target": "pdfplumber", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L14", + "source_file": "scripts/test_execute.py", + "source_location": "L288", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testupdatetopindex", + "target": "scripts_test_execute_testupdatetopindex_test_error" }, { - "source": "scripts_extract_visitor_stats", - "target": "scripts_extract_visitor_stats_parse_int", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L31", + "source_file": "scripts/test_execute.py", + "source_location": "L320", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testupdatetopindex", + "target": "scripts_test_execute_testupdatetopindex_test_no_top_index_file" }, { - "source": "scripts_extract_visitor_stats", - "target": "scripts_extract_visitor_stats_is_header_row", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L44", + "source_file": "scripts/test_execute.py", + "source_location": "L311", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testupdatetopindex", + "target": "scripts_test_execute_testupdatetopindex_test_nonexistent_dir_is_noop" }, { - "source": "scripts_extract_visitor_stats", - "target": "scripts_extract_visitor_stats_extract_year", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L49", + "source_file": "scripts/test_execute.py", + "source_location": "L304", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testupdatetopindex", + "target": "scripts_test_execute_testupdatetopindex_test_other_phases_unchanged" }, { - "source": "scripts_extract_visitor_stats_extract_year", - "target": "scripts_extract_visitor_stats_py_path", - "relation": "references", - "context": "parameter_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L49", + "source_file": "scripts/test_execute.py", + "source_location": "L330", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckoutbranch", + "target": "scripts_test_execute_testcheckoutbranch_mock_git" }, { - "source": "scripts_extract_visitor_stats_extract_year", - "target": "scripts_extract_visitor_stats_py_dataframe", - "relation": "references", - "context": "return_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L49", + "source_file": "scripts/test_execute.py", + "source_location": "L340", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckoutbranch", + "target": "scripts_test_execute_testcheckoutbranch_test_already_on_branch" }, { - "source": "scripts_extract_visitor_stats", - "target": "scripts_extract_visitor_stats_compute_congestion", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L87", + "source_file": "scripts/test_execute.py", + "source_location": "L346", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckoutbranch", + "target": "scripts_test_execute_testcheckoutbranch_test_branch_exists_checkout" }, { - "source": "scripts_extract_visitor_stats_compute_congestion", - "target": "scripts_extract_visitor_stats_py_dataframe", - "relation": "references", - "context": "parameter_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L87", + "source_file": "scripts/test_execute.py", + "source_location": "L354", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckoutbranch", + "target": "scripts_test_execute_testcheckoutbranch_test_branch_not_exists_create" }, { - "source": "scripts_extract_visitor_stats", - "target": "scripts_extract_visitor_stats_main", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L134", + "source_file": "scripts/test_execute.py", + "source_location": "L362", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckoutbranch", + "target": "scripts_test_execute_testcheckoutbranch_test_checkout_fails_exits" }, { - "source": "scripts_extract_visitor_stats_main", - "target": "scripts_extract_visitor_stats_py_path", - "relation": "references", - "context": "parameter_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L134", + "source_file": "scripts/test_execute.py", + "source_location": "L372", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckoutbranch", + "target": "scripts_test_execute_testcheckoutbranch_test_no_git_exits" }, { - "source": "scripts_extract_visitor_stats_extract_year", - "target": "scripts_extract_visitor_stats_is_header_row", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L60", + "source_file": "scripts/test_execute.py", + "source_location": "L341", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckoutbranch_test_already_on_branch", + "target": "scripts_test_execute_testcheckoutbranch_mock_git" }, { - "source": "scripts_extract_visitor_stats_extract_year", - "target": "scripts_extract_visitor_stats_parse_int", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L76", + "source_file": "scripts/test_execute.py", + "source_location": "L347", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckoutbranch_test_branch_exists_checkout", + "target": "scripts_test_execute_testcheckoutbranch_mock_git" }, { - "source": "scripts_extract_visitor_stats_extract_year", - "target": "scripts_extract_visitor_stats_py_dataframe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L79", + "source_file": "scripts/test_execute.py", + "source_location": "L355", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckoutbranch_test_branch_not_exists_create", + "target": "scripts_test_execute_testcheckoutbranch_mock_git" }, { - "source": "scripts_extract_visitor_stats_main", - "target": "scripts_extract_visitor_stats_extract_year", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L143", + "source_file": "scripts/test_execute.py", + "source_location": "L363", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckoutbranch_test_checkout_fails_exits", + "target": "scripts_test_execute_testcheckoutbranch_mock_git" }, { - "source": "scripts_extract_visitor_stats_main", - "target": "scripts_extract_visitor_stats_compute_congestion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L152", + "source_file": "scripts/test_execute.py", + "source_location": "L373", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckoutbranch_test_no_git_exits", + "target": "scripts_test_execute_testcheckoutbranch_mock_git" }, { - "source": "scripts_extract_visitor_stats_rationale_1", - "target": "scripts_extract_visitor_stats", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L1", + "source_file": "scripts/test_execute.py", + "source_location": "L402", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcommitstep", + "target": "scripts_test_execute_testcommitstep_test_no_code_changes_skips_feat_commit" }, { - "source": "scripts_extract_visitor_stats_rationale_32", - "target": "scripts_extract_visitor_stats_parse_int", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L32", + "source_file": "scripts/test_execute.py", + "source_location": "L386", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcommitstep", + "target": "scripts_test_execute_testcommitstep_test_two_phase_commit" }, { - "source": "scripts_extract_visitor_stats_rationale_50", - "target": "scripts_extract_visitor_stats_extract_year", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L50", + "source_file": "scripts/test_execute.py", + "source_location": "L427", "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_extract_visitor_stats_rationale_88", - "target": "scripts_extract_visitor_stats_compute_congestion", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "scripts/extract_visitor_stats.py", - "source_location": "L88", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_fetch_jeju_hours", - "target": "asyncio", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L16", - "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testinvokeclaude", + "target": "scripts_test_execute_testinvokeclaude_test_invokes_claude_with_correct_args" }, { - "source": "scripts_fetch_jeju_hours", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L17", + "source_file": "scripts/test_execute.py", + "source_location": "L457", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testinvokeclaude", + "target": "scripts_test_execute_testinvokeclaude_test_nonexistent_step_file_exits" }, { - "source": "scripts_fetch_jeju_hours", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L18", + "source_file": "scripts/test_execute.py", + "source_location": "L443", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testinvokeclaude", + "target": "scripts_test_execute_testinvokeclaude_test_saves_output_json" }, { - "source": "scripts_fetch_jeju_hours", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L19", + "source_file": "scripts/test_execute.py", + "source_location": "L463", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testinvokeclaude", + "target": "scripts_test_execute_testinvokeclaude_test_timeout_is_1800" }, { - "source": "scripts_fetch_jeju_hours", - "target": "pandas", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L21", + "source_file": "scripts/test_execute.py", + "source_location": "L478", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testprogressindicator", + "target": "scripts_test_execute_testprogressindicator_test_context_manager" }, { - "source": "scripts_fetch_jeju_hours", - "target": "dotenv", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L22", + "source_file": "scripts/test_execute.py", + "source_location": "L484", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testprogressindicator", + "target": "scripts_test_execute_testprogressindicator_test_elapsed_increases" }, { - "source": "scripts_fetch_jeju_hours", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L28", + "source_file": "scripts/test_execute.py", + "source_location": "L502", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testmaincli", + "target": "scripts_test_execute_testmaincli_test_invalid_phase_dir_exits" }, { - "source": "scripts_fetch_jeju_hours", - "target": "src_data_tour_api", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L29", + "source_file": "scripts/test_execute.py", + "source_location": "L509", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testmaincli", + "target": "scripts_test_execute_testmaincli_test_missing_index_exits" }, { - "source": "scripts_fetch_jeju_hours", - "target": "scripts_fetch_jeju_hours_fetch_one", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L35", + "source_file": "scripts/test_execute.py", + "source_location": "L496", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testmaincli", + "target": "scripts_test_execute_testmaincli_test_no_args_exits" }, { - "source": "scripts_fetch_jeju_hours_fetch_one", - "target": "src_data_tour_api_tourapiclient", - "relation": "references", - "context": "parameter_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L35", + "source_file": "scripts/test_execute.py", + "source_location": "L523", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckblockers", + "target": "scripts_test_execute_testcheckblockers_make_executor_with_steps" }, { - "source": "scripts_fetch_jeju_hours_fetch_one", - "target": "semaphore", - "relation": "references", - "context": "parameter_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L35", + "source_file": "scripts/test_execute.py", + "source_location": "L551", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckblockers", + "target": "scripts_test_execute_testcheckblockers_test_blocked_step_exits_2" }, { - "source": "scripts_fetch_jeju_hours", - "target": "scripts_fetch_jeju_hours_main", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L43", + "source_file": "scripts/test_execute.py", + "source_location": "L541", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckblockers", + "target": "scripts_test_execute_testcheckblockers_test_error_step_exits_1" }, { - "source": "scripts_fetch_jeju_hours_main", - "target": "semaphore", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L53", + "source_file": "scripts/test_execute.py", + "source_location": "L556", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckblockers_test_blocked_step_exits_2", + "target": "scripts_test_execute_testcheckblockers_make_executor_with_steps" }, { - "source": "scripts_fetch_jeju_hours_main", - "target": "scripts_fetch_jeju_hours_fetch_one", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L55", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_fetch_jeju_hours_rationale_1", - "target": "scripts_fetch_jeju_hours", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_fetch_missing_pois", - "target": "asyncio", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L4", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_fetch_missing_pois", - "target": "csv", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L5", + "source_file": "scripts/test_execute.py", + "source_location": "L546", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_execute_testcheckblockers_test_error_step_exits_1", + "target": "scripts_test_execute_testcheckblockers_make_executor_with_steps" }, { - "source": "scripts_fetch_missing_pois", - "target": "time", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L6", + "source_file": "scripts/test_pipeline.py", + "source_location": "L277", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_build_itinerary" }, { - "source": "scripts_fetch_missing_pois", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L7", + "source_file": "scripts/test_pipeline.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_guess_category" }, { - "source": "scripts_fetch_missing_pois", - "target": "httpx", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L8", + "source_file": "scripts/test_pipeline.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_guess_coords" }, { - "source": "scripts_fetch_missing_pois", - "target": "scripts_fetch_missing_pois_load_existing_ids", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L26", + "source_file": "scripts/test_pipeline.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_guess_duration" }, { - "source": "scripts_fetch_missing_pois", - "target": "scripts_fetch_missing_pois_load_api_key", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L38", + "source_file": "scripts/test_pipeline.py", + "source_location": "L129", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_is_accommodation" }, { - "source": "scripts_fetch_missing_pois", - "target": "scripts_fetch_missing_pois_fetch_page", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L48", + "source_file": "scripts/test_pipeline.py", + "source_location": "L213", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_load_gugseok" }, { - "source": "scripts_fetch_missing_pois_fetch_page", - "target": "asyncclient", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L48", + "source_file": "scripts/test_pipeline.py", + "source_location": "L251", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_load_triple" }, { - "source": "scripts_fetch_missing_pois", - "target": "scripts_fetch_missing_pois_fetch_region_type", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L87", + "source_file": "scripts/test_pipeline.py", + "source_location": "L408", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_main" }, { - "source": "scripts_fetch_missing_pois_fetch_region_type", - "target": "asyncclient", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L87", + "source_file": "scripts/test_pipeline.py", + "source_location": "L191", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_make_poi" }, { - "source": "scripts_fetch_missing_pois", - "target": "scripts_fetch_missing_pois_main", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L150", + "source_file": "scripts/test_pipeline.py", + "source_location": "L134", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_parse_places" }, { - "source": "scripts_fetch_missing_pois_fetch_region_type", - "target": "scripts_fetch_missing_pois_fetch_page", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L100", + "source_file": "scripts/test_pipeline.py", + "source_location": "L158", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_party_type_from_triple" }, { - "source": "scripts_fetch_missing_pois_main", - "target": "scripts_fetch_missing_pois_load_api_key", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L151", + "source_file": "scripts/test_pipeline.py", + "source_location": "L356", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_run_pipeline" }, { - "source": "scripts_fetch_missing_pois_main", - "target": "scripts_fetch_missing_pois_load_existing_ids", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L156", + "source_file": "scripts/test_pipeline.py", + "source_location": "L175", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_travel_type_from_theme" }, { - "source": "scripts_fetch_missing_pois_main", - "target": "asyncclient", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L162", + "source_file": "scripts/test_pipeline.py", + "source_location": "L147", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "scripts_test_pipeline_trip_days" }, { - "source": "scripts_fetch_missing_pois_main", - "target": "scripts_fetch_missing_pois_fetch_region_type", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L166", + "source_file": "scripts/test_pipeline.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "src_data_models" }, { - "source": "scripts_fetch_missing_pois_rationale_1", - "target": "scripts_fetch_missing_pois", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_missing_pois.py", - "source_location": "L1", + "source_file": "scripts/test_pipeline.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "src_data_models_dayplan" }, { - "source": "scripts_geocode_jeju_missing_coords", - "target": "shutil", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/geocode_jeju_missing_coords.py", - "source_location": "L10", + "source_file": "scripts/test_pipeline.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "src_data_models_itineraryplan" }, { - "source": "scripts_geocode_jeju_missing_coords", - "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/geocode_jeju_missing_coords.py", - "source_location": "L11", + "source_file": "scripts/test_pipeline.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "src_data_models_placeinput" }, { - "source": "scripts_geocode_jeju_missing_coords", - "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/geocode_jeju_missing_coords.py", + "source_file": "scripts/test_pipeline.py", "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "src_data_models_poi" }, { - "source": "scripts_geocode_jeju_missing_coords", - "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/geocode_jeju_missing_coords.py", + "source_file": "scripts/test_pipeline.py", "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "src_validation_hard_fail" }, { - "source": "scripts_geocode_jeju_missing_coords", - "target": "openpyxl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/geocode_jeju_missing_coords.py", - "source_location": "L15", + "source_file": "scripts/test_pipeline.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "scripts_geocode_jeju_missing_coords", - "target": "dotenv", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/geocode_jeju_missing_coords.py", - "source_location": "L16", + "source_file": "scripts/test_pipeline.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "src_validation_scoring" }, { - "source": "scripts_geocode_jeju_missing_coords", - "target": "src_data_kakao_local", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/geocode_jeju_missing_coords.py", - "source_location": "L22", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_geocode_jeju_missing_coords", - "target": "scripts_geocode_jeju_missing_coords_main", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "scripts/geocode_jeju_missing_coords.py", - "source_location": "L28", + "source_file": "scripts/test_pipeline.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "scripts_load_knowledge_graph_neo4j", - "target": "os", - "relation": "imports", + "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L17", + "source_file": "scripts/test_pipeline.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "src_validation_warning" }, { - "source": "scripts_load_knowledge_graph_neo4j", - "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L18", + "source_file": "scripts/test_pipeline.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline", + "target": "src_validation_warning_warningdetector" }, { - "source": "scripts_load_knowledge_graph_neo4j", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L19", + "source_file": "scripts/test_pipeline.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_rationale_1", + "target": "scripts_test_pipeline" }, { - "source": "scripts_load_knowledge_graph_neo4j", - "target": "pandas", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L21", + "source_file": "scripts/test_pipeline.py", + "source_location": "L192", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_make_poi", + "target": "scripts_test_pipeline_guess_coords" }, { - "source": "scripts_load_knowledge_graph_neo4j", - "target": "dotenv", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L22", + "source_file": "scripts/test_pipeline.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_rationale_104", + "target": "scripts_test_pipeline_guess_coords" }, { - "source": "scripts_load_knowledge_graph_neo4j", - "target": "neo4j", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L23", + "source_file": "scripts/test_pipeline.py", + "source_location": "L193", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_make_poi", + "target": "scripts_test_pipeline_guess_category" }, { - "source": "scripts_load_knowledge_graph_neo4j", - "target": "neo4j_exceptions", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L24", + "source_file": "scripts/test_pipeline.py", + "source_location": "L194", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_make_poi", + "target": "scripts_test_pipeline_guess_duration" }, { - "source": "scripts_load_knowledge_graph_neo4j", - "target": "scripts_load_knowledge_graph_neo4j_strip_type_suffix", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L37", + "source_file": "scripts/test_pipeline.py", + "source_location": "L227", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_load_gugseok", + "target": "scripts_test_pipeline_parse_places" }, { - "source": "scripts_load_knowledge_graph_neo4j", - "target": "scripts_load_knowledge_graph_neo4j_load_rows", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L45", + "source_file": "scripts/test_pipeline.py", + "source_location": "L259", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_load_triple", + "target": "scripts_test_pipeline_parse_places" }, { - "source": "scripts_load_knowledge_graph_neo4j", - "target": "scripts_load_knowledge_graph_neo4j_run_batched", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L52", + "source_file": "scripts/test_pipeline.py", + "source_location": "L135", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_rationale_135", + "target": "scripts_test_pipeline_parse_places" }, { - "source": "scripts_load_knowledge_graph_neo4j_run_batched", - "target": "driver", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L52", + "source_file": "scripts/test_pipeline.py", + "source_location": "L285", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_build_itinerary", + "target": "scripts_test_pipeline_trip_days" }, { - "source": "scripts_load_knowledge_graph_neo4j", - "target": "scripts_load_knowledge_graph_neo4j_main", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L61", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_load_knowledge_graph_neo4j_load_rows", - "target": "scripts_load_knowledge_graph_neo4j_strip_type_suffix", - "relation": "indirect_call", - "context": "argument", - "confidence": "INFERRED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L47", + "source_file": "scripts/test_pipeline.py", + "source_location": "L288", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_build_itinerary", + "target": "scripts_test_pipeline_party_type_from_triple" }, { - "source": "scripts_load_knowledge_graph_neo4j_main", - "target": "scripts_load_knowledge_graph_neo4j_run_batched", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L77", + "source_file": "scripts/test_pipeline.py", + "source_location": "L292", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_build_itinerary", + "target": "scripts_test_pipeline_travel_type_from_theme" }, { - "source": "scripts_load_knowledge_graph_neo4j_main", - "target": "scripts_load_knowledge_graph_neo4j_load_rows", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/load_knowledge_graph_neo4j.py", - "source_location": "L80", + "source_file": "scripts/test_pipeline.py", + "source_location": "L312", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_build_itinerary", + "target": "scripts_test_pipeline_make_poi" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L17", + "source_file": "scripts/test_pipeline.py", + "source_location": "L191", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_make_poi", + "target": "src_data_models_poi" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L18", + "source_file": "scripts/test_pipeline.py", + "source_location": "L415", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_main", + "target": "scripts_test_pipeline_load_gugseok" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L22", + "source_file": "scripts/test_pipeline.py", + "source_location": "L214", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_rationale_214", + "target": "scripts_test_pipeline_load_gugseok" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "src_scoring_cluster_dispersion", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L23", + "source_file": "scripts/test_pipeline.py", + "source_location": "L421", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_main", + "target": "scripts_test_pipeline_load_triple" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "src_scoring_travel_ratio", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L24", + "source_file": "scripts/test_pipeline.py", + "source_location": "L252", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_rationale_252", + "target": "scripts_test_pipeline_load_triple" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "src_validation_vrptw_engine", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L25", + "source_file": "scripts/test_pipeline.py", + "source_location": "L314", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_build_itinerary", + "target": "src_data_models_dayplan" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "scripts_neo4j_coverage_analysis_make_place", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L46", + "source_file": "scripts/test_pipeline.py", + "source_location": "L277", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_build_itinerary", + "target": "src_data_models_itineraryplan" }, { - "source": "scripts_neo4j_coverage_analysis_make_place", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L46", + "source_file": "scripts/test_pipeline.py", + "source_location": "L311", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_build_itinerary", + "target": "src_data_models_placeinput" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "scripts_neo4j_coverage_analysis_sigungu_for", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L60", + "source_file": "scripts/test_pipeline.py", + "source_location": "L277", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_build_itinerary", + "target": "src_data_models_poi" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "scripts_neo4j_coverage_analysis_neo4j_backtrack_count", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L66", + "source_file": "scripts/test_pipeline.py", + "source_location": "L278", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_rationale_278", + "target": "scripts_test_pipeline_build_itinerary" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "scripts_neo4j_coverage_analysis_neo4j_timeslot_density", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L84", + "source_file": "scripts/test_pipeline.py", + "source_location": "L362", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_run_pipeline", + "target": "scripts_test_pipeline_build_itinerary" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "scripts_neo4j_coverage_analysis_coverageresult", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L114", + "source_file": "scripts/test_pipeline.py", + "source_location": "L416", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_main", + "target": "scripts_test_pipeline_run_pipeline" }, { - "source": "scripts_neo4j_coverage_analysis_coverageresult", - "target": "scripts_neo4j_coverage_analysis_coverageresult_covered", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L122", + "source_file": "scripts/test_pipeline.py", + "source_location": "L375", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_run_pipeline", + "target": "src_data_models_itineraryplan" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "scripts_neo4j_coverage_analysis_run_vrptw", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L126", + "source_file": "scripts/test_pipeline.py", + "source_location": "L366", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_run_pipeline", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "scripts_neo4j_coverage_analysis_print_result", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L141", + "source_file": "scripts/test_pipeline.py", + "source_location": "L368", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_run_pipeline", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "scripts_neo4j_coverage_analysis_print_result", - "target": "scripts_neo4j_coverage_analysis_coverageresult", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L141", + "source_file": "scripts/test_pipeline.py", + "source_location": "L367", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_test_pipeline_run_pipeline", + "target": "src_validation_warning_warningdetector" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "scripts_neo4j_coverage_analysis_test_role_a", - "relation": "contains", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L152", + "source_file": "src/api/router.py", + "source_location": "L1529", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_parse_document", + "target": "post" }, { - "source": "scripts_neo4j_coverage_analysis_test_role_a", - "target": "scripts_neo4j_coverage_analysis_coverageresult", "relation": "references", - "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L152", + "source_file": "src/api/router.py", + "source_location": "L1520", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_parse_text", + "target": "post" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "scripts_neo4j_coverage_analysis_test_role_b", - "relation": "contains", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L217", + "source_file": "src/api/router.py", + "source_location": "L1546", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_resolve_coords", + "target": "post" }, { - "source": "scripts_neo4j_coverage_analysis_test_role_b", - "target": "scripts_neo4j_coverage_analysis_coverageresult", "relation": "references", - "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L217", + "source_file": "src/api/router.py", + "source_location": "L1566", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_validate_plan", + "target": "post" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "scripts_neo4j_coverage_analysis_test_role_c", - "relation": "contains", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L264", + "source_file": "src/api/router.py", + "source_location": "L1530", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_parse_document", + "target": "uploadfile" }, { - "source": "scripts_neo4j_coverage_analysis_test_role_c", - "target": "scripts_neo4j_coverage_analysis_coverageresult", - "relation": "references", - "context": "generic_arg", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L264", + "source_file": "src/api/schemas.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_dayplanweb", + "target": "src_api_schemas_py_basemodel" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "scripts_neo4j_coverage_analysis_main", - "relation": "contains", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L312", + "source_file": "src/api/schemas.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_parsedday", + "target": "src_api_schemas_py_basemodel" }, { - "source": "scripts_neo4j_coverage_analysis_make_place", - "target": "src_data_models_vrptwplace", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L52", + "source_file": "src/api/schemas.py", + "source_location": "L98", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_parsedplace", + "target": "src_api_schemas_py_basemodel" }, { - "source": "scripts_neo4j_coverage_analysis_neo4j_backtrack_count", - "target": "scripts_neo4j_coverage_analysis_sigungu_for", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L76", + "source_file": "src/api/schemas.py", + "source_location": "L108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_parsedplanresponse", + "target": "src_api_schemas_py_basemodel" }, { - "source": "scripts_neo4j_coverage_analysis_neo4j_timeslot_density", - "target": "scripts_neo4j_coverage_analysis_make_place", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L90", + "source_file": "src/api/schemas.py", + "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_parsetextrequest", + "target": "src_api_schemas_py_basemodel" }, { - "source": "scripts_neo4j_coverage_analysis_run_vrptw", - "target": "scripts_neo4j_coverage_analysis_make_place", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L129", + "source_file": "src/api/schemas.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_placeinputweb", + "target": "src_api_schemas_py_basemodel" }, { - "source": "scripts_neo4j_coverage_analysis_run_vrptw", - "target": "scripts_neo4j_coverage_analysis_sigungu_for", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L133", + "source_file": "src/api/schemas.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_placeitem", + "target": "src_api_schemas_py_basemodel" }, { - "source": "scripts_neo4j_coverage_analysis_test_role_a", - "target": "scripts_neo4j_coverage_analysis_neo4j_backtrack_count", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L157", + "source_file": "src/api/schemas.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_placesresponse", + "target": "src_api_schemas_py_basemodel" }, { - "source": "scripts_neo4j_coverage_analysis_test_role_a", - "target": "scripts_neo4j_coverage_analysis_run_vrptw", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L158", + "source_file": "src/api/schemas.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_poiinfo", + "target": "src_api_schemas_py_basemodel" }, { - "source": "scripts_neo4j_coverage_analysis_test_role_a", - "target": "scripts_neo4j_coverage_analysis_coverageresult", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L163", + "source_file": "src/api/schemas.py", + "source_location": "L74", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_validaterequest", + "target": "src_api_schemas_py_basemodel" }, { - "source": "scripts_neo4j_coverage_analysis_test_role_b", - "target": "scripts_neo4j_coverage_analysis_run_vrptw", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L223", + "source_file": "src/api/schemas.py", + "source_location": "L112", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_validateresponse", + "target": "src_api_schemas_py_basemodel" }, { - "source": "scripts_neo4j_coverage_analysis_test_role_b", - "target": "scripts_neo4j_coverage_analysis_coverageresult", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L227", + "source_file": "src/api/static/manifest.json", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_background_color" }, { - "source": "scripts_neo4j_coverage_analysis_test_role_c", - "target": "scripts_neo4j_coverage_analysis_neo4j_timeslot_density", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L269", + "source_file": "src/api/static/manifest.json", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_categories" }, { - "source": "scripts_neo4j_coverage_analysis_test_role_c", - "target": "scripts_neo4j_coverage_analysis_run_vrptw", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L273", + "source_file": "src/api/static/manifest.json", + "source_location": "L4", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_description" }, { - "source": "scripts_neo4j_coverage_analysis_test_role_c", - "target": "scripts_neo4j_coverage_analysis_coverageresult", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L277", + "source_file": "src/api/static/manifest.json", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_display" }, { - "source": "scripts_neo4j_coverage_analysis_main", - "target": "scripts_neo4j_coverage_analysis_test_role_a", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L320", + "source_file": "src/api/static/manifest.json", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_icons" }, { - "source": "scripts_neo4j_coverage_analysis_main", - "target": "scripts_neo4j_coverage_analysis_print_result", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L321", + "source_file": "src/api/static/manifest.json", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_lang" }, { - "source": "scripts_neo4j_coverage_analysis_main", - "target": "scripts_neo4j_coverage_analysis_test_role_b", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L325", + "source_file": "src/api/static/manifest.json", + "source_location": "L2", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_name" }, { - "source": "scripts_neo4j_coverage_analysis_main", - "target": "scripts_neo4j_coverage_analysis_test_role_c", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L330", + "source_file": "src/api/static/manifest.json", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_orientation" }, { - "source": "scripts_neo4j_coverage_analysis_rationale_1", - "target": "scripts_neo4j_coverage_analysis", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L1", + "source_file": "src/api/static/manifest.json", + "source_location": "L3", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_short_name" }, { - "source": "scripts_neo4j_coverage_analysis_rationale_67", - "target": "scripts_neo4j_coverage_analysis_neo4j_backtrack_count", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L67", + "source_file": "src/api/static/manifest.json", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_shortcuts" }, { - "source": "scripts_neo4j_coverage_analysis_rationale_85", - "target": "scripts_neo4j_coverage_analysis_neo4j_timeslot_density", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L85", + "source_file": "src/api/static/manifest.json", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_start_url" }, { - "source": "scripts_neo4j_coverage_analysis_rationale_127", - "target": "scripts_neo4j_coverage_analysis_run_vrptw", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L127", + "source_file": "src/api/static/manifest.json", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest", + "target": "src_api_static_manifest_theme_color" }, { - "source": "scripts_test_execute", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "extends", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L6", + "source_file": "src/api/static/manifest.json", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "context": "import", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest_categories", + "target": "ref_travel" }, { - "source": "scripts_test_execute", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "extends", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L7", + "source_file": "src/api/static/manifest.json", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "context": "import", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_manifest_categories", + "target": "ref_utilities" }, { - "source": "scripts_test_execute", - "target": "subprocess", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L8", + "source_file": "src/api/static/service-worker.js", + "source_location": "L2", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_static_service_worker", + "target": "src_api_static_service_worker_shell" }, { - "source": "scripts_test_execute", - "target": "sys", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L9", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_safe_float", + "target": "src_data_barrier_free_api_py_any" }, { - "source": "scripts_test_execute", - "target": "textwrap", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L10", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_str", + "target": "src_data_barrier_free_api_py_any" }, { - "source": "scripts_test_execute", - "target": "datetime", - "relation": "imports_from", - "context": "import", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L11", + "source_file": "src/data/models.py", + "source_location": "L135", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_alternativepoi", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L12", + "source_file": "src/data/models.py", + "source_location": "L211", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_dayplan", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute", - "target": "unittest_mock", - "relation": "imports_from", - "context": "import", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L13", + "source_file": "src/data/models.py", + "source_location": "L430", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_dayroutecomparison", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L15", + "source_file": "src/data/models.py", + "source_location": "L411", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_deepdiveitem", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute", - "target": "execute", - "relation": "imports", - "context": "import", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L18", + "source_file": "src/data/models.py", + "source_location": "L418", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_explanationitem", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute_tmp_project", - "target": "scripts_test_execute_py_fixture", - "relation": "references", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L25", + "source_file": "src/data/models.py", + "source_location": "L59", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_externalplaceresolution", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_tmp_project", - "relation": "contains", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L26", + "source_file": "src/data/models.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_hardfail", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute_phase_dir", - "target": "scripts_test_execute_py_fixture", - "relation": "references", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L42", + "source_file": "src/data/models.py", + "source_location": "L234", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_phase_dir", - "relation": "contains", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L43", + "source_file": "src/data/models.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_kakaoplace", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute_top_index", - "target": "scripts_test_execute_py_fixture", - "relation": "references", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L63", + "source_file": "src/data/models.py", + "source_location": "L72", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_placeevidence", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_top_index", - "relation": "contains", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L64", + "source_file": "src/data/models.py", + "source_location": "L196", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_placeinput", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute_executor", - "target": "scripts_test_execute_py_fixture", - "relation": "references", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L77", + "source_file": "src/data/models.py", + "source_location": "L143", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_poi", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_executor", - "relation": "contains", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L78", + "source_file": "src/data/models.py", + "source_location": "L119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_scores", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_teststamp", - "relation": "contains", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L96", + "source_file": "src/data/models.py", + "source_location": "L275", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_validationresult", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute_teststamp", - "target": "scripts_test_execute_teststamp_test_returns_kst_timestamp", - "relation": "method", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L97", + "source_file": "src/data/models.py", + "source_location": "L383", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwday", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute_teststamp", - "target": "scripts_test_execute_teststamp_test_format_is_iso", - "relation": "method", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L101", + "source_file": "src/data/models.py", + "source_location": "L337", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute_teststamp", - "target": "scripts_test_execute_teststamp_test_is_current_time", - "relation": "method", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L106", + "source_file": "src/data/models.py", + "source_location": "L394", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwrequest", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_testjsonhelpers", - "relation": "contains", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L118", + "source_file": "src/data/models.py", + "source_location": "L438", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwresult", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute_testjsonhelpers", - "target": "scripts_test_execute_testjsonhelpers_test_roundtrip", - "relation": "method", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L119", + "source_file": "src/data/models.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_warning", + "target": "src_data_models_py_basemodel" }, { - "source": "scripts_test_execute_testjsonhelpers", - "target": "scripts_test_execute_testjsonhelpers_test_save_ensures_ascii_false", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L126", + "source_file": "src/data/models.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_dayplan_auto_fill_visit_order", + "target": "model_validator" }, { - "source": "scripts_test_execute_testjsonhelpers", - "target": "scripts_test_execute_testjsonhelpers_test_save_indented", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L133", + "source_file": "src/data/models.py", + "source_location": "L126", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_scores_validate_ranges", + "target": "model_validator" }, { - "source": "scripts_test_execute_testjsonhelpers", - "target": "scripts_test_execute_testjsonhelpers_test_load_nonexistent_raises", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L139", + "source_file": "src/data/models.py", + "source_location": "L322", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_settings_fill_gov_api_keys", + "target": "model_validator" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_testloadguardrails", - "relation": "contains", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L148", + "source_file": "src/data/models.py", + "source_location": "L299", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_validationresult_hard_fail_score_cap", + "target": "model_validator" }, { - "source": "scripts_test_execute_testloadguardrails", - "target": "scripts_test_execute_testloadguardrails_test_loads_claude_md_and_docs", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L149", + "source_file": "src/data/models.py", + "source_location": "L265", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan_plan_id", + "target": "computed_field" }, { - "source": "scripts_test_execute_testloadguardrails", - "target": "scripts_test_execute_testloadguardrails_test_sections_separated_by_divider", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L157", + "source_file": "src/data/models.py", + "source_location": "L261", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan_travel_days", + "target": "computed_field" }, { - "source": "scripts_test_execute_testloadguardrails", - "target": "scripts_test_execute_testloadguardrails_test_docs_sorted_alphabetically", - "relation": "method", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L162", + "source_file": "src/data/models.py", + "source_location": "L306", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_settings", + "target": "basesettings" }, { - "source": "scripts_test_execute_testloadguardrails", - "target": "scripts_test_execute_testloadguardrails_test_no_claude_md", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L169", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog_restaurantcatalog_from_csv", + "target": "src_data_restaurant_catalog_py_path" }, { - "source": "scripts_test_execute_testloadguardrails", - "target": "scripts_test_execute_testloadguardrails_test_no_docs_dir", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L176", + "source_file": "src/data/wellness_api.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_safe_float", + "target": "src_data_wellness_api_py_any" }, { - "source": "scripts_test_execute_testloadguardrails", - "target": "scripts_test_execute_testloadguardrails_test_empty_project", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L184", + "source_file": "src/explain/explain_engine.py", + "source_location": "L447", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_init", + "target": "src_explain_explain_engine_py_any" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_testbuildstepcontext", - "relation": "contains", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L200", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_init", + "target": "src_explain_plan_extractor_py_any" }, { - "source": "scripts_test_execute_testbuildstepcontext", - "target": "scripts_test_execute_testbuildstepcontext_test_includes_completed_with_summary", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L201", + "source_file": "src/scoring/__init__.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_init_rationale_1", + "target": "src_scoring_init" }, { - "source": "scripts_test_execute_testbuildstepcontext", - "target": "scripts_test_execute_testbuildstepcontext_test_excludes_pending", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L207", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_bonusengine_from_dataset", + "target": "src_scoring_bonus_engine_py_path" }, { - "source": "scripts_test_execute_testbuildstepcontext", - "target": "scripts_test_execute_testbuildstepcontext_test_excludes_completed_without_summary", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L212", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine", + "target": "enum" }, { - "source": "scripts_test_execute_testbuildstepcontext", - "target": "scripts_test_execute_testbuildstepcontext_test_empty_when_no_completed", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L219", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_init", + "target": "src_scoring_congestion_engine_py_path" }, { - "source": "scripts_test_execute_testbuildstepcontext", - "target": "scripts_test_execute_testbuildstepcontext_test_has_header", - "relation": "method", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L224", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_lookup_exact", + "target": "series" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_testbuildpreamble", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L234", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L128", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_lookup_partial", + "target": "series" }, { - "source": "scripts_test_execute_testbuildpreamble", - "target": "scripts_test_execute_testbuildpreamble_test_includes_project_name", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L235", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L174", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_init", + "target": "src_scoring_theme_alignment_py_any" }, { - "source": "scripts_test_execute_testbuildpreamble", - "target": "scripts_test_execute_testbuildpreamble_test_includes_guardrails", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L239", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L91", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", + "target": "src_validation_kakao_matrix_py_path" }, { - "source": "scripts_test_execute_testbuildpreamble", - "target": "scripts_test_execute_testbuildpreamble_test_includes_step_context", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L243", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_init", + "target": "src_validation_kakao_matrix_py_path" }, { - "source": "scripts_test_execute_testbuildpreamble", - "target": "scripts_test_execute_testbuildpreamble_test_includes_commit_example", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L248", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L91", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", + "target": "src_validation_kakao_matrix_py_any" }, { - "source": "scripts_test_execute_testbuildpreamble", - "target": "scripts_test_execute_testbuildpreamble_test_includes_rules", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L252", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "abc" }, { - "source": "scripts_test_execute_testbuildpreamble", - "target": "scripts_test_execute_testbuildpreamble_test_no_retry_section_by_default", - "relation": "method", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L257", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_timematrix", + "target": "abc" }, { - "source": "scripts_test_execute_testbuildpreamble", - "target": "scripts_test_execute_testbuildpreamble_test_retry_section_with_prev_error", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L261", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L120", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_cachedroutematrix_from_file", + "target": "src_validation_vrptw_engine_py_path" }, { - "source": "scripts_test_execute_testbuildpreamble", - "target": "scripts_test_execute_testbuildpreamble_test_includes_max_retries", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L266", + "source_file": "tests/conftest.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_conftest_clean_anthropic_api_key", + "target": "tests_conftest_py_fixture" }, { - "source": "scripts_test_execute_testbuildpreamble", - "target": "scripts_test_execute_testbuildpreamble_test_includes_index_path", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L270", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine_engine", + "target": "tests_test_congestion_engine_py_fixture" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_testupdatetopindex", - "relation": "contains", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L279", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine_test_score_to_level", + "target": "parametrize" }, { - "source": "scripts_test_execute_testupdatetopindex", - "target": "scripts_test_execute_testupdatetopindex_test_completed", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L280", + "source_file": "tests/test_hard_fail.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_detector", + "target": "tests_test_hard_fail_py_fixture" }, { - "source": "scripts_test_execute_testupdatetopindex", - "target": "scripts_test_execute_testupdatetopindex_test_error", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L288", + "source_file": "tests/test_hard_fail.py", + "source_location": "L70", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_open_poi", + "target": "tests_test_hard_fail_py_fixture" }, { - "source": "scripts_test_execute_testupdatetopindex", - "target": "scripts_test_execute_testupdatetopindex_test_blocked", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L296", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_pipeline", + "target": "tests_test_pipeline_orchestrator_py_fixture" }, { - "source": "scripts_test_execute_testupdatetopindex", - "target": "scripts_test_execute_testupdatetopindex_test_other_phases_unchanged", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L304", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L86", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_sample_plan", + "target": "tests_test_pipeline_orchestrator_py_fixture" }, { - "source": "scripts_test_execute_testupdatetopindex", - "target": "scripts_test_execute_testupdatetopindex_test_nonexistent_dir_is_noop", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L311", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L76", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_sample_pois", + "target": "tests_test_pipeline_orchestrator_py_fixture" }, { - "source": "scripts_test_execute_testupdatetopindex", - "target": "scripts_test_execute_testupdatetopindex_test_no_top_index_file", - "relation": "method", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L320", + "source_file": "tests/test_repair.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_repairengine", + "target": "repairengineclass" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_testcheckoutbranch", - "relation": "contains", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L329", + "source_file": "tests/test_scoring.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_calc", + "target": "tests_test_scoring_py_fixture" }, { - "source": "scripts_test_execute_testcheckoutbranch", - "target": "scripts_test_execute_testcheckoutbranch_mock_git", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L330", + "source_file": "tests/test_scoring.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_sample_matrix", + "target": "tests_test_scoring_py_fixture" }, { - "source": "scripts_test_execute_testcheckoutbranch", - "target": "scripts_test_execute_testcheckoutbranch_test_already_on_branch", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L340", + "source_file": "tests/test_scoring.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_sample_plan", + "target": "tests_test_scoring_py_fixture" }, { - "source": "scripts_test_execute_testcheckoutbranch", - "target": "scripts_test_execute_testcheckoutbranch_test_branch_exists_checkout", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L346", + "source_file": "tests/test_scoring.py", + "source_location": "L77", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_sample_pois", + "target": "tests_test_scoring_py_fixture" }, { - "source": "scripts_test_execute_testcheckoutbranch", - "target": "scripts_test_execute_testcheckoutbranch_test_branch_not_exists_create", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L354", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_clear_cache", + "target": "tests_test_theme_alignment_py_fixture" }, { - "source": "scripts_test_execute_testcheckoutbranch", - "target": "scripts_test_execute_testcheckoutbranch_test_checkout_fails_exits", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L362", + "source_file": "tests/test_warning.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_detector", + "target": "tests_test_warning_py_fixture" }, { - "source": "scripts_test_execute_testcheckoutbranch", - "target": "scripts_test_execute_testcheckoutbranch_test_no_git_exits", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L372", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e", + "target": "scripts_demo_live_e2e_main" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_testcommitstep", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L385", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e", + "target": "src_data_evidence_retriever" }, { - "source": "scripts_test_execute_testcommitstep", - "target": "scripts_test_execute_testcommitstep_test_two_phase_commit", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L386", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e", + "target": "src_data_evidence_retriever_localevidenceretriever" }, { - "source": "scripts_test_execute_testcommitstep", - "target": "scripts_test_execute_testcommitstep_test_no_code_changes_skips_feat_commit", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L402", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e", + "target": "src_data_models" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_testinvokeclaude", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L426", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e", + "target": "src_data_models_dayplan" }, { - "source": "scripts_test_execute_testinvokeclaude", - "target": "scripts_test_execute_testinvokeclaude_test_invokes_claude_with_correct_args", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L427", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e", + "target": "src_data_models_hardfail" }, { - "source": "scripts_test_execute_testinvokeclaude", - "target": "scripts_test_execute_testinvokeclaude_test_saves_output_json", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L443", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e", + "target": "src_data_models_itineraryplan" }, { - "source": "scripts_test_execute_testinvokeclaude", - "target": "scripts_test_execute_testinvokeclaude_test_nonexistent_step_file_exits", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L457", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e", + "target": "src_data_models_placeinput" }, { - "source": "scripts_test_execute_testinvokeclaude", - "target": "scripts_test_execute_testinvokeclaude_test_timeout_is_1800", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L463", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e", + "target": "src_explain_explain_engine" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_testprogressindicator", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L477", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "scripts_test_execute_testprogressindicator", - "target": "scripts_test_execute_testprogressindicator_test_context_manager", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L478", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e_rationale_1", + "target": "scripts_demo_live_e2e" }, { - "source": "scripts_test_execute_testprogressindicator", - "target": "scripts_test_execute_testprogressindicator_test_elapsed_increases", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L484", + "confidence_score": 1.0, + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "scripts_demo_live_e2e_main", + "target": "src_data_evidence_retriever_localevidenceretriever_from_settings" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_testmaincli", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L495", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e_main", + "target": "src_data_models_dayplan" }, { - "source": "scripts_test_execute_testmaincli", - "target": "scripts_test_execute_testmaincli_test_no_args_exits", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L496", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e_main", + "target": "src_data_models_hardfail" }, { - "source": "scripts_test_execute_testmaincli", - "target": "scripts_test_execute_testmaincli_test_invalid_phase_dir_exits", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L502", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e_main", + "target": "src_data_models_itineraryplan" }, { - "source": "scripts_test_execute_testmaincli", - "target": "scripts_test_execute_testmaincli_test_missing_index_exits", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L509", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e_main", + "target": "src_data_models_placeinput" }, { - "source": "scripts_test_execute", - "target": "scripts_test_execute_testcheckblockers", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L522", + "source_file": "scripts/demo_live_e2e.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "scripts_demo_live_e2e_main", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "scripts_test_execute_testcheckblockers", - "target": "scripts_test_execute_testcheckblockers_make_executor_with_steps", - "relation": "method", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L523", + "source_file": "src/api/main.py", + "source_location": "L52", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main_manifest", + "target": "response", + "confidence_score": 1.0 }, { - "source": "scripts_test_execute_testcheckblockers", - "target": "scripts_test_execute_testcheckblockers_test_error_step_exits_1", - "relation": "method", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L541", + "source_file": "src/api/main.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main_service_worker", + "target": "response", + "confidence_score": 1.0 }, { - "source": "scripts_test_execute_testcheckblockers", - "target": "scripts_test_execute_testcheckblockers_test_blocked_step_exits_2", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L551", + "source_file": "src/api/router.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_schemas" }, { - "source": "scripts_test_execute_testcheckoutbranch_test_already_on_branch", - "target": "scripts_test_execute_testcheckoutbranch_mock_git", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L341", + "source_file": "src/api/schemas.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_api_schemas_dayplanweb" }, { - "source": "scripts_test_execute_testcheckoutbranch_test_branch_exists_checkout", - "target": "scripts_test_execute_testcheckoutbranch_mock_git", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L347", + "source_file": "src/api/schemas.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_api_schemas_parsedday" }, { - "source": "scripts_test_execute_testcheckoutbranch_test_branch_not_exists_create", - "target": "scripts_test_execute_testcheckoutbranch_mock_git", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L355", + "source_file": "src/api/schemas.py", + "source_location": "L98", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_api_schemas_parsedplace" }, { - "source": "scripts_test_execute_testcheckoutbranch_test_checkout_fails_exits", - "target": "scripts_test_execute_testcheckoutbranch_mock_git", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L363", + "source_file": "src/api/schemas.py", + "source_location": "L108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_api_schemas_parsedplanresponse" }, { - "source": "scripts_test_execute_testcheckoutbranch_test_no_git_exits", - "target": "scripts_test_execute_testcheckoutbranch_mock_git", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L373", + "source_file": "src/api/schemas.py", + "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_api_schemas_parsetextrequest" }, { - "source": "scripts_test_execute_testcheckblockers_test_error_step_exits_1", - "target": "scripts_test_execute_testcheckblockers_make_executor_with_steps", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L546", + "source_file": "src/api/schemas.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_api_schemas_placeinputweb" }, { - "source": "scripts_test_execute_testcheckblockers_test_blocked_step_exits_2", - "target": "scripts_test_execute_testcheckblockers_make_executor_with_steps", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L556", + "source_file": "src/api/schemas.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_api_schemas_placeitem" }, { - "source": "scripts_test_execute_rationale_1", - "target": "scripts_test_execute", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L1", + "source_file": "src/api/schemas.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_api_schemas_placesresponse" }, { - "source": "scripts_test_execute_rationale_27", - "target": "scripts_test_execute_tmp_project", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L27", + "source_file": "src/api/schemas.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_api_schemas_poiinfo" }, { - "source": "scripts_test_execute_rationale_44", - "target": "scripts_test_execute_phase_dir", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L44", + "source_file": "src/api/schemas.py", + "source_location": "L74", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_api_schemas_validaterequest" }, { - "source": "scripts_test_execute_rationale_65", - "target": "scripts_test_execute_top_index", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L65", + "source_file": "src/api/schemas.py", + "source_location": "L112", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_api_schemas_validateresponse" }, { - "source": "scripts_test_execute_rationale_79", - "target": "scripts_test_execute_executor", - "relation": "rationale_for", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_execute.py", - "source_location": "L79", + "source_file": "src/api/schemas.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_data_models" }, { - "source": "scripts_test_pipeline", - "target": "re", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L4", + "source_file": "src/api/schemas.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_data_models_validate_hhmm" }, { - "source": "scripts_test_pipeline", - "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L5", + "source_file": "src/api/schemas.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas", + "target": "src_data_models_validate_iso_date" }, { - "source": "scripts_test_pipeline", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L6", + "source_file": "src/api/schemas.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_rationale_1", + "target": "src_api_schemas" }, { - "source": "scripts_test_pipeline", - "target": "pandas", - "relation": "imports", + "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L8", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_api_schemas" }, { - "source": "scripts_test_pipeline", - "target": "src_data_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L12", + "source_file": "tests/test_api_schemas.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_api_schemas", + "target": "src_api_schemas" }, { - "source": "scripts_test_pipeline", - "target": "src_validation_hard_fail", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L13", + "source_file": "src/api/schemas.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_placeinputweb", + "target": "src_api_schemas_placeinputweb_validate_name" }, { - "source": "scripts_test_pipeline", - "target": "src_validation_warning", - "relation": "imports_from", - "context": "import", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L14", + "source_file": "src/api/schemas.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_placeinputweb_validate_name", + "target": "src_api_schemas_py_field_validator" }, { - "source": "scripts_test_pipeline", - "target": "src_validation_scoring", - "relation": "imports_from", - "context": "import", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L15", + "source_file": "src/api/schemas.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_validaterequest_validate_date", + "target": "src_api_schemas_py_field_validator" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_guess_coords", - "relation": "contains", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L103", + "source_file": "src/api/schemas.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_validaterequest_validate_start_time", + "target": "src_api_schemas_py_field_validator" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_guess_category", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L115", + "source_file": "src/api/schemas.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_validaterequest", + "target": "src_api_schemas_validaterequest_validate_date" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_guess_duration", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L122", + "source_file": "src/api/schemas.py", + "source_location": "L90", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_schemas_validaterequest", + "target": "src_api_schemas_validaterequest_validate_start_time" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_is_accommodation", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L129", + "source_file": "tests/test_api_schemas.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_api_schemas", + "target": "src_api_schemas_validaterequest" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_parse_places", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L134", + "source_file": "tests/test_api_schemas.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_api_schemas_request", + "target": "src_api_schemas_validaterequest" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_trip_days", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L147", + "confidence_score": 1.0, + "source_file": "src/api/schemas.py", + "source_location": "L86", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_schemas_validaterequest_validate_date", + "target": "src_data_models_validate_iso_date" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_party_type_from_triple", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L158", + "confidence_score": 1.0, + "source_file": "src/api/schemas.py", + "source_location": "L91", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_schemas_validaterequest_validate_start_time", + "target": "src_data_models_validate_hhmm" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_travel_type_from_theme", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L175", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_api_schemas_parsedplace" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_make_poi", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L191", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_fallback_text_parse", + "target": "src_api_schemas_parsedplace" }, { - "source": "scripts_test_pipeline_make_poi", - "target": "src_data_models_poi", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L191", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_plan_extractor_planextractionerror", + "target": "src_api_schemas_parsedplace" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_load_gugseok", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_plan_extractor_planextractor", + "target": "src_api_schemas_parsedplace" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L213", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_api_schemas_parsedday" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_load_triple", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L251", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_fallback_text_parse", + "target": "src_api_schemas_parsedday" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_build_itinerary", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_plan_extractor_planextractionerror", + "target": "src_api_schemas_parsedday" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_plan_extractor_planextractor", + "target": "src_api_schemas_parsedday" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L277", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_api_schemas_parsedplanresponse" }, { - "source": "scripts_test_pipeline_build_itinerary", - "target": "src_data_models_itineraryplan", "relation": "references", - "context": "generic_arg", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L277", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_fallback_text_parse", + "target": "src_api_schemas_parsedplanresponse" }, { - "source": "scripts_test_pipeline_build_itinerary", - "target": "src_data_models_poi", "relation": "references", - "context": "generic_arg", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L277", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_parse_response", + "target": "src_api_schemas_parsedplanresponse" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_run_pipeline", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_plan_extractor_planextractionerror", + "target": "src_api_schemas_parsedplanresponse" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_plan_extractor_planextractor", + "target": "src_api_schemas_parsedplanresponse" + }, + { + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L356", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L162", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_call", + "target": "src_api_schemas_parsedplanresponse" }, { - "source": "scripts_test_pipeline", - "target": "scripts_test_pipeline_main", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L408", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L142", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_extract_from_document", + "target": "src_api_schemas_parsedplanresponse" }, { - "source": "scripts_test_pipeline_make_poi", - "target": "scripts_test_pipeline_guess_coords", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L192", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L133", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_extract_from_text", + "target": "src_api_schemas_parsedplanresponse" }, { - "source": "scripts_test_pipeline_make_poi", - "target": "scripts_test_pipeline_guess_category", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L193", + "source_file": "src/api/security.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security_client_key", + "target": "request", + "confidence_score": 1.0 }, { - "source": "scripts_test_pipeline_make_poi", - "target": "scripts_test_pipeline_guess_duration", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L194", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "scripts_test_pipeline_make_poi", - "target": "src_data_models_poi", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L197", + "source_file": "src/api/security.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security_security_middleware", + "target": "request", + "confidence_score": 1.0 }, { - "source": "scripts_test_pipeline_load_gugseok", - "target": "scripts_test_pipeline_parse_places", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L227", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api", + "target": "src_data_barrier_free_api_barrierfreeapiclient" }, { - "source": "scripts_test_pipeline_load_triple", - "target": "scripts_test_pipeline_parse_places", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L259", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api", + "target": "src_data_barrier_free_api_barrierfreedetail" }, { - "source": "scripts_test_pipeline_build_itinerary", - "target": "scripts_test_pipeline_trip_days", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L285", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api", + "target": "src_data_barrier_free_api_barrierfreeplace" }, { - "source": "scripts_test_pipeline_build_itinerary", - "target": "scripts_test_pipeline_party_type_from_triple", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L288", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api", + "target": "src_data_barrier_free_api_extract_items" }, { - "source": "scripts_test_pipeline_build_itinerary", - "target": "scripts_test_pipeline_travel_type_from_theme", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L292", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api", + "target": "src_data_barrier_free_api_safe_float" }, { - "source": "scripts_test_pipeline_build_itinerary", - "target": "scripts_test_pipeline_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L312", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api", + "target": "src_data_barrier_free_api_str" }, { - "source": "scripts_test_pipeline_build_itinerary", - "target": "src_data_models_poi", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L330", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api", + "target": "src_data_models" }, { - "source": "scripts_test_pipeline_build_itinerary", - "target": "src_data_models_itineraryplan", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L342", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api", + "target": "src_data_models_settings" }, { - "source": "scripts_test_pipeline_run_pipeline", - "target": "scripts_test_pipeline_build_itinerary", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L362", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_rationale_1", + "target": "src_data_barrier_free_api" }, { - "source": "scripts_test_pipeline_run_pipeline", - "target": "src_data_models_itineraryplan", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L375", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L215", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_all", + "target": "src_data_barrier_free_api_barrierfreeplace" }, { - "source": "scripts_test_pipeline_main", - "target": "scripts_test_pipeline_load_gugseok", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L415", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", + "target": "src_data_barrier_free_api_barrierfreeplace" }, { - "source": "scripts_test_pipeline_main", - "target": "scripts_test_pipeline_run_pipeline", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L416", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_barrier_free_api_barrierfreeplace", + "target": "src_data_models_settings" }, { - "source": "scripts_test_pipeline_main", - "target": "scripts_test_pipeline_load_triple", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L421", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_rationale_26", + "target": "src_data_barrier_free_api_barrierfreeplace" }, { - "source": "scripts_test_pipeline_rationale_1", - "target": "scripts_test_pipeline", - "relation": "rationale_for", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L1", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L168", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail", + "target": "src_data_barrier_free_api_barrierfreedetail" }, { - "source": "scripts_test_pipeline_rationale_104", - "target": "scripts_test_pipeline_guess_coords", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L104", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_barrier_free_api_barrierfreedetail", + "target": "src_data_models_settings" }, { - "source": "scripts_test_pipeline_rationale_135", - "target": "scripts_test_pipeline_parse_places", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L135", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L46", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_rationale_46", + "target": "src_data_barrier_free_api_barrierfreedetail" }, { - "source": "scripts_test_pipeline_rationale_214", - "target": "scripts_test_pipeline_load_gugseok", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L214", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L191", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail", + "target": "src_data_barrier_free_api_extract_items" }, { - "source": "scripts_test_pipeline_rationale_252", - "target": "scripts_test_pipeline_load_triple", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L252", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L149", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", + "target": "src_data_barrier_free_api_extract_items" }, { - "source": "scripts_test_pipeline_rationale_278", - "target": "scripts_test_pipeline_build_itinerary", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L278", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", + "target": "src_data_barrier_free_api_safe_float" }, { - "source": "src_api_main", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L4", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L196", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail", + "target": "src_data_barrier_free_api_str" }, { - "source": "src_api_main", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L5", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", + "target": "src_data_barrier_free_api_str" }, { - "source": "src_api_main", - "target": "fastapi", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L7", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L215", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient", + "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_all" }, { - "source": "src_api_main", - "target": "fastapi_middleware_cors", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L8", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L168", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient", + "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail" }, { - "source": "src_api_main", - "target": "fastapi_responses", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L9", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient", + "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page" }, { - "source": "src_api_main", - "target": "fastapi_staticfiles", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L10", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient", + "target": "src_data_barrier_free_api_barrierfreeapiclient_init" }, { - "source": "src_api_main", - "target": "src_api_router", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L23", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_barrier_free_api_barrierfreeapiclient", + "target": "src_data_models_settings" }, { - "source": "src_api_main_index", - "target": "src_api_main_py_get", "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L46", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L107", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient_from_settings", + "target": "src_data_barrier_free_api_barrierfreeapiclient" }, { - "source": "src_api_main", - "target": "src_api_main_index", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L47", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L95", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_rationale_95", + "target": "src_data_barrier_free_api_barrierfreeapiclient" }, { - "source": "src_api_main_manifest", - "target": "src_api_main_py_get", "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L54", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L107", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient_from_settings", + "target": "src_data_models_settings" }, { - "source": "src_api_main", - "target": "src_api_main_manifest", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L55", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L220", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_all", + "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page" }, { - "source": "src_api_main_manifest", - "target": "src_api_main_py_response", - "relation": "references", - "context": "return_type", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L55", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_rationale_122", + "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page" }, { - "source": "src_api_main_service_worker", - "target": "src_api_main_py_get", - "relation": "references", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L62", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L169", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_rationale_169", + "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail" }, { - "source": "src_api_main", - "target": "src_api_main_service_worker", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L63", + "source_file": "src/data/barrier_free_api.py", + "source_location": "L216", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_barrier_free_api_rationale_216", + "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_all" }, { - "source": "src_api_main_service_worker", - "target": "src_api_main_py_response", - "relation": "references", - "context": "return_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L63", + "source_file": "src/api/router.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_data_dwell_db" }, { - "source": "src_api_main_health", - "target": "src_api_main_py_get", - "relation": "references", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L74", + "source_file": "src/data/dwell_db.py", + "source_location": "L22", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_dwell_db", + "target": "src_data_dwell_db_dwellrecommendation" }, { - "source": "src_api_main", - "target": "src_api_main_health", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L75", + "source_file": "src/data/dwell_db.py", + "source_location": "L194", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_dwell_db", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "src_api_main_rationale_76", - "target": "src_api_main_health", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/main.py", - "source_location": "L76", + "source_file": "src/data/dwell_db.py", + "source_location": "L183", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_dwell_db", + "target": "src_data_dwell_db_normalize_name" }, { - "source": "src_api_router", - "target": "asyncio", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L4", + "source_file": "src/data/dwell_db.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_dwell_db_rationale_1", + "target": "src_data_dwell_db" }, { - "source": "src_api_router", - "target": "csv", - "relation": "imports", + "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L5", + "source_file": "src/explain/repair.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_data_dwell_db" }, { - "source": "src_api_router", - "target": "json", - "relation": "imports", + "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L6", + "source_file": "tests/test_dwell_db.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db", + "target": "src_data_dwell_db" }, { - "source": "src_api_router", - "target": "re", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L7", + "source_file": "src/data/dwell_db.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_dwell_db_dwellrecommendation", + "target": "src_data_dwell_db_dwellrecommendation_is_too_short" }, { - "source": "src_api_router", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L8", + "source_file": "src/data/dwell_db.py", + "source_location": "L194", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_dwell_db_get_recommended_dwell", + "target": "src_data_dwell_db_dwellrecommendation" }, { - "source": "src_api_router", - "target": "openpyxl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L10", + "source_file": "tests/test_dwell_db.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db", + "target": "src_data_dwell_db_dwellrecommendation" }, { - "source": "src_api_router", - "target": "fastapi", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L11", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_dwell_db.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_dwell_db_testcontenttypefallback", + "target": "src_data_dwell_db_dwellrecommendation" }, { - "source": "src_api_router", - "target": "src_api_schemas", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L13", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_dwell_db.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_dwell_db_testdefaultfallback", + "target": "src_data_dwell_db_dwellrecommendation" }, { - "source": "src_api_router", - "target": "src_data_dwell_db", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L23", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_dwell_db.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_dwell_db_testistooshort", + "target": "src_data_dwell_db_dwellrecommendation" }, { - "source": "src_api_router", - "target": "src_data_graph_retriever", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L24", + "confidence_score": 1.0, + "source_file": "tests/test_dwell_db.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_dwell_db_testistooshort_test_below_50pct_is_too_short", + "target": "src_data_dwell_db_dwellrecommendation" }, { - "source": "src_api_router", - "target": "src_data_hours_db", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L25", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_dwell_db.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_dwell_db_testlclssystm1fallback", + "target": "src_data_dwell_db_dwellrecommendation" }, { - "source": "src_api_router", - "target": "src_data_kakao_local", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L26", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_dwell_db.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_dwell_db_testlclssystm3", + "target": "src_data_dwell_db_dwellrecommendation" }, { - "source": "src_api_router", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L27", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_dwell_db.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_dwell_db_testmanualoverride", + "target": "src_data_dwell_db_dwellrecommendation" }, { - "source": "src_api_router", - "target": "src_explain_pipeline", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L28", + "source_file": "src/data/dwell_db.py", + "source_location": "L30", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_dwell_db_rationale_30", + "target": "src_data_dwell_db_dwellrecommendation_is_too_short" }, { - "source": "src_api_router", - "target": "src_explain_plan_extractor", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L29", + "source_file": "src/data/dwell_db.py", + "source_location": "L214", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_dwell_db_get_recommended_dwell", + "target": "src_data_dwell_db_normalize_name" }, { - "source": "src_api_router", - "target": "src_api_router_kakao_hint", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L51", + "source_file": "src/data/dwell_db.py", + "source_location": "L184", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_dwell_db_rationale_184", + "target": "src_data_dwell_db_normalize_name" }, { - "source": "src_api_router", - "target": "src_api_router_kakao_cat_code", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L65", + "source_file": "src/data/dwell_db.py", + "source_location": "L200", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_dwell_db_rationale_200", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "src_api_router", - "target": "src_api_router_extract_chosung", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L232", + "source_file": "tests/test_dwell_db.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "src_api_router", - "target": "src_api_router_normalize", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L243", + "confidence_score": 1.0, + "source_file": "tests/test_dwell_db.py", + "source_location": "L51", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_dwell_db_testcontenttypefallback_test_content_type_used_when_no_lcls", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "src_api_router", - "target": "src_api_router_guess_dwell", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L252", + "confidence_score": 1.0, + "source_file": "tests/test_dwell_db.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_dwell_db_testdefaultfallback_test_no_info_returns_default", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "src_api_router", - "target": "src_api_router_addr_to_region", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L271", + "confidence_score": 1.0, + "source_file": "tests/test_dwell_db.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_dwell_db_testlclssystm1fallback_test_lcls3_unknown_falls_back_to_lcls1", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "src_api_router", - "target": "src_api_router_parse_jeju_hours", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L282", + "confidence_score": 1.0, + "source_file": "tests/test_dwell_db.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_dwell_db_testlclssystm3_test_museum_code", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "src_api_router", - "target": "src_api_router_build_jeju_place_index", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L293", + "confidence_score": 1.0, + "source_file": "tests/test_dwell_db.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_dwell_db_testmanualoverride_test_n_seoul_tower_alias", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "src_api_router", - "target": "src_api_router_build_coord_index", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L341", + "confidence_score": 1.0, + "source_file": "tests/test_dwell_db.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_dwell_db_testmanualoverride_test_normalization_handles_spaces", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "src_api_router", - "target": "src_api_router_build_place_list", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L394", + "confidence_score": 1.0, + "source_file": "tests/test_dwell_db.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_dwell_db_testmanualoverride_test_\uacbd\ubcf5\uad81_returns_manual_source", + "target": "src_data_dwell_db_get_recommended_dwell" }, { - "source": "src_api_router", - "target": "src_api_router_build_full_place_list", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", "source_file": "src/api/router.py", - "source_location": "L453", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_data_evidence_retriever" }, { - "source": "src_api_router", - "target": "src_api_router_build_monthly_congestion", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L555", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever", + "target": "src_data_evidence_retriever_localevidenceretriever" }, { - "source": "src_api_router", - "target": "src_api_router_lookup_place", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L599", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever", + "target": "src_data_models" }, { - "source": "src_api_router", - "target": "src_api_router_resolve_poi", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L618", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever", + "target": "src_data_models_alternativepoi" }, { - "source": "src_api_router_resolve_poi", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L618", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever", + "target": "src_data_models_placeevidence" }, { - "source": "src_api_router_resolve_poi", - "target": "src_api_schemas_poiinfo", - "relation": "references", - "context": "generic_arg", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L618", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever", + "target": "src_utils_geo" }, { - "source": "src_api_router", - "target": "src_api_router_calc_reliability_score", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L714", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever", + "target": "src_utils_geo_haversine_km" }, { - "source": "src_api_router_calc_reliability_score", - "target": "src_api_schemas_poiinfo", - "relation": "references", - "context": "generic_arg", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L714", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_rationale_1", + "target": "src_data_evidence_retriever" }, { - "source": "src_api_router", - "target": "src_api_router_get_pipeline", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L724", + "source_file": "src/explain/explain_engine.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_data_evidence_retriever" }, { - "source": "src_api_router_get_pipeline", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "references", - "context": "return_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L724", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever", + "target": "src_data_evidence_retriever" }, { - "source": "src_api_router_list_places", - "target": "src_api_router_py_get", - "relation": "references", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L731", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L77", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_localevidenceretriever", + "target": "src_data_evidence_retriever_localevidenceretriever_find_nearby" }, { - "source": "src_api_router", - "target": "src_api_router_list_places", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L732", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_localevidenceretriever", + "target": "src_data_evidence_retriever_localevidenceretriever_init" }, { - "source": "src_api_router_list_places", - "target": "src_api_schemas_placesresponse", - "relation": "references", - "context": "return_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L732", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_localevidenceretriever", + "target": "src_data_evidence_retriever_localevidenceretriever_load_places" }, { - "source": "src_api_router_monthly_congestion", - "target": "src_api_router_py_get", - "relation": "references", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L805", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L67", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_localevidenceretriever", + "target": "src_data_evidence_retriever_localevidenceretriever_search_places" }, { - "source": "src_api_router", - "target": "src_api_router_monthly_congestion", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L806", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L12", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_evidence_retriever_localevidenceretriever", + "target": "src_data_models_alternativepoi" }, { - "source": "src_api_router_list_regions", - "target": "src_api_router_py_get", - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L817", - "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L12", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_evidence_retriever_localevidenceretriever", + "target": "src_data_models_placeevidence" }, { - "source": "src_api_router", - "target": "src_api_router_list_regions", - "relation": "contains", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L818", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_localevidenceretriever_from_settings", + "target": "src_data_evidence_retriever_localevidenceretriever" }, { - "source": "src_api_router_parse_text", - "target": "post", - "relation": "references", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L829", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L20", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_rationale_20", + "target": "src_data_evidence_retriever_localevidenceretriever" }, { - "source": "src_api_router", - "target": "src_api_router_parse_text", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L830", + "source_file": "src/explain/explain_engine.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_data_evidence_retriever_localevidenceretriever" }, { - "source": "src_api_router_parse_text", - "target": "src_api_schemas_parsetextrequest", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L830", + "source_file": "src/explain/explain_engine.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_build_user_prompt", + "target": "src_data_evidence_retriever_localevidenceretriever" }, { - "source": "src_api_router_parse_text", - "target": "src_api_schemas_parsedplanresponse", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L830", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_explainengine", + "target": "src_data_evidence_retriever_localevidenceretriever" }, { - "source": "src_api_router_parse_document", - "target": "post", "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L838", + "source_file": "src/explain/explain_engine.py", + "source_location": "L447", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_init", + "target": "src_data_evidence_retriever_localevidenceretriever" }, { - "source": "src_api_router", - "target": "src_api_router_parse_document", - "relation": "contains", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L839", + "source_file": "src/explain/explain_engine.py", + "source_location": "L215", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_find_alternatives", + "target": "src_data_evidence_retriever_localevidenceretriever" }, { - "source": "src_api_router_parse_document", - "target": "uploadfile", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L839", + "source_file": "src/explain/explain_engine.py", + "source_location": "L197", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_graph_context", + "target": "src_data_evidence_retriever_localevidenceretriever" }, { - "source": "src_api_router_parse_document", - "target": "src_api_schemas_parsedplanresponse", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L839", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_lrucache", + "target": "src_data_evidence_retriever_localevidenceretriever" }, { - "source": "src_api_router_resolve_coords", - "target": "post", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L855", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L24", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_localevidenceretriever_init", + "target": "src_data_evidence_retriever_localevidenceretriever_load_places" }, { - "source": "src_api_router", - "target": "src_api_router_resolve_coords", - "relation": "contains", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L856", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_localevidenceretriever_init", + "target": "src_data_evidence_retriever_py_path" }, { - "source": "src_api_router_resolve_coords", - "target": "src_api_schemas_dayplanweb", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L856", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_localevidenceretriever_from_settings", + "target": "src_data_evidence_retriever_py_path" }, { - "source": "src_api_router_resolve_coords", - "target": "src_data_models_poi", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L856", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_localevidenceretriever_load_places", + "target": "src_data_models_placeevidence" }, { - "source": "src_api_router_validate_plan", - "target": "post", - "relation": "references", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L868", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L64", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_rationale_64", + "target": "src_data_evidence_retriever_localevidenceretriever_from_settings" }, { - "source": "src_api_router", - "target": "src_api_router_validate_plan", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L869", + "confidence_score": 1.0, + "source_file": "src/explain/explain_engine.py", + "source_location": "L466", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_explain_engine_explainengine_init", + "target": "src_data_evidence_retriever_localevidenceretriever_from_settings" }, { - "source": "src_api_router_validate_plan", - "target": "src_api_schemas_validaterequest", "relation": "references", - "context": "parameter_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L869", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_localevidenceretriever_search_places", + "target": "src_data_models_placeevidence" }, { - "source": "src_api_router_validate_plan", - "target": "src_api_schemas_validateresponse", "relation": "references", - "context": "return_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L869", + "source_file": "src/data/evidence_retriever.py", + "source_location": "L77", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_evidence_retriever_localevidenceretriever_find_nearby", + "target": "src_data_models_alternativepoi" }, { - "source": "src_api_router_guess_dwell", - "target": "src_api_router_normalize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L253", + "confidence_score": 1.0, + "source_file": "src/data/evidence_retriever.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_data_evidence_retriever_localevidenceretriever_find_nearby", + "target": "src_utils_geo_haversine_km" }, { - "source": "src_api_router_addr_to_region", - "target": "src_api_router_py_get", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", "source_file": "src/api/router.py", - "source_location": "L273", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_data_hours_db" }, { - "source": "src_api_router_build_jeju_place_index", - "target": "src_api_router_py_get", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L307", + "source_file": "src/data/hours_db.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_hours_db", + "target": "src_data_hours_db_hoursspec" }, { - "source": "src_api_router_build_jeju_place_index", - "target": "src_api_router_normalize", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L310", + "source_file": "src/data/hours_db.py", + "source_location": "L382", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_hours_db", + "target": "src_data_hours_db_is_open_at" }, { - "source": "src_api_router_build_jeju_place_index", - "target": "src_api_router_parse_jeju_hours", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L329", + "source_file": "src/data/hours_db.py", + "source_location": "L355", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_hours_db", + "target": "src_data_hours_db_resolve_hours" }, { - "source": "src_api_router_build_coord_index", - "target": "src_api_router_normalize", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L354", + "source_file": "src/data/hours_db.py", + "source_location": "L377", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_hours_db", + "target": "src_data_hours_db_to_minutes" }, { - "source": "src_api_router_build_coord_index", - "target": "src_api_router_addr_to_region", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L360", + "source_file": "src/data/hours_db.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_hours_db_rationale_1", + "target": "src_data_hours_db" }, { - "source": "src_api_router_build_coord_index", - "target": "src_api_router_py_get", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L360", + "source_file": "src/data/hours_db.py", + "source_location": "L382", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_hours_db_is_open_at", + "target": "src_data_hours_db_hoursspec" }, { - "source": "src_api_router_build_place_list", - "target": "src_api_router_py_get", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L417", + "source_file": "src/data/hours_db.py", + "source_location": "L355", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_hours_db_resolve_hours", + "target": "src_data_hours_db_hoursspec" }, { - "source": "src_api_router_build_place_list", - "target": "src_api_router_normalize", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L419", + "source_file": "src/data/hours_db.py", + "source_location": "L356", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_hours_db_rationale_356", + "target": "src_data_hours_db_resolve_hours" }, { - "source": "src_api_router_build_full_place_list", - "target": "src_api_router_normalize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L464", + "source_file": "src/data/hours_db.py", + "source_location": "L386", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_hours_db_is_open_at", + "target": "src_data_hours_db_to_minutes" }, { - "source": "src_api_router_build_full_place_list", - "target": "src_api_router_addr_to_region", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L475", + "source_file": "src/data/hours_db.py", + "source_location": "L383", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_hours_db_rationale_383", + "target": "src_data_hours_db_is_open_at" }, { - "source": "src_api_router_build_full_place_list", - "target": "src_api_router_py_get", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", "source_file": "src/api/router.py", - "source_location": "L475", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_data_kakao_local" }, { - "source": "src_api_router_build_monthly_congestion", - "target": "src_api_router_py_get", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L566", + "source_file": "src/data/kakao_local.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_lookup_place", - "target": "src_api_router_normalize", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L602", + "source_file": "src/data/kakao_local.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local", + "target": "src_data_models" }, { - "source": "src_api_router_resolve_poi", - "target": "src_api_router_lookup_place", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L619", + "source_file": "src/data/kakao_local.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local", + "target": "src_data_models_kakaoplace" }, { - "source": "src_api_router_resolve_poi", - "target": "src_api_router_py_get", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L620", + "source_file": "src/data/kakao_local.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local", + "target": "src_data_models_settings" }, { - "source": "src_api_router_resolve_poi", - "target": "src_api_router_normalize", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L621", + "source_file": "src/data/kakao_local.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_rationale_1", + "target": "src_data_kakao_local" }, { - "source": "src_api_router_resolve_poi", - "target": "src_api_router_kakao_hint", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L650", + "source_file": "src/data/place_resolver.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver", + "target": "src_data_kakao_local" }, { - "source": "src_api_router_resolve_poi", - "target": "src_api_router_guess_dwell", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L678", + "source_file": "tests/test_kakao_local.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "src_data_kakao_local" }, { - "source": "src_api_router_resolve_poi", - "target": "src_data_models_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L689", + "source_file": "src/data/kakao_local.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_kakaolocalclient", + "target": "src_data_kakao_local_kakaolocalclient_enabled" }, { - "source": "src_api_router_resolve_poi", - "target": "src_api_schemas_poiinfo", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L697", + "source_file": "src/data/kakao_local.py", + "source_location": "L126", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_kakaolocalclient", + "target": "src_data_kakao_local_kakaolocalclient_geocode_address" }, { - "source": "src_api_router_calc_reliability_score", - "target": "src_api_router_py_get", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L717", + "source_file": "src/data/kakao_local.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_kakaolocalclient", + "target": "src_data_kakao_local_kakaolocalclient_init" }, { - "source": "src_api_router_get_pipeline", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L727", + "source_file": "src/data/kakao_local.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_kakaolocalclient", + "target": "src_data_kakao_local_kakaolocalclient_search_keyword" }, { - "source": "src_api_router_list_places", - "target": "src_api_router_py_get", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L745", + "source_file": "src/data/kakao_local.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_kakaolocalclient", + "target": "src_data_kakao_local_kakaolocalclient_search_keyword_list" }, { - "source": "src_api_router_list_places", - "target": "src_api_router_extract_chosung", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/kakao_local.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_kakao_local_kakaolocalclient", + "target": "src_data_models_kakaoplace" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/kakao_local.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_kakao_local_kakaolocalclient", + "target": "src_data_models_settings" + }, + { + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L753", + "source_file": "src/data/kakao_local.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_kakao_local_kakaolocalclient_from_settings", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_list_places", - "target": "src_api_router_normalize", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L760", + "source_file": "src/data/kakao_local.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_rationale_24", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_list_places", - "target": "src_api_router_addr_to_region", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L765", + "source_file": "tests/test_kakao_local.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_list_places", - "target": "src_api_router_kakao_cat_code", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L768", + "source_file": "tests/test_kakao_local.py", + "source_location": "L31", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_disabled_without_key_returns_none", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_list_places", - "target": "src_api_schemas_placesresponse", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L802", + "source_file": "tests/test_kakao_local.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_empty_documents_returns_none", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_monthly_congestion", - "target": "src_api_router_py_get", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L808", + "source_file": "tests/test_kakao_local.py", + "source_location": "L136", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_geocode_address_disabled_without_key_returns_none", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_monthly_congestion", - "target": "src_api_router_normalize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L811", + "source_file": "tests/test_kakao_local.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_geocode_address_empty_documents_returns_none", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_list_regions", - "target": "src_api_router_py_get", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L823", + "source_file": "tests/test_kakao_local.py", + "source_location": "L161", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_geocode_address_http_error_falls_back_to_none", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_parse_document", - "target": "src_api_router_py_get", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L841", + "source_file": "tests/test_kakao_local.py", + "source_location": "L141", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_geocode_address_is_cached", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_resolve_coords", - "target": "src_api_router_resolve_poi", - "relation": "indirect_call", - "context": "argument", - "confidence": "INFERRED", - "source_file": "src/api/router.py", - "source_location": "L861", + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_kakao_local.py", + "source_location": "L128", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_geocode_address_parses_lat_lng", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_validate_plan", - "target": "src_api_router_resolve_poi", - "relation": "indirect_call", - "context": "argument", - "confidence": "INFERRED", - "source_file": "src/api/router.py", - "source_location": "L882", + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_kakao_local.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_http_error_falls_back_to_none", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_validate_plan", - "target": "src_api_router_get_pipeline", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L906", + "source_file": "tests/test_kakao_local.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_result_is_cached", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_validate_plan", - "target": "src_api_router_calc_reliability_score", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L920", + "source_file": "tests/test_kakao_local.py", + "source_location": "L108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_search_keyword_list_disabled_returns_empty", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_validate_plan", - "target": "src_api_router_py_get", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L933", + "source_file": "tests/test_kakao_local.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_search_keyword_list_parses_all", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_validate_plan", - "target": "src_api_schemas_validateresponse", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L963", + "source_file": "tests/test_kakao_local.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_search_parses_first_document", + "target": "src_data_kakao_local_kakaolocalclient" }, { - "source": "src_api_router_rationale_1", - "target": "src_api_router", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L1", + "source_file": "src/data/kakao_local.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_kakaolocalclient_from_settings", + "target": "src_data_models_settings" }, { - "source": "src_api_router_rationale_52", - "target": "src_api_router_kakao_hint", - "relation": "rationale_for", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L52", + "source_file": "src/data/kakao_local.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_kakaolocalclient_search_keyword", + "target": "src_data_models_kakaoplace" }, { - "source": "src_api_router_rationale_66", - "target": "src_api_router_kakao_cat_code", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L66", + "source_file": "src/data/kakao_local.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_rationale_45", + "target": "src_data_kakao_local_kakaolocalclient_search_keyword" }, { - "source": "src_api_router_rationale_283", - "target": "src_api_router_parse_jeju_hours", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L283", + "source_file": "src/data/kakao_local.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_kakaolocalclient_search_keyword_list", + "target": "src_data_models_kakaoplace" }, { - "source": "src_api_router_rationale_294", - "target": "src_api_router_build_jeju_place_index", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L294", + "source_file": "src/data/kakao_local.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_rationale_84", + "target": "src_data_kakao_local_kakaolocalclient_search_keyword_list" }, { - "source": "src_api_router_rationale_342", - "target": "src_api_router_build_coord_index", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L342", + "source_file": "src/data/kakao_local.py", + "source_location": "L127", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_kakao_local_rationale_127", + "target": "src_data_kakao_local_kakaolocalclient_geocode_address" }, { - "source": "src_api_router_rationale_395", - "target": "src_api_router_build_place_list", - "relation": "rationale_for", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L395", + "source_file": "src/api/main.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main", + "target": "src_data_models", + "confidence_score": 1.0 }, { - "source": "src_api_router_rationale_454", - "target": "src_api_router_build_full_place_list", - "relation": "rationale_for", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", "source_file": "src/api/router.py", - "source_location": "L454", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_data_models" }, { - "source": "src_api_router_rationale_556", - "target": "src_api_router_build_monthly_congestion", - "relation": "rationale_for", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L556", + "source_file": "src/api/security.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security", + "target": "src_data_models", + "confidence_score": 1.0 }, { - "source": "src_api_router_rationale_600", - "target": "src_api_router_lookup_place", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L600", + "source_file": "src/data/models.py", + "source_location": "L135", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_alternativepoi" }, { - "source": "src_api_router_rationale_736", - "target": "src_api_router_list_places", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L736", + "source_file": "src/data/models.py", + "source_location": "L211", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_dayplan" }, { - "source": "src_api_router_rationale_831", - "target": "src_api_router_parse_text", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L831", + "source_file": "src/data/models.py", + "source_location": "L430", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_dayroutecomparison" }, { - "source": "src_api_router_rationale_840", - "target": "src_api_router_parse_document", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L840", + "source_file": "src/data/models.py", + "source_location": "L411", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_api_router_rationale_857", - "target": "src_api_router_resolve_coords", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L857", + "source_file": "src/data/models.py", + "source_location": "L418", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_explanationitem" }, { - "source": "src_api_schemas", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L4", + "source_file": "src/data/models.py", + "source_location": "L59", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_externalplaceresolution" }, { - "source": "src_api_schemas", - "target": "pydantic", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L6", + "source_file": "src/data/models.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_hardfail" }, { - "source": "src_api_schemas", - "target": "src_api_schemas_placeinputweb", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L9", + "source_file": "src/data/models.py", + "source_location": "L234", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_itineraryplan" }, { - "source": "src_api_schemas_placeinputweb", - "target": "src_api_schemas_py_basemodel", - "relation": "inherits", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L9", + "source_file": "src/data/models.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_kakaoplace" }, { - "source": "src_api_schemas", - "target": "src_api_schemas_dayplanweb", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L14", + "source_file": "src/data/models.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_placeevidence" }, { - "source": "src_api_schemas_dayplanweb", - "target": "src_api_schemas_py_basemodel", - "relation": "inherits", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L14", + "source_file": "src/data/models.py", + "source_location": "L196", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_placeinput" }, { - "source": "src_api_schemas", - "target": "src_api_schemas_poiinfo", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L18", + "source_file": "src/data/models.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_poi" }, { - "source": "src_api_schemas_poiinfo", - "target": "src_api_schemas_py_basemodel", - "relation": "inherits", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L18", + "source_file": "src/data/models.py", + "source_location": "L119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_scores" }, { - "source": "src_api_schemas", - "target": "src_api_schemas_placeitem", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L37", + "source_file": "src/data/models.py", + "source_location": "L306", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_settings" }, { - "source": "src_api_schemas_placeitem", - "target": "src_api_schemas_py_basemodel", - "relation": "inherits", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L37", + "source_file": "src/data/models.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_validate_hhmm" }, { - "source": "src_api_schemas", - "target": "src_api_schemas_placesresponse", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L49", + "source_file": "src/data/models.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_validate_iso_date" }, { - "source": "src_api_schemas_placesresponse", - "target": "src_api_schemas_py_basemodel", - "relation": "inherits", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L49", + "source_file": "src/data/models.py", + "source_location": "L275", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_validationresult" }, { - "source": "src_api_schemas", - "target": "src_api_schemas_validaterequest", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L54", + "source_file": "src/data/models.py", + "source_location": "L383", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_vrptwday" }, { - "source": "src_api_schemas_validaterequest", - "target": "src_api_schemas_py_basemodel", - "relation": "inherits", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L54", + "source_file": "src/data/models.py", + "source_location": "L337", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_vrptwplace" }, { - "source": "src_api_schemas", - "target": "src_api_schemas_parsetextrequest", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L64", + "source_file": "src/data/models.py", + "source_location": "L394", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_api_schemas_parsetextrequest", - "target": "src_api_schemas_py_basemodel", - "relation": "inherits", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L64", + "source_file": "src/data/models.py", + "source_location": "L438", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_vrptwresult" }, { - "source": "src_api_schemas", - "target": "src_api_schemas_parsedplace", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L68", + "source_file": "src/data/models.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models", + "target": "src_data_models_warning" }, { - "source": "src_api_schemas_parsedplace", - "target": "src_api_schemas_py_basemodel", - "relation": "inherits", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L68", + "source_file": "src/data/models.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_rationale_1", + "target": "src_data_models" }, { - "source": "src_api_schemas", - "target": "src_api_schemas_parsedday", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L74", + "source_file": "src/data/place_resolver.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver", + "target": "src_data_models" }, { - "source": "src_api_schemas_parsedday", - "target": "src_api_schemas_py_basemodel", - "relation": "inherits", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L74", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog", + "target": "src_data_models" }, { - "source": "src_api_schemas", - "target": "src_api_schemas_parsedplanresponse", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L78", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_api_schemas_parsedplanresponse", - "target": "src_api_schemas_py_basemodel", - "relation": "inherits", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L78", + "source_file": "src/data/tour_api.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api", + "target": "src_data_models" }, { - "source": "src_api_schemas", - "target": "src_api_schemas_validateresponse", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L82", + "source_file": "src/data/wellness_api.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api", + "target": "src_data_models" }, { - "source": "src_api_schemas_validateresponse", - "target": "src_api_schemas_py_basemodel", - "relation": "inherits", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L82", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_data_models" }, { - "source": "src_api_schemas_rationale_1", - "target": "src_api_schemas", - "relation": "rationale_for", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/schemas.py", - "source_location": "L1", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_name", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L2", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_short_name", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L3", + "source_file": "src/explain/repair.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_description", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L4", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_start_url", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L5", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_display", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L6", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_background_color", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L7", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_theme_color", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L8", + "source_file": "src/scoring/reward_engine.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_reward_engine", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_orientation", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L9", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_lang", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L10", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_categories", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L11", + "source_file": "src/validation/alternatives.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives", + "target": "src_data_models" }, { - "source": "src_api_static_manifest_categories", - "target": "ref_travel", - "relation": "extends", - "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L11", - "weight": 1.0, + "relation": "imports_from", "context": "import", - "_origin": "ast" - }, - { - "source": "src_api_static_manifest_categories", - "target": "ref_utilities", - "relation": "extends", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L11", + "source_file": "src/validation/hard_fail.py", + "source_location": "L5", "weight": 1.0, - "context": "import", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_icons", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L12", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix", + "target": "src_data_models" }, { - "source": "src_api_static_manifest", - "target": "src_api_static_manifest_shortcuts", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/manifest.json", - "source_location": "L26", + "source_file": "src/validation/scoring.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_data_models" }, { - "source": "src_api_static_service_worker", - "target": "src_api_static_service_worker_shell", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/api/static/service-worker.js", - "source_location": "L2", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api", - "target": "dataclasses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L11", + "source_file": "src/validation/warning.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api", - "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L12", + "source_file": "tests/test_alternatives.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api", - "target": "httpx", - "relation": "imports", + "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L14", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api", - "target": "src_data_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L16", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api", - "target": "src_data_barrier_free_api_barrierfreeplace", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L24", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api", - "target": "src_data_barrier_free_api_barrierfreedetail", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L43", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api", - "target": "src_data_barrier_free_api_extract_items", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L68", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api", - "target": "src_data_barrier_free_api_safe_float", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L78", + "source_file": "tests/test_geo.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_safe_float", - "target": "src_data_barrier_free_api_py_any", - "relation": "references", - "context": "parameter_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L78", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api", - "target": "src_data_barrier_free_api_str", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L85", + "source_file": "tests/test_kakao_local.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_str", - "target": "src_data_barrier_free_api_py_any", - "relation": "references", - "context": "parameter_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L85", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api", - "target": "src_data_barrier_free_api_barrierfreeapiclient", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L91", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient", - "target": "src_data_barrier_free_api_barrierfreeapiclient_init", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L97", + "source_file": "tests/test_place_resolver.py", + "source_location": "L3", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_place_resolver", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient", - "target": "src_data_barrier_free_api_barrierfreeapiclient_from_settings", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L104", + "source_file": "tests/test_repair.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_from_settings", - "target": "src_data_models_settings", - "relation": "references", - "context": "parameter_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L104", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient", - "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L112", + "source_file": "tests/test_reward_engine.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", - "target": "src_data_barrier_free_api_barrierfreeplace", - "relation": "references", - "context": "generic_arg", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L112", + "source_file": "tests/test_route_matrix.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient", - "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L163", + "source_file": "tests/test_scoring.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail", - "target": "src_data_barrier_free_api_barrierfreedetail", - "relation": "references", - "context": "return_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L163", + "source_file": "tests/test_settings.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_settings", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient", - "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_all", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L210", + "source_file": "tests/test_tour_api_runtime.py", + "source_location": "L3", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_tour_api_runtime", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_all", - "target": "src_data_barrier_free_api_barrierfreeplace", - "relation": "references", - "context": "generic_arg", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L210", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_from_settings", - "target": "src_data_models_settings", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L106", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", - "target": "src_data_barrier_free_api_extract_items", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L146", + "source_file": "tests/test_warning.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "src_data_models" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", - "target": "src_data_barrier_free_api_str", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L147", + "source_file": "src/data/models.py", + "source_location": "L250", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan_validate_start_time", + "target": "src_data_models_validate_hhmm" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", - "target": "src_data_barrier_free_api_safe_float", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L150", + "source_file": "src/data/models.py", + "source_location": "L349", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace_validate_hhmm", + "target": "src_data_models_validate_hhmm" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", - "target": "src_data_barrier_free_api_barrierfreeplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L154", + "source_file": "src/data/models.py", + "source_location": "L401", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwrequest_validate_start_time", + "target": "src_data_models_validate_hhmm" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail", - "target": "src_data_barrier_free_api_extract_items", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L186", + "source_file": "src/data/models.py", + "source_location": "L245", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan_validate_date", + "target": "src_data_models_validate_iso_date" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail", - "target": "src_data_barrier_free_api_barrierfreedetail", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L190", + "source_file": "src/data/models.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_rationale_48", + "target": "src_data_models_kakaoplace" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail", - "target": "src_data_barrier_free_api_str", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L191", + "source_file": "tests/test_kakao_local.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "src_data_models_kakaoplace" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient_fetch_all", - "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L215", + "source_file": "src/data/models.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_rationale_60", + "target": "src_data_models_externalplaceresolution" }, { - "source": "src_data_barrier_free_api_rationale_1", - "target": "src_data_barrier_free_api", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L1", + "source_file": "src/data/models.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_rationale_73", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_barrier_free_api_rationale_25", - "target": "src_data_barrier_free_api_barrierfreeplace", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L25", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_barrier_free_api_rationale_44", - "target": "src_data_barrier_free_api_barrierfreedetail", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L44", + "source_file": "tests/test_explain_engine.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_make_graph_stub", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_barrier_free_api_rationale_92", - "target": "src_data_barrier_free_api_barrierfreeapiclient", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L92", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_barrier_free_api_rationale_119", - "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_page", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L119", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_barrier_free_api_rationale_164", - "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_detail", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L164", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testcachekey", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_barrier_free_api_rationale_211", - "target": "src_data_barrier_free_api_barrierfreeapiclient_fetch_all", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L211", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginegraphdefault", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_dwell_db", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L14", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_dwell_db", - "target": "typing", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L15", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_dwell_db", - "target": "src_data_dwell_db_dwellrecommendation", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L21", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testfallback", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_dwell_db_dwellrecommendation", - "target": "src_data_dwell_db_dwellrecommendation_is_too_short", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L27", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_dwell_db", - "target": "src_data_dwell_db_normalize_name", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L181", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "src_data_models_placeevidence" }, { - "source": "src_data_dwell_db", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L192", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_data_models_hardfail" }, { - "source": "src_data_dwell_db_get_recommended_dwell", - "target": "src_data_dwell_db_dwellrecommendation", "relation": "references", - "context": "return_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L192", + "source_file": "src/explain/explain_engine.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_build_user_prompt", + "target": "src_data_models_hardfail" }, { - "source": "src_data_dwell_db_get_recommended_dwell", - "target": "src_data_dwell_db_normalize_name", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L212", + "source_file": "src/explain/explain_engine.py", + "source_location": "L174", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_cache_key", + "target": "src_data_models_hardfail" }, { - "source": "src_data_dwell_db_get_recommended_dwell", - "target": "src_data_dwell_db_dwellrecommendation", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L215", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_explainengine", + "target": "src_data_models_hardfail" }, { - "source": "src_data_dwell_db_rationale_1", - "target": "src_data_dwell_db", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L1", + "source_file": "src/explain/explain_engine.py", + "source_location": "L472", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_build_alternatives", + "target": "src_data_models_hardfail" }, { - "source": "src_data_dwell_db_rationale_28", - "target": "src_data_dwell_db_dwellrecommendation_is_too_short", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L28", + "source_file": "src/explain/explain_engine.py", + "source_location": "L566", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_call_llm", + "target": "src_data_models_hardfail" }, { - "source": "src_data_dwell_db_rationale_182", - "target": "src_data_dwell_db_normalize_name", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L182", + "source_file": "src/explain/explain_engine.py", + "source_location": "L483", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_generate", + "target": "src_data_models_hardfail" }, { - "source": "src_data_dwell_db_rationale_198", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/dwell_db.py", - "source_location": "L198", + "source_file": "src/explain/explain_engine.py", + "source_location": "L373", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_fallback", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever", - "target": "os", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L14", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_lrucache", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever", - "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L15", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever", - "target": "neo4j", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L17", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever", - "target": "neo4j_exceptions", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L18", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever", - "target": "src_data_models", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", + "source_file": "src/explain/repair.py", "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever", - "target": "src_data_graph_retriever_graphretriever", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L44", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_deletionsuggestion", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever", - "target": "src_data_graph_retriever_graphretriever_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L47", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_reordersuggestion", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever", - "target": "src_data_graph_retriever_graphretriever_from_env", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L62", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_repairengine", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever_from_env", - "target": "src_data_graph_retriever_graphretriever", "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L62", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_data_graph_retriever_graphretriever", - "target": "src_data_graph_retriever_graphretriever_enabled", - "relation": "method", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L71", + "source_file": "src/explain/repair.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_repair", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever", - "target": "src_data_graph_retriever_graphretriever_callable", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L74", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_repairresult", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever", - "target": "src_data_graph_retriever_graphretriever_mark_unreachable", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L78", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_timetunesuggestion", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever", - "target": "src_data_graph_retriever_graphretriever_close", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L81", + "source_file": "src/validation/alternatives.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever", - "target": "src_data_graph_retriever_graphretriever_search_places", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L85", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/alternatives.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_alternatives_alternativesfinder", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever_search_places", - "target": "src_data_models_placeevidence", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L85", + "source_file": "src/validation/alternatives.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_alternativesfinder_build_alternatives_map", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever", - "target": "src_data_graph_retriever_graphretriever_find_nearby", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L111", + "source_file": "src/validation/hard_fail.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail", + "target": "src_data_models_hardfail" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/hard_fail.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_hard_fail_hardfaildetector", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever_find_nearby", - "target": "src_data_models_alternativepoi", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L111", + "source_file": "src/validation/hard_fail.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_check_operating_hours", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever_search_places", - "target": "src_data_graph_retriever_graphretriever_callable", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L88", + "source_file": "src/validation/hard_fail.py", + "source_location": "L189", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever_search_places", - "target": "src_data_graph_retriever_graphretriever_mark_unreachable", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L95", + "source_file": "src/validation/hard_fail.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever_search_places", - "target": "src_data_models_placeevidence", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L98", + "source_file": "src/validation/hard_fail.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_detect", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever_find_nearby", - "target": "src_data_graph_retriever_graphretriever_callable", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L113", + "source_file": "src/validation/scoring.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever_find_nearby", - "target": "src_data_graph_retriever_graphretriever_mark_unreachable", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L120", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/scoring.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_scoring_scorecalculator", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_graphretriever_find_nearby", - "target": "src_data_models_alternativepoi", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L123", + "source_file": "src/validation/scoring.py", + "source_location": "L80", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_calc_feasibility", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_rationale_1", - "target": "src_data_graph_retriever", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L1", + "source_file": "src/validation/scoring.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_compute", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_rationale_45", - "target": "src_data_graph_retriever_graphretriever", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L45", + "source_file": "tests/test_alternatives.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_rationale_75", - "target": "src_data_graph_retriever_graphretriever_callable", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L75", + "source_file": "tests/test_alternatives.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_hardfail", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_rationale_86", - "target": "src_data_graph_retriever_graphretriever_search_places", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L86", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_alternatives.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_alternatives_testbuildalternativesmap", + "target": "src_data_models_hardfail" }, { - "source": "src_data_graph_retriever_rationale_112", - "target": "src_data_graph_retriever_graphretriever_find_nearby", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L112", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_alternatives.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_alternatives_testfindalternatives", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db", - "target": "re", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L9", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L10", + "source_file": "tests/test_explain_engine.py", + "source_location": "L46", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_make_hard_fail", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db", - "target": "src_data_hours_db_hoursspec", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L14", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db", - "target": "src_data_hours_db_resolve_hours", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L245", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db_resolve_hours", - "target": "src_data_hours_db_hoursspec", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L245", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testcachekey", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db", - "target": "src_data_hours_db_to_minutes", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L267", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginegraphdefault", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db", - "target": "src_data_hours_db_is_open_at", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L272", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db_is_open_at", - "target": "src_data_hours_db_hoursspec", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L272", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db_is_open_at", - "target": "src_data_hours_db_to_minutes", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L276", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testfallback", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db_rationale_1", - "target": "src_data_hours_db", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db_rationale_246", - "target": "src_data_hours_db_resolve_hours", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L246", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "src_data_models_hardfail" }, { - "source": "src_data_hours_db_rationale_273", - "target": "src_data_hours_db_is_open_at", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/hours_db.py", - "source_location": "L273", + "source_file": "tests/test_repair.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_data_models_hardfail" }, { - "source": "src_data_kakao_local", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L14", + "source_file": "tests/test_repair.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_fail", + "target": "src_data_models_hardfail" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "src_data_models_hardfail" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testrepairenginenoop", + "target": "src_data_models_hardfail" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testresultmodel", + "target": "src_data_models_hardfail" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "src_data_models_hardfail" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "src_data_models_hardfail" }, { - "source": "src_data_kakao_local", - "target": "httpx", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L16", + "source_file": "tests/test_scoring.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "src_data_models_hardfail" }, { - "source": "src_data_kakao_local", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L18", + "source_file": "tests/test_scoring.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_make_hard_fail", + "target": "src_data_models_hardfail" }, { - "source": "src_data_kakao_local", - "target": "src_data_kakao_local_kakaolocalclient", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L24", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcompute", + "target": "src_data_models_hardfail" }, { - "source": "src_data_kakao_local_kakaolocalclient", - "target": "src_data_kakao_local_kakaolocalclient_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L27", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcosinedistance", + "target": "src_data_models_hardfail" }, { - "source": "src_data_kakao_local_kakaolocalclient", - "target": "src_data_kakao_local_kakaolocalclient_from_env", - "relation": "method", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testefficiency", + "target": "src_data_models_hardfail" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testfeasibility", + "target": "src_data_models_hardfail" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testpurposefit", + "target": "src_data_models_hardfail" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testweights", + "target": "src_data_models_hardfail" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L36", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_kakaolocalclient_from_env", - "target": "src_data_kakao_local_kakaolocalclient", "relation": "references", - "context": "return_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L36", + "source_file": "src/explain/explain_engine.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_build_user_prompt", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_kakaolocalclient", - "target": "src_data_kakao_local_kakaolocalclient_enabled", - "relation": "method", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L40", + "source_file": "src/explain/explain_engine.py", + "source_location": "L174", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_cache_key", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_kakaolocalclient", - "target": "src_data_kakao_local_kakaolocalclient_search_keyword", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L43", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_explainengine", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_kakaolocalclient_search_keyword", - "target": "src_data_models_kakaoplace", "relation": "references", - "context": "return_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L43", + "source_file": "src/explain/explain_engine.py", + "source_location": "L566", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_call_llm", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_kakaolocalclient", - "target": "src_data_kakao_local_kakaolocalclient_search_keyword_list", - "relation": "method", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L82", + "source_file": "src/explain/explain_engine.py", + "source_location": "L483", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_generate", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_kakaolocalclient_search_keyword_list", - "target": "src_data_models_kakaoplace", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L82", + "source_file": "src/explain/explain_engine.py", + "source_location": "L373", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_fallback", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_kakaolocalclient", - "target": "src_data_kakao_local_kakaolocalclient_geocode_address", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L125", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_lrucache", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_kakaolocalclient_search_keyword", - "target": "src_data_models_kakaoplace", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L65", + "source_file": "src/validation/warning.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_kakaolocalclient_search_keyword_list", - "target": "src_data_models_kakaoplace", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/warning.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_warning_warningdetector", + "target": "src_data_models_warning" + }, + { + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L105", + "source_file": "src/validation/warning.py", + "source_location": "L256", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_area_revisit", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_rationale_1", - "target": "src_data_kakao_local", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L1", + "source_file": "src/validation/warning.py", + "source_location": "L186", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_rationale_25", - "target": "src_data_kakao_local_kakaolocalclient", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L25", + "source_file": "src/validation/warning.py", + "source_location": "L75", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_dense_schedule", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_rationale_44", - "target": "src_data_kakao_local_kakaolocalclient_search_keyword", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L44", + "source_file": "src/validation/warning.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_inefficient_route", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_rationale_83", - "target": "src_data_kakao_local_kakaolocalclient_search_keyword_list", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L83", + "source_file": "src/validation/warning.py", + "source_location": "L130", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_physical_strain", + "target": "src_data_models_warning" }, { - "source": "src_data_kakao_local_rationale_126", - "target": "src_data_kakao_local_kakaolocalclient_geocode_address", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L126", + "source_file": "src/validation/warning.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_purpose_mismatch", + "target": "src_data_models_warning" }, { - "source": "src_data_models", - "target": "hashlib", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L9", + "source_file": "src/validation/warning.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_detect", + "target": "src_data_models_warning" }, { - "source": "src_data_models", - "target": "re", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L10", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_data_models_warning" }, { - "source": "src_data_models", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L11", + "source_file": "tests/test_explain_engine.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_make_warning", + "target": "src_data_models_warning" }, { - "source": "src_data_models", - "target": "pydantic", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L13", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "src_data_models_warning" }, { - "source": "src_data_models", - "target": "pydantic_settings", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L14", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "src_data_models_warning" }, { - "source": "src_data_models", - "target": "src_data_models_kakaoplace", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L22", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testcachekey", + "target": "src_data_models_warning" }, { - "source": "src_data_models_kakaoplace", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L22", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginegraphdefault", + "target": "src_data_models_warning" }, { - "source": "src_data_models", - "target": "src_data_models_placeevidence", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L34", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "src_data_models_warning" }, { - "source": "src_data_models_placeevidence", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L34", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "src_data_models_warning" }, { - "source": "src_data_models", - "target": "src_data_models_hardfail", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L47", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testfallback", + "target": "src_data_models_warning" }, { - "source": "src_data_models_hardfail", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L47", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "src_data_models_warning" }, { - "source": "src_data_models", - "target": "src_data_models_warning", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L64", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "src_data_models_warning" }, { - "source": "src_data_models_warning", - "target": "src_data_models_py_basemodel", - "relation": "inherits", + "relation": "references", "confidence": "EXTRACTED", "source_file": "src/data/models.py", - "source_location": "L64", + "source_location": "L127", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_models_scores_validate_ranges", + "target": "src_data_models_scores" }, { - "source": "src_data_models", - "target": "src_data_models_scores", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L81", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_data_models_scores" }, { - "source": "src_data_models_scores", - "target": "src_data_models_py_basemodel", - "relation": "inherits", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L81", + "source_file": "src/explain/explain_engine.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_build_user_prompt", + "target": "src_data_models_scores" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_explainengine", + "target": "src_data_models_scores" }, { - "source": "src_data_models_scores_validate_ranges", - "target": "model_validator", "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L88", + "source_file": "src/explain/explain_engine.py", + "source_location": "L566", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_call_llm", + "target": "src_data_models_scores" }, { - "source": "src_data_models_scores", - "target": "src_data_models_scores_validate_ranges", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L89", + "source_file": "src/explain/explain_engine.py", + "source_location": "L483", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_generate", + "target": "src_data_models_scores" }, { - "source": "src_data_models", - "target": "src_data_models_alternativepoi", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L97", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_lrucache", + "target": "src_data_models_scores" }, { - "source": "src_data_models_alternativepoi", - "target": "src_data_models_py_basemodel", - "relation": "inherits", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L97", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_data_models_scores" }, { - "source": "src_data_models", - "target": "src_data_models_poi", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L105", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_data_models_scores" }, { - "source": "src_data_models_poi", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L105", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_data_models_scores" }, { - "source": "src_data_models_poi_poi_id_not_empty", - "target": "field_validator", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L119", + "confidence_score": 1.0, + "source_file": "src/explain/pipeline.py", + "source_location": "L293", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_data_models_scores" }, { - "source": "src_data_models_poi", - "target": "src_data_models_poi_poi_id_not_empty", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L121", + "source_file": "src/scoring/reward_engine.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_reward_engine", + "target": "src_data_models_scores" }, { - "source": "src_data_models_poi_validate_lat", - "target": "field_validator", "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L126", - "weight": 1.0, - "context": "decorator", - "_origin": "ast" - }, - { - "source": "src_data_models_poi", - "target": "src_data_models_poi_validate_lat", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L128", + "source_file": "src/scoring/reward_engine.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_reward_engine_generate_rewards", + "target": "src_data_models_scores" }, { - "source": "src_data_models_poi_validate_lng", - "target": "field_validator", - "relation": "references", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L133", + "source_file": "src/validation/scoring.py", + "source_location": "L5", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_data_models_scores" }, { - "source": "src_data_models_poi", - "target": "src_data_models_poi_validate_lng", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L135", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/scoring.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_scoring_scorecalculator", + "target": "src_data_models_scores" }, { - "source": "src_data_models_poi_validate_hhmm", - "target": "field_validator", "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L140", + "source_file": "src/validation/scoring.py", + "source_location": "L24", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_compute", + "target": "src_data_models_scores" }, { - "source": "src_data_models_poi", - "target": "src_data_models_poi_validate_hhmm", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L142", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_data_models_scores" }, { - "source": "src_data_models_poi_validate_duration", - "target": "field_validator", "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L150", + "source_file": "tests/test_explain_engine.py", + "source_location": "L42", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_make_scores", + "target": "src_data_models_scores" }, { - "source": "src_data_models_poi", - "target": "src_data_models_poi_validate_duration", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L152", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "src_data_models_scores" }, { - "source": "src_data_models", - "target": "src_data_models_placeinput", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L158", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "src_data_models_scores" }, { - "source": "src_data_models_placeinput", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L158", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testcachekey", + "target": "src_data_models_scores" }, { - "source": "src_data_models_placeinput_validate_order", - "target": "field_validator", - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L163", - "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginegraphdefault", + "target": "src_data_models_scores" }, { - "source": "src_data_models_placeinput", - "target": "src_data_models_placeinput_validate_order", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L165", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "src_data_models_scores" }, { - "source": "src_data_models", - "target": "src_data_models_dayplan", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L173", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "src_data_models_scores" }, { - "source": "src_data_models_dayplan", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L173", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testfallback", + "target": "src_data_models_scores" }, { - "source": "src_data_models_dayplan_validate_place_count", - "target": "field_validator", - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L177", - "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "src_data_models_scores" }, { - "source": "src_data_models_dayplan", - "target": "src_data_models_dayplan_validate_place_count", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L179", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "src_data_models_scores" }, { - "source": "src_data_models_dayplan_validate_place_count", - "target": "src_data_models_placeinput", - "relation": "references", - "context": "generic_arg", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L179", + "source_file": "tests/test_reward_engine.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine", + "target": "src_data_models_scores" }, { - "source": "src_data_models_dayplan_auto_fill_visit_order", - "target": "model_validator", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L186", + "source_file": "tests/test_reward_engine.py", + "source_location": "L12", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_scores", + "target": "src_data_models_scores" }, { - "source": "src_data_models_dayplan", - "target": "src_data_models_dayplan_auto_fill_visit_order", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L187", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_reward_engine.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_reward_engine_testgeneraterewards", + "target": "src_data_models_scores" }, { - "source": "src_data_models", - "target": "src_data_models_itineraryplan", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L195", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_itineraryplan", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L195", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L15", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_restaurant_catalog_restaurantcatalog", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_itineraryplan_validate_days", - "target": "field_validator", "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L202", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L56", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog_restaurantcatalog_nearby", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_itineraryplan", - "target": "src_data_models_itineraryplan_validate_days", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L204", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_itineraryplan_validate_days", - "target": "src_data_models_dayplan", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L204", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_explainengine", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_itineraryplan_travel_days", - "target": "computed_field", "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L211", - "weight": 1.0, - "context": "decorator", - "_origin": "ast" - }, - { - "source": "src_data_models_itineraryplan", - "target": "src_data_models_itineraryplan_travel_days", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L212", + "source_file": "src/explain/explain_engine.py", + "source_location": "L472", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_build_alternatives", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_itineraryplan_plan_id", - "target": "computed_field", "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", + "source_file": "src/explain/explain_engine.py", "source_location": "L215", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_find_alternatives", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_itineraryplan", - "target": "src_data_models_itineraryplan_plan_id", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L216", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_lrucache", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models", - "target": "src_data_models_validationresult", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L225", + "source_file": "src/validation/alternatives.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_validationresult", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L225", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/alternatives.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_alternatives_alternativesfinder", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_validationresult_validate_score_range", - "target": "field_validator", "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L242", - "weight": 1.0, - "context": "decorator", - "_origin": "ast" - }, - { - "source": "src_data_models_validationresult", - "target": "src_data_models_validationresult_validate_score_range", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L244", + "source_file": "src/validation/alternatives.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_alternativesfinder_build_alternatives_map", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_validationresult_hard_fail_score_cap", - "target": "model_validator", "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L249", + "source_file": "src/validation/alternatives.py", + "source_location": "L60", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_alternativesfinder_find_alternatives", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_validationresult", - "target": "src_data_models_validationresult_hard_fail_score_cap", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L250", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models", - "target": "src_data_models_settings", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L256", + "source_file": "tests/test_explain_engine.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_make_graph_stub", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_settings", - "target": "basesettings", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L256", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_settings_fill_gov_api_keys", - "target": "model_validator", - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L268", - "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_settings", - "target": "src_data_models_settings_fill_gov_api_keys", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L269", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testcachekey", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models", - "target": "src_data_models_vrptwplace", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L283", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginegraphdefault", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_vrptwplace", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L283", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_vrptwplace_validate_hhmm", - "target": "field_validator", - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L292", - "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_vrptwplace", - "target": "src_data_models_vrptwplace_validate_hhmm", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L294", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testfallback", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_vrptwplace_validate_lat", - "target": "field_validator", - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L302", - "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_vrptwplace", - "target": "src_data_models_vrptwplace_validate_lat", - "relation": "method", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "src_data_models_alternativepoi" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L304", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_vrptwplace_validate_lng", - "target": "field_validator", - "relation": "references", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "src_data_models_alternativepoi" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "src_data_models_alternativepoi" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "src_data_models_alternativepoi" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L309", + "confidence_score": 1.0, + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L223", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", + "target": "src_data_models_alternativepoi" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", + "target": "src_data_models_alternativepoi" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", + "target": "src_data_models_alternativepoi" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "src_data_models_alternativepoi" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testtovrptwday", + "target": "src_data_models_alternativepoi" }, { - "source": "src_data_models_vrptwplace", - "target": "src_data_models_vrptwplace_validate_lng", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/data/models.py", - "source_location": "L311", + "source_location": "L159", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_poi", + "target": "src_data_models_poi_poi_id_not_empty" }, { - "source": "src_data_models_vrptwplace_validate_stay", - "target": "field_validator", - "relation": "references", + "relation": "method", "confidence": "EXTRACTED", "source_file": "src/data/models.py", - "source_location": "L316", + "source_location": "L190", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_poi", + "target": "src_data_models_poi_validate_duration" }, { - "source": "src_data_models_vrptwplace", - "target": "src_data_models_vrptwplace_validate_stay", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/data/models.py", - "source_location": "L318", + "source_location": "L180", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_poi", + "target": "src_data_models_poi_validate_hhmm" }, { - "source": "src_data_models_vrptwplace", - "target": "src_data_models_vrptwplace_open_minutes", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/data/models.py", - "source_location": "L324", + "source_location": "L166", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_poi", + "target": "src_data_models_poi_validate_lat" }, { - "source": "src_data_models_vrptwplace", - "target": "src_data_models_vrptwplace_close_minutes", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/data/models.py", - "source_location": "L329", + "source_location": "L173", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_poi", + "target": "src_data_models_poi_validate_lng" }, { - "source": "src_data_models", - "target": "src_data_models_vrptwday", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L334", + "source_file": "src/data/tour_api.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api", + "target": "src_data_models_poi" }, { - "source": "src_data_models_vrptwday", - "target": "src_data_models_py_basemodel", - "relation": "inherits", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/tour_api.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_tour_api_tourapiclient", + "target": "src_data_models_poi" + }, + { + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L334", + "source_file": "src/data/tour_api.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient_search_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_models_vrptwday_at_least_one", - "target": "field_validator", "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L337", + "source_file": "src/data/tour_api.py", + "source_location": "L133", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient_search_poi_sync", + "target": "src_data_models_poi" }, { - "source": "src_data_models_vrptwday", - "target": "src_data_models_vrptwday_at_least_one", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L339", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_data_models_poi" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_data_models_poi" }, { - "source": "src_data_models_vrptwday_at_least_one", - "target": "src_data_models_vrptwplace", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L339", + "source_file": "src/explain/pipeline.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_to_poi_with_category", + "target": "src_data_models_poi" }, { - "source": "src_data_models", - "target": "src_data_models_vrptwrequest", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L345", + "source_file": "src/explain/pipeline.py", + "source_location": "L55", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_to_vrptw_day", + "target": "src_data_models_poi" }, { - "source": "src_data_models_vrptwrequest", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L345", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_data_models_poi" }, { - "source": "src_data_models_vrptwrequest_at_least_one_day", - "target": "field_validator", "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L348", + "source_file": "src/explain/pipeline.py", + "source_location": "L375", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", + "target": "src_data_models_poi" }, { - "source": "src_data_models_vrptwrequest", - "target": "src_data_models_vrptwrequest_at_least_one_day", - "relation": "method", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L350", + "source_file": "src/explain/pipeline.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_run", + "target": "src_data_models_poi" }, { - "source": "src_data_models_vrptwrequest_at_least_one_day", - "target": "src_data_models_vrptwday", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L350", + "source_file": "src/explain/pipeline.py", + "source_location": "L251", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_data_models_poi" }, { - "source": "src_data_models", - "target": "src_data_models_deepdiveitem", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L356", + "source_file": "src/explain/repair.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_data_models_poi" }, { - "source": "src_data_models_deepdiveitem", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L356", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_deletionsuggestion", + "target": "src_data_models_poi" }, { - "source": "src_data_models", - "target": "src_data_models_explanationitem", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L363", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_reordersuggestion", + "target": "src_data_models_poi" }, { - "source": "src_data_models_explanationitem", - "target": "src_data_models_py_basemodel", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L363", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_repairengine", + "target": "src_data_models_poi" }, { - "source": "src_data_models", - "target": "src_data_models_dayroutecomparison", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L374", + "source_file": "src/explain/repair.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_repair", + "target": "src_data_models_poi" }, { - "source": "src_data_models_dayroutecomparison", - "target": "src_data_models_py_basemodel", - "relation": "inherits", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L374", + "source_file": "src/explain/repair.py", + "source_location": "L224", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_suggest_deletion", + "target": "src_data_models_poi" }, { - "source": "src_data_models", - "target": "src_data_models_vrptwresult", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L382", + "source_file": "src/explain/repair.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_try_reorder", + "target": "src_data_models_poi" }, { - "source": "src_data_models_vrptwresult", - "target": "src_data_models_py_basemodel", - "relation": "inherits", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L382", + "source_file": "src/explain/repair.py", + "source_location": "L172", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_try_time_tune", + "target": "src_data_models_poi" }, { - "source": "src_data_models_rationale_1", - "target": "src_data_models", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_repairresult", + "target": "src_data_models_poi" }, { - "source": "src_data_models_rationale_23", - "target": "src_data_models_kakaoplace", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L23", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_timetunesuggestion", + "target": "src_data_models_poi" }, { - "source": "src_data_models_rationale_35", - "target": "src_data_models_placeevidence", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L35", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_data_models_poi" }, { - "source": "src_data_models_rationale_174", - "target": "src_data_models_dayplan", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L174", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_data_models_poi" }, { - "source": "src_data_models_rationale_188", - "target": "src_data_models_dayplan_auto_fill_visit_order", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L188", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_build", + "target": "src_data_models_poi" }, { - "source": "src_data_models_rationale_270", - "target": "src_data_models_settings_fill_gov_api_keys", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L270", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L62", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_get_travel_min", + "target": "src_data_models_poi" }, { - "source": "src_data_models_rationale_364", - "target": "src_data_models_explanationitem", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/models.py", - "source_location": "L364", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L52", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_prepare", + "target": "src_data_models_poi" }, { - "source": "src_data_party_config", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/data/party_config.py", - "source_location": "L15", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_to_vrptw_place", + "target": "src_data_models_poi" }, { - "source": "src_data_party_config", - "target": "src_data_party_config_partyprofile", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/party_config.py", - "source_location": "L19", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine", + "target": "src_data_models_poi" }, { - "source": "src_data_party_config", - "target": "src_data_party_config_get_party_profile", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/party_config.py", - "source_location": "L36", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_bonus_engine_bonusengine", + "target": "src_data_models_poi" }, { - "source": "src_data_party_config_get_party_profile", - "target": "src_data_party_config_partyprofile", "relation": "references", - "context": "return_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/party_config.py", - "source_location": "L36", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_bonusengine_compute", + "target": "src_data_models_poi" }, { - "source": "src_data_party_config_rationale_1", - "target": "src_data_party_config", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/party_config.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_bonus_engine_bonusresult", + "target": "src_data_models_poi" }, { - "source": "src_data_party_config_rationale_37", - "target": "src_data_party_config_get_party_profile", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/data/party_config.py", - "source_location": "L37", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L131", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_nearest_km", + "target": "src_data_models_poi" }, { - "source": "src_data_region_config", - "target": "dataclasses", - "relation": "imports_from", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_bonus_engine_placecoord", + "target": "src_data_models_poi" + }, + { + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/region_config.py", - "source_location": "L13", + "source_file": "src/validation/alternatives.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives", + "target": "src_data_models_poi" }, { - "source": "src_data_region_config", - "target": "src_data_region_config_regionthresholds", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/region_config.py", - "source_location": "L17", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/alternatives.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_alternatives_alternativesfinder", + "target": "src_data_models_poi" }, { - "source": "src_data_region_config", - "target": "src_data_region_config_get_thresholds", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/region_config.py", - "source_location": "L94", + "source_file": "src/validation/alternatives.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_alternativesfinder_build_alternatives_map", + "target": "src_data_models_poi" }, { - "source": "src_data_region_config_get_thresholds", - "target": "src_data_region_config_regionthresholds", "relation": "references", - "context": "return_type", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/data/region_config.py", - "source_location": "L94", + "source_file": "src/validation/alternatives.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_alternativesfinder_find_alternatives", + "target": "src_data_models_poi" }, { - "source": "src_data_region_config_rationale_1", - "target": "src_data_region_config", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/region_config.py", - "source_location": "L1", + "source_file": "src/validation/alternatives.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_alternativesfinder_init", + "target": "src_data_models_poi" }, { - "source": "src_data_region_config_rationale_18", - "target": "src_data_region_config_regionthresholds", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/region_config.py", - "source_location": "L18", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_data_region_config_rationale_95", - "target": "src_data_region_config_get_thresholds", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/region_config.py", - "source_location": "L95", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_data_restaurant_catalog", - "target": "csv", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L11", + "source_file": "src/validation/hard_fail.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog", - "target": "pathlib", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L12", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/hard_fail.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_hard_fail_hardfaildetector", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L14", + "source_file": "src/validation/hard_fail.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_check_operating_hours", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog", - "target": "src_utils_geo", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L15", + "source_file": "src/validation/hard_fail.py", + "source_location": "L189", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog", - "target": "src_data_restaurant_catalog_normalize", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L20", + "source_file": "src/validation/hard_fail.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "contains", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L24", + "source_file": "src/validation/hard_fail.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_detect", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog", - "target": "src_data_restaurant_catalog_restaurantcatalog_init", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L27", + "source_file": "src/validation/scoring.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog", - "target": "src_data_restaurant_catalog_restaurantcatalog_from_csv", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L31", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/scoring.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_scoring_scorecalculator", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog_from_csv", - "target": "src_data_restaurant_catalog_py_path", "relation": "references", - "context": "parameter_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L31", + "source_file": "src/validation/scoring.py", + "source_location": "L168", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_calc_area_intensity", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog_from_csv", - "target": "src_data_restaurant_catalog_restaurantcatalog", "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L31", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_data_restaurant_catalog_restaurantcatalog", - "target": "src_data_restaurant_catalog_restaurantcatalog_from_default", - "relation": "method", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L50", + "source_file": "src/validation/scoring.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_calc_efficiency", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog_from_default", - "target": "src_data_restaurant_catalog_restaurantcatalog", "relation": "references", - "context": "return_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L50", + "source_file": "src/validation/scoring.py", + "source_location": "L80", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_calc_feasibility", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog", - "target": "src_data_restaurant_catalog_restaurantcatalog_nearby", - "relation": "method", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L53", + "source_file": "src/validation/scoring.py", + "source_location": "L133", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_calc_flow", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog_nearby", - "target": "src_data_models_alternativepoi", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L53", + "source_file": "src/validation/scoring.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_calc_purpose_fit", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog_from_default", - "target": "src_data_restaurant_catalog_restaurantcatalog_from_csv", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L51", + "source_file": "src/validation/scoring.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_compute", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog_from_default", - "target": "src_data_restaurant_catalog_py_path", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L51", + "source_file": "src/validation/warning.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog_nearby", - "target": "src_data_restaurant_catalog_normalize", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L62", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/warning.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_warning_warningdetector", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog_nearby", - "target": "src_data_models_alternativepoi", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L72", + "source_file": "src/validation/warning.py", + "source_location": "L256", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_area_revisit", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_rationale_1", - "target": "src_data_restaurant_catalog", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L1", + "source_file": "src/validation/warning.py", + "source_location": "L186", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_rationale_25", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L25", + "source_file": "src/validation/warning.py", + "source_location": "L75", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_dense_schedule", + "target": "src_data_models_poi" }, { - "source": "src_data_restaurant_catalog_rationale_61", - "target": "src_data_restaurant_catalog_restaurantcatalog_nearby", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L61", + "source_file": "src/validation/warning.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_inefficient_route", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L14", + "source_file": "src/validation/warning.py", + "source_location": "L130", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_physical_strain", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client", - "target": "datetime", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L15", + "source_file": "src/validation/warning.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_purpose_mismatch", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L16", + "source_file": "src/validation/warning.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_detect", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client", - "target": "httpx", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L18", + "source_file": "tests/test_alternatives.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client", - "target": "src_data_seoul_citydata_client_forecastslot", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L62", + "source_file": "tests/test_alternatives.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client", - "target": "src_data_seoul_citydata_client_seoulrealtimecongestion", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L71", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_alternatives.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_alternatives_testbuildalternativesmap", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client", - "target": "src_data_seoul_citydata_client_seoulcitydataclient", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L83", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_alternatives.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_alternatives_testfindalternatives", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_init", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L91", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_url", - "relation": "method", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L101", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_make_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_parse_forecast", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L104", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testaccessibilitybonus", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_parse_forecast", - "target": "src_data_seoul_citydata_client_forecastslot", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L104", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testbonusresultfields", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_resolve_name", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L119", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testfromdataset", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_get", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L127", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testpetfriendlybonus", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_get", - "target": "src_data_seoul_citydata_client_seoulrealtimecongestion", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L127", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testtotalbonuscap", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_get_at", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L168", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testwellnessbonus", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_get_at", - "target": "src_data_seoul_citydata_client_forecastslot", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L168", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_parse_forecast", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_get", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L107", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_parse_forecast", - "target": "src_data_seoul_citydata_client_forecastslot", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L109", + "source_file": "tests/test_geo.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_get", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_resolve_name", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L137", + "source_file": "tests/test_geo.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_make_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_get", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_url", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L139", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_geo.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_geo_testbuilddistcache", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_get", - "target": "src_data_seoul_citydata_client_seoulrealtimecongestion", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L156", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_geo.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_geo_testgettravelmin", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_get", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_parse_forecast", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L164", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_geo.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_geo_testhaversinekm", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_get_at", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_get", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L178", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_geo.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_geo_testnnheuristickm", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_get_at", - "target": "src_data_seoul_citydata_client_forecastslot", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L191", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_rationale_1", - "target": "src_data_seoul_citydata_client", - "relation": "rationale_for", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L1", + "source_file": "tests/test_hard_fail.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_make_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_seoul_citydata_client_rationale_84", - "target": "src_data_seoul_citydata_client_seoulcitydataclient", - "relation": "rationale_for", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L84", + "source_file": "tests/test_hard_fail.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_data_seoul_citydata_client_rationale_128", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_get", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L128", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_data_seoul_citydata_client_rationale_169", - "target": "src_data_seoul_citydata_client_seoulcitydataclient_get_at", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L169", - "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_open_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L13", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testdayindex", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy", - "target": "typing", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L14", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testhelpers", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L83", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testnormalplan", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy_userpreferences", - "target": "src_data_theme_taxonomy_userpreferences_post_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L88", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testoperatinghours", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy_userpreferences", - "target": "src_data_theme_taxonomy_userpreferences_all_themes", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L105", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testscheduleinfeasible", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy", - "target": "src_data_theme_taxonomy_matches_place_type", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L111", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testtraveltimeimpossible", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy", - "target": "src_data_theme_taxonomy_get_place_types_for", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L140", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy_get_place_types_for", - "target": "src_data_theme_taxonomy_matches_place_type", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L147", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_make_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy_rationale_1", - "target": "src_data_theme_taxonomy", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L1", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_sample_plan", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy_rationale_84", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L84", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L77", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_sample_pois", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy_rationale_106", - "target": "src_data_theme_taxonomy_userpreferences_all_themes", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L106", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy_rationale_116", - "target": "src_data_theme_taxonomy_matches_place_type", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L116", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "src_data_models_poi" }, { - "source": "src_data_theme_taxonomy_rationale_144", - "target": "src_data_theme_taxonomy_get_place_types_for", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/theme_taxonomy.py", - "source_location": "L144", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api", - "target": "re", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L229", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L5", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L202", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_hard_fail_day_index_matches_offending_day", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api", - "target": "httpx", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L7", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L174", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_open_hours_conflict_caps_score", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", "source_location": "L9", - "weight": 1.0, - "_origin": "ast" + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api", - "target": "src_data_tour_api_parse_usetime", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L18", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api", - "target": "src_data_tour_api_extract_items", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L27", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L426", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api", - "target": "src_data_tour_api_tourapiclient", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L38", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient", - "target": "src_data_tour_api_tourapiclient_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L48", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testtovrptwday", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient", - "target": "src_data_tour_api_tourapiclient_from_settings", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L62", + "source_file": "tests/test_repair.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient_from_settings", - "target": "src_data_models_settings", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L62", + "source_file": "tests/test_repair.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient", - "target": "src_data_tour_api_tourapiclient_search_poi", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L70", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient_search_poi", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L70", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testrepairenginenoop", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient", - "target": "src_data_tour_api_tourapiclient_get_operating_hours", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L123", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testresultmodel", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient", - "target": "src_data_tour_api_tourapiclient_clear_cache", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L157", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient_from_settings", - "target": "src_data_models_settings", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L65", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient_search_poi", - "target": "src_data_tour_api_extract_items", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L95", + "source_file": "tests/test_route_matrix.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient_search_poi", - "target": "src_data_tour_api_tourapiclient_get_operating_hours", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L108", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_route_matrix_fakerouteprovider", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient_search_poi", - "target": "src_data_models_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L109", + "source_file": "tests/test_route_matrix.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient_get_operating_hours", - "target": "src_data_tour_api_extract_items", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L146", + "source_file": "tests/test_scoring.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_tourapiclient_get_operating_hours", - "target": "src_data_tour_api_parse_usetime", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L150", + "source_file": "tests/test_scoring.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_make_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_rationale_1", - "target": "src_data_tour_api", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L1", + "source_file": "tests/test_scoring.py", + "source_location": "L78", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_sample_pois", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_rationale_19", - "target": "src_data_tour_api_parse_usetime", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L19", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcompute", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_rationale_28", - "target": "src_data_tour_api_extract_items", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L28", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcosinedistance", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_rationale_39", - "target": "src_data_tour_api_tourapiclient", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L39", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testefficiency", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_rationale_63", - "target": "src_data_tour_api_tourapiclient_from_settings", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L63", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testfeasibility", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_rationale_76", - "target": "src_data_tour_api_tourapiclient_search_poi", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L76", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testpurposefit", + "target": "src_data_models_poi" }, { - "source": "src_data_tour_api_rationale_128", - "target": "src_data_tour_api_tourapiclient_get_operating_hours", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L128", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testweights", + "target": "src_data_models_poi" }, { - "source": "src_data_wellness_api", - "target": "dataclasses", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L4", + "source_file": "tests/test_tour_api_runtime.py", + "source_location": "L3", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_tour_api_runtime", + "target": "src_data_models_poi" }, { - "source": "src_data_wellness_api", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L5", + "source_file": "tests/test_tour_api_runtime.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_tour_api_runtime_test_search_poi_sync_adapts_async_client", + "target": "src_data_models_poi" }, { - "source": "src_data_wellness_api", - "target": "httpx", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", + "source_file": "tests/test_warning.py", "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "src_data_models_poi" }, { - "source": "src_data_wellness_api", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L9", + "source_file": "tests/test_warning.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_make_poi", + "target": "src_data_models_poi" }, { - "source": "src_data_wellness_api", - "target": "src_data_wellness_api_wellnessplace", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L16", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testarearevisit", + "target": "src_data_models_poi" }, { - "source": "src_data_wellness_api", - "target": "src_data_wellness_api_extract_items", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L27", - "weight": 1.0, - "_origin": "ast" - }, + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testdayindex", + "target": "src_data_models_poi" + }, { - "source": "src_data_wellness_api", - "target": "src_data_wellness_api_safe_float", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testdenseschedule", + "target": "src_data_models_poi" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testphysicalstrain", + "target": "src_data_models_poi" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testpurposemismatch", + "target": "src_data_models_poi" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testwarningfields", + "target": "src_data_models_poi" + }, + { + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L38", + "source_file": "src/data/models.py", + "source_location": "L216", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_dayplan_validate_place_count", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_safe_float", - "target": "src_data_wellness_api_py_any", "relation": "references", - "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L38", + "source_file": "src/data/models.py", + "source_location": "L242", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan_validate_date", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api", - "target": "src_data_wellness_api_wellnessapiclient", - "relation": "contains", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L45", + "source_file": "src/data/models.py", + "source_location": "L252", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan_validate_days", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient", - "target": "src_data_wellness_api_wellnessapiclient_init", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L51", + "source_file": "src/data/models.py", + "source_location": "L247", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan_validate_start_time", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient", - "target": "src_data_wellness_api_wellnessapiclient_from_settings", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L58", + "source_file": "src/data/models.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_placeinput_validate_order", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient_from_settings", - "target": "src_data_models_settings", "relation": "references", - "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L58", + "source_file": "src/data/models.py", + "source_location": "L157", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_poi_poi_id_not_empty", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient", - "target": "src_data_wellness_api_wellnessapiclient_fetch_page", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L66", + "source_file": "src/data/models.py", + "source_location": "L188", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_poi_validate_duration", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient_fetch_page", - "target": "src_data_wellness_api_wellnessplace", "relation": "references", - "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L66", + "source_file": "src/data/models.py", + "source_location": "L178", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_poi_validate_hhmm", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient", - "target": "src_data_wellness_api_wellnessapiclient_fetch_all", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L117", + "source_file": "src/data/models.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_poi_validate_lat", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient_fetch_all", - "target": "src_data_wellness_api_wellnessplace", "relation": "references", - "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L117", + "source_file": "src/data/models.py", + "source_location": "L171", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_poi_validate_lng", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient_from_settings", - "target": "src_data_models_settings", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L60", + "source_file": "src/data/models.py", + "source_location": "L292", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_validationresult_validate_score_range", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient_fetch_page", - "target": "src_data_wellness_api_extract_items", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L94", + "source_file": "src/data/models.py", + "source_location": "L386", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwday_at_least_one", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient_fetch_page", - "target": "src_data_wellness_api_safe_float", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L99", + "source_file": "src/data/models.py", + "source_location": "L346", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace_validate_hhmm", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient_fetch_page", - "target": "src_data_wellness_api_wellnessplace", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L105", + "source_file": "src/data/models.py", + "source_location": "L351", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace_validate_lat", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_wellnessapiclient_fetch_all", - "target": "src_data_wellness_api_wellnessapiclient_fetch_page", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L122", + "source_file": "src/data/models.py", + "source_location": "L358", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace_validate_lng", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_rationale_1", - "target": "src_data_wellness_api", - "relation": "rationale_for", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L1", + "source_file": "src/data/models.py", + "source_location": "L365", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace_validate_stay", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_rationale_46", - "target": "src_data_wellness_api_wellnessapiclient", - "relation": "rationale_for", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L46", + "source_file": "src/data/models.py", + "source_location": "L403", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwrequest_at_least_one_day", + "target": "src_data_models_py_field_validator" }, { - "source": "src_data_wellness_api_rationale_118", - "target": "src_data_wellness_api_wellnessapiclient_fetch_all", - "relation": "rationale_for", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L118", + "source_file": "src/data/models.py", + "source_location": "L398", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwrequest_validate_start_time", + "target": "src_data_models_py_field_validator" }, { - "source": "src_explain_explain_engine", - "target": "hashlib", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L15", + "source_file": "src/data/models.py", + "source_location": "L218", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_dayplan_validate_place_count", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L16", + "source_file": "src/data/models.py", + "source_location": "L203", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_placeinput", + "target": "src_data_models_placeinput_validate_order" }, { - "source": "src_explain_explain_engine", - "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L17", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "collections", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L18", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail_plan", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "typing", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L19", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "src_data_graph_retriever", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L21", + "source_file": "tests/test_explain_engine.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_make_plan", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "anthropic", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L32", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "src_explain_explain_engine_lrucache", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L44", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testcachekey", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_explain_explain_engine_lrucache_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L47", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginegraphdefault", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_explain_explain_engine_lrucache_contains", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L51", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_explain_explain_engine_lrucache_getitem", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L54", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_explain_explain_engine_lrucache_setitem", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L58", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testfallback", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_explain_explain_engine_lrucache_clear", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L65", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "src_explain_explain_engine_cache_key", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L171", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_cache_key", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L171", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_cache_key", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L171", + "source_file": "tests/test_hard_fail.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_make_plan", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "src_explain_explain_engine_graph_context", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L187", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testdayindex", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_graph_context", - "target": "src_data_graph_retriever_graphretriever", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L187", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testhelpers", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "src_explain_explain_engine_find_alternatives", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L205", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testnormalplan", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_find_alternatives", - "target": "src_data_graph_retriever_graphretriever", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L205", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testoperatinghours", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_find_alternatives", - "target": "src_data_models_alternativepoi", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L205", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testscheduleinfeasible", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testtraveltimeimpossible", + "target": "src_data_models_placeinput" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L215", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_build_user_prompt", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L215", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_make_multi_day_plan", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_build_user_prompt", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L215", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_make_plan", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_build_user_prompt", - "target": "src_data_models_scores", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L215", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_explain_explain_engine_build_user_prompt", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L215", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_build_user_prompt", - "target": "src_data_graph_retriever_graphretriever", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L215", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "src_explain_explain_engine_parse_llm_response", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L331", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_parse_llm_response", - "target": "src_data_models_explanationitem", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L331", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "src_explain_explain_engine_fallback", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L353", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_fallback", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L353", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_fallback", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L353", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testtovrptwday", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_fallback", - "target": "src_data_models_explanationitem", - "relation": "references", - "context": "generic_arg", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L353", + "source_file": "tests/test_repair.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine", - "target": "src_explain_explain_engine_explainengine", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L416", + "source_file": "tests/test_repair.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_plan", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_explain_explain_engine_explainengine_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L419", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_init", - "target": "src_explain_explain_engine_py_any", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L419", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testrepairenginenoop", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_init", - "target": "src_data_graph_retriever_graphretriever", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L419", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testresultmodel", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_explain_explain_engine_explainengine_is_available", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L438", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_explain_explain_engine_explainengine_build_alternatives", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L441", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_build_alternatives", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L441", + "source_file": "tests/test_scoring.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_build_alternatives", - "target": "src_data_models_alternativepoi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L441", + "source_file": "tests/test_scoring.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_make_plan", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_explain_explain_engine_explainengine_generate", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L452", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcompute", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_generate", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L452", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcosinedistance", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_generate", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L452", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testefficiency", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_generate", - "target": "src_data_models_scores", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L452", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testfeasibility", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_generate", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L452", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testpurposefit", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_generate", - "target": "src_data_models_explanationitem", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L452", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testweights", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_explain_explain_engine_explainengine_call_llm", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L526", + "source_file": "tests/test_warning.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_call_llm", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L526", + "source_file": "tests/test_warning.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_make_plan", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_call_llm", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L526", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testarearevisit", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_call_llm", - "target": "src_data_models_scores", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L526", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testdayindex", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_call_llm", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L526", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testdenseschedule", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_explainengine_call_llm", - "target": "src_data_models_explanationitem", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L526", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testphysicalstrain", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_build_user_prompt", - "target": "src_explain_explain_engine_graph_context", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L236", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testpurposemismatch", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_parse_llm_response", - "target": "src_data_models_explanationitem", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L341", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testwarningfields", + "target": "src_data_models_placeinput" }, { - "source": "src_explain_explain_engine_fallback", - "target": "src_data_models_explanationitem", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L363", + "source_file": "src/data/models.py", + "source_location": "L218", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_dayplan", + "target": "src_data_models_dayplan_validate_place_count" }, { - "source": "src_explain_explain_engine_explainengine_build_alternatives", - "target": "src_explain_explain_engine_find_alternatives", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L447", + "source_file": "src/data/models.py", + "source_location": "L226", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_models_dayplan_auto_fill_visit_order", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_explainengine_generate", - "target": "src_data_models_explanationitem", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L498", + "source_file": "src/data/models.py", + "source_location": "L254", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan_validate_days", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_explainengine_generate", - "target": "src_explain_explain_engine_explainengine_is_available", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L508", + "source_file": "src/data/models.py", + "source_location": "L212", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_rationale_212", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_explainengine_generate", - "target": "src_explain_explain_engine_fallback", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L509", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_explainengine_generate", - "target": "src_explain_explain_engine_cache_key", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L512", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail_plan", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_explainengine_generate", - "target": "src_explain_explain_engine_explainengine_call_llm", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L517", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_explainengine_call_llm", - "target": "src_explain_explain_engine_build_user_prompt", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L536", + "source_file": "tests/test_explain_engine.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_make_plan", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_explainengine_call_llm", - "target": "src_explain_explain_engine_parse_llm_response", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L555", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_rationale_1", - "target": "src_explain_explain_engine", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_rationale_45", - "target": "src_explain_explain_engine_lrucache", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L45", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testcachekey", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_rationale_188", - "target": "src_explain_explain_engine_graph_context", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L188", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginegraphdefault", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_rationale_206", - "target": "src_explain_explain_engine_find_alternatives", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L206", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_rationale_417", - "target": "src_explain_explain_engine_explainengine", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L417", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_explain_engine_rationale_442", - "target": "src_explain_explain_engine_explainengine_build_alternatives", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L442", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testfallback", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "dataclasses", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L23", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L24", + "source_file": "tests/test_hard_fail.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_make_plan", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testdayindex", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_data_theme_taxonomy", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L36", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testhelpers", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_explain_explain_engine", - "relation": "imports_from", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testnormalplan", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testoperatinghours", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testscheduleinfeasible", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testtraveltimeimpossible", + "target": "src_data_models_dayplan" + }, + { + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L37", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_explain_repair", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L38", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_make_multi_day_plan", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_bonus_engine", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L39", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_make_plan", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_cluster_dispersion", - "relation": "imports_from", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testtovrptwday", + "target": "src_data_models_dayplan" + }, + { + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L40", + "source_file": "tests/test_repair.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_reward_engine", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", + "source_file": "tests/test_repair.py", "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_plan", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_theme_alignment", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L42", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_travel_ratio", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L43", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testrepairenginenoop", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_validation_hard_fail", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L44", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testresultmodel", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_validation_scoring", - "relation": "imports_from", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "src_data_models_dayplan" + }, + { + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L45", + "source_file": "tests/test_scoring.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_validation_vrptw_engine", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L46", + "source_file": "tests/test_scoring.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_make_plan", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_validation_warning", - "relation": "imports_from", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcompute", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcosinedistance", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testefficiency", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testfeasibility", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testpurposefit", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testweights", + "target": "src_data_models_dayplan" + }, + { + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L47", + "source_file": "tests/test_warning.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_explain_pipeline_to_vrptw_day", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L53", + "source_file": "tests/test_warning.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_make_plan", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline_to_vrptw_day", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L53", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testarearevisit", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline_to_vrptw_day", - "target": "src_data_models_vrptwday", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L53", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testdayindex", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline", - "target": "src_explain_pipeline_to_poi_with_category", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L70", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testdenseschedule", + "target": "src_data_models_dayplan" }, { - "source": "src_explain_pipeline_to_poi_with_category", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testphysicalstrain", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testpurposemismatch", + "target": "src_data_models_dayplan" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testwarningfields", + "target": "src_data_models_dayplan" + }, + { + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L70", + "source_file": "src/data/models.py", + "source_location": "L227", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_rationale_227", + "target": "src_data_models_dayplan_auto_fill_visit_order" }, { - "source": "src_explain_pipeline_to_poi_with_category", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "references", - "context": "generic_arg", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L70", + "source_file": "src/data/models.py", + "source_location": "L266", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan", + "target": "src_data_models_itineraryplan_plan_id" }, { - "source": "src_explain_pipeline", - "target": "src_explain_pipeline_scorebundle", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L83", + "source_file": "src/data/models.py", + "source_location": "L262", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan", + "target": "src_data_models_itineraryplan_travel_days" }, { - "source": "src_explain_pipeline", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L100", + "source_file": "src/data/models.py", + "source_location": "L244", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan", + "target": "src_data_models_itineraryplan_validate_date" }, { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_explain_pipeline_validatorpipeline_init", "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L103", + "source_file": "src/data/models.py", + "source_location": "L254", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan", + "target": "src_data_models_itineraryplan_validate_days" }, { - "source": "src_explain_pipeline_validatorpipeline_init", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "references", - "context": "parameter_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L103", + "source_file": "src/data/models.py", + "source_location": "L249", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_itineraryplan", + "target": "src_data_models_itineraryplan_validate_start_time" }, { - "source": "src_explain_pipeline_validatorpipeline_init", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "references", - "context": "parameter_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L103", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_init", - "target": "src_explain_explain_engine_explainengine", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L103", + "source_file": "src/explain/explain_engine.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_build_user_prompt", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_explain_pipeline_validatorpipeline_run", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L119", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_explainengine", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_run", - "target": "src_data_models_itineraryplan", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L119", + "source_file": "src/explain/explain_engine.py", + "source_location": "L566", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_call_llm", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_run", - "target": "src_data_models_poi", "relation": "references", - "context": "generic_arg", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L119", + "source_file": "src/explain/explain_engine.py", + "source_location": "L483", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_generate", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_run", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "references", - "context": "parameter_type", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_lrucache", + "target": "src_data_models_itineraryplan" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", "source_file": "src/explain/pipeline.py", - "source_location": "L119", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_run", - "target": "src_data_models_validationresult", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", + "relation": "uses", + "confidence": "INFERRED", "source_file": "src/explain/pipeline.py", - "source_location": "L119", - "weight": 1.0, - "_origin": "ast" + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_explain_pipeline_validatorpipeline_score", - "relation": "method", - "confidence": "EXTRACTED", + "relation": "uses", + "confidence": "INFERRED", "source_file": "src/explain/pipeline.py", - "source_location": "L235", - "weight": 1.0, - "_origin": "ast" + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_data_models_itineraryplan", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/explain/pipeline.py", - "source_location": "L235", + "source_location": "L375", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_data_models_poi", "relation": "references", - "context": "generic_arg", + "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/explain/pipeline.py", - "source_location": "L235", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_run", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_data_theme_taxonomy_userpreferences", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/explain/pipeline.py", - "source_location": "L235", + "source_location": "L251", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_explain_pipeline_scorebundle", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L235", + "source_file": "src/explain/repair.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L349", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_deletionsuggestion", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L349", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_reordersuggestion", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L349", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_repairengine", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", - "target": "src_explain_repair_repairresult", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L349", + "source_file": "src/explain/repair.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_repair", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_to_vrptw_day", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L67", + "source_file": "src/explain/repair.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_try_reorder", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_to_poi_with_category", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L72", + "source_file": "src/explain/repair.py", + "source_location": "L172", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_try_time_tune", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_init", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L116", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_repairresult", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_init", - "target": "src_explain_explain_engine_explainengine", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L117", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_timetunesuggestion", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_run", - "target": "src_explain_pipeline_validatorpipeline_score", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L139", + "source_file": "src/validation/hard_fail.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_run", - "target": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L198", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/hard_fail.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_hard_fail_hardfaildetector", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_run", - "target": "src_data_models_validationresult", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L217", + "source_file": "src/validation/hard_fail.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_detect", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_explain_pipeline_to_vrptw_day", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L280", + "source_file": "src/validation/scoring.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_explain_pipeline_to_poi_with_category", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L314", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/scoring.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_scoring_scorecalculator", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_explain_pipeline_scorebundle", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L333", + "source_file": "src/validation/scoring.py", + "source_location": "L80", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_calc_feasibility", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", - "target": "src_explain_pipeline_validatorpipeline_score", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L365", + "source_file": "src/validation/scoring.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_calc_purpose_fit", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", - "target": "src_explain_repair_repairresult", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L411", + "source_file": "src/validation/scoring.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_compute", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_rationale_1", - "target": "src_explain_pipeline", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L1", + "source_file": "src/validation/warning.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_rationale_54", - "target": "src_explain_pipeline_to_vrptw_day", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L54", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/warning.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_warning_warningdetector", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_rationale_84", - "target": "src_explain_pipeline_scorebundle", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L84", + "source_file": "src/validation/warning.py", + "source_location": "L186", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_rationale_101", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L101", + "source_file": "src/validation/warning.py", + "source_location": "L75", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_dense_schedule", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_rationale_128", - "target": "src_explain_pipeline_validatorpipeline_run", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L128", + "source_file": "src/validation/warning.py", + "source_location": "L130", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_physical_strain", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_rationale_244", - "target": "src_explain_pipeline_validatorpipeline_score", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L244", + "source_file": "src/validation/warning.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_purpose_mismatch", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_pipeline_rationale_357", - "target": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L357", + "source_file": "src/validation/warning.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_detect", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "base64", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L13", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L14", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail_plan", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L15", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "re", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L16", + "source_file": "tests/test_explain_engine.py", + "source_location": "L33", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_make_plan", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "typing", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L17", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "src_api_schemas", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L19", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "anthropic", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L22", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testcachekey", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "src_explain_plan_extractor_planextractionerror", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L60", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginegraphdefault", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractionerror", - "target": "src_explain_plan_extractor_py_exception", - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L60", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "src_explain_plan_extractor_strip_fence", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L64", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "src_explain_plan_extractor_parse_response", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L68", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testfallback", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_parse_response", - "target": "src_api_schemas_parsedplanresponse", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L68", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "src_explain_plan_extractor_fallback_text_parse", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L80", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_fallback_text_parse", - "target": "src_api_schemas_parsedplanresponse", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L80", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "src_explain_plan_extractor_planextractor", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L103", + "source_file": "tests/test_hard_fail.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_make_plan", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor", - "target": "src_explain_plan_extractor_planextractor_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L106", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testdayindex", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_init", - "target": "src_explain_plan_extractor_py_any", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L106", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testhelpers", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor", - "target": "src_explain_plan_extractor_planextractor_from_env", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L123", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testnormalplan", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_from_env", - "target": "src_explain_plan_extractor_planextractor", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L123", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testoperatinghours", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor", - "target": "src_explain_plan_extractor_planextractor_is_available", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L126", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testscheduleinfeasible", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor", - "target": "src_explain_plan_extractor_planextractor_extract_from_text", - "relation": "method", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testtraveltimeimpossible", + "target": "src_data_models_itineraryplan" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L129", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_extract_from_text", - "target": "src_api_schemas_parsedplanresponse", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L129", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_make_multi_day_plan", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor", - "target": "src_explain_plan_extractor_planextractor_extract_from_document", - "relation": "method", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L138", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_make_plan", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_extract_from_document", - "target": "src_api_schemas_parsedplanresponse", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L138", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_sample_plan", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor", - "target": "src_explain_plan_extractor_planextractor_call", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L158", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_call", - "target": "src_api_schemas_parsedplanresponse", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L158", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor", - "target": "src_explain_plan_extractor_demo", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L177", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_parse_response", - "target": "src_explain_plan_extractor_strip_fence", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L69", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_parse_response", - "target": "src_explain_plan_extractor_planextractionerror", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L73", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_fallback_text_parse", - "target": "src_api_schemas_parsedplanresponse", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L98", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_extract_from_text", - "target": "src_explain_plan_extractor_planextractionerror", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L133", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testtovrptwday", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_extract_from_text", - "target": "src_explain_plan_extractor_planextractor_is_available", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L134", + "source_file": "tests/test_repair.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_extract_from_text", - "target": "src_explain_plan_extractor_fallback_text_parse", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L135", + "source_file": "tests/test_repair.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_plan", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_extract_from_text", - "target": "src_explain_plan_extractor_planextractor_call", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L136", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_extract_from_document", - "target": "src_explain_plan_extractor_planextractionerror", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L141", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testrepairenginenoop", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_extract_from_document", - "target": "src_explain_plan_extractor_planextractor_is_available", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L142", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testresultmodel", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_extract_from_document", - "target": "src_explain_plan_extractor_planextractor_call", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L156", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_call", - "target": "src_explain_plan_extractor_planextractionerror", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L172", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L5", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_planextractor_call", - "target": "src_explain_plan_extractor_parse_response", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L174", + "source_file": "tests/test_scoring.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_demo", - "target": "src_explain_plan_extractor_parse_response", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L178", + "source_file": "tests/test_scoring.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_make_plan", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_demo", - "target": "src_explain_plan_extractor_fallback_text_parse", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L183", + "source_file": "tests/test_scoring.py", + "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_sample_plan", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_rationale_1", - "target": "src_explain_plan_extractor", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcompute", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_rationale_61", - "target": "src_explain_plan_extractor_planextractionerror", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L61", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcosinedistance", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_rationale_81", - "target": "src_explain_plan_extractor_fallback_text_parse", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L81", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testefficiency", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_rationale_104", - "target": "src_explain_plan_extractor_planextractor", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L104", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testfeasibility", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_rationale_130", - "target": "src_explain_plan_extractor_planextractor_extract_from_text", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L130", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testpurposefit", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_plan_extractor_rationale_139", - "target": "src_explain_plan_extractor_planextractor_extract_from_document", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L139", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testweights", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_repair", - "target": "dataclasses", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L13", + "source_file": "tests/test_warning.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_repair", - "target": "itertools", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L14", + "source_file": "tests/test_warning.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_make_plan", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_repair", - "target": "re", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L15", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testarearevisit", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_repair", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L16", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testdayindex", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_repair", - "target": "src_data_dwell_db", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L18", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testdenseschedule", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_repair", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testphysicalstrain", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_repair", - "target": "src_data_party_config", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L20", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testpurposemismatch", + "target": "src_data_models_itineraryplan" }, { - "source": "src_explain_repair", - "target": "src_data_restaurant_catalog", - "relation": "imports_from", - "context": "import", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testwarningfields", + "target": "src_data_models_itineraryplan" + }, + { + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L21", + "source_file": "src/data/models.py", + "source_location": "L294", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_validationresult", + "target": "src_data_models_validationresult_validate_score_range" }, { - "source": "src_explain_repair", - "target": "src_utils_geo", - "relation": "imports_from", - "context": "import", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L22", + "source_file": "src/data/models.py", + "source_location": "L300", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_models_validationresult_hard_fail_score_cap", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair", - "target": "src_validation_hard_fail", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L23", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair", - "target": "src_explain_repair_norm", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L30", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair", - "target": "src_explain_repair_min_dwell_for", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L34", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair", - "target": "src_explain_repair_reordersuggestion", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L44", + "source_file": "src/explain/pipeline.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_run", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair", - "target": "src_explain_repair_timetunesuggestion", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L53", + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair", - "target": "src_explain_repair_deletionsuggestion", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L63", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair", - "target": "src_explain_repair_repairresult", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L74", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair_repairresult", - "target": "src_explain_repair_repairresult_is_empty", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L80", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair_repairresult", - "target": "src_explain_repair_repairresult_total_estimated_gain", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L84", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair_repairresult", - "target": "src_explain_repair_repairresult_to_dict", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L95", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair", - "target": "src_explain_repair_repairengine", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L101", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair_repairengine", - "target": "src_explain_repair_repairengine_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L104", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testtovrptwday", + "target": "src_data_models_validationresult" }, { - "source": "src_explain_repair_repairengine_init", - "target": "src_data_restaurant_catalog_restaurantcatalog", "relation": "references", - "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L104", + "source_file": "src/data/models.py", + "source_location": "L323", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_models_settings_fill_gov_api_keys", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine", - "target": "src_explain_repair_repairengine_repair", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L108", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L117", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_repair", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L108", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L117", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_seoul_citydata_client_forecastslot", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_repair", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L108", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L117", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_seoul_citydata_client_seoulcitydataclient", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_repair", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L108", + "confidence_score": 1.0, + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_data_seoul_citydata_client_seoulcitydataclient_init", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_repair", - "target": "src_explain_repair_repairresult", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L108", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L117", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_seoul_citydata_client_seoulrealtimecongestion", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine", - "target": "src_explain_repair_repairengine_try_reorder", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L142", + "source_file": "src/data/tour_api.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_try_reorder", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L142", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/tour_api.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_tour_api_tourapiclient", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_try_reorder", - "target": "src_data_models_poi", "relation": "references", - "context": "generic_arg", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L142", + "source_file": "src/data/tour_api.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient_from_settings", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_try_reorder", - "target": "src_explain_repair_reordersuggestion", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L142", + "source_file": "src/data/wellness_api.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine", - "target": "src_explain_repair_repairengine_try_time_tune", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L171", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/wellness_api.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_wellness_api_wellnessapiclient", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_try_time_tune", - "target": "src_data_models_itineraryplan", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L171", + "source_file": "src/data/wellness_api.py", + "source_location": "L59", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_wellnessapiclient_from_settings", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_try_time_tune", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L171", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/data/wellness_api.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_data_wellness_api_wellnessplace", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_try_time_tune", - "target": "src_explain_repair_timetunesuggestion", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L171", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine", - "target": "src_explain_repair_repairengine_suggest_deletion", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L224", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_explainengine", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_suggest_deletion", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L224", + "confidence_score": 1.0, + "source_file": "src/explain/explain_engine.py", + "source_location": "L459", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_explain_engine_explainengine_init", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_suggest_deletion", - "target": "src_explain_repair_deletionsuggestion", - "relation": "references", - "context": "return_type", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_lrucache", + "target": "src_data_models_settings" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L224", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_data_models_settings" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_plan_extractor_planextractionerror", + "target": "src_data_models_settings" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L20", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_plan_extractor_planextractor", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_min_dwell_for", - "target": "src_explain_repair_norm", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L36", + "confidence_score": 1.0, + "source_file": "src/explain/plan_extractor.py", + "source_location": "L121", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_plan_extractor_planextractor_init", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_repair", - "target": "src_explain_repair_repairresult", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L116", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_repair", - "target": "src_explain_repair_repairengine_try_reorder", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_data_models_settings" + }, + { + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L125", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_from_settings", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_repair", - "target": "src_explain_repair_repairengine_try_time_tune", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L131", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_repair", - "target": "src_explain_repair_repairengine_suggest_deletion", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_data_models_settings" + }, + { + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L136", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_from_settings", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_try_reorder", - "target": "src_explain_repair_reordersuggestion", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_congestion_engine_congestionlevel", + "target": "src_data_models_settings" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_congestion_engine_congestionresult", + "target": "src_data_models_settings" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L161", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_data_models_settings" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_poiwithcategory", + "target": "src_data_models_settings" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_themealignmentjudge", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_try_time_tune", - "target": "src_explain_repair_min_dwell_for", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L195", + "confidence_score": 1.0, + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L185", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_scoring_theme_alignment_themealignmentjudge_init", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_try_time_tune", - "target": "src_explain_repair_timetunesuggestion", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_themealignmentreport", + "target": "src_data_models_settings" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_themejudgment", + "target": "src_data_models_settings" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L214", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix", + "target": "src_data_models_settings" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L35", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_repairengine_suggest_deletion", - "target": "src_explain_repair_deletionsuggestion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L277", + "confidence_score": 1.0, + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L98", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_rationale_1", - "target": "src_explain_repair", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L1", + "source_file": "tests/test_settings.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_settings", + "target": "src_data_models_settings" }, { - "source": "src_explain_repair_rationale_35", - "target": "src_explain_repair_min_dwell_for", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L35", + "source_file": "src/data/models.py", + "source_location": "L324", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_rationale_324", + "target": "src_data_models_settings_fill_gov_api_keys" }, { - "source": "src_explain_repair_rationale_85", - "target": "src_explain_repair_repairresult_total_estimated_gain", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L85", + "source_file": "src/data/models.py", + "source_location": "L388", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwday_at_least_one", + "target": "src_data_models_vrptwplace" }, { - "source": "src_explain_repair_rationale_102", - "target": "src_explain_repair_repairengine", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L102", + "source_file": "src/data/models.py", + "source_location": "L378", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace", + "target": "src_data_models_vrptwplace_close_minutes" }, { - "source": "src_explain_repair_rationale_115", - "target": "src_explain_repair_repairengine_repair", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L115", + "source_file": "src/data/models.py", + "source_location": "L373", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace", + "target": "src_data_models_vrptwplace_open_minutes" }, { - "source": "src_explain_repair_rationale_149", - "target": "src_explain_repair_repairengine_try_reorder", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L149", + "source_file": "src/data/models.py", + "source_location": "L348", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace", + "target": "src_data_models_vrptwplace_validate_hhmm" }, { - "source": "src_explain_repair_rationale_178", - "target": "src_explain_repair_repairengine_try_time_tune", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L178", + "source_file": "src/data/models.py", + "source_location": "L353", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace", + "target": "src_data_models_vrptwplace_validate_lat" }, { - "source": "src_explain_repair_rationale_229", - "target": "src_explain_repair_repairengine_suggest_deletion", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L229", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_matrix_init", - "target": "src_matrix_redis_matrix", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/matrix/__init__.py", - "source_location": "L2", + "source_file": "src/data/models.py", + "source_location": "L360", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace", + "target": "src_data_models_vrptwplace_validate_lng" }, { - "source": "src_matrix_init_rationale_1", - "target": "src_matrix_init", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/matrix/__init__.py", - "source_location": "L1", + "source_file": "src/data/models.py", + "source_location": "L367", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwplace", + "target": "src_data_models_vrptwplace_validate_stay" }, { - "source": "src_matrix_redis_matrix", - "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L18", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L19", + "source_file": "src/explain/pipeline.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_to_vrptw_day", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix", - "target": "typing", - "relation": "imports_from", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L20", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L22", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_get_travel_time", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix", - "target": "src_validation_vrptw_engine", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L23", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_to_vrptw_place", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix", - "target": "redis", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L26", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix", - "target": "src_matrix_redis_matrix_redistimematrix", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L35", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_cluster_dispersion_clusterdispersionreport", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "inherits", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L35", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_compute_day_dispersion", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_matrix_redis_matrix_redistimematrix_init", - "relation": "method", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L43", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L95", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_matrix_redis_matrix_redistimematrix_from_env", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L56", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_cluster_dispersion_daydispersionmetric", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix_from_env", - "target": "src_matrix_redis_matrix_py_path", "relation": "references", - "context": "parameter_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L56", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L118", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_fallback_cluster_labels", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_matrix_redis_matrix_redistimematrix_load_dotenv", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L82", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix_load_dotenv", - "target": "src_matrix_redis_matrix_py_path", "relation": "references", - "context": "parameter_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L82", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_compute_day_metric", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_matrix_redis_matrix_redistimematrix_get_travel_time", - "relation": "method", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L13", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_travel_ratio_dayratiometric", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L13", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_travel_ratio_travelratioreport", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L92", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L35", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix_get_travel_time", - "target": "src_data_models_vrptwplace", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L92", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L156", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_acall_kakao", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_matrix_redis_matrix_redistimematrix_set_travel_time", - "relation": "method", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L110", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L121", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_aprefetch_matrix", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix_set_travel_time", - "target": "src_data_models_vrptwplace", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L110", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L187", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_matrix_redis_matrix_redistimematrix_make_key", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L130", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_get_travel_time", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix_make_key", - "target": "src_data_models_vrptwplace", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L130", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L251", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_make_key", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_matrix_redis_matrix_redistimematrix_stats", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L138", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_matrix_redis_matrix_redistimematrix_is_available", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L142", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_cachedroutematrix", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix_from_env", - "target": "src_matrix_redis_matrix_redistimematrix_load_dotenv", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L62", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L125", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix_from_env", - "target": "src_matrix_redis_matrix_py_path", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L62", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L229", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_compute_day_total_minutes", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix_get_travel_time", - "target": "src_matrix_redis_matrix_redistimematrix_make_key", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L96", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_haversinematrix", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_redistimematrix_set_travel_time", - "target": "src_matrix_redis_matrix_redistimematrix_make_key", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L118", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_haversinematrix_get_travel_time", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_rationale_1", - "target": "src_matrix_redis_matrix", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_simresult", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_rationale_36", - "target": "src_matrix_redis_matrix_redistimematrix", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L36", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L165", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_simulate_day", + "target": "src_data_models_vrptwplace" }, { - "source": "src_matrix_redis_matrix_rationale_60", - "target": "src_matrix_redis_matrix_redistimematrix_from_env", - "relation": "rationale_for", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L60", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L258", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_solve_vrptw_ortools", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_init_rationale_1", - "target": "src_scoring_init", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/scoring/__init__.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_timematrix", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L4", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_timematrix_get_travel_time", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L5", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_vrptwengine", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine", - "target": "pathlib", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L6", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L8", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_make_place", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine", - "target": "src_utils_geo", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L9", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine", - "target": "src_scoring_bonus_engine_bonusresult", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L23", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_place", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine", - "target": "src_scoring_bonus_engine_placecoord", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L34", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testapicall", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L39", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testasyncprefetch", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_bonusengine", - "target": "src_scoring_bonus_engine_bonusengine_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L46", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testautherror", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_bonusengine_init", - "target": "src_scoring_bonus_engine_placecoord", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L46", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testcachepersistence", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_bonusengine", - "target": "src_scoring_bonus_engine_bonusengine_from_dataset", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L55", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testfromenv", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_bonusengine_from_dataset", - "target": "src_scoring_bonus_engine_py_path", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L55", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testquotaexhaustion", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_bonusengine", - "target": "src_scoring_bonus_engine_bonusengine_compute", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L82", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testsamepoint", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_bonusengine_compute", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L82", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_bonusengine_compute", - "target": "src_scoring_bonus_engine_bonusresult", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L82", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_make_place", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine", - "target": "src_scoring_bonus_engine_nearest_km", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L134", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_nearest_km", - "target": "src_data_models_poi", "relation": "references", - "context": "parameter_type", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L134", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_make_place", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_nearest_km", - "target": "src_scoring_bonus_engine_placecoord", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L134", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testcachedroutematrix", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_bonusengine_from_dataset", - "target": "src_scoring_bonus_engine_py_path", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L64", - "weight": 1.0, - "_origin": "ast" - }, + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testdepotconstraint", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygap", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygapthreshold", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testfatiguescore", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testhaversinematrix", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "src_data_models_vrptwplace" + }, { - "source": "src_scoring_bonus_engine_bonusengine_from_dataset", - "target": "src_scoring_bonus_engine_placecoord", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L70", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L336", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lat_raises", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_bonusengine_compute", - "target": "src_scoring_bonus_engine_nearest_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L100", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L340", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lng_raises", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_bonusengine_compute", - "target": "src_scoring_bonus_engine_bonusresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L123", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L344", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_format_raises", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_rationale_1", - "target": "src_scoring_bonus_engine", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L1", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L348", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_value_raises", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_rationale_40", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L40", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L352", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation_test_negative_stay_raises", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_rationale_60", - "target": "src_scoring_bonus_engine_bonusengine_from_dataset", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L60", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L355", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation_test_zero_stay_allowed_for_depot", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_rationale_88", - "target": "src_scoring_bonus_engine_bonusengine_compute", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L88", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmultidayresult", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_bonus_engine_rationale_135", - "target": "src_scoring_bonus_engine_nearest_km", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L135", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testortoolsdegradation", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_cluster_dispersion", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L19", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testriskscore", + "target": "src_data_models_vrptwplace" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "src_data_models_vrptwplace" + }, + { + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L21", + "source_file": "src/data/models.py", + "source_location": "L388", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwday", + "target": "src_data_models_vrptwday_at_least_one" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_utils_geo", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L22", + "source_file": "src/data/models.py", + "source_location": "L405", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwrequest_at_least_one_day", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "numpy", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L25", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "sklearn_cluster", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L26", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_count_area_backtracks", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L64", + "source_file": "src/explain/pipeline.py", + "source_location": "L55", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_to_vrptw_day", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_count_label_backtracks", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L80", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L93", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", + "relation": "uses", + "confidence": "INFERRED", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L93", - "weight": 1.0, - "_origin": "ast" + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_cluster_dispersion_clusterdispersionreport", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_daydispersionmetric", - "relation": "contains", - "confidence": "EXTRACTED", + "relation": "uses", + "confidence": "INFERRED", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L114", - "weight": 1.0, - "_origin": "ast" + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_cluster_dispersion_daydispersionmetric", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_clusterdispersionreport", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L125", + "source_location": "L235", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_compute_day_dispersion", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L131", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_data_models_vrptwday" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L13", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_travel_ratio_dayratiometric", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_compute_day_dispersion", - "target": "src_data_models_vrptwplace", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L131", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_evaluate_travel_ratio", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_compute_day_dispersion", - "target": "src_scoring_cluster_dispersion_daydispersionmetric", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L131", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L13", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_travel_ratio_travelratioreport", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_switch_penalty", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L166", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_distance_penalty", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L174", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_cachedroutematrix", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_backtrack_penalty", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L184", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L330", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_check_depot_constraints", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_geo_bt_penalty", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L192", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_haversinematrix", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L202", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_simresult", + "target": "src_data_models_vrptwday" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_timematrix", + "target": "src_data_models_vrptwday" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_vrptwengine", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "target": "src_data_models_vrptwday", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L202", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L519", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_compute_risk_score", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_clusterdispersionreport", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L202", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks", - "target": "src_scoring_cluster_dispersion_count_label_backtracks", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L110", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_compact_day_no_penalty", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_compute_day_dispersion", - "target": "src_scoring_cluster_dispersion_count_area_backtracks", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L151", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L80", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_compute_day_dispersion", - "target": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L154", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L121", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_compute_day_dispersion", - "target": "src_scoring_cluster_dispersion_daydispersionmetric", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L156", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_compute_day_dispersion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L216", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_switch_penalty", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L219", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L61", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_per_day_independence", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_distance_penalty", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L220", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_sigungu_switches_only", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_backtrack_penalty", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L221", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_geo_bt_penalty", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L222", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_test_no_penalty_when_ratio_low", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_clusterdispersionreport", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L281", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_rationale_1", - "target": "src_scoring_cluster_dispersion", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L1", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_test_penalty_when_ratio_high", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_rationale_65", - "target": "src_scoring_cluster_dispersion_count_area_backtracks", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L65", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_rationale_81", - "target": "src_scoring_cluster_dispersion_count_label_backtracks", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L81", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L466", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_rationale_97", - "target": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L97", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L451", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_test_summary_contains_score", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_rationale_193", - "target": "src_scoring_cluster_dispersion_geo_bt_penalty", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L193", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testcachedroutematrix", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_cluster_dispersion_rationale_206", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L206", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testdepotconstraint", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "unicodedata", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L12", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L148", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L13", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L117", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "enum", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L14", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_middle_day_must_start_and_end_at_depot", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "functools", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L15", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygap", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L16", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L220", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L17", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L228", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "pandas", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L19", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygapthreshold", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "src_data_seoul_citydata_client", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L22", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L396", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "src_scoring_congestion_engine_congestionlevel", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L27", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testfatiguescore", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine_congestionlevel", - "target": "str", - "relation": "inherits", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L27", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L247", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine_congestionlevel", - "target": "enum", - "relation": "inherits", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L27", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L260", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "src_scoring_congestion_engine_congestionresult", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L35", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testhaversinematrix", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "src_scoring_congestion_engine_normalize", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "src_data_models_vrptwday" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L45", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L368", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testmodelvalidation_test_empty_day_raises", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "src_scoring_congestion_engine_score_to_level", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmultidayresult", + "target": "src_data_models_vrptwday" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L49", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L414", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine_score_to_level", - "target": "src_scoring_congestion_engine_congestionlevel", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L49", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L428", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine", - "target": "src_scoring_congestion_engine_congestionengine", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L59", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L439", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine_congestionengine", - "target": "src_scoring_congestion_engine_congestionengine_init", - "relation": "method", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testortoolsdegradation", + "target": "src_data_models_vrptwday" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L68", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L275", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine_congestionengine_init", - "target": "src_scoring_congestion_engine_py_path", - "relation": "references", - "context": "parameter_type", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testriskscore", + "target": "src_data_models_vrptwday" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L68", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L308", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine_congestionengine_init", - "target": "src_data_seoul_citydata_client_seoulcitydataclient", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L68", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L302", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine_congestionengine", - "target": "src_scoring_congestion_engine_congestionengine_df", - "relation": "method", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "src_data_models_vrptwday" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L79", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L172", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_feasible_schedule_passes", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine_congestionengine_df", - "target": "src_scoring_congestion_engine_py_dataframe", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L79", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L183", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine_congestionengine", - "target": "src_scoring_congestion_engine_congestionengine_poi_names", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L90", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L203", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_request_start_time_is_used", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine_congestionengine", - "target": "src_scoring_congestion_engine_congestionengine_global_avg_by_month", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L94", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L194", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning", + "target": "src_data_models_vrptwday" }, { - "source": "src_scoring_congestion_engine_congestionengine", - "target": "src_scoring_congestion_engine_congestionengine_category_avg_by_month", "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L100", + "source_file": "src/data/models.py", + "source_location": "L405", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwrequest", + "target": "src_data_models_vrptwrequest_at_least_one_day" }, { - "source": "src_scoring_congestion_engine_congestionengine", - "target": "src_scoring_congestion_engine_congestionengine_lookup_exact", "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L113", + "source_file": "src/data/models.py", + "source_location": "L400", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_vrptwrequest", + "target": "src_data_models_vrptwrequest_validate_start_time" }, { - "source": "src_scoring_congestion_engine_congestionengine_lookup_exact", - "target": "series", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L113", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine", - "target": "src_scoring_congestion_engine_congestionengine_lookup_partial", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L119", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine_lookup_partial", - "target": "series", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L119", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L27", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine", - "target": "src_scoring_congestion_engine_congestionengine_score", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L130", + "confidence_score": 1.0, + "source_file": "src/explain/pipeline.py", + "source_location": "L310", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine_score", - "target": "src_scoring_congestion_engine_congestionresult", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L130", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine", - "target": "src_scoring_congestion_engine_congestionengine_is_crowded", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L209", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_cachedroutematrix", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine", - "target": "src_scoring_congestion_engine_congestionengine_score_itinerary", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L213", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_haversinematrix", + "target": "src_data_models_vrptwrequest" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_simresult", + "target": "src_data_models_vrptwrequest" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_timematrix", + "target": "src_data_models_vrptwrequest" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_vrptwengine", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine_score_itinerary", - "target": "src_scoring_congestion_engine_congestionresult", "relation": "references", - "context": "generic_arg", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L213", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L418", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_validate", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine_df", - "target": "src_scoring_congestion_engine_normalize", - "relation": "indirect_call", - "context": "argument", - "confidence": "INFERRED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L86", + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine_score", - "target": "src_scoring_congestion_engine_normalize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L145", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L466", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine_score", - "target": "src_scoring_congestion_engine_congestionresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L152", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L451", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_test_summary_contains_score", + "target": "src_data_models_vrptwrequest" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testcachedroutematrix", + "target": "src_data_models_vrptwrequest" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testdepotconstraint", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine_score", - "target": "src_scoring_congestion_engine_score_to_level", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L155", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L146", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine_score", - "target": "src_scoring_congestion_engine_congestionengine_lookup_exact", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L164", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine_score", - "target": "src_scoring_congestion_engine_congestionengine_lookup_partial", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L175", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L130", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_middle_day_must_start_and_end_at_depot", + "target": "src_data_models_vrptwrequest" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygap", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine_is_crowded", - "target": "src_scoring_congestion_engine_congestionengine_score", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L211", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L220", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_congestionengine_score_itinerary", - "target": "src_scoring_congestion_engine_congestionengine_score", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L217", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L228", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_rationale_1", - "target": "src_scoring_congestion_engine", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygapthreshold", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_rationale_60", - "target": "src_scoring_congestion_engine_congestionengine", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L60", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L396", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_rationale_95", - "target": "src_scoring_congestion_engine_congestionengine_global_avg_by_month", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L95", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testfatiguescore", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_rationale_101", - "target": "src_scoring_congestion_engine_congestionengine_category_avg_by_month", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L101", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L247", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_rationale_131", - "target": "src_scoring_congestion_engine_congestionengine_score", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L131", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L260", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_rationale_210", - "target": "src_scoring_congestion_engine_congestionengine_is_crowded", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L210", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testhaversinematrix", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_congestion_engine_rationale_216", - "target": "src_scoring_congestion_engine_congestionengine_score_itinerary", - "relation": "rationale_for", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "src_data_models_vrptwrequest" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L216", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L372", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testmodelvalidation_test_empty_days_raises", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_reward_engine", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmultidayresult", + "target": "src_data_models_vrptwrequest" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/reward_engine.py", - "source_location": "L15", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L412", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_reward_engine", - "target": "src_scoring_reward_engine_generate_rewards", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/reward_engine.py", - "source_location": "L24", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L426", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_reward_engine_generate_rewards", - "target": "src_data_models_scores", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/reward_engine.py", - "source_location": "L24", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L439", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_reward_engine_rationale_1", - "target": "src_scoring_reward_engine", - "relation": "rationale_for", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testortoolsdegradation", + "target": "src_data_models_vrptwrequest" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/reward_engine.py", - "source_location": "L1", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L275", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_reward_engine_rationale_31", - "target": "src_scoring_reward_engine_generate_rewards", - "relation": "rationale_for", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testriskscore", + "target": "src_data_models_vrptwrequest" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/reward_engine.py", - "source_location": "L31", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L308", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_theme_alignment", - "target": "hashlib", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L15", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L302", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_theme_alignment", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "src_data_models_vrptwrequest" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L16", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L172", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_feasible_schedule_passes", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_theme_alignment", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L17", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L183", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_theme_alignment", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L18", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L202", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_request_start_time_is_used", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_theme_alignment", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L19", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L194", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning", + "target": "src_data_models_vrptwrequest" }, { - "source": "src_scoring_theme_alignment", - "target": "src_data_models", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L21", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment", - "target": "src_data_theme_taxonomy", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_cluster_dispersion_clusterdispersionreport", + "target": "src_data_models_deepdiveitem" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/cluster_dispersion.py", "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_cluster_dispersion_daydispersionmetric", + "target": "src_data_models_deepdiveitem" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L266", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment", - "target": "anthropic", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L26", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "contains", - "confidence": "EXTRACTED", + "relation": "uses", + "confidence": "INFERRED", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L68", - "weight": 1.0, - "_origin": "ast" + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_poiwithcategory", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment", - "target": "src_scoring_theme_alignment_themejudgment", - "relation": "contains", - "confidence": "EXTRACTED", + "relation": "uses", + "confidence": "INFERRED", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L77", - "weight": 1.0, - "_origin": "ast" + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_themealignmentjudge", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment", - "target": "src_scoring_theme_alignment_themealignmentreport", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", + "confidence_score": 1.0, "source_file": "src/scoring/theme_alignment.py", - "source_location": "L86", + "source_location": "L207", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment", - "target": "src_scoring_theme_alignment_cache_key", - "relation": "contains", - "confidence": "EXTRACTED", + "relation": "uses", + "confidence": "INFERRED", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L96", - "weight": 1.0, - "_origin": "ast" + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_themealignmentreport", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment_cache_key", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", + "relation": "uses", + "confidence": "INFERRED", "source_file": "src/scoring/theme_alignment.py", - "source_location": "L96", - "weight": 1.0, - "_origin": "ast" + "source_location": "L21", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_themejudgment", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment_cache_key", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "references", - "context": "generic_arg", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L96", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment", - "target": "src_scoring_theme_alignment_build_user_prompt", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L13", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_travel_ratio_dayratiometric", + "target": "src_data_models_deepdiveitem" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L107", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_evaluate_travel_ratio", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment_build_user_prompt", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "references", - "context": "parameter_type", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L13", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_travel_ratio_travelratioreport", + "target": "src_data_models_deepdiveitem" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L107", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_data_models_deepdiveitem" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_cachedroutematrix", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment_build_user_prompt", - "target": "src_scoring_theme_alignment_poiwithcategory", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L107", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L330", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_check_depot_constraints", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment", - "target": "src_scoring_theme_alignment_classify_score", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L132", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_haversinematrix", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment", - "target": "src_scoring_theme_alignment_parse_llm_response", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L143", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_simresult", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment_parse_llm_response", - "target": "src_scoring_theme_alignment_themejudgment", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L143", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L190", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_simulate_day", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L163", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_timematrix", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge", - "target": "src_scoring_theme_alignment_themealignmentjudge_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L171", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_vrptwengine", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_init", - "target": "src_scoring_theme_alignment_py_any", "relation": "references", - "context": "parameter_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L171", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L519", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_compute_risk_score", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge", - "target": "src_scoring_theme_alignment_themealignmentjudge_is_available", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L187", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L446", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_validate", + "target": "src_data_models_deepdiveitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge", - "target": "src_scoring_theme_alignment_themealignmentjudge_evaluate", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L191", + "source_file": "src/data/models.py", + "source_location": "L419", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_models_rationale_419", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "references", - "context": "parameter_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L191", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_data_models_explanationitem" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_explainengine", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", - "target": "src_scoring_theme_alignment_poiwithcategory", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L191", + "source_file": "src/explain/explain_engine.py", + "source_location": "L566", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_call_llm", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", - "target": "src_scoring_theme_alignment_themealignmentreport", "relation": "references", - "context": "return_type", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L191", + "source_file": "src/explain/explain_engine.py", + "source_location": "L483", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_generate", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge", - "target": "src_scoring_theme_alignment_themealignmentjudge_call_llm", - "relation": "method", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L261", + "source_file": "src/explain/explain_engine.py", + "source_location": "L373", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_fallback", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_call_llm", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L261", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/explain_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_explain_engine_lrucache", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_call_llm", - "target": "src_scoring_theme_alignment_poiwithcategory", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L261", + "source_file": "src/explain/explain_engine.py", + "source_location": "L349", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_parse_llm_response", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_call_llm", - "target": "src_scoring_theme_alignment_themejudgment", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L261", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_parse_llm_response", - "target": "src_scoring_theme_alignment_themejudgment", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L155", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", - "target": "src_scoring_theme_alignment_themealignmentjudge_is_available", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L198", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", - "target": "src_scoring_theme_alignment_themealignmentreport", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L203", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testcachekey", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", - "target": "src_scoring_theme_alignment_cache_key", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L215", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginegraphdefault", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", - "target": "src_scoring_theme_alignment_themealignmentjudge_call_llm", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L220", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", - "target": "src_scoring_theme_alignment_classify_score", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L235", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "src_data_models_explanationitem" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_call_llm", - "target": "src_scoring_theme_alignment_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testfallback", + "target": "src_data_models_explanationitem" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "src_data_models_explanationitem" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "src_data_models_explanationitem" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L267", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_data_models_dayroutecomparison" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_cachedroutematrix", + "target": "src_data_models_dayroutecomparison" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_haversinematrix", + "target": "src_data_models_dayroutecomparison" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_simresult", + "target": "src_data_models_dayroutecomparison" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_timematrix", + "target": "src_data_models_dayroutecomparison" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_vrptwengine", + "target": "src_data_models_dayroutecomparison" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_call_llm", - "target": "src_scoring_theme_alignment_parse_llm_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L285", + "confidence_score": 1.0, + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L469", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_vrptw_engine_vrptwengine_validate", + "target": "src_data_models_dayroutecomparison" }, { - "source": "src_scoring_theme_alignment_rationale_1", - "target": "src_scoring_theme_alignment", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L1", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_data_models_vrptwresult" }, { - "source": "src_scoring_theme_alignment_rationale_69", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L69", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_cachedroutematrix", + "target": "src_data_models_vrptwresult" }, { - "source": "src_scoring_theme_alignment_rationale_97", - "target": "src_scoring_theme_alignment_cache_key", - "relation": "rationale_for", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_haversinematrix", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_simresult", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_timematrix", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_vrptw_engine_vrptwengine", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L97", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L418", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_validate", + "target": "src_data_models_vrptwresult" }, { - "source": "src_scoring_theme_alignment_rationale_111", - "target": "src_scoring_theme_alignment_build_user_prompt", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L111", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "src_data_models_vrptwresult" }, { - "source": "src_scoring_theme_alignment_rationale_133", - "target": "src_scoring_theme_alignment_classify_score", - "relation": "rationale_for", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testcachedroutematrix", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testdepotconstraint", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygap", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygapthreshold", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testfatiguescore", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testhaversinematrix", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmultidayresult", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testortoolsdegradation", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testriskscore", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "src_data_models_vrptwresult" + }, + { + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L133", + "source_file": "src/data/party_config.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_party_config", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_theme_alignment_rationale_144", - "target": "src_scoring_theme_alignment_parse_llm_response", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L144", + "source_file": "src/data/party_config.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_party_config", + "target": "src_data_party_config_partyprofile" }, { - "source": "src_scoring_theme_alignment_rationale_164", - "target": "src_scoring_theme_alignment_themealignmentjudge", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L164", + "source_file": "src/data/party_config.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_party_config_rationale_1", + "target": "src_data_party_config" }, { - "source": "src_scoring_theme_alignment_rationale_188", - "target": "src_scoring_theme_alignment_themealignmentjudge_is_available", - "relation": "rationale_for", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L188", + "source_file": "src/explain/repair.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_data_party_config" }, { - "source": "src_scoring_travel_ratio", - "target": "dataclasses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L10", + "source_file": "src/validation/scoring.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_data_party_config" }, { - "source": "src_scoring_travel_ratio", - "target": "src_data_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L12", + "source_file": "src/validation/warning.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_data_party_config" }, { - "source": "src_scoring_travel_ratio", - "target": "src_validation_vrptw_engine", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L13", + "source_file": "tests/test_party_config.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config", + "target": "src_data_party_config" }, { - "source": "src_scoring_travel_ratio", - "target": "src_scoring_travel_ratio_dayratiometric", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L28", + "source_file": "src/data/party_config.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_party_config_get_party_profile", + "target": "src_data_party_config_partyprofile" }, { - "source": "src_scoring_travel_ratio", - "target": "src_scoring_travel_ratio_travelratioreport", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L37", + "source_file": "src/data/party_config.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_party_config_rationale_38", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio", - "target": "src_scoring_travel_ratio_compute_day_metric", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L45", + "source_file": "src/explain/repair.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_compute_day_metric", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L45", + "confidence_score": 1.0, + "source_file": "src/explain/repair.py", + "source_location": "L180", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_repair_repairengine_try_time_tune", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_compute_day_metric", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "references", - "context": "parameter_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L45", + "source_file": "src/validation/scoring.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_compute_day_metric", - "target": "src_scoring_travel_ratio_dayratiometric", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L45", + "confidence_score": 1.0, + "source_file": "src/validation/scoring.py", + "source_location": "L96", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_scoring_scorecalculator_calc_feasibility", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio", - "target": "src_scoring_travel_ratio_classify_ratio", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L70", + "source_file": "src/validation/warning.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L81", + "confidence_score": 1.0, + "source_file": "src/validation/warning.py", + "source_location": "L196", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_evaluate_travel_ratio", - "target": "src_data_models_vrptwday", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L81", + "confidence_score": 1.0, + "source_file": "src/validation/warning.py", + "source_location": "L82", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_warning_warningdetector_check_dense_schedule", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_evaluate_travel_ratio", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L81", + "confidence_score": 1.0, + "source_file": "src/validation/warning.py", + "source_location": "L136", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_warning_warningdetector_check_physical_strain", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_evaluate_travel_ratio", - "target": "src_scoring_travel_ratio_travelratioreport", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L81", + "source_file": "tests/test_party_config.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_compute_day_metric", - "target": "src_scoring_travel_ratio_dayratiometric", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L62", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofiles_test_baby_fatigue_hours_lower_than_friends", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_evaluate_travel_ratio", - "target": "src_scoring_travel_ratio_compute_day_metric", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L95", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofiles_test_baby_speed_factor_below_one", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_evaluate_travel_ratio", - "target": "src_scoring_travel_ratio_classify_ratio", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L100", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L32", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofiles_test_elderly_fatigue_hours_lower_than_friends", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_evaluate_travel_ratio", - "target": "src_scoring_travel_ratio_travelratioreport", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L121", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofiles_test_elderly_speed_factor_below_one", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_rationale_1", - "target": "src_scoring_travel_ratio", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_scoring_travel_ratio_rationale_50", - "target": "src_scoring_travel_ratio_compute_day_metric", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L50", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofiles_test_family_fatigue_between_friends_and_baby", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_rationale_71", - "target": "src_scoring_travel_ratio_classify_ratio", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L71", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofiles_test_friends_speed_factor_one", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_scoring_travel_ratio_rationale_85", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L85", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofiles_test_profile_is_frozen", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_utils_geo", - "target": "math", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L4", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofiles_test_unknown_type_returns_default", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_utils_geo", - "target": "src_utils_geo_haversine_km", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L10", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofilevalues_test_baby_fatigue_8h", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_utils_geo", - "target": "src_utils_geo_build_dist_cache", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L20", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofilevalues_test_baby_speed_factor_is_point_eight", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_utils_geo", - "target": "src_utils_geo_nn_heuristic_km", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L36", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L61", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofilevalues_test_elderly_fatigue_8h", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_utils_geo", - "target": "src_utils_geo_get_travel_min", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L72", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofilevalues_test_family_fatigue_10h", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_utils_geo_build_dist_cache", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L30", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L70", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofilevalues_test_family_speed_factor_is_point_nine", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_utils_geo_nn_heuristic_km", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L57", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L55", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_testpartyprofilevalues_test_friends_fatigue_12h", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_utils_geo_get_travel_min", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L89", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_is_24km", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_utils_geo_rationale_1", - "target": "src_utils_geo", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L1", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_lower_than_friends", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_utils_geo_rationale_11", - "target": "src_utils_geo_haversine_km", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L11", + "confidence_score": 1.0, + "source_file": "tests/test_party_config.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_party_config_teststrainthresholdlogic_test_friends_threshold_unchanged", + "target": "src_data_party_config_get_party_profile" }, { - "source": "src_utils_geo_rationale_21", - "target": "src_utils_geo_build_dist_cache", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L21", + "source_file": "src/data/region_config.py", + "source_location": "L160", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_region_config", + "target": "src_data_region_config_get_thresholds" }, { - "source": "src_utils_geo_rationale_40", - "target": "src_utils_geo_nn_heuristic_km", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L40", + "source_file": "src/data/region_config.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_region_config", + "target": "src_data_region_config_regionthresholds" }, { - "source": "src_utils_geo_rationale_80", - "target": "src_utils_geo_get_travel_min", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/utils/geo.py", - "source_location": "L80", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_validation_alternatives", - "target": "math", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L23", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_validation_alternatives", - "target": "typing", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L24", + "source_file": "src/data/region_config.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_region_config_rationale_1", + "target": "src_data_region_config" }, { - "source": "src_validation_alternatives", - "target": "src_data_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L26", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_validation_alternatives", - "target": "src_validation_alternatives_haversine_km", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L32", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_validation_alternatives", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L40", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_validation_alternatives_alternativesfinder", - "target": "src_validation_alternatives_alternativesfinder_init", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L49", + "source_file": "tests/test_region_config.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config", + "target": "src_data_region_config" }, { - "source": "src_validation_alternatives_alternativesfinder_init", - "target": "src_data_models_poi", "relation": "references", - "context": "generic_arg", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L49", + "source_file": "src/data/region_config.py", + "source_location": "L160", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_region_config_get_thresholds", + "target": "src_data_region_config_regionthresholds" }, { - "source": "src_validation_alternatives_alternativesfinder", - "target": "src_validation_alternatives_alternativesfinder_find_alternatives", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L59", + "source_file": "src/data/region_config.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_region_config_rationale_19", + "target": "src_data_region_config_regionthresholds" }, { - "source": "src_validation_alternatives_alternativesfinder_find_alternatives", - "target": "src_data_models_poi", - "relation": "references", - "context": "parameter_type", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L59", + "source_file": "src/data/region_config.py", + "source_location": "L161", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_region_config_rationale_161", + "target": "src_data_region_config_get_thresholds" }, { - "source": "src_validation_alternatives_alternativesfinder_find_alternatives", - "target": "src_data_models_alternativepoi", - "relation": "references", - "context": "generic_arg", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L59", + "source_file": "tests/test_region_config.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config", + "target": "src_data_region_config_get_thresholds" }, { - "source": "src_validation_alternatives_alternativesfinder", - "target": "src_validation_alternatives_alternativesfinder_build_alternatives_map", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L92", + "confidence_score": 1.0, + "source_file": "tests/test_region_config.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_region_config_testgetthresholds_test_busan_code_returns_high", + "target": "src_data_region_config_get_thresholds" }, { - "source": "src_validation_alternatives_alternativesfinder_build_alternatives_map", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L92", + "confidence_score": 1.0, + "source_file": "tests/test_region_config.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_region_config_testgetthresholds_test_daegu_code_returns_medium", + "target": "src_data_region_config_get_thresholds" }, { - "source": "src_validation_alternatives_alternativesfinder_build_alternatives_map", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L92", + "confidence_score": 1.0, + "source_file": "tests/test_region_config.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_region_config_testgetthresholds_test_none_returns_medium", + "target": "src_data_region_config_get_thresholds" }, { - "source": "src_validation_alternatives_alternativesfinder_build_alternatives_map", - "target": "src_data_models_alternativepoi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L92", + "confidence_score": 1.0, + "source_file": "tests/test_region_config.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_region_config_testgetthresholds_test_rural_code_returns_low", + "target": "src_data_region_config_get_thresholds" }, { - "source": "src_validation_alternatives_alternativesfinder_find_alternatives", - "target": "src_validation_alternatives_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L74", + "confidence_score": 1.0, + "source_file": "tests/test_region_config.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_region_config_testgetthresholds_test_seoul_code_returns_high", + "target": "src_data_region_config_get_thresholds" }, { - "source": "src_validation_alternatives_alternativesfinder_find_alternatives", - "target": "src_data_models_alternativepoi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L82", + "confidence_score": 1.0, + "source_file": "tests/test_region_config.py", + "source_location": "L30", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_region_config_testgetthresholds_test_unknown_code_returns_low", + "target": "src_data_region_config_get_thresholds" }, { - "source": "src_validation_alternatives_alternativesfinder_build_alternatives_map", - "target": "src_validation_alternatives_alternativesfinder_find_alternatives", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L117", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog", + "target": "src_data_restaurant_catalog_normalize" }, { - "source": "src_validation_alternatives_rationale_1", - "target": "src_validation_alternatives", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L1", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_alternatives_rationale_41", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "rationale_for", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L41", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog", + "target": "src_utils_geo" }, { - "source": "src_validation_alternatives_rationale_64", - "target": "src_validation_alternatives_alternativesfinder_find_alternatives", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L64", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog", + "target": "src_utils_geo_haversine_km" }, { - "source": "src_validation_alternatives_rationale_98", - "target": "src_validation_alternatives_alternativesfinder_build_alternatives_map", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L98", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog_rationale_1", + "target": "src_data_restaurant_catalog" }, { - "source": "src_validation_hard_fail", - "target": "src_data_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L4", + "source_file": "src/explain/repair.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_data_restaurant_catalog" }, { - "source": "src_validation_hard_fail", - "target": "src_utils_geo", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L5", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_validation_hard_fail", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L16", + "source_file": "tests/test_repair.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_data_restaurant_catalog" }, { - "source": "src_validation_hard_fail_hardfaildetector", - "target": "src_validation_hard_fail_hardfaildetector_detect", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L24", + "source_file": "tests/test_restaurant_catalog.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_restaurant_catalog", + "target": "src_data_restaurant_catalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_detect", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L24", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog_restaurantcatalog_nearby", + "target": "src_data_restaurant_catalog_normalize" }, { - "source": "src_validation_hard_fail_hardfaildetector_detect", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L24", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog_rationale_28", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_detect", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L24", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L30", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog_restaurantcatalog", + "target": "src_data_restaurant_catalog_restaurantcatalog_init" }, { - "source": "src_validation_hard_fail_hardfaildetector", - "target": "src_validation_hard_fail_hardfaildetector_check_operating_hours", "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L48", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog_restaurantcatalog", + "target": "src_data_restaurant_catalog_restaurantcatalog_nearby" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_operating_hours", - "target": "src_data_models_poi", "relation": "references", - "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L48", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog_restaurantcatalog_from_csv", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_operating_hours", - "target": "src_data_models_hardfail", "relation": "references", - "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L48", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog_restaurantcatalog_from_default", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector", - "target": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L110", + "source_file": "src/explain/repair.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L110", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_deletionsuggestion", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L110", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_reordersuggestion", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector", - "target": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L157", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_repairengine", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible", - "target": "src_data_models_poi", "relation": "references", - "context": "generic_arg", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L157", + "source_file": "src/explain/repair.py", + "source_location": "L105", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_init", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L157", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_repairresult", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector", - "target": "src_validation_hard_fail_hardfaildetector_time_to_min", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L188", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_timetunesuggestion", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector", - "target": "src_validation_hard_fail_hardfaildetector_min_to_time", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L193", + "source_file": "tests/test_repair.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_detect", - "target": "src_validation_hard_fail_hardfaildetector_check_operating_hours", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L40", + "source_file": "tests/test_repair.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_repairengine", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_detect", - "target": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L41", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L6", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_detect", - "target": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L42", + "source_file": "tests/test_repair.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_operating_hours", - "target": "src_validation_hard_fail_hardfaildetector_time_to_min", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L66", + "source_file": "tests/test_repair.py", + "source_location": "L128", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_operating_hours", - "target": "src_data_models_hardfail", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L81", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L6", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testrepairenginenoop", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_operating_hours", - "target": "src_validation_hard_fail_hardfaildetector_min_to_time", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L6", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testresultmodel", + "target": "src_data_restaurant_catalog_restaurantcatalog" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L6", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "src_data_restaurant_catalog_restaurantcatalog" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L6", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "src_data_restaurant_catalog_restaurantcatalog" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L84", + "source_file": "tests/test_restaurant_catalog.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_restaurant_catalog", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", - "target": "src_validation_hard_fail_hardfaildetector_time_to_min", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L123", + "source_file": "tests/test_restaurant_catalog.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_restaurant_catalog_catalog", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", - "target": "src_data_models_hardfail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L137", + "source_file": "tests/test_restaurant_catalog.py", + "source_location": "L31", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_restaurant_catalog_test_nearby_empty_when_no_restaurants_in_radius", + "target": "src_data_restaurant_catalog_restaurantcatalog" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", - "target": "src_validation_hard_fail_hardfaildetector_min_to_time", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L145", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L54", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog_restaurantcatalog_from_default", + "target": "src_data_restaurant_catalog_restaurantcatalog_from_csv" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible", - "target": "src_data_models_hardfail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L173", + "confidence_score": 1.0, + "source_file": "src/explain/repair.py", + "source_location": "L107", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_repair_repairengine_init", + "target": "src_data_restaurant_catalog_restaurantcatalog_from_default" }, { - "source": "src_validation_hard_fail_rationale_1", - "target": "src_validation_hard_fail", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L1", + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_restaurant_catalog_rationale_64", + "target": "src_data_restaurant_catalog_restaurantcatalog_nearby" }, { - "source": "src_validation_hard_fail_rationale_17", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L17", + "confidence_score": 1.0, + "source_file": "src/data/restaurant_catalog.py", + "source_location": "L70", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_data_restaurant_catalog_restaurantcatalog_nearby", + "target": "src_utils_geo_haversine_km" }, { - "source": "src_validation_hard_fail_rationale_33", - "target": "src_validation_hard_fail_hardfaildetector_detect", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L33", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client", + "target": "src_data_seoul_citydata_client_forecastslot" }, { - "source": "src_validation_hard_fail_rationale_56", - "target": "src_validation_hard_fail_hardfaildetector_check_operating_hours", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L56", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L105", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client", + "target": "src_data_seoul_citydata_client_seoulcitydataclient" }, { - "source": "src_validation_hard_fail_rationale_118", - "target": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L118", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client", + "target": "src_data_seoul_citydata_client_seoulrealtimecongestion" }, { - "source": "src_validation_hard_fail_rationale_164", - "target": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L164", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_validation_kakao_matrix", - "target": "asyncio", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L26", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_rationale_1", + "target": "src_data_seoul_citydata_client" }, { - "source": "src_validation_kakao_matrix", - "target": "json", - "relation": "imports", + "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L27", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine", + "target": "src_data_seoul_citydata_client" }, { - "source": "src_validation_kakao_matrix", - "target": "os", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L28", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L191", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient_get_at", + "target": "src_data_seoul_citydata_client_forecastslot" }, { - "source": "src_validation_kakao_matrix", - "target": "time", - "relation": "imports", - "context": "import", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L29", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L127", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient_parse_forecast", + "target": "src_data_seoul_citydata_client_forecastslot" }, { - "source": "src_validation_kakao_matrix", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L30", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient_get", + "target": "src_data_seoul_citydata_client_seoulrealtimecongestion" }, { - "source": "src_validation_kakao_matrix", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L31", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_rationale_106", + "target": "src_data_seoul_citydata_client_seoulcitydataclient" }, { - "source": "src_validation_kakao_matrix", - "target": "httpx", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L33", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_get" }, { - "source": "src_validation_kakao_matrix", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L35", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L191", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_get_at" }, { - "source": "src_validation_kakao_matrix", - "target": "src_validation_vrptw_engine", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L36", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L113", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_init" }, { - "source": "src_validation_kakao_matrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L47", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L127", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_parse_forecast" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "inherits", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L47", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L142", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_resolve_name" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_init", "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L58", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L124", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_url" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_init", - "target": "src_validation_kakao_matrix_py_path", - "relation": "references", - "context": "parameter_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L58", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine", + "target": "src_data_seoul_citydata_client_seoulcitydataclient" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L89", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_data_seoul_citydata_client_seoulcitydataclient" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", - "target": "src_validation_kakao_matrix_py_path", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L89", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L82", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_from_settings", + "target": "src_data_seoul_citydata_client_seoulcitydataclient" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", - "target": "src_validation_kakao_matrix_py_any", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L89", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_init", + "target": "src_data_seoul_citydata_client_seoulcitydataclient" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_load_dotenv", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L111", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_congestion_engine_congestionlevel", + "target": "src_data_seoul_citydata_client_seoulcitydataclient" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_load_dotenv", - "target": "src_validation_kakao_matrix_py_path", - "relation": "references", - "context": "parameter_type", - "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L111", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_congestion_engine_congestionresult", + "target": "src_data_seoul_citydata_client_seoulcitydataclient" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_get_travel_time", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L121", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L162", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient_get", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_url" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_get_travel_time", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L121", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L187", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient_get", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_parse_forecast" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_aprefetch_matrix", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L139", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L160", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient_get", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_resolve_name" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_aprefetch_matrix", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "generic_arg", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L139", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L151", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_rationale_151", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_get" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_acall_kakao", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L177", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_seoulcitydataclient_get_at", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_get" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_acall_kakao", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "parameter_type", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L177", + "source_file": "src/data/seoul_citydata_client.py", + "source_location": "L192", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_seoul_citydata_client_rationale_192", + "target": "src_data_seoul_citydata_client_seoulcitydataclient_get_at" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L212", + "source_file": "src/data/theme_taxonomy.py", + "source_location": "L134", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_theme_taxonomy", + "target": "src_data_theme_taxonomy_get_place_types_for" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L212", + "source_file": "src/data/theme_taxonomy.py", + "source_location": "L105", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_theme_taxonomy", + "target": "src_data_theme_taxonomy_matches_place_type" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_parse_duration", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L265", + "source_file": "src/data/theme_taxonomy.py", + "source_location": "L82", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_theme_taxonomy", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_make_key", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L278", + "source_file": "src/data/theme_taxonomy.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_theme_taxonomy_rationale_1", + "target": "src_data_theme_taxonomy" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_make_key", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "parameter_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L278", + "source_file": "src/explain/pipeline.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_data_theme_taxonomy" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_load_cache", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L284", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_data_theme_taxonomy" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_maybe_save_cache", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L294", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "src_data_theme_taxonomy" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_save_cache", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L299", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy", + "target": "src_data_theme_taxonomy" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_stats", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L310", + "source_file": "src/data/theme_taxonomy.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_theme_taxonomy_rationale_83", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_cache_size", "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L314", + "source_file": "src/data/theme_taxonomy.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_theme_taxonomy_userpreferences", + "target": "src_data_theme_taxonomy_userpreferences_all_themes" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_is_quota_exhausted", "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L318", + "source_file": "src/data/theme_taxonomy.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_theme_taxonomy_userpreferences", + "target": "src_data_theme_taxonomy_userpreferences_post_init" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_init", - "target": "src_validation_kakao_matrix_py_path", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L73", + "source_file": "src/explain/pipeline.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_init", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_load_cache", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L37", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L37", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L79", + "source_file": "src/explain/pipeline.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_run", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_load_dotenv", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L97", + "source_file": "src/explain/pipeline.py", + "source_location": "L251", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", - "target": "src_validation_kakao_matrix_py_path", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L97", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_get_travel_time", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_make_key", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L126", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_build_user_prompt", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_aprefetch_matrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_save_cache", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L174", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_cache_key", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_acall_kakao", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_parse_duration", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_poiwithcategory", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_themealignmentjudge", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L268", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_call_llm", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "references", + "context": "parameter_type", + "confidence": "EXTRACTED", + "source_file": "src/scoring/theme_alignment.py", "source_location": "L194", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_make_key", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_themealignmentreport", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L22", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_theme_alignment_themejudgment", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L219", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testclassifyscore", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testevaluatewithmockclient", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_parse_duration", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L242", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L125", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_maybe_save_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L246", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L82", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_high_alignment_no_penalty", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_maybe_save_cache", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_save_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L297", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_rationale_1", - "target": "src_validation_kakao_matrix", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L1", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_rationale_48", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L48", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testnoapikey", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_rationale_95", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L95", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L32", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_rationale_122", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_get_travel_time", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L122", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testparsellmresponse", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_rationale_144", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_aprefetch_matrix", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L144", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_rationale_180", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_acall_kakao", - "relation": "rationale_for", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_taxonomy_testgetplacetypesfor", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_taxonomy_testmatchesplacetype", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_taxonomy_testplacetypecount", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_taxonomy_testuserpreferences", + "target": "src_data_theme_taxonomy_userpreferences" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L180", + "confidence_score": 1.0, + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_taxonomy_testuserpreferences_test_empty_both_axes_raises", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_kakao_matrix_rationale_215", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L215", + "confidence_score": 1.0, + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_place_type_raises", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_scoring", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L4", + "confidence_score": 1.0, + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_style_raises", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_scoring", - "target": "src_data_party_config", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L5", + "confidence_score": 1.0, + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L30", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_taxonomy_testuserpreferences_test_valid_input", + "target": "src_data_theme_taxonomy_userpreferences" }, { - "source": "src_validation_scoring", - "target": "src_utils_geo", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L6", + "source_file": "src/data/theme_taxonomy.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_theme_taxonomy_rationale_100", + "target": "src_data_theme_taxonomy_userpreferences_all_themes" }, { - "source": "src_validation_scoring", - "target": "src_validation_warning", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L7", + "source_file": "src/data/theme_taxonomy.py", + "source_location": "L141", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_theme_taxonomy_get_place_types_for", + "target": "src_data_theme_taxonomy_matches_place_type" }, { - "source": "src_validation_scoring", - "target": "src_validation_scoring_scorecalculator", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L20", + "source_file": "src/data/theme_taxonomy.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_theme_taxonomy_rationale_110", + "target": "src_data_theme_taxonomy_matches_place_type" }, { - "source": "src_validation_scoring_scorecalculator", - "target": "src_validation_scoring_scorecalculator_compute", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L23", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy", + "target": "src_data_theme_taxonomy_matches_place_type" }, { - "source": "src_validation_scoring_scorecalculator_compute", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L23", + "confidence_score": 1.0, + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_taxonomy_testmatchesplacetype_test_beach_matches_na12", + "target": "src_data_theme_taxonomy_matches_place_type" }, { - "source": "src_validation_scoring_scorecalculator_compute", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L23", + "confidence_score": 1.0, + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_taxonomy_testmatchesplacetype_test_festival_matches_content_type_15", + "target": "src_data_theme_taxonomy_matches_place_type" }, { - "source": "src_validation_scoring_scorecalculator_compute", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L23", + "confidence_score": 1.0, + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_taxonomy_testmatchesplacetype_test_mountain_matches_na04", + "target": "src_data_theme_taxonomy_matches_place_type" }, { - "source": "src_validation_scoring_scorecalculator_compute", - "target": "src_data_models_scores", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L23", + "confidence_score": 1.0, + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_taxonomy_testmatchesplacetype_test_no_match", + "target": "src_data_theme_taxonomy_matches_place_type" }, { - "source": "src_validation_scoring_scorecalculator", - "target": "src_validation_scoring_scorecalculator_cosine_distance", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L59", + "source_file": "src/data/theme_taxonomy.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_theme_taxonomy_rationale_138", + "target": "src_data_theme_taxonomy_get_place_types_for" }, { - "source": "src_validation_scoring_scorecalculator", - "target": "src_validation_scoring_scorecalculator_calc_efficiency", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L63", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy", + "target": "src_data_theme_taxonomy_get_place_types_for" }, { - "source": "src_validation_scoring_scorecalculator_calc_efficiency", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L63", + "confidence_score": 1.0, + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_taxonomy_testgetplacetypesfor_test_mountain_code_returns_list", + "target": "src_data_theme_taxonomy_get_place_types_for" }, { - "source": "src_validation_scoring_scorecalculator", - "target": "src_validation_scoring_scorecalculator_calc_feasibility", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L79", + "confidence_score": 1.0, + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_taxonomy_testgetplacetypesfor_test_no_code_returns_empty", + "target": "src_data_theme_taxonomy_get_place_types_for" }, { - "source": "src_validation_scoring_scorecalculator_calc_feasibility", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L79", + "source_file": "src/api/router.py", + "source_location": "L30", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_data_tour_api" }, { - "source": "src_validation_scoring_scorecalculator_calc_feasibility", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L79", + "source_file": "src/data/place_resolver.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver", + "target": "src_data_tour_api" }, { - "source": "src_validation_scoring_scorecalculator_calc_feasibility", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "generic_arg", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L79", + "source_file": "src/data/tour_api.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api", + "target": "src_data_tour_api_extract_items" }, { - "source": "src_validation_scoring_scorecalculator", - "target": "src_validation_scoring_scorecalculator_calc_purpose_fit", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L113", + "source_file": "src/data/tour_api.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api", + "target": "src_data_tour_api_parse_usetime" }, { - "source": "src_validation_scoring_scorecalculator_calc_purpose_fit", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L113", + "source_file": "src/data/tour_api.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api", + "target": "src_data_tour_api_tourapiclient" }, { - "source": "src_validation_scoring_scorecalculator_calc_purpose_fit", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L113", + "source_file": "src/data/tour_api.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_rationale_1", + "target": "src_data_tour_api" }, { - "source": "src_validation_scoring_scorecalculator", - "target": "src_validation_scoring_scorecalculator_calc_flow", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L132", + "source_file": "tests/test_tour_api_runtime.py", + "source_location": "L4", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_tour_api_runtime", + "target": "src_data_tour_api" }, { - "source": "src_validation_scoring_scorecalculator_calc_flow", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L132", + "source_file": "src/data/tour_api.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_rationale_21", + "target": "src_data_tour_api_parse_usetime" }, { - "source": "src_validation_scoring_scorecalculator", - "target": "src_validation_scoring_scorecalculator_calc_area_intensity", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", + "source_file": "src/data/tour_api.py", "source_location": "L169", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient_get_operating_hours", + "target": "src_data_tour_api_parse_usetime" }, { - "source": "src_validation_scoring_scorecalculator_calc_area_intensity", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L169", + "source_file": "src/data/tour_api.py", + "source_location": "L30", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_rationale_30", + "target": "src_data_tour_api_extract_items" }, { - "source": "src_validation_scoring_scorecalculator_compute", - "target": "src_validation_scoring_scorecalculator_calc_efficiency", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L37", + "source_file": "src/data/tour_api.py", + "source_location": "L165", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient_get_operating_hours", + "target": "src_data_tour_api_extract_items" }, { - "source": "src_validation_scoring_scorecalculator_compute", - "target": "src_validation_scoring_scorecalculator_calc_feasibility", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L38", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_validation_scoring_scorecalculator_compute", - "target": "src_validation_scoring_scorecalculator_calc_purpose_fit", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L39", + "source_file": "src/data/tour_api.py", + "source_location": "L101", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient_search_poi", + "target": "src_data_tour_api_extract_items" }, { - "source": "src_validation_scoring_scorecalculator_compute", - "target": "src_validation_scoring_scorecalculator_calc_flow", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L40", + "source_file": "src/data/tour_api.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_rationale_41", + "target": "src_data_tour_api_tourapiclient" }, { - "source": "src_validation_scoring_scorecalculator_compute", - "target": "src_validation_scoring_scorecalculator_calc_area_intensity", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L41", + "source_file": "src/data/tour_api.py", + "source_location": "L176", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient", + "target": "src_data_tour_api_tourapiclient_clear_cache" }, { - "source": "src_validation_scoring_scorecalculator_compute", - "target": "src_data_models_scores", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L43", + "source_file": "src/data/tour_api.py", + "source_location": "L142", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient", + "target": "src_data_tour_api_tourapiclient_get_operating_hours" }, { - "source": "src_validation_scoring_scorecalculator_calc_purpose_fit", - "target": "src_validation_scoring_scorecalculator_cosine_distance", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L130", + "source_file": "src/data/tour_api.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient", + "target": "src_data_tour_api_tourapiclient_init" }, { - "source": "src_validation_scoring_rationale_21", - "target": "src_validation_scoring_scorecalculator", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L21", + "source_file": "src/data/tour_api.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient", + "target": "src_data_tour_api_tourapiclient_search_poi" }, { - "source": "src_validation_scoring_rationale_30", - "target": "src_validation_scoring_scorecalculator_compute", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L30", + "source_file": "src/data/tour_api.py", + "source_location": "L133", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient", + "target": "src_data_tour_api_tourapiclient_search_poi_sync" }, { - "source": "src_validation_scoring_rationale_60", - "target": "src_validation_scoring_scorecalculator_cosine_distance", - "relation": "rationale_for", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L60", + "source_file": "src/data/tour_api.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient_from_settings", + "target": "src_data_tour_api_tourapiclient" }, { - "source": "src_validation_scoring_rationale_68", - "target": "src_validation_scoring_scorecalculator_calc_efficiency", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L68", + "source_file": "tests/test_tour_api_runtime.py", + "source_location": "L4", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_tour_api_runtime", + "target": "src_data_tour_api_tourapiclient" }, { - "source": "src_validation_scoring_rationale_87", - "target": "src_validation_scoring_scorecalculator_calc_feasibility", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L87", + "source_file": "tests/test_tour_api_runtime.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_tour_api_runtime_test_search_poi_sync_adapts_async_client", + "target": "src_data_tour_api_tourapiclient" }, { - "source": "src_validation_scoring_rationale_114", - "target": "src_validation_scoring_scorecalculator_calc_purpose_fit", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L114", + "source_file": "src/data/tour_api.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_rationale_66", + "target": "src_data_tour_api_tourapiclient_from_settings" }, { - "source": "src_validation_scoring_rationale_137", - "target": "src_validation_scoring_scorecalculator_calc_flow", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L137", + "source_file": "src/data/tour_api.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_rationale_79", + "target": "src_data_tour_api_tourapiclient_search_poi" }, { - "source": "src_validation_scoring_rationale_170", - "target": "src_validation_scoring_scorecalculator_calc_area_intensity", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L170", + "source_file": "src/data/tour_api.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient_search_poi", + "target": "src_data_tour_api_tourapiclient_get_operating_hours" }, { - "source": "src_validation_vrptw_engine", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L11", + "source_file": "src/data/tour_api.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_tourapiclient_search_poi_sync", + "target": "src_data_tour_api_tourapiclient_search_poi" }, { - "source": "src_validation_vrptw_engine", - "target": "math", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L12", + "source_file": "src/data/tour_api.py", + "source_location": "L139", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_rationale_139", + "target": "src_data_tour_api_tourapiclient_search_poi_sync" }, { - "source": "src_validation_vrptw_engine", - "target": "abc", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L13", + "source_file": "src/data/tour_api.py", + "source_location": "L147", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_tour_api_rationale_147", + "target": "src_data_tour_api_tourapiclient_get_operating_hours" }, { - "source": "src_validation_vrptw_engine", - "target": "dataclasses", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L14", + "source_file": "src/data/wellness_api.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api", + "target": "src_data_wellness_api_extract_items" }, { - "source": "src_validation_vrptw_engine", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L15", + "source_file": "src/data/wellness_api.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api", + "target": "src_data_wellness_api_safe_float" }, { - "source": "src_validation_vrptw_engine", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L16", + "source_file": "src/data/wellness_api.py", + "source_location": "L46", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api", + "target": "src_data_wellness_api_wellnessapiclient" }, { - "source": "src_validation_vrptw_engine", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", + "source_file": "src/data/wellness_api.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api", + "target": "src_data_wellness_api_wellnessplace" }, { - "source": "src_validation_vrptw_engine", - "target": "ortools_constraint_solver", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L45", + "source_file": "src/data/wellness_api.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_rationale_1", + "target": "src_data_wellness_api" }, { - "source": "src_validation_vrptw_engine", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L55", + "source_file": "src/data/wellness_api.py", + "source_location": "L120", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_wellnessapiclient_fetch_all", + "target": "src_data_wellness_api_wellnessplace" }, { - "source": "src_validation_vrptw_engine_timematrix", - "target": "abc", - "relation": "inherits", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L55", + "source_file": "src/data/wellness_api.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_wellnessapiclient_fetch_page", + "target": "src_data_wellness_api_wellnessplace" }, { - "source": "src_validation_vrptw_engine_timematrix", - "target": "src_validation_vrptw_engine_timematrix_get_travel_time", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L59", + "source_file": "src/data/wellness_api.py", + "source_location": "L95", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_wellnessapiclient_fetch_page", + "target": "src_data_wellness_api_extract_items" }, { - "source": "src_validation_vrptw_engine_timematrix_get_travel_time", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L59", + "source_file": "src/data/wellness_api.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_wellnessapiclient_fetch_page", + "target": "src_data_wellness_api_safe_float" }, { - "source": "src_validation_vrptw_engine", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L63", + "source_file": "src/data/wellness_api.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_rationale_47", + "target": "src_data_wellness_api_wellnessapiclient" }, { - "source": "src_validation_vrptw_engine_haversinematrix", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "inherits", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L63", + "source_file": "src/data/wellness_api.py", + "source_location": "L120", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_wellnessapiclient", + "target": "src_data_wellness_api_wellnessapiclient_fetch_all" }, { - "source": "src_validation_vrptw_engine_haversinematrix", - "target": "src_validation_vrptw_engine_haversinematrix_effective_speed", "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L80", + "source_file": "src/data/wellness_api.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_wellnessapiclient", + "target": "src_data_wellness_api_wellnessapiclient_fetch_page" }, { - "source": "src_validation_vrptw_engine_haversinematrix", - "target": "src_validation_vrptw_engine_haversinematrix_get_travel_time", "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L86", + "source_file": "src/data/wellness_api.py", + "source_location": "L52", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_wellnessapiclient", + "target": "src_data_wellness_api_wellnessapiclient_init" }, { - "source": "src_validation_vrptw_engine_haversinematrix_get_travel_time", - "target": "src_data_models_vrptwplace", "relation": "references", - "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L86", + "source_file": "src/data/wellness_api.py", + "source_location": "L59", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_wellness_api_wellnessapiclient_from_settings", + "target": "src_data_wellness_api_wellnessapiclient" }, { - "source": "src_validation_vrptw_engine", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L91", + "source_file": "src/data/wellness_api.py", + "source_location": "L125", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_wellnessapiclient_fetch_all", + "target": "src_data_wellness_api_wellnessapiclient_fetch_page" }, { - "source": "src_validation_vrptw_engine_cachedroutematrix", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "inherits", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L91", + "source_file": "src/data/wellness_api.py", + "source_location": "L121", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_wellness_api_rationale_121", + "target": "src_data_wellness_api_wellnessapiclient_fetch_all" }, { - "source": "src_validation_vrptw_engine_cachedroutematrix", - "target": "src_validation_vrptw_engine_cachedroutematrix_init", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L98", + "source_file": "src/explain/explain_engine.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_cachedroutematrix", - "target": "src_validation_vrptw_engine_cachedroutematrix_from_file", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L112", + "source_file": "src/explain/explain_engine.py", + "source_location": "L174", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_explain_explain_engine_cache_key" }, { - "source": "src_validation_vrptw_engine_cachedroutematrix_from_file", - "target": "src_validation_vrptw_engine_py_path", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L112", + "source_file": "src/explain/explain_engine.py", + "source_location": "L444", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_vrptw_engine_cachedroutematrix", - "target": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L117", + "source_file": "src/explain/explain_engine.py", + "source_location": "L373", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "parameter_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L117", + "source_file": "src/explain/explain_engine.py", + "source_location": "L215", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_explain_explain_engine_find_alternatives" }, { - "source": "src_validation_vrptw_engine", - "target": "src_validation_vrptw_engine_haversine_m", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L130", + "source_file": "src/explain/explain_engine.py", + "source_location": "L197", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_explain_explain_engine_graph_context" }, { - "source": "src_validation_vrptw_engine", - "target": "src_validation_vrptw_engine_simresult", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L144", + "source_file": "src/explain/explain_engine.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_explain_explain_engine_lrucache" }, { - "source": "src_validation_vrptw_engine", - "target": "src_validation_vrptw_engine_minutes_to_hhmm", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L151", + "source_file": "src/explain/explain_engine.py", + "source_location": "L349", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine", + "target": "src_explain_explain_engine_parse_llm_response" }, { - "source": "src_validation_vrptw_engine", - "target": "src_validation_vrptw_engine_simulate_day", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L156", + "source_file": "src/explain/explain_engine.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_rationale_1", + "target": "src_explain_explain_engine" }, { - "source": "src_validation_vrptw_engine_simulate_day", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "generic_arg", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L156", + "source_file": "src/explain/pipeline.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_explain_explain_engine" }, { - "source": "src_validation_vrptw_engine_simulate_day", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "references", - "context": "parameter_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L156", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_explain_explain_engine" }, { - "source": "src_validation_vrptw_engine_simulate_day", - "target": "src_validation_vrptw_engine_simresult", - "relation": "references", - "context": "return_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L156", + "source_file": "src/explain/explain_engine.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_lrucache", + "target": "src_explain_explain_engine_lrucache_clear" }, { - "source": "src_validation_vrptw_engine", - "target": "src_validation_vrptw_engine_compute_day_total_minutes", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L216", + "source_file": "src/explain/explain_engine.py", + "source_location": "L54", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_lrucache", + "target": "src_explain_explain_engine_lrucache_contains" }, { - "source": "src_validation_vrptw_engine_compute_day_total_minutes", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "generic_arg", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L216", + "source_file": "src/explain/explain_engine.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_lrucache", + "target": "src_explain_explain_engine_lrucache_getitem" }, { - "source": "src_validation_vrptw_engine_compute_day_total_minutes", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "references", - "context": "parameter_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L216", + "source_file": "src/explain/explain_engine.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_lrucache", + "target": "src_explain_explain_engine_lrucache_init" }, { - "source": "src_validation_vrptw_engine", - "target": "src_validation_vrptw_engine_solve_vrptw_ortools", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L244", + "source_file": "src/explain/explain_engine.py", + "source_location": "L61", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_lrucache", + "target": "src_explain_explain_engine_lrucache_setitem" }, { - "source": "src_validation_vrptw_engine_solve_vrptw_ortools", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "generic_arg", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L244", + "source_file": "src/explain/explain_engine.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_rationale_48", + "target": "src_explain_explain_engine_lrucache" }, { - "source": "src_validation_vrptw_engine_solve_vrptw_ortools", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L244", + "source_file": "src/explain/explain_engine.py", + "source_location": "L547", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_generate", + "target": "src_explain_explain_engine_cache_key" }, { - "source": "src_validation_vrptw_engine", - "target": "src_validation_vrptw_engine_check_depot_constraints", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L317", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_explain_explain_engine_cache_key" }, { - "source": "src_validation_vrptw_engine_check_depot_constraints", - "target": "src_data_models_vrptwday", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L317", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testcachekey_test_different_day_index_different_key", + "target": "src_explain_explain_engine_cache_key" }, { - "source": "src_validation_vrptw_engine_check_depot_constraints", - "target": "src_data_models_deepdiveitem", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L317", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testcachekey_test_different_score_different_key", + "target": "src_explain_explain_engine_cache_key" }, { - "source": "src_validation_vrptw_engine", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L378", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L111", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testcachekey_test_empty_inputs", + "target": "src_explain_explain_engine_cache_key" }, { - "source": "src_validation_vrptw_engine_vrptwengine", - "target": "src_validation_vrptw_engine_vrptwengine_init", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L385", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testcachekey_test_same_inputs_same_key", + "target": "src_explain_explain_engine_cache_key" }, { - "source": "src_validation_vrptw_engine_vrptwengine_init", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L385", + "source_file": "src/explain/explain_engine.py", + "source_location": "L246", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_build_user_prompt", + "target": "src_explain_explain_engine_graph_context" }, { - "source": "src_validation_vrptw_engine_vrptwengine", - "target": "src_validation_vrptw_engine_vrptwengine_validate", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L396", + "source_file": "src/explain/explain_engine.py", + "source_location": "L198", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_rationale_198", + "target": "src_explain_explain_engine_graph_context" }, { - "source": "src_validation_vrptw_engine_vrptwengine_validate", - "target": "src_data_models_vrptwrequest", - "relation": "references", - "context": "parameter_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L396", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_explain_explain_engine_graph_context" }, { - "source": "src_validation_vrptw_engine_vrptwengine_validate", - "target": "src_data_models_vrptwresult", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L396", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testgraphcontext_test_disabled_graph_returns_none", + "target": "src_explain_explain_engine_graph_context" }, { - "source": "src_validation_vrptw_engine_vrptwengine", - "target": "src_validation_vrptw_engine_vrptwengine_compute_risk_score", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L494", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L135", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testgraphcontext_test_empty_poi_name_returns_none", + "target": "src_explain_explain_engine_graph_context" }, { - "source": "src_validation_vrptw_engine_vrptwengine_compute_risk_score", - "target": "src_data_models_deepdiveitem", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L494", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L148", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testgraphcontext_test_match_includes_nearby_alternatives", + "target": "src_explain_explain_engine_graph_context" }, { - "source": "src_validation_vrptw_engine_vrptwengine_compute_risk_score", - "target": "src_data_models_vrptwday", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L494", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testgraphcontext_test_match_includes_region_and_category", + "target": "src_explain_explain_engine_graph_context" }, { - "source": "src_validation_vrptw_engine_haversinematrix_get_travel_time", - "target": "src_validation_vrptw_engine_haversine_m", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L87", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testgraphcontext_test_no_match_returns_none", + "target": "src_explain_explain_engine_graph_context" }, { - "source": "src_validation_vrptw_engine_haversinematrix_get_travel_time", - "target": "src_validation_vrptw_engine_haversinematrix_effective_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L88", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testgraphcontext_test_no_nearby_omits_key", + "target": "src_explain_explain_engine_graph_context" }, { - "source": "src_validation_vrptw_engine_cachedroutematrix_init", - "target": "src_validation_vrptw_engine_haversinematrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L109", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L129", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testgraphcontext_test_none_graph_returns_none", + "target": "src_explain_explain_engine_graph_context" }, { - "source": "src_validation_vrptw_engine_simulate_day", - "target": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L172", + "source_file": "src/explain/explain_engine.py", + "source_location": "L478", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_build_alternatives", + "target": "src_explain_explain_engine_find_alternatives" }, { - "source": "src_validation_vrptw_engine_simulate_day", - "target": "src_data_models_deepdiveitem", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L180", + "source_file": "src/explain/explain_engine.py", + "source_location": "L216", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_rationale_216", + "target": "src_explain_explain_engine_find_alternatives" }, { - "source": "src_validation_vrptw_engine_simulate_day", - "target": "src_validation_vrptw_engine_minutes_to_hhmm", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L182", + "source_file": "src/explain/explain_engine.py", + "source_location": "L576", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_call_llm", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_simulate_day", - "target": "src_validation_vrptw_engine_simresult", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L209", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_compute_day_total_minutes", - "target": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L231", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_contains_plan_info", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_solve_vrptw_ortools", - "target": "src_validation_vrptw_engine_simulate_day", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L253", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L211", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_hard_fail", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_solve_vrptw_ortools", - "target": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L257", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L218", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_warning", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_check_depot_constraints", - "target": "src_data_models_deepdiveitem", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L339", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L191", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_vrptwengine_init", - "target": "src_validation_vrptw_engine_haversinematrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L390", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L169", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_hard_fail_in_prompt", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_vrptwengine_validate", - "target": "src_validation_vrptw_engine_check_depot_constraints", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L403", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L224", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_vrptwengine_validate", - "target": "src_validation_vrptw_engine_simulate_day", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L414", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L205", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_no_graph_omits_evidence_key", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_vrptwengine_validate", - "target": "src_validation_vrptw_engine_compute_day_total_minutes", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L419", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L186", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_overall_item_present", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_vrptwengine_validate", - "target": "src_data_models_deepdiveitem", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L422", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L178", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_penalty_in_prompt", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_vrptwengine_validate", - "target": "src_validation_vrptw_engine_solve_vrptw_ortools", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L437", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L182", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_scores_included_when_provided", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_vrptwengine_validate", - "target": "src_validation_vrptw_engine_vrptwengine_compute_risk_score", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L472", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L232", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_vrptwengine_validate", - "target": "src_data_models_vrptwresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L483", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L174", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_in_prompt", + "target": "src_explain_explain_engine_build_user_prompt" }, { - "source": "src_validation_vrptw_engine_vrptwengine_compute_risk_score", - "target": "src_validation_vrptw_engine_compute_day_total_minutes", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L518", + "source_file": "src/explain/explain_engine.py", + "source_location": "L602", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_call_llm", + "target": "src_explain_explain_engine_parse_llm_response" }, { - "source": "src_validation_vrptw_engine_rationale_1", - "target": "src_validation_vrptw_engine", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L1", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_explain_explain_engine_parse_llm_response" }, { - "source": "src_validation_vrptw_engine_rationale_56", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L56", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L321", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testparsellmresponse_test_day_index_echoed_back", + "target": "src_explain_explain_engine_parse_llm_response" }, { - "source": "src_validation_vrptw_engine_rationale_60", - "target": "src_validation_vrptw_engine_timematrix_get_travel_time", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L60", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L337", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testparsellmresponse_test_missing_day_index_defaults_to_none", + "target": "src_explain_explain_engine_parse_llm_response" }, { - "source": "src_validation_vrptw_engine_rationale_64", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L64", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L288", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testparsellmresponse_test_multiple_items", + "target": "src_explain_explain_engine_parse_llm_response" }, { - "source": "src_validation_vrptw_engine_rationale_92", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L92", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L256", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testparsellmresponse_test_parses_valid_json_array", + "target": "src_explain_explain_engine_parse_llm_response" }, { - "source": "src_validation_vrptw_engine_rationale_145", - "target": "src_validation_vrptw_engine_simresult", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L145", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L304", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testparsellmresponse_test_returns_explanation_items", + "target": "src_explain_explain_engine_parse_llm_response" }, { - "source": "src_validation_vrptw_engine_rationale_161", - "target": "src_validation_vrptw_engine_simulate_day", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L161", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L263", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testparsellmresponse_test_strips_code_block_wrapper", + "target": "src_explain_explain_engine_parse_llm_response" }, { - "source": "src_validation_vrptw_engine_rationale_221", - "target": "src_validation_vrptw_engine_compute_day_total_minutes", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L221", + "source_file": "src/explain/explain_engine.py", + "source_location": "L544", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_generate", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_vrptw_engine_rationale_249", - "target": "src_validation_vrptw_engine_solve_vrptw_ortools", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L249", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_vrptw_engine_rationale_320", - "target": "src_validation_vrptw_engine_check_depot_constraints", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L320", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L373", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testfallback_test_always_has_overall_item", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_vrptw_engine_rationale_379", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L379", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L378", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testfallback_test_failed_overall_is_critical", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_warning", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L4", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L348", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testfallback_test_hard_fail_becomes_critical", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_warning", - "target": "src_data_party_config", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L5", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L390", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testfallback_test_hard_fail_day_index_propagated_and_prefixed", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_warning", - "target": "src_utils_geo", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L6", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L358", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testfallback_test_large_penalty_is_critical", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_warning", - "target": "src_validation_warning_cosine_distance", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L28", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L404", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testfallback_test_no_day_index_no_prefix", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_warning", - "target": "src_validation_warning_warningdetector", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L39", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L383", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testfallback_test_passed_overall_is_ok", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_warning_warningdetector", - "target": "src_validation_warning_warningdetector_detect", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L51", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L363", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testfallback_test_small_penalty_is_warning", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_warning_warningdetector_detect", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L51", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L353", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testfallback_test_warning_becomes_warning", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_warning_warningdetector_detect", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L51", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L398", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testfallback_test_warning_day_index_propagated_and_prefixed", + "target": "src_explain_explain_engine_fallback" }, { - "source": "src_validation_warning_warningdetector_detect", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L51", + "source_file": "src/explain/explain_engine.py", + "source_location": "L472", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine", + "target": "src_explain_explain_engine_explainengine_build_alternatives" }, { - "source": "src_validation_warning_warningdetector", - "target": "src_validation_warning_warningdetector_check_dense_schedule", "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L73", + "source_file": "src/explain/explain_engine.py", + "source_location": "L566", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine", + "target": "src_explain_explain_engine_explainengine_call_llm" }, { - "source": "src_validation_warning_warningdetector_check_dense_schedule", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L73", + "source_file": "src/explain/explain_engine.py", + "source_location": "L483", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine", + "target": "src_explain_explain_engine_explainengine_generate" }, { - "source": "src_validation_warning_warningdetector_check_dense_schedule", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L73", + "source_file": "src/explain/explain_engine.py", + "source_location": "L447", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine", + "target": "src_explain_explain_engine_explainengine_init" }, { - "source": "src_validation_warning_warningdetector_check_dense_schedule", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L73", + "source_file": "src/explain/explain_engine.py", + "source_location": "L469", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine", + "target": "src_explain_explain_engine_explainengine_is_available" }, { - "source": "src_validation_warning_warningdetector", - "target": "src_validation_warning_warningdetector_check_inefficient_route", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L100", + "source_file": "src/explain/explain_engine.py", + "source_location": "L445", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_rationale_445", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_inefficient_route", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L100", + "source_file": "src/explain/pipeline.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_inefficient_route", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L100", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L38", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector", - "target": "src_validation_warning_warningdetector_check_physical_strain", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L124", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L38", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_physical_strain", - "target": "src_data_models_itineraryplan", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L124", + "source_file": "src/explain/pipeline.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_init", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_physical_strain", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L124", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_physical_strain", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L124", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "src_validation_warning_warningdetector", - "target": "src_validation_warning_warningdetector_check_purpose_mismatch", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L145", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_purpose_mismatch", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L145", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L630", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuildalternatives_test_disabled_graph_returns_empty", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_purpose_mismatch", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L145", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L667", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuildalternatives_test_duplicate_poi_name_only_looked_up_once", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_purpose_mismatch", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L145", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L636", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuildalternatives_test_hard_fail_without_poi_name_skipped", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector", - "target": "src_validation_warning_warningdetector_check_cumulative_fatigue", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L176", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L642", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuildalternatives_test_match_returns_alternatives_keyed_by_poi_name", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "parameter_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L176", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L626", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuildalternatives_test_no_hard_fails_returns_empty", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L176", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L650", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuildalternatives_test_no_nearby_omits_poi", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L176", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L660", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testbuildalternatives_test_no_search_match_omits_poi", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector", - "target": "src_validation_warning_warningdetector_check_area_revisit", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L240", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_area_revisit", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L240", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testcachekey", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_area_revisit", - "target": "src_data_models_warning", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L240", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginegraphdefault", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_detect", - "target": "src_validation_warning_warningdetector_check_dense_schedule", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L61", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L615", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testexplainenginegraphdefault_test_default_graph_uses_local_catalog_without_neo4j", + "target": "src_explain_explain_engine_explainengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_detect", - "target": "src_validation_warning_warningdetector_check_inefficient_route", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L62", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L570", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_detect", - "target": "src_validation_warning_warningdetector_check_physical_strain", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L63", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L598", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_detect", - "target": "src_validation_warning_warningdetector_check_purpose_mismatch", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L64", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L579", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testexplainenginemockllm_test_is_available_with_client", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_detect", - "target": "src_validation_warning_warningdetector_check_area_revisit", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L65", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L541", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_failure_falls_back_gracefully", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_dense_schedule", - "target": "src_data_models_warning", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L91", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L525", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available", + "target": "src_explain_explain_engine_explainengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_inefficient_route", - "target": "src_data_models_warning", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L115", + "confidence_score": 1.0, + "source_file": "tests/test_explain_engine.py", + "source_location": "L418", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testexplainenginenollm_setup_method", + "target": "src_explain_explain_engine_explainengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testfallback", + "target": "src_explain_explain_engine_explainengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "src_explain_explain_engine_explainengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L19", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "src_explain_explain_engine_explainengine" }, { - "source": "src_validation_warning_warningdetector_check_physical_strain", - "target": "src_data_models_warning", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L136", + "source_file": "src/explain/explain_engine.py", + "source_location": "L543", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_generate", + "target": "src_explain_explain_engine_explainengine_is_available" }, { - "source": "src_validation_warning_warningdetector_check_purpose_mismatch", - "target": "src_validation_warning_cosine_distance", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L163", + "source_file": "src/explain/explain_engine.py", + "source_location": "L473", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_rationale_473", + "target": "src_explain_explain_engine_explainengine_build_alternatives" }, { - "source": "src_validation_warning_warningdetector_check_purpose_mismatch", - "target": "src_data_models_warning", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L167", + "source_file": "src/explain/explain_engine.py", + "source_location": "L552", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_explain_engine_explainengine_generate", + "target": "src_explain_explain_engine_explainengine_call_llm" }, { - "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", - "target": "src_data_models_warning", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L211", + "source_file": "src/api/router.py", + "source_location": "L31", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_explain_pipeline" }, { - "source": "src_validation_warning_warningdetector_check_area_revisit", - "target": "src_data_models_warning", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L257", + "source_file": "src/explain/pipeline.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_explain_pipeline_scorebundle" }, { - "source": "src_validation_warning_rationale_1", - "target": "src_validation_warning", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L1", + "source_file": "src/explain/pipeline.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_explain_pipeline_to_poi_with_category" }, { - "source": "src_validation_warning_rationale_40", - "target": "src_validation_warning_warningdetector", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L40", + "source_file": "src/explain/pipeline.py", + "source_location": "L55", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_explain_pipeline_to_vrptw_day" }, { - "source": "src_validation_warning_rationale_58", - "target": "src_validation_warning_warningdetector_detect", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L58", + "source_file": "src/explain/pipeline.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "src_validation_warning_rationale_182", - "target": "src_validation_warning_warningdetector_check_cumulative_fatigue", - "relation": "rationale_for", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L182", + "source_file": "src/explain/pipeline.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_explain_repair" }, { - "source": "tests_conftest", - "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/conftest.py", - "source_location": "L7", + "source_file": "src/explain/pipeline.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_explain_repair_repairengine" }, { - "source": "tests_conftest_clean_anthropic_api_key", - "target": "tests_conftest_py_fixture", - "relation": "references", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/conftest.py", - "source_location": "L10", + "source_file": "src/explain/pipeline.py", + "source_location": "L39", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_explain_repair_repairresult" }, { - "source": "tests_conftest", - "target": "tests_conftest_clean_anthropic_api_key", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/conftest.py", - "source_location": "L11", + "source_file": "src/explain/pipeline.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_bonus_engine" }, { - "source": "tests_conftest_rationale_1", - "target": "tests_conftest", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/conftest.py", - "source_location": "L1", + "source_file": "src/explain/pipeline.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_alternatives", - "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L4", + "source_file": "src/explain/pipeline.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_bonus_engine_bonusresult" }, { - "source": "tests_test_alternatives", - "target": "src_data_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L6", + "source_file": "src/explain/pipeline.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_cluster_dispersion" }, { - "source": "tests_test_alternatives", - "target": "src_validation_alternatives", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L7", + "source_file": "src/explain/pipeline.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "tests_test_alternatives", - "target": "tests_test_alternatives_poi", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L10", + "source_file": "src/explain/pipeline.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_reward_engine" }, { - "source": "tests_test_alternatives", - "target": "tests_test_alternatives_hardfail", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L29", + "source_file": "src/explain/pipeline.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_alternatives", - "target": "tests_test_alternatives_testfindalternatives", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L39", + "source_file": "src/explain/pipeline.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_theme_alignment" }, { - "source": "tests_test_alternatives_testfindalternatives", - "target": "tests_test_alternatives_testfindalternatives_test_returns_nearby_same_category", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L40", + "source_file": "src/explain/pipeline.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_alternatives_testfindalternatives", - "target": "tests_test_alternatives_testfindalternatives_test_excludes_failed_poi_itself", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L50", + "source_file": "src/explain/pipeline.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_alternatives_testfindalternatives", - "target": "tests_test_alternatives_testfindalternatives_test_respects_max_alternatives", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L57", + "source_file": "src/explain/pipeline.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_travel_ratio" }, { - "source": "tests_test_alternatives_testfindalternatives", - "target": "tests_test_alternatives_testfindalternatives_test_respects_search_radius", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L64", + "source_file": "src/explain/pipeline.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_scoring_travel_ratio_evaluate_travel_ratio" }, { - "source": "tests_test_alternatives_testfindalternatives", - "target": "tests_test_alternatives_testfindalternatives_test_distance_km_is_correct", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L72", + "source_file": "src/explain/pipeline.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_validation_hard_fail" }, { - "source": "tests_test_alternatives_testfindalternatives", - "target": "tests_test_alternatives_testfindalternatives_test_same_category_sorted_before_different", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L80", + "source_file": "src/explain/pipeline.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_alternatives", - "target": "tests_test_alternatives_testbuildalternativesmap", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L91", + "source_file": "src/explain/pipeline.py", + "source_location": "L46", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_validation_scoring" }, { - "source": "tests_test_alternatives_testbuildalternativesmap", - "target": "tests_test_alternatives_testbuildalternativesmap_test_maps_failed_poi_to_alternatives", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L92", + "source_file": "src/explain/pipeline.py", + "source_location": "L46", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_alternatives_testbuildalternativesmap", - "target": "tests_test_alternatives_testbuildalternativesmap_test_default_no_substitution", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L102", + "source_file": "src/explain/pipeline.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_validation_vrptw_engine" }, { - "source": "tests_test_alternatives_testbuildalternativesmap", - "target": "tests_test_alternatives_testbuildalternativesmap_test_skips_none_poi_name", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L110", + "source_file": "src/explain/pipeline.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_alternatives_testbuildalternativesmap", - "target": "tests_test_alternatives_testbuildalternativesmap_test_no_duplicate_keys", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L116", + "source_file": "src/explain/pipeline.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_alternatives_testbuildalternativesmap", - "target": "tests_test_alternatives_testbuildalternativesmap_test_excludes_plan_pois_from_alternatives", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L123", + "source_file": "src/explain/pipeline.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_validation_warning" }, { - "source": "tests_test_alternatives_testfindalternatives_test_returns_nearby_same_category", - "target": "tests_test_alternatives_poi", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L42", + "source_file": "src/explain/pipeline.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_alternatives_testfindalternatives_test_excludes_failed_poi_itself", - "target": "tests_test_alternatives_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L51", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_alternatives_testfindalternatives_test_respects_max_alternatives", - "target": "tests_test_alternatives_poi", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L58", + "source_file": "src/explain/pipeline.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_rationale_1", + "target": "src_explain_pipeline" }, { - "source": "tests_test_alternatives_testfindalternatives_test_respects_search_radius", - "target": "tests_test_alternatives_poi", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L65", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_explain_pipeline" }, { - "source": "tests_test_alternatives_testfindalternatives_test_distance_km_is_correct", - "target": "tests_test_alternatives_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L73", + "source_file": "src/explain/pipeline.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_rationale_56", + "target": "src_explain_pipeline_to_vrptw_day" }, { - "source": "tests_test_alternatives_testfindalternatives_test_same_category_sorted_before_different", - "target": "tests_test_alternatives_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L82", + "source_file": "src/explain/pipeline.py", + "source_location": "L303", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_explain_pipeline_to_vrptw_day" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_maps_failed_poi_to_alternatives", - "target": "tests_test_alternatives_poi", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L93", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_explain_pipeline_to_vrptw_day" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_maps_failed_poi_to_alternatives", - "target": "tests_test_alternatives_hardfail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L96", + "confidence_score": 1.0, + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_pipeline_orchestrator_testtovrptwday_test_converts_poi_fields", + "target": "src_explain_pipeline_to_vrptw_day" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_default_no_substitution", - "target": "tests_test_alternatives_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L103", + "confidence_score": 1.0, + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_pipeline_orchestrator_testtovrptwday_test_is_depot_false", + "target": "src_explain_pipeline_to_vrptw_day" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_default_no_substitution", - "target": "tests_test_alternatives_hardfail", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L106", + "source_file": "src/explain/pipeline.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_to_poi_with_category", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_skips_none_poi_name", - "target": "tests_test_alternatives_hardfail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L112", + "source_file": "src/explain/pipeline.py", + "source_location": "L339", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_explain_pipeline_to_poi_with_category" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_no_duplicate_keys", - "target": "tests_test_alternatives_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L117", + "source_file": "src/explain/pipeline.py", + "source_location": "L86", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_rationale_86", + "target": "src_explain_pipeline_scorebundle" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_no_duplicate_keys", - "target": "tests_test_alternatives_hardfail", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L119", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L39", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_explain_repair_repairengine" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_excludes_plan_pois_from_alternatives", - "target": "tests_test_alternatives_poi", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L124", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L39", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_explain_repair_repairresult" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_excludes_plan_pois_from_alternatives", - "target": "tests_test_alternatives_hardfail", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L126", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L40", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_alternatives_rationale_1", - "target": "tests_test_alternatives", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L40", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_scoring_bonus_engine_bonusresult" }, { - "source": "tests_test_bonus_engine", - "target": "json", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L4", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L43", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_bonus_engine", - "target": "tempfile", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L5", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L43", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_bonus_engine", - "target": "pathlib", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L6", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L45", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_bonus_engine", - "target": "pytest", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L8", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L46", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_bonus_engine", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L10", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L47", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_bonus_engine", - "target": "src_scoring_bonus_engine", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L11", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L47", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_bonus_engine", - "target": "tests_test_bonus_engine_make_poi", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L22", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L48", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_scorebundle", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_bonus_engine_make_poi", - "target": "src_data_models_poi", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L22", + "source_file": "src/explain/pipeline.py", + "source_location": "L251", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_explain_pipeline_scorebundle" }, { - "source": "tests_test_bonus_engine", - "target": "tests_test_bonus_engine_make_engine", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L34", + "source_file": "src/explain/pipeline.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_rationale_104", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine_make_engine", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "references", - "context": "return_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L34", + "source_file": "src/explain/pipeline.py", + "source_location": "L375", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_explain_pipeline_validatorpipeline_estimate_repair_gains" }, { - "source": "tests_test_bonus_engine", - "target": "tests_test_bonus_engine_testwellnessbonus", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L47", + "source_file": "src/explain/pipeline.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_explain_pipeline_validatorpipeline_init" }, { - "source": "tests_test_bonus_engine_testwellnessbonus", - "target": "tests_test_bonus_engine_testwellnessbonus_test_no_wellness_data_gives_zero", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L48", + "source_file": "src/explain/pipeline.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_explain_pipeline_validatorpipeline_run" }, { - "source": "tests_test_bonus_engine_testwellnessbonus", - "target": "tests_test_bonus_engine_testwellnessbonus_test_matching_poi_gives_bonus", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L54", + "source_file": "src/explain/pipeline.py", + "source_location": "L251", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_explain_pipeline_validatorpipeline_score" }, { - "source": "tests_test_bonus_engine_testwellnessbonus", - "target": "tests_test_bonus_engine_testwellnessbonus_test_two_matching_pois_give_double_bonus", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L60", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L39", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_explain_repair_repairengine" }, { - "source": "tests_test_bonus_engine_testwellnessbonus", - "target": "tests_test_bonus_engine_testwellnessbonus_test_wellness_bonus_capped", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L69", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L39", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_explain_repair_repairresult" }, { - "source": "tests_test_bonus_engine_testwellnessbonus", - "target": "tests_test_bonus_engine_testwellnessbonus_test_non_matching_poi_no_bonus", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L77", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L40", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_bonus_engine_testwellnessbonus", - "target": "tests_test_bonus_engine_testwellnessbonus_test_wellness_applies_to_all_party_types", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L83", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L40", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_scoring_bonus_engine_bonusresult" }, { - "source": "tests_test_bonus_engine", - "target": "tests_test_bonus_engine_testaccessibilitybonus", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L95", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L43", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_bonus_engine_testaccessibilitybonus", - "target": "tests_test_bonus_engine_testaccessibilitybonus_test_accessible_party_gets_bonus", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L96", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L43", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_bonus_engine_testaccessibilitybonus", - "target": "tests_test_bonus_engine_testaccessibilitybonus_test_non_accessible_party_no_bonus", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L103", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L45", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_bonus_engine_testaccessibilitybonus", - "target": "tests_test_bonus_engine_testaccessibilitybonus_test_accessibility_bonus_capped", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L110", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L46", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_bonus_engine", - "target": "tests_test_bonus_engine_testpetfriendlybonus", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L122", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L47", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus", - "target": "tests_test_bonus_engine_testpetfriendlybonus_test_disabled_gives_zero_even_if_matched", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L123", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L47", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus", - "target": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_and_flagged_gives_bonus", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L129", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/pipeline.py", + "source_location": "L48", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_pipeline_validatorpipeline", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus", - "target": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_but_not_flagged_no_bonus_no_penalty", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L135", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus", - "target": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_bonus_capped", - "relation": "method", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L142", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_pipeline", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus", - "target": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_matched_names_populated", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L148", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine", - "target": "tests_test_bonus_engine_testtotalbonuscap", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L159", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine_testtotalbonuscap", - "target": "tests_test_bonus_engine_testtotalbonuscap_test_combined_bonus_capped_at_cap", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L160", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L280", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine_testtotalbonuscap", - "target": "tests_test_bonus_engine_testtotalbonuscap_test_total_is_sum_when_under_cap", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L167", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L269", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine", - "target": "tests_test_bonus_engine_testfromdataset", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L187", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L306", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine_testfromdataset", - "target": "tests_test_bonus_engine_testfromdataset_test_missing_files_give_empty_engine", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L188", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine_testfromdataset", - "target": "tests_test_bonus_engine_testfromdataset_test_loads_from_json_files", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L197", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L226", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine_testfromdataset", - "target": "tests_test_bonus_engine_testfromdataset_test_zero_coords_skipped", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L211", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine", - "target": "tests_test_bonus_engine_testbonusresultfields", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L227", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", + "target": "src_explain_pipeline_validatorpipeline" }, { - "source": "tests_test_bonus_engine_testbonusresultfields", - "target": "tests_test_bonus_engine_testbonusresultfields_test_matched_names_populated", - "relation": "method", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "src_explain_pipeline_validatorpipeline" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L17", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testtovrptwday", + "target": "src_explain_pipeline_validatorpipeline" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L228", + "confidence_score": 1.0, + "source_file": "src/explain/pipeline.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_pipeline_validatorpipeline_init", + "target": "src_explain_repair_repairengine" }, { - "source": "tests_test_bonus_engine_testbonusresultfields", - "target": "tests_test_bonus_engine_testbonusresultfields_test_no_match_empty_lists", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L234", + "source_file": "src/explain/pipeline.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_init", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_bonus_engine_make_poi", - "target": "src_data_models_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L25", + "confidence_score": 1.0, + "source_file": "src/explain/pipeline.py", + "source_location": "L116", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_pipeline_validatorpipeline_init", + "target": "src_scoring_bonus_engine_bonusengine_from_dataset" }, { - "source": "tests_test_bonus_engine_make_engine", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L40", + "source_file": "src/explain/pipeline.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_init", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_no_wellness_data_gives_zero", - "target": "tests_test_bonus_engine_make_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L49", + "confidence_score": 1.0, + "source_file": "src/explain/pipeline.py", + "source_location": "L112", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_pipeline_validatorpipeline_init", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_no_wellness_data_gives_zero", - "target": "tests_test_bonus_engine_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L50", + "confidence_score": 1.0, + "source_file": "src/explain/pipeline.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_pipeline_validatorpipeline_init", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_matching_poi_gives_bonus", - "target": "tests_test_bonus_engine_make_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L55", + "confidence_score": 1.0, + "source_file": "src/explain/pipeline.py", + "source_location": "L113", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_pipeline_validatorpipeline_init", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_matching_poi_gives_bonus", - "target": "tests_test_bonus_engine_make_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L56", + "source_file": "src/explain/pipeline.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_rationale_132", + "target": "src_explain_pipeline_validatorpipeline_run" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_two_matching_pois_give_double_bonus", - "target": "tests_test_bonus_engine_make_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L61", + "source_file": "src/explain/pipeline.py", + "source_location": "L207", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_run", + "target": "src_explain_pipeline_validatorpipeline_estimate_repair_gains" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_two_matching_pois_give_double_bonus", - "target": "tests_test_bonus_engine_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L63", + "source_file": "src/explain/pipeline.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_run", + "target": "src_explain_pipeline_validatorpipeline_score" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_wellness_bonus_capped", - "target": "tests_test_bonus_engine_make_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L72", + "confidence_score": 1.0, + "source_file": "src/explain/pipeline.py", + "source_location": "L171", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_pipeline_validatorpipeline_run", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_wellness_bonus_capped", - "target": "tests_test_bonus_engine_make_poi", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L73", + "source_file": "src/explain/pipeline.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_run", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_non_matching_poi_no_bonus", - "target": "tests_test_bonus_engine_make_engine", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L78", + "source_file": "src/explain/pipeline.py", + "source_location": "L261", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_rationale_261", + "target": "src_explain_pipeline_validatorpipeline_score" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_non_matching_poi_no_bonus", - "target": "tests_test_bonus_engine_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L79", + "source_file": "src/explain/pipeline.py", + "source_location": "L392", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", + "target": "src_explain_pipeline_validatorpipeline_score" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_wellness_applies_to_all_party_types", - "target": "tests_test_bonus_engine_make_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L84", + "confidence_score": 1.0, + "source_file": "src/explain/pipeline.py", + "source_location": "L325", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "tests_test_bonus_engine_testwellnessbonus_test_wellness_applies_to_all_party_types", - "target": "tests_test_bonus_engine_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L85", + "confidence_score": 1.0, + "source_file": "src/explain/pipeline.py", + "source_location": "L332", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_scoring_travel_ratio_evaluate_travel_ratio" }, { - "source": "tests_test_bonus_engine_testaccessibilitybonus_test_accessible_party_gets_bonus", - "target": "tests_test_bonus_engine_make_engine", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L97", + "source_file": "src/explain/pipeline.py", + "source_location": "L251", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_bonus_engine_testaccessibilitybonus_test_accessible_party_gets_bonus", - "target": "tests_test_bonus_engine_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L98", + "confidence_score": 1.0, + "source_file": "src/explain/pipeline.py", + "source_location": "L309", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_pipeline_validatorpipeline_score", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_bonus_engine_testaccessibilitybonus_test_non_accessible_party_no_bonus", - "target": "tests_test_bonus_engine_make_engine", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L104", + "source_file": "src/explain/pipeline.py", + "source_location": "L384", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_rationale_384", + "target": "src_explain_pipeline_validatorpipeline_estimate_repair_gains" }, { - "source": "tests_test_bonus_engine_testaccessibilitybonus_test_non_accessible_party_no_bonus", - "target": "tests_test_bonus_engine_make_poi", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L105", + "source_file": "src/explain/pipeline.py", + "source_location": "L375", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", + "target": "src_explain_repair_repairresult" }, { - "source": "tests_test_bonus_engine_testaccessibilitybonus_test_accessibility_bonus_capped", - "target": "tests_test_bonus_engine_make_engine", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L112", + "source_file": "src/explain/pipeline.py", + "source_location": "L375", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_pipeline_validatorpipeline_estimate_repair_gains", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_bonus_engine_testaccessibilitybonus_test_accessibility_bonus_capped", - "target": "tests_test_bonus_engine_make_poi", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L113", + "source_file": "src/api/router.py", + "source_location": "L32", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_explain_plan_extractor" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus_test_disabled_gives_zero_even_if_matched", - "target": "tests_test_bonus_engine_make_engine", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L124", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L183", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_explain_plan_extractor_demo" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus_test_disabled_gives_zero_even_if_matched", - "target": "tests_test_bonus_engine_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L125", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_explain_plan_extractor_fallback_text_parse" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_and_flagged_gives_bonus", - "target": "tests_test_bonus_engine_make_engine", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L130", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_explain_plan_extractor_parse_response" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_and_flagged_gives_bonus", - "target": "tests_test_bonus_engine_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L131", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_explain_plan_extractor_planextractionerror" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_but_not_flagged_no_bonus_no_penalty", - "target": "tests_test_bonus_engine_make_engine", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L136", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L107", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_but_not_flagged_no_bonus_no_penalty", - "target": "tests_test_bonus_engine_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L137", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor", + "target": "src_explain_plan_extractor_strip_fence" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_bonus_capped", - "target": "tests_test_bonus_engine_make_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L143", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_rationale_1", + "target": "src_explain_plan_extractor" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_bonus_capped", - "target": "tests_test_bonus_engine_make_engine", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L144", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "src_explain_plan_extractor" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_matched_names_populated", - "target": "tests_test_bonus_engine_make_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L149", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L77", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_parse_response", + "target": "src_explain_plan_extractor_planextractionerror" }, { - "source": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_matched_names_populated", - "target": "tests_test_bonus_engine_make_poi", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L150", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractionerror", + "target": "exception" }, { - "source": "tests_test_bonus_engine_testtotalbonuscap_test_combined_bonus_capped_at_cap", - "target": "tests_test_bonus_engine_make_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L162", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L178", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_call", + "target": "src_explain_plan_extractor_planextractionerror" }, { - "source": "tests_test_bonus_engine_testtotalbonuscap_test_combined_bonus_capped_at_cap", - "target": "tests_test_bonus_engine_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L163", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L145", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_extract_from_document", + "target": "src_explain_plan_extractor_planextractionerror" }, { - "source": "tests_test_bonus_engine_testtotalbonuscap_test_total_is_sum_when_under_cap", - "target": "tests_test_bonus_engine_make_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L168", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L137", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_extract_from_text", + "target": "src_explain_plan_extractor_planextractionerror" }, { - "source": "tests_test_bonus_engine_testtotalbonuscap_test_total_is_sum_when_under_cap", - "target": "tests_test_bonus_engine_make_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L173", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_rationale_65", + "target": "src_explain_plan_extractor_planextractionerror" }, { - "source": "tests_test_bonus_engine_testfromdataset_test_missing_files_give_empty_engine", - "target": "tests_test_bonus_engine_make_poi", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L193", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "src_explain_plan_extractor_planextractionerror" }, { - "source": "tests_test_bonus_engine_testfromdataset_test_loads_from_json_files", - "target": "tests_test_bonus_engine_make_poi", "relation": "calls", "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L206", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "tests/test_explain_engine.py", + "source_location": "L540", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_failure_falls_back_gracefully", + "target": "exception" }, { - "source": "tests_test_bonus_engine_testfromdataset_test_zero_coords_skipped", - "target": "tests_test_bonus_engine_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L218", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_parse_response", + "target": "src_explain_plan_extractor_strip_fence" }, { - "source": "tests_test_bonus_engine_testbonusresultfields_test_matched_names_populated", - "target": "tests_test_bonus_engine_make_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L229", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L184", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_demo", + "target": "src_explain_plan_extractor_parse_response" }, { - "source": "tests_test_bonus_engine_testbonusresultfields_test_matched_names_populated", - "target": "tests_test_bonus_engine_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L230", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L180", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_call", + "target": "src_explain_plan_extractor_parse_response" }, { - "source": "tests_test_bonus_engine_testbonusresultfields_test_no_match_empty_lists", - "target": "tests_test_bonus_engine_make_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L235", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L189", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_demo", + "target": "src_explain_plan_extractor_fallback_text_parse" }, { - "source": "tests_test_bonus_engine_testbonusresultfields_test_no_match_empty_lists", - "target": "tests_test_bonus_engine_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L236", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L139", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_extract_from_text", + "target": "src_explain_plan_extractor_fallback_text_parse" }, { - "source": "tests_test_bonus_engine_rationale_1", - "target": "tests_test_bonus_engine", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L1", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_rationale_85", + "target": "src_explain_plan_extractor_fallback_text_parse" }, { - "source": "tests_test_cluster_dispersion", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L4", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L162", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor", + "target": "src_explain_plan_extractor_planextractor_call" }, { - "source": "tests_test_cluster_dispersion", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L6", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L142", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor", + "target": "src_explain_plan_extractor_planextractor_extract_from_document" }, { - "source": "tests_test_cluster_dispersion", - "target": "src_scoring_cluster_dispersion", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L7", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L133", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor", + "target": "src_explain_plan_extractor_planextractor_extract_from_text" }, { - "source": "tests_test_cluster_dispersion", - "target": "tests_test_cluster_dispersion_make_place", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L17", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor", + "target": "src_explain_plan_extractor_planextractor_init" }, { - "source": "tests_test_cluster_dispersion", - "target": "tests_test_cluster_dispersion_test_compact_day_no_penalty", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L24", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L130", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor", + "target": "src_explain_plan_extractor_planextractor_is_available" }, { - "source": "tests_test_cluster_dispersion", - "target": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty", - "relation": "contains", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L38", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L127", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_from_env", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion", - "target": "tests_test_cluster_dispersion_test_per_day_independence", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L53", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_rationale_108", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju", - "target": "skipif", - "relation": "references", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L68", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L9", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion", - "target": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L69", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L105", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_api_call_failure_raises_extraction_error", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential", - "target": "skipif", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L89", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L70", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_document_empty_bytes_raises", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion", - "target": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L90", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L77", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_document_sends_document_block_for_pdf", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires", - "target": "skipif", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L102", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L88", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_document_sends_image_block_for_png", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion", - "target": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L103", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_document_without_client_raises", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion", - "target": "tests_test_cluster_dispersion_test_sigungu_switches_only", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L125", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_text_empty_raises", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion_test_compact_day_no_penalty", - "target": "tests_test_cluster_dispersion_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L27", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_text_parses_llm_response", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty", - "target": "tests_test_cluster_dispersion_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L41", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_text_strips_code_fence", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion_test_per_day_independence", - "target": "tests_test_cluster_dispersion_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L56", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L49", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_text_without_client_falls_back_to_heuristic", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju", - "target": "tests_test_cluster_dispersion_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L72", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L97", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_invalid_json_response_raises", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential", - "target": "tests_test_cluster_dispersion_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L93", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_system_prompt_uses_prompt_caching", + "target": "src_explain_plan_extractor_planextractor" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires", - "target": "tests_test_cluster_dispersion_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L111", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L146", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_extract_from_document", + "target": "src_explain_plan_extractor_planextractor_is_available" }, { - "source": "tests_test_cluster_dispersion_test_sigungu_switches_only", - "target": "tests_test_cluster_dispersion_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L128", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_extract_from_text", + "target": "src_explain_plan_extractor_planextractor_is_available" }, { - "source": "tests_test_cluster_dispersion_rationale_1", - "target": "tests_test_cluster_dispersion", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L1", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_extract_from_text", + "target": "src_explain_plan_extractor_planextractor_call" }, { - "source": "tests_test_cluster_dispersion_rationale_25", - "target": "tests_test_cluster_dispersion_test_compact_day_no_penalty", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L25", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L134", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_rationale_134", + "target": "src_explain_plan_extractor_planextractor_extract_from_text" }, { - "source": "tests_test_cluster_dispersion_rationale_39", - "target": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L39", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L160", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_planextractor_extract_from_document", + "target": "src_explain_plan_extractor_planextractor_call" }, { - "source": "tests_test_cluster_dispersion_rationale_54", - "target": "tests_test_cluster_dispersion_test_per_day_independence", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L54", + "source_file": "src/explain/plan_extractor.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_plan_extractor_rationale_143", + "target": "src_explain_plan_extractor_planextractor_extract_from_document" }, { - "source": "tests_test_cluster_dispersion_rationale_70", - "target": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L70", + "source_file": "src/explain/repair.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_explain_repair_deletionsuggestion" }, { - "source": "tests_test_cluster_dispersion_rationale_91", - "target": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L91", + "source_file": "src/explain/repair.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_explain_repair_min_dwell_for" }, { - "source": "tests_test_cluster_dispersion_rationale_104", - "target": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L104", + "source_file": "src/explain/repair.py", + "source_location": "L31", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_explain_repair_norm" }, { - "source": "tests_test_cluster_dispersion_rationale_126", - "target": "tests_test_cluster_dispersion_test_sigungu_switches_only", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L126", + "source_file": "src/explain/repair.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_explain_repair_reordersuggestion" }, { - "source": "tests_test_congestion_engine", - "target": "pathlib", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L4", + "source_file": "src/explain/repair.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_explain_repair_repairengine" }, { - "source": "tests_test_congestion_engine", - "target": "unittest_mock", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L5", + "source_file": "src/explain/repair.py", + "source_location": "L75", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_explain_repair_repairresult" }, { - "source": "tests_test_congestion_engine", - "target": "pandas", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L7", + "source_file": "src/explain/repair.py", + "source_location": "L54", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_explain_repair_timetunesuggestion" }, { - "source": "tests_test_congestion_engine", - "target": "pytest", - "relation": "imports", + "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L8", + "source_file": "src/explain/repair.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_utils_geo" }, { - "source": "tests_test_congestion_engine", - "target": "src_scoring_congestion_engine", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L10", + "source_file": "src/explain/repair.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_congestion_engine_engine", - "target": "tests_test_congestion_engine_py_fixture", - "relation": "references", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L47", + "source_file": "src/explain/repair.py", + "source_location": "L23", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_engine", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L48", + "source_file": "src/explain/repair.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_congestion_engine_test_score_to_level", - "target": "parametrize", - "relation": "references", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L58", + "source_file": "src/explain/repair.py", + "source_location": "L24", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_validation_hard_fail" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_score_to_level", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L71", + "source_file": "src/explain/repair.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_exact_match", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L79", + "source_file": "src/explain/repair.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_rationale_1", + "target": "src_explain_repair" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_exact_match_low_season", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L87", + "source_file": "tests/test_repair.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_explain_repair" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_partial_match_substring", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L98", + "source_file": "src/explain/repair.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_min_dwell_for", + "target": "src_explain_repair_norm" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_partial_match_superstring", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L104", + "source_file": "src/explain/repair.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_rationale_36", + "target": "src_explain_repair_min_dwell_for" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_global_fallback", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L114", + "source_file": "src/explain/repair.py", + "source_location": "L196", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_try_time_tune", + "target": "src_explain_repair_min_dwell_for" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_category_fallback", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L120", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L24", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_reordersuggestion", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_invalid_month_raises", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L130", + "source_file": "src/explain/repair.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_try_reorder", + "target": "src_explain_repair_reordersuggestion" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_result_is_dataclass", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L137", + "source_file": "src/explain/repair.py", + "source_location": "L172", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_try_time_tune", + "target": "src_explain_repair_timetunesuggestion" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_is_crowded_true", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L147", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L24", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_timetunesuggestion", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_is_crowded_false", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L151", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L24", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_deletionsuggestion", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_score_itinerary", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L155", + "source_file": "src/explain/repair.py", + "source_location": "L224", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_suggest_deletion", + "target": "src_explain_repair_deletionsuggestion" }, { - "source": "tests_test_congestion_engine", - "target": "tests_test_congestion_engine_test_missing_csv_raises", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L165", + "source_file": "tests/test_repair.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_explain_repair_deletionsuggestion" }, { - "source": "tests_test_congestion_engine_rationale_1", - "target": "tests_test_congestion_engine", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L1", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "src_explain_repair_deletionsuggestion" }, { - "source": "tests_test_dwell_db", - "target": "pytest", - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L4", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testrepairenginenoop", + "target": "src_explain_repair_deletionsuggestion" }, { - "source": "tests_test_dwell_db", - "target": "src_data_dwell_db", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L6", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testresultmodel", + "target": "src_explain_repair_deletionsuggestion" }, { - "source": "tests_test_dwell_db", - "target": "tests_test_dwell_db_testmanualoverride", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L16", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "src_explain_repair_deletionsuggestion" }, { - "source": "tests_test_dwell_db_testmanualoverride", - "target": "tests_test_dwell_db_testmanualoverride_test_\uacbd\ubcf5\uad81_returns_manual_source", - "relation": "method", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "src_explain_repair_deletionsuggestion" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L17", + "confidence_score": 1.0, + "source_file": "tests/test_repair.py", + "source_location": "L261", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_repair_testtotalestimatedgain_test_included_in_to_dict", + "target": "src_explain_repair_deletionsuggestion" }, { - "source": "tests_test_dwell_db_testmanualoverride", - "target": "tests_test_dwell_db_testmanualoverride_test_normalization_handles_spaces", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L23", + "confidence_score": 1.0, + "source_file": "tests/test_repair.py", + "source_location": "L216", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_repair_testtotalestimatedgain_test_sums_across_different_days", + "target": "src_explain_repair_deletionsuggestion" }, { - "source": "tests_test_dwell_db_testmanualoverride", - "target": "tests_test_dwell_db_testmanualoverride_test_n_seoul_tower_alias", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L28", + "confidence_score": 1.0, + "source_file": "tests/test_repair.py", + "source_location": "L237", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_repair_testtotalestimatedgain_test_takes_max_of_alternatives_on_same_day", + "target": "src_explain_repair_deletionsuggestion" }, { - "source": "tests_test_dwell_db", - "target": "tests_test_dwell_db_testlclssystm3", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L35", + "source_file": "src/explain/repair.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_repair", + "target": "src_explain_repair_repairresult" }, { - "source": "tests_test_dwell_db_testlclssystm3", - "target": "tests_test_dwell_db_testlclssystm3_test_museum_code", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L36", + "source_file": "src/explain/repair.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairresult", + "target": "src_explain_repair_repairresult_is_empty" }, { - "source": "tests_test_dwell_db", - "target": "tests_test_dwell_db_testlclssystm1fallback", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L43", + "source_file": "src/explain/repair.py", + "source_location": "L96", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairresult", + "target": "src_explain_repair_repairresult_to_dict" }, { - "source": "tests_test_dwell_db_testlclssystm1fallback", - "target": "tests_test_dwell_db_testlclssystm1fallback_test_lcls3_unknown_falls_back_to_lcls1", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L44", + "source_file": "src/explain/repair.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairresult", + "target": "src_explain_repair_repairresult_total_estimated_gain" }, { - "source": "tests_test_dwell_db", - "target": "tests_test_dwell_db_testcontenttypefallback", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L51", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L24", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_repairresult", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_dwell_db_testcontenttypefallback", - "target": "tests_test_dwell_db_testcontenttypefallback_test_content_type_used_when_no_lcls", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L52", + "source_file": "tests/test_repair.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_explain_repair_repairresult" }, { - "source": "tests_test_dwell_db", - "target": "tests_test_dwell_db_testdefaultfallback", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "src_explain_repair_repairresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testrepairenginenoop", + "target": "src_explain_repair_repairresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testresultmodel", + "target": "src_explain_repair_repairresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "src_explain_repair_repairresult" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "src_explain_repair_repairresult" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L58", + "confidence_score": 1.0, + "source_file": "tests/test_repair.py", + "source_location": "L259", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_repair_testtotalestimatedgain_test_included_in_to_dict", + "target": "src_explain_repair_repairresult" }, { - "source": "tests_test_dwell_db_testdefaultfallback", - "target": "tests_test_dwell_db_testdefaultfallback_test_no_info_returns_default", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L59", + "confidence_score": 1.0, + "source_file": "tests/test_repair.py", + "source_location": "L214", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_repair_testtotalestimatedgain_test_sums_across_different_days", + "target": "src_explain_repair_repairresult" }, { - "source": "tests_test_dwell_db", - "target": "tests_test_dwell_db_testistooshort", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L65", + "confidence_score": 1.0, + "source_file": "tests/test_repair.py", + "source_location": "L235", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_repair_testtotalestimatedgain_test_takes_max_of_alternatives_on_same_day", + "target": "src_explain_repair_repairresult" }, { - "source": "tests_test_dwell_db_testistooshort", - "target": "tests_test_dwell_db_testistooshort_test_below_50pct_is_too_short", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L66", + "confidence_score": 1.0, + "source_file": "tests/test_repair.py", + "source_location": "L256", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_repair_testtotalestimatedgain_test_zero_when_empty", + "target": "src_explain_repair_repairresult" }, { - "source": "tests_test_dwell_db_rationale_1", - "target": "tests_test_dwell_db", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L1", + "source_file": "src/explain/repair.py", + "source_location": "L86", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_rationale_86", + "target": "src_explain_repair_repairresult_total_estimated_gain" }, { - "source": "tests_test_estimated_hardfail", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L4", + "source_file": "src/explain/repair.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_rationale_103", + "target": "src_explain_repair_repairengine" }, { - "source": "tests_test_estimated_hardfail", - "target": "src_validation_hard_fail", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L5", + "source_file": "src/explain/repair.py", + "source_location": "L105", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine", + "target": "src_explain_repair_repairengine_init" }, { - "source": "tests_test_estimated_hardfail", - "target": "tests_test_estimated_hardfail_poi", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L8", + "source_file": "src/explain/repair.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine", + "target": "src_explain_repair_repairengine_repair" }, { - "source": "tests_test_estimated_hardfail", - "target": "tests_test_estimated_hardfail_plan", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L22", + "source_file": "src/explain/repair.py", + "source_location": "L224", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine", + "target": "src_explain_repair_repairengine_suggest_deletion" }, { - "source": "tests_test_estimated_hardfail_plan", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "return_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L22", + "source_file": "src/explain/repair.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine", + "target": "src_explain_repair_repairengine_try_reorder" }, { - "source": "tests_test_estimated_hardfail", - "target": "tests_test_estimated_hardfail_test_estimated_hours_conflict_flagged_estimated", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L31", + "source_file": "src/explain/repair.py", + "source_location": "L172", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine", + "target": "src_explain_repair_repairengine_try_time_tune" }, { - "source": "tests_test_estimated_hardfail", - "target": "tests_test_estimated_hardfail_test_verified_hours_conflict_not_estimated_and_message_unchanged", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/explain/repair.py", + "source_location": "L24", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_explain_repair_repairengine", + "target": "src_validation_hard_fail_hardfaildetector" + }, + { + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L41", + "source_file": "tests/test_repair.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "src_explain_repair_repairengine" }, { - "source": "tests_test_estimated_hardfail_plan", - "target": "src_data_models_itineraryplan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L23", + "source_file": "tests/test_repair.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_repairengine", + "target": "src_explain_repair_repairengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "src_explain_repair_repairengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testrepairenginenoop", + "target": "src_explain_repair_repairengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testresultmodel", + "target": "src_explain_repair_repairengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "src_explain_repair_repairengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_repair.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "src_explain_repair_repairengine" }, { - "source": "tests_test_estimated_hardfail_test_estimated_hours_conflict_flagged_estimated", - "target": "tests_test_estimated_hardfail_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L33", + "confidence_score": 1.0, + "source_file": "src/explain/repair.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_repair_repairengine_init", + "target": "src_validation_hard_fail_hardfaildetector" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "src/explain/repair.py", + "source_location": "L116", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_rationale_116", + "target": "src_explain_repair_repairengine_repair" }, { - "source": "tests_test_estimated_hardfail_test_estimated_hours_conflict_flagged_estimated", - "target": "tests_test_estimated_hardfail_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L34", + "source_file": "src/explain/repair.py", + "source_location": "L137", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_repair", + "target": "src_explain_repair_repairengine_suggest_deletion" }, { - "source": "tests_test_estimated_hardfail_test_verified_hours_conflict_not_estimated_and_message_unchanged", - "target": "tests_test_estimated_hardfail_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L43", + "source_file": "src/explain/repair.py", + "source_location": "L126", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_repair", + "target": "src_explain_repair_repairengine_try_reorder" }, { - "source": "tests_test_estimated_hardfail_test_verified_hours_conflict_not_estimated_and_message_unchanged", - "target": "tests_test_estimated_hardfail_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L44", + "source_file": "src/explain/repair.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_repairengine_repair", + "target": "src_explain_repair_repairengine_try_time_tune" }, { - "source": "tests_test_estimated_hardfail_rationale_1", - "target": "tests_test_estimated_hardfail", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L1", + "source_file": "src/explain/repair.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_rationale_150", + "target": "src_explain_repair_repairengine_try_reorder" }, { - "source": "tests_test_explain_engine", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L4", + "source_file": "src/explain/repair.py", + "source_location": "L179", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_rationale_179", + "target": "src_explain_repair_repairengine_try_time_tune" }, { - "source": "tests_test_explain_engine", - "target": "unittest_mock", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L5", + "confidence_score": 1.0, + "source_file": "src/explain/repair.py", + "source_location": "L182", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_repair_repairengine_try_time_tune", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_explain_engine", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L7", + "confidence_score": 1.0, + "source_file": "src/explain/repair.py", + "source_location": "L185", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_repair_repairengine_try_time_tune", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_explain_engine", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", + "source_file": "src/explain/repair.py", + "source_location": "L229", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_explain_repair_rationale_229", + "target": "src_explain_repair_repairengine_suggest_deletion" }, { - "source": "tests_test_explain_engine", - "target": "src_explain_explain_engine", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", + "confidence_score": 1.0, + "source_file": "src/explain/repair.py", + "source_location": "L237", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_repair_repairengine_suggest_deletion", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_make_plan", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L34", + "confidence_score": 1.0, + "source_file": "src/explain/repair.py", + "source_location": "L252", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_explain_repair_repairengine_suggest_deletion", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_explain_engine_make_plan", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "return_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L34", + "source_file": "src/api/router.py", + "source_location": "L33", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_matrix_route_matrix" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_make_scores", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L43", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_matrix_route_matrix_routematrixservice" }, { - "source": "tests_test_explain_engine_make_scores", - "target": "src_data_models_scores", - "relation": "references", - "context": "return_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L43", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_utils_geo" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L47", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_explain_engine_make_hard_fail", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "return_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L47", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_validation_kakao_matrix" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_make_warning", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L57", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_explain_engine_make_warning", - "target": "src_data_models_warning", - "relation": "references", - "context": "return_type", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L57", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_validation_vrptw_engine" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_make_graph_stub", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L65", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_make_disabled_graph_stub", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L83", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_testcachekey", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L93", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_rationale_1", + "target": "src_matrix_route_matrix" }, { - "source": "tests_test_explain_engine_testcachekey", - "target": "tests_test_explain_engine_testcachekey_test_same_inputs_same_key", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L94", + "source_file": "tests/test_route_matrix.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix", + "target": "src_matrix_route_matrix" }, { - "source": "tests_test_explain_engine_testcachekey", - "target": "tests_test_explain_engine_testcachekey_test_different_score_different_key", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L100", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_rationale_14", + "target": "src_matrix_route_matrix_routematrixservice" }, { - "source": "tests_test_explain_engine_testcachekey", - "target": "tests_test_explain_engine_testcachekey_test_empty_inputs", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L104", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_matrix_route_matrix_routematrixservice_build" }, { - "source": "tests_test_explain_engine_testcachekey", - "target": "tests_test_explain_engine_testcachekey_test_different_day_index_different_key", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L108", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L62", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_matrix_route_matrix_routematrixservice_get_travel_min" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_testgraphcontext", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L120", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_matrix_route_matrix_routematrixservice_get_travel_time" }, { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "tests_test_explain_engine_testgraphcontext_test_none_graph_returns_none", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L121", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_matrix_route_matrix_routematrixservice_init" }, { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "tests_test_explain_engine_testgraphcontext_test_disabled_graph_returns_none", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L124", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L52", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_matrix_route_matrix_routematrixservice_prepare" }, { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "tests_test_explain_engine_testgraphcontext_test_empty_poi_name_returns_none", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L127", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_matrix_route_matrix_routematrixservice_to_vrptw_place" }, { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "tests_test_explain_engine_testgraphcontext_test_no_match_returns_none", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L130", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_matrix_route_matrix_routematrixservice_uses_kakao" }, { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "tests_test_explain_engine_testgraphcontext_test_match_includes_region_and_category", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L135", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L9", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "tests_test_explain_engine_testgraphcontext_test_match_includes_nearby_alternatives", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L140", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "tests_test_explain_engine_testgraphcontext_test_no_nearby_omits_key", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L145", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_matrix_route_matrix_routematrixservice", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_testbuilduserprompt", - "relation": "contains", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L154", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_from_settings", + "target": "src_matrix_route_matrix_routematrixservice" }, { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_contains_plan_info", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L155", + "source_file": "tests/test_route_matrix.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix", + "target": "src_matrix_route_matrix_routematrixservice" }, { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_hard_fail_in_prompt", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L160", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L6", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_route_matrix_fakerouteprovider", + "target": "src_matrix_route_matrix_routematrixservice" }, { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_warning_in_prompt", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L165", + "source_file": "tests/test_route_matrix.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix_test_build_uses_provider_seconds_as_minutes", + "target": "src_matrix_route_matrix_routematrixservice" }, { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_penalty_in_prompt", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L169", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_scores_included_when_provided", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L173", + "source_file": "tests/test_route_matrix.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix_test_haversine_provider_is_used_when_api_key_is_unavailable", + "target": "src_matrix_route_matrix_routematrixservice" }, { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_overall_item_present", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L177", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_init", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L182", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_from_settings", + "target": "src_matrix_route_matrix_py_path" }, { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_no_graph_omits_evidence_key", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L190", + "confidence_score": 1.0, + "source_file": "src/matrix/route_matrix.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_matrix_route_matrix_routematrixservice_from_settings", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_hard_fail", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L194", + "confidence_score": 1.0, + "source_file": "src/matrix/route_matrix.py", + "source_location": "L31", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_matrix_route_matrix_routematrixservice_from_settings", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_warning", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L200", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_build", + "target": "src_matrix_route_matrix_routematrixservice_to_vrptw_place" }, { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L209", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_get_travel_min", + "target": "src_matrix_route_matrix_routematrixservice_to_vrptw_place" }, { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L213", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L54", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_prepare", + "target": "src_matrix_route_matrix_routematrixservice_to_vrptw_place" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_testparsellmresponse", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L225", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_rationale_53", + "target": "src_matrix_route_matrix_routematrixservice_prepare" }, { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "tests_test_explain_engine_testparsellmresponse_test_parses_valid_json_array", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L226", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L74", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_build", + "target": "src_matrix_route_matrix_routematrixservice_prepare" }, { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "tests_test_explain_engine_testparsellmresponse_test_strips_code_block_wrapper", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L240", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L59", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_rationale_59", + "target": "src_matrix_route_matrix_routematrixservice_get_travel_time" }, { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "tests_test_explain_engine_testparsellmresponse_test_multiple_items", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L246", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L82", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_build", + "target": "src_matrix_route_matrix_routematrixservice_get_travel_time" }, { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "tests_test_explain_engine_testparsellmresponse_test_returns_explanation_items", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L254", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_routematrixservice_get_travel_min", + "target": "src_matrix_route_matrix_routematrixservice_get_travel_time" }, { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "tests_test_explain_engine_testparsellmresponse_test_day_index_echoed_back", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L262", + "source_file": "src/matrix/route_matrix.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_matrix_route_matrix_rationale_63", + "target": "src_matrix_route_matrix_routematrixservice_get_travel_min" }, { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "tests_test_explain_engine_testparsellmresponse_test_missing_day_index_defaults_to_none", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L270", + "confidence_score": 1.0, + "source_file": "src/matrix/route_matrix.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_matrix_route_matrix_routematrixservice_build", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_testfallback", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L283", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testfallback", - "target": "tests_test_explain_engine_testfallback_test_hard_fail_becomes_critical", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L284", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testfallback", - "target": "tests_test_explain_engine_testfallback_test_warning_becomes_warning", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L289", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine", + "target": "src_scoring_bonus_engine_bonusresult" }, { - "source": "tests_test_explain_engine_testfallback", - "target": "tests_test_explain_engine_testfallback_test_large_penalty_is_critical", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L294", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L131", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine", + "target": "src_scoring_bonus_engine_nearest_km" }, { - "source": "tests_test_explain_engine_testfallback", - "target": "tests_test_explain_engine_testfallback_test_small_penalty_is_warning", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L299", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine", + "target": "src_scoring_bonus_engine_placecoord" }, { - "source": "tests_test_explain_engine_testfallback", - "target": "tests_test_explain_engine_testfallback_test_always_has_overall_item", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L304", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine", + "target": "src_utils_geo" }, { - "source": "tests_test_explain_engine_testfallback", - "target": "tests_test_explain_engine_testfallback_test_failed_overall_is_critical", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L314", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_explain_engine_testfallback", - "target": "tests_test_explain_engine_testfallback_test_passed_overall_is_ok", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L319", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_rationale_1", + "target": "src_scoring_bonus_engine" }, { - "source": "tests_test_explain_engine_testfallback", - "target": "tests_test_explain_engine_testfallback_test_hard_fail_day_index_propagated_and_prefixed", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L324", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "src_scoring_bonus_engine" }, { - "source": "tests_test_explain_engine_testfallback", - "target": "tests_test_explain_engine_testfallback_test_warning_day_index_propagated_and_prefixed", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L332", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_scoring_bonus_engine" }, { - "source": "tests_test_explain_engine_testfallback", - "target": "tests_test_explain_engine_testfallback_test_no_day_index_no_prefix", - "relation": "method", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L340", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_bonusengine_compute", + "target": "src_scoring_bonus_engine_bonusresult" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_testexplainenginenollm", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L351", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_bonusengine_from_dataset", + "target": "src_scoring_bonus_engine_placecoord" }, { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "tests_test_explain_engine_testexplainenginenollm_setup_method", - "relation": "method", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L352", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_bonusengine_init", + "target": "src_scoring_bonus_engine_placecoord" }, { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "tests_test_explain_engine_testexplainenginenollm_test_is_available_false_without_key", - "relation": "method", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L356", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L131", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_nearest_km", + "target": "src_scoring_bonus_engine_placecoord" }, { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L359", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "src_scoring_bonus_engine_placecoord" }, { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "tests_test_explain_engine_testexplainenginenollm_test_no_issues_returns_ok_overall", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L372", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_make_engine", + "target": "src_scoring_bonus_engine_placecoord" }, { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "tests_test_explain_engine_testexplainenginenollm_test_hard_fail_present_in_results", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L381", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_scoring_bonus_engine_placecoord" }, { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "tests_test_explain_engine_testexplainenginenollm_test_warning_present_in_results", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L389", + "confidence_score": 1.0, + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L278", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", + "target": "src_scoring_bonus_engine_placecoord" }, { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "tests_test_explain_engine_testexplainenginenollm_test_penalty_present_in_results", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L397", + "confidence_score": 1.0, + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L267", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", + "target": "src_scoring_bonus_engine_placecoord" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_testexplainenginemockllm", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L410", + "confidence_score": 1.0, + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L304", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", + "target": "src_scoring_bonus_engine_placecoord" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "tests_test_explain_engine_testexplainenginemockllm_make_mock_client", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L411", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_bonusengine", + "target": "src_scoring_bonus_engine_bonusengine_compute" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L421", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_bonusengine", + "target": "src_scoring_bonus_engine_bonusengine_init" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "tests_test_explain_engine_testexplainenginemockllm_test_llm_failure_falls_back_gracefully", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L445", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_bonusengine_from_dataset", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L456", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_rationale_41", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "tests_test_explain_engine_testexplainenginemockllm_test_is_available_with_client", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L472", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", - "relation": "method", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L477", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_make_engine", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_testexplainenginegraphdefault", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L496", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testaccessibilitybonus", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testexplainenginegraphdefault", - "target": "tests_test_explain_engine_testexplainenginegraphdefault_test_default_graph_disabled_without_env", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L497", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testbonusresultfields", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine", - "target": "tests_test_explain_engine_testbuildalternatives", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L507", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testfromdataset", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "tests_test_explain_engine_testbuildalternatives_test_no_hard_fails_returns_empty", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L508", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testpetfriendlybonus", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "tests_test_explain_engine_testbuildalternatives_test_disabled_graph_returns_empty", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L512", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testtotalbonuscap", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "tests_test_explain_engine_testbuildalternatives_test_hard_fail_without_poi_name_skipped", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L518", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_bonus_engine_testwellnessbonus", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "tests_test_explain_engine_testbuildalternatives_test_match_returns_alternatives_keyed_by_poi_name", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L524", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "tests_test_explain_engine_testbuildalternatives_test_no_nearby_omits_poi", - "relation": "method", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L532", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_make_empty_bonus_engine", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "tests_test_explain_engine_testbuildalternatives_test_no_search_match_omits_poi", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L540", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "tests_test_explain_engine_testbuildalternatives_test_duplicate_poi_name_only_looked_up_once", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L548", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_make_plan", - "target": "src_data_models_itineraryplan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L35", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L279", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_make_scores", - "target": "src_data_models_scores", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L44", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L268", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_make_hard_fail", - "target": "src_data_models_hardfail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L48", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L305", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_make_warning", - "target": "src_data_models_warning", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L58", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testcachekey_test_same_inputs_same_key", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L95", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testcachekey_test_same_inputs_same_key", - "target": "tests_test_explain_engine_make_warning", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L96", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testcachekey_test_different_score_different_key", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L101", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testcachekey_test_different_day_index_different_key", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L109", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L18", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_pipeline_orchestrator_testtovrptwday", + "target": "src_scoring_bonus_engine_bonusengine" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_disabled_graph_returns_none", - "target": "tests_test_explain_engine_make_disabled_graph_stub", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L125", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L61", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_rationale_61", + "target": "src_scoring_bonus_engine_bonusengine_from_dataset" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_empty_poi_name_returns_none", - "target": "tests_test_explain_engine_make_graph_stub", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L128", + "confidence_score": 1.0, + "source_file": "tests/test_bonus_engine.py", + "source_location": "L213", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_bonus_engine_testfromdataset_test_loads_from_json_files", + "target": "src_scoring_bonus_engine_bonusengine_from_dataset" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_no_match_returns_none", - "target": "tests_test_explain_engine_make_graph_stub", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L131", + "confidence_score": 1.0, + "source_file": "tests/test_bonus_engine.py", + "source_location": "L197", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_bonus_engine_testfromdataset_test_missing_files_give_empty_engine", + "target": "src_scoring_bonus_engine_bonusengine_from_dataset" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_match_includes_region_and_category", - "target": "tests_test_explain_engine_make_graph_stub", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L136", + "confidence_score": 1.0, + "source_file": "tests/test_bonus_engine.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_bonus_engine_testfromdataset_test_zero_coords_skipped", + "target": "src_scoring_bonus_engine_bonusengine_from_dataset" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_match_includes_nearby_alternatives", - "target": "tests_test_explain_engine_make_graph_stub", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L141", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L101", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_bonusengine_compute", + "target": "src_scoring_bonus_engine_nearest_km" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_no_nearby_omits_key", - "target": "tests_test_explain_engine_make_graph_stub", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L146", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L89", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_rationale_89", + "target": "src_scoring_bonus_engine_bonusengine_compute" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_contains_plan_info", - "target": "tests_test_explain_engine_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L156", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L135", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_nearest_km", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_hard_fail_in_prompt", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L161", + "source_file": "src/scoring/bonus_engine.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_bonus_engine_rationale_132", + "target": "src_scoring_bonus_engine_nearest_km" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_hard_fail_in_prompt", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L161", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L217", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_backtrack_penalty" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_in_prompt", - "target": "tests_test_explain_engine_make_warning", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L166", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L158", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_clusterdispersionreport" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_in_prompt", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L166", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_compute_day_dispersion" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_penalty_in_prompt", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L170", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_count_area_backtracks" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_scores_included_when_provided", - "target": "tests_test_explain_engine_make_scores", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L174", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L95", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_scores_included_when_provided", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L174", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L82", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_count_label_backtracks" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_overall_item_present", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L178", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L146", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_daydispersionmetric" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L184", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L207", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_distance_penalty" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L184", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L235", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched", - "target": "tests_test_explain_engine_make_graph_stub", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L185", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L118", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_fallback_cluster_labels" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_no_graph_omits_evidence_key", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L191", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_geo_bt_penalty" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_no_graph_omits_evidence_key", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L191", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L199", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_switch_penalty" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_hard_fail", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L195", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_utils_geo" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_hard_fail", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L197", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_warning", - "target": "tests_test_explain_engine_make_warning", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L201", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_rationale_1", + "target": "src_scoring_cluster_dispersion" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_warning", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L204", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "src_scoring_cluster_dispersion" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field", - "target": "tests_test_explain_engine_make_hard_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L210", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L184", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_compute_day_dispersion", + "target": "src_scoring_cluster_dispersion_count_area_backtracks" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field", - "target": "tests_test_explain_engine_make_warning", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L210", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_rationale_67", + "target": "src_scoring_cluster_dispersion_count_area_backtracks" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field", - "target": "tests_test_explain_engine_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L210", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks", + "target": "src_scoring_cluster_dispersion_count_label_backtracks" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name", - "target": "tests_test_explain_engine_make_warning", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L214", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_rationale_83", + "target": "src_scoring_cluster_dispersion_count_label_backtracks" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name", - "target": "tests_test_explain_engine_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L216", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L187", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_compute_day_dispersion", + "target": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name", - "target": "tests_test_explain_engine_make_graph_stub", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L216", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks", + "target": "src_scoring_cluster_dispersion_fallback_cluster_labels" }, { - "source": "tests_test_explain_engine_testfallback_test_hard_fail_becomes_critical", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L285", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_rationale_99", + "target": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks" }, { - "source": "tests_test_explain_engine_testfallback_test_warning_becomes_warning", - "target": "tests_test_explain_engine_make_warning", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L290", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks" }, { - "source": "tests_test_explain_engine_testfallback_test_always_has_overall_item", - "target": "tests_test_explain_engine_make_hard_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L306", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential", + "target": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks" }, { - "source": "tests_test_explain_engine_testfallback_test_always_has_overall_item", - "target": "tests_test_explain_engine_make_warning", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L307", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_fallback_cluster_labels", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_explain_engine_testfallback_test_failed_overall_is_critical", - "target": "tests_test_explain_engine_make_hard_fail", "relation": "calls", "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L315", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_scoring_cluster_dispersion_fallback_cluster_labels", + "target": "src_validation_alternatives_haversine_km" }, { - "source": "tests_test_explain_engine_testfallback_test_hard_fail_day_index_propagated_and_prefixed", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L325", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_rationale_119", + "target": "src_scoring_cluster_dispersion_fallback_cluster_labels" }, { - "source": "tests_test_explain_engine_testfallback_test_warning_day_index_propagated_and_prefixed", - "target": "tests_test_explain_engine_make_warning", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L333", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_compute_day_dispersion", + "target": "src_scoring_cluster_dispersion_daydispersionmetric" }, { - "source": "tests_test_explain_engine_testfallback_test_no_day_index_no_prefix", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L341", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L235", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_clusterdispersionreport" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items", - "target": "tests_test_explain_engine_make_hard_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L361", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L179", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_compute_day_dispersion", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items", - "target": "tests_test_explain_engine_make_warning", "relation": "calls", "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L362", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L179", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_scoring_cluster_dispersion_compute_day_dispersion", + "target": "src_validation_alternatives_haversine_km" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items", - "target": "tests_test_explain_engine_make_scores", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L365", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L253", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_compute_day_dispersion" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items", - "target": "tests_test_explain_engine_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L366", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L256", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_switch_penalty" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_test_no_issues_returns_ok_overall", - "target": "tests_test_explain_engine_make_scores", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L375", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L257", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_distance_penalty" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_test_no_issues_returns_ok_overall", - "target": "tests_test_explain_engine_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L375", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L258", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_backtrack_penalty" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_test_hard_fail_present_in_results", - "target": "tests_test_explain_engine_make_hard_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L383", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L259", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_geo_bt_penalty" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_test_hard_fail_present_in_results", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L384", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L226", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_rationale_226", + "target": "src_scoring_cluster_dispersion_geo_bt_penalty" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_test_warning_present_in_results", - "target": "tests_test_explain_engine_make_warning", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L391", + "source_file": "src/scoring/cluster_dispersion.py", + "source_location": "L239", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_cluster_dispersion_rationale_239", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_test_warning_present_in_results", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L392", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_test_penalty_present_in_results", - "target": "tests_test_explain_engine_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L400", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_compact_day_no_penalty", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available", - "target": "tests_test_explain_engine_testexplainenginemockllm_make_mock_client", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L437", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L90", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available", - "target": "tests_test_explain_engine_make_hard_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L439", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L129", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available", - "target": "tests_test_explain_engine_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L440", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L52", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_failure_falls_back_gracefully", - "target": "tests_test_explain_engine_make_hard_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L450", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L74", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_per_day_independence", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_failure_falls_back_gracefully", - "target": "tests_test_explain_engine_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L451", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_sigungu_switches_only", + "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call", - "target": "tests_test_explain_engine_testexplainenginemockllm_make_mock_client", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L464", + "source_file": "src/api/router.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_scoring_congestion_engine" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L467", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L59", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine", + "target": "src_scoring_congestion_engine_congestionengine" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L468", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine", + "target": "src_scoring_congestion_engine_congestionlevel" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", - "target": "tests_test_explain_engine_testexplainenginemockllm_make_mock_client", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L485", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine", + "target": "src_scoring_congestion_engine_congestionresult" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", - "target": "tests_test_explain_engine_make_graph_stub", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L486", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine", + "target": "src_scoring_congestion_engine_normalize" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L488", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L49", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine", + "target": "src_scoring_congestion_engine_score_to_level" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", - "target": "tests_test_explain_engine_make_plan", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L489", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_rationale_1", + "target": "src_scoring_congestion_engine" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_no_hard_fails_returns_empty", - "target": "tests_test_explain_engine_make_graph_stub", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L509", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "src_scoring_congestion_engine" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_disabled_graph_returns_empty", - "target": "tests_test_explain_engine_make_disabled_graph_stub", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L513", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionlevel", + "target": "strenum" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_disabled_graph_returns_empty", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L514", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L49", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_score_to_level", + "target": "src_scoring_congestion_engine_congestionlevel" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_hard_fail_without_poi_name_skipped", - "target": "tests_test_explain_engine_make_graph_stub", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L519", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "src_scoring_congestion_engine_congestionlevel" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_hard_fail_without_poi_name_skipped", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L520", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L139", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_score", + "target": "src_scoring_congestion_engine_congestionresult" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_match_returns_alternatives_keyed_by_poi_name", - "target": "tests_test_explain_engine_make_graph_stub", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L525", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L231", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_score_itinerary", + "target": "src_scoring_congestion_engine_congestionresult" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_match_returns_alternatives_keyed_by_poi_name", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L526", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "src_scoring_congestion_engine_congestionresult" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_no_nearby_omits_poi", - "target": "tests_test_explain_engine_make_graph_stub", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L534", + "relation": "indirect_call", + "context": "argument", + "confidence": "INFERRED", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L96", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_congestion_engine_congestionengine_df", + "target": "src_scoring_congestion_engine_normalize" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_no_nearby_omits_poi", - "target": "tests_test_explain_engine_make_hard_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L536", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L154", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_score", + "target": "src_scoring_congestion_engine_normalize" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_no_search_match_omits_poi", - "target": "tests_test_explain_engine_make_graph_stub", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L541", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L165", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_score", + "target": "src_scoring_congestion_engine_score_to_level" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_no_search_match_omits_poi", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L544", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "src_scoring_congestion_engine_score_to_level" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_duplicate_poi_name_only_looked_up_once", - "target": "tests_test_explain_engine_make_graph_stub", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L549", + "confidence_score": 1.0, + "source_file": "tests/test_congestion_engine.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_congestion_engine_test_score_to_level", + "target": "src_scoring_congestion_engine_score_to_level" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_duplicate_poi_name_only_looked_up_once", - "target": "tests_test_explain_engine_make_hard_fail", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L551", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_scoring_congestion_engine_congestionengine_category_avg_by_month" }, { - "source": "tests_test_explain_engine_rationale_1", - "target": "tests_test_explain_engine", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L1", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L89", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_scoring_congestion_engine_congestionengine_df" }, { - "source": "tests_test_explain_engine_rationale_66", - "target": "tests_test_explain_engine_make_graph_stub", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L66", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_scoring_congestion_engine_congestionengine_global_avg_by_month" }, { - "source": "tests_test_geo", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L4", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_scoring_congestion_engine_congestionengine_init" }, { - "source": "tests_test_geo", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L6", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L227", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_scoring_congestion_engine_congestionengine_is_crowded" }, { - "source": "tests_test_geo", - "target": "src_utils_geo", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L7", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_scoring_congestion_engine_congestionengine_lookup_exact" }, { - "source": "tests_test_geo", - "target": "tests_test_geo_make_poi", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L10", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L128", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_scoring_congestion_engine_congestionengine_lookup_partial" }, { - "source": "tests_test_geo_make_poi", - "target": "src_data_models_poi", - "relation": "references", - "context": "return_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L10", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_scoring_congestion_engine_congestionengine_poi_names" }, { - "source": "tests_test_geo", - "target": "tests_test_geo_testhaversinekm", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L23", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L139", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_scoring_congestion_engine_congestionengine_score" }, { - "source": "tests_test_geo_testhaversinekm", - "target": "tests_test_geo_testhaversinekm_test_same_point_is_zero", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L24", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L231", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine", + "target": "src_scoring_congestion_engine_congestionengine_score_itinerary" }, { - "source": "tests_test_geo_testhaversinekm", - "target": "tests_test_geo_testhaversinekm_test_known_distance", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L27", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_from_settings", + "target": "src_scoring_congestion_engine_congestionengine" }, { - "source": "tests_test_geo_testhaversinekm", - "target": "tests_test_geo_testhaversinekm_test_symmetric", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L32", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_rationale_60", + "target": "src_scoring_congestion_engine_congestionengine" }, { - "source": "tests_test_geo_testhaversinekm", - "target": "tests_test_geo_testhaversinekm_test_positive", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L37", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "src_scoring_congestion_engine_congestionengine" }, { - "source": "tests_test_geo", - "target": "tests_test_geo_testbuilddistcache", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", + "confidence_score": 1.0, + "source_file": "tests/test_congestion_engine.py", "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_congestion_engine_engine", + "target": "src_scoring_congestion_engine_congestionengine" }, { - "source": "tests_test_geo_testbuilddistcache", - "target": "tests_test_geo_testbuilddistcache_test_all_pairs_present", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L46", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L167", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine_test_missing_csv_raises", + "target": "src_scoring_congestion_engine_congestionengine" }, { - "source": "tests_test_geo_testbuilddistcache", - "target": "tests_test_geo_testbuilddistcache_test_no_self_pairs", - "relation": "method", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L54", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L89", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_df", + "target": "dataframe" }, { - "source": "tests_test_geo_testbuilddistcache", - "target": "tests_test_geo_testbuilddistcache_test_values_match_haversine", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L60", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L105", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_rationale_105", + "target": "src_scoring_congestion_engine_congestionengine_global_avg_by_month" }, { - "source": "tests_test_geo_testbuilddistcache", - "target": "tests_test_geo_testbuilddistcache_test_single_poi_empty_cache", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L70", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L111", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_rationale_111", + "target": "src_scoring_congestion_engine_congestionengine_category_avg_by_month" }, { - "source": "tests_test_geo_testbuilddistcache", - "target": "tests_test_geo_testbuilddistcache_test_empty_list_empty_cache", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L75", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L174", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_score", + "target": "src_scoring_congestion_engine_congestionengine_lookup_exact" }, { - "source": "tests_test_geo", - "target": "tests_test_geo_testnnheuristickm", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L83", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L187", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_score", + "target": "src_scoring_congestion_engine_congestionengine_lookup_partial" }, { - "source": "tests_test_geo_testnnheuristickm", - "target": "tests_test_geo_testnnheuristickm_test_single_poi_returns_zero", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L84", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L229", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_is_crowded", + "target": "src_scoring_congestion_engine_congestionengine_score" }, { - "source": "tests_test_geo_testnnheuristickm", - "target": "tests_test_geo_testnnheuristickm_test_two_pois_returns_distance", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L88", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L233", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_congestionengine_score_itinerary", + "target": "src_scoring_congestion_engine_congestionengine_score" }, { - "source": "tests_test_geo_testnnheuristickm", - "target": "tests_test_geo_testnnheuristickm_test_nn_le_actual_for_suboptimal", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L93", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_rationale_140", + "target": "src_scoring_congestion_engine_congestionengine_score" }, { - "source": "tests_test_geo_testnnheuristickm", - "target": "tests_test_geo_testnnheuristickm_test_cache_gives_same_result", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L109", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L228", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_rationale_228", + "target": "src_scoring_congestion_engine_congestionengine_is_crowded" }, { - "source": "tests_test_geo_testnnheuristickm", - "target": "tests_test_geo_testnnheuristickm_test_collinear_optimal_order_matches_nn", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L114", + "source_file": "src/scoring/congestion_engine.py", + "source_location": "L232", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_congestion_engine_rationale_232", + "target": "src_scoring_congestion_engine_congestionengine_score_itinerary" }, { - "source": "tests_test_geo", - "target": "tests_test_geo_testgettravelmin", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L128", + "source_file": "src/scoring/reward_engine.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_reward_engine", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_testgettravelmin", - "target": "tests_test_geo_testgettravelmin_test_uses_matrix_when_available", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L129", + "source_file": "src/scoring/reward_engine.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_reward_engine_rationale_1", + "target": "src_scoring_reward_engine" }, { - "source": "tests_test_geo_testgettravelmin", - "target": "tests_test_geo_testgettravelmin_test_haversine_fallback_when_no_matrix", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L135", + "source_file": "tests/test_reward_engine.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine", + "target": "src_scoring_reward_engine" }, { - "source": "tests_test_geo_testgettravelmin", - "target": "tests_test_geo_testgettravelmin_test_cache_fallback_when_no_matrix", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L143", + "source_file": "src/scoring/reward_engine.py", + "source_location": "L32", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_reward_engine_rationale_32", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_testgettravelmin", - "target": "tests_test_geo_testgettravelmin_test_matrix_takes_priority_over_cache", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L150", + "source_file": "tests/test_reward_engine.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_make_poi", - "target": "src_data_models_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L11", + "confidence_score": 1.0, + "source_file": "tests/test_reward_engine.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_efficiency_generates_message", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_testbuilddistcache_test_all_pairs_present", - "target": "tests_test_geo_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L47", + "confidence_score": 1.0, + "source_file": "tests/test_reward_engine.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_flow_generates_message", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_testbuilddistcache_test_no_self_pairs", - "target": "tests_test_geo_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L55", + "confidence_score": 1.0, + "source_file": "tests/test_reward_engine.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_purpose_fit_generates_message", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_testbuilddistcache_test_values_match_haversine", - "target": "tests_test_geo_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L62", + "confidence_score": 1.0, + "source_file": "tests/test_reward_engine.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_reward_engine_testgeneraterewards_test_hard_fail_returns_empty", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_testbuilddistcache_test_single_poi_empty_cache", - "target": "tests_test_geo_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L71", + "confidence_score": 1.0, + "source_file": "tests/test_reward_engine.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_reward_engine_testgeneraterewards_test_low_travel_ratio_generates_message", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_testnnheuristickm_test_single_poi_returns_zero", - "target": "tests_test_geo_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L85", + "confidence_score": 1.0, + "source_file": "tests/test_reward_engine.py", + "source_location": "L97", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_reward_engine_testgeneraterewards_test_mediocre_plan_few_messages", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_testnnheuristickm_test_two_pois_returns_distance", - "target": "tests_test_geo_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L89", + "confidence_score": 1.0, + "source_file": "tests/test_reward_engine.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_reward_engine_testgeneraterewards_test_no_warnings_generates_message", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_testnnheuristickm_test_nn_le_actual_for_suboptimal", - "target": "tests_test_geo_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L96", + "confidence_score": 1.0, + "source_file": "tests/test_reward_engine.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_reward_engine_testgeneraterewards_test_perfect_plan_all_messages", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_testnnheuristickm_test_cache_gives_same_result", - "target": "tests_test_geo_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L110", + "confidence_score": 1.0, + "source_file": "tests/test_reward_engine.py", + "source_location": "L77", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_reward_engine_testgeneraterewards_test_zero_cluster_penalty_generates_message", + "target": "src_scoring_reward_engine_generate_rewards" }, { - "source": "tests_test_geo_testnnheuristickm_test_collinear_optimal_order_matches_nn", - "target": "tests_test_geo_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L116", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_scoring_theme_alignment_build_user_prompt" }, { - "source": "tests_test_geo_testgettravelmin_test_uses_matrix_when_available", - "target": "tests_test_geo_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L130", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_scoring_theme_alignment_cache_key" }, { - "source": "tests_test_geo_testgettravelmin_test_haversine_fallback_when_no_matrix", - "target": "tests_test_geo_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L136", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L135", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_scoring_theme_alignment_classify_score" }, { - "source": "tests_test_geo_testgettravelmin_test_cache_fallback_when_no_matrix", - "target": "tests_test_geo_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L144", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L146", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_scoring_theme_alignment_parse_llm_response" }, { - "source": "tests_test_geo_testgettravelmin_test_matrix_takes_priority_over_cache", - "target": "tests_test_geo_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L151", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_geo_rationale_1", - "target": "tests_test_geo", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L1", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L166", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_graph_retriever", - "target": "unittest_mock", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L4", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L89", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_scoring_theme_alignment_themealignmentreport" }, { - "source": "tests_test_graph_retriever", - "target": "neo4j_exceptions", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L6", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment", + "target": "src_scoring_theme_alignment_themejudgment" }, { - "source": "tests_test_graph_retriever", - "target": "src_data_graph_retriever", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L8", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_rationale_1", + "target": "src_scoring_theme_alignment" }, { - "source": "tests_test_graph_retriever", - "target": "src_data_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L9", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "src_scoring_theme_alignment" }, { - "source": "tests_test_graph_retriever", - "target": "tests_test_graph_retriever_test_disabled_without_uri_returns_empty", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L12", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_build_user_prompt", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_graph_retriever", - "target": "tests_test_graph_retriever_test_search_places_parses_records", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L19", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_cache_key", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_graph_retriever", - "target": "tests_test_graph_retriever_test_search_places_empty_query_skips_call", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L39", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L70", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_rationale_70", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_graph_retriever", - "target": "tests_test_graph_retriever_test_search_places_neo4j_error_returns_empty", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L46", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L268", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_call_llm", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_graph_retriever", - "target": "tests_test_graph_retriever_test_find_nearby_parses_and_converts_distance", - "relation": "contains", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L53", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L194", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_graph_retriever", - "target": "tests_test_graph_retriever_test_repeated_failures_skip_driver_call_during_cooldown", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L68", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_graph_retriever", - "target": "tests_test_graph_retriever_test_close_closes_driver", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testclassifyscore", + "target": "src_scoring_theme_alignment_poiwithcategory" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testevaluatewithmockclient", + "target": "src_scoring_theme_alignment_poiwithcategory" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L79", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L126", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_graph_retriever", - "target": "tests_test_graph_retriever_test_from_env_reads_variables", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", "source_location": "L86", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_high_alignment_no_penalty", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_graph_retriever_rationale_1", - "target": "tests_test_graph_retriever", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L1", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L139", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_hard_fail", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L4", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_hard_fail", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testnoapikey", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_hard_fail", - "target": "src_validation_hard_fail", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L7", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L33", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_hard_fail", - "target": "tests_test_hard_fail_make_poi", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L13", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testparsellmresponse", + "target": "src_scoring_theme_alignment_poiwithcategory" }, { - "source": "tests_test_hard_fail_make_poi", - "target": "src_data_models_poi", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L13", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L146", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_parse_llm_response", + "target": "src_scoring_theme_alignment_themejudgment" }, { - "source": "tests_test_hard_fail", - "target": "tests_test_hard_fail_make_plan", - "relation": "contains", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L30", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L268", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_call_llm", + "target": "src_scoring_theme_alignment_themejudgment" }, { - "source": "tests_test_hard_fail_make_plan", - "target": "src_data_models_itineraryplan", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L30", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L194", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", + "target": "src_scoring_theme_alignment_themealignmentreport" }, { - "source": "tests_test_hard_fail", - "target": "tests_test_hard_fail_make_matrix", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L41", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_rationale_100", + "target": "src_scoring_theme_alignment_cache_key" }, { - "source": "tests_test_hard_fail_detector", - "target": "tests_test_hard_fail_py_fixture", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L57", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L217", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", + "target": "src_scoring_theme_alignment_cache_key" }, { - "source": "tests_test_hard_fail", - "target": "tests_test_hard_fail_detector", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L58", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_rationale_114", + "target": "src_scoring_theme_alignment_build_user_prompt" }, { - "source": "tests_test_hard_fail_detector", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L58", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L274", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_call_llm", + "target": "src_scoring_theme_alignment_build_user_prompt" }, { - "source": "tests_test_hard_fail_open_poi", - "target": "tests_test_hard_fail_py_fixture", - "relation": "references", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L62", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L136", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_rationale_136", + "target": "src_scoring_theme_alignment_classify_score" }, { - "source": "tests_test_hard_fail", - "target": "tests_test_hard_fail_open_poi", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L63", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L239", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", + "target": "src_scoring_theme_alignment_classify_score" }, { - "source": "tests_test_hard_fail_open_poi", - "target": "src_data_models_poi", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L63", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "src_scoring_theme_alignment_classify_score" }, { - "source": "tests_test_hard_fail", - "target": "tests_test_hard_fail_testhelpers", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L71", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testclassifyscore_test_high_score_no_penalty", + "target": "src_scoring_theme_alignment_classify_score" }, { - "source": "tests_test_hard_fail_testhelpers", - "target": "tests_test_hard_fail_testhelpers_test_time_to_min", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L72", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testclassifyscore_test_low_score_critical", + "target": "src_scoring_theme_alignment_classify_score" }, { - "source": "tests_test_hard_fail_testhelpers", - "target": "tests_test_hard_fail_testhelpers_test_min_to_time", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L75", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L147", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_rationale_147", + "target": "src_scoring_theme_alignment_parse_llm_response" }, { - "source": "tests_test_hard_fail_testhelpers", - "target": "tests_test_hard_fail_testhelpers_test_time_to_min_midnight", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L78", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L294", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_call_llm", + "target": "src_scoring_theme_alignment_parse_llm_response" }, { - "source": "tests_test_hard_fail_testhelpers", - "target": "tests_test_hard_fail_testhelpers_test_min_to_time_midnight", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L81", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "src_scoring_theme_alignment_parse_llm_response" }, { - "source": "tests_test_hard_fail_testhelpers", - "target": "tests_test_hard_fail_testhelpers_test_min_to_time_wraps_past_24h", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L84", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L55", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testparsellmresponse_test_clean_json", + "target": "src_scoring_theme_alignment_parse_llm_response" }, { - "source": "tests_test_hard_fail", - "target": "tests_test_hard_fail_testoperatinghours", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L92", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testparsellmresponse_test_code_block_stripped", + "target": "src_scoring_theme_alignment_parse_llm_response" }, { - "source": "tests_test_hard_fail_testoperatinghours", - "target": "tests_test_hard_fail_testoperatinghours_test_no_fail_within_hours", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L93", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L62", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testparsellmresponse_test_score_clamped_to_1", + "target": "src_scoring_theme_alignment_parse_llm_response" }, { - "source": "tests_test_hard_fail_testoperatinghours", - "target": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_before_open", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L101", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L167", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_rationale_167", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_hard_fail_testoperatinghours", - "target": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_after_close", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L112", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L268", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge", + "target": "src_scoring_theme_alignment_themealignmentjudge_call_llm" }, { - "source": "tests_test_hard_fail_testoperatinghours", - "target": "tests_test_hard_fail_testoperatinghours_test_no_fail_for_fallback_hours", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L121", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L194", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge", + "target": "src_scoring_theme_alignment_themealignmentjudge_evaluate" }, { - "source": "tests_test_hard_fail", - "target": "tests_test_hard_fail_testtraveltimeimpossible", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L135", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L174", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge", + "target": "src_scoring_theme_alignment_themealignmentjudge_init" }, { - "source": "tests_test_hard_fail_testtraveltimeimpossible", - "target": "tests_test_hard_fail_testtraveltimeimpossible_test_travel_impossible", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L136", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L190", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge", + "target": "src_scoring_theme_alignment_themealignmentjudge_is_available" }, { - "source": "tests_test_hard_fail_testtraveltimeimpossible", - "target": "tests_test_hard_fail_testtraveltimeimpossible_test_no_fail_sufficient_window", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L150", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_hard_fail", - "target": "tests_test_hard_fail_testscheduleinfeasible", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L165", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testclassifyscore", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_hard_fail_testscheduleinfeasible", - "target": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_exceeds_24h", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L166", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testevaluatewithmockclient", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_hard_fail_testscheduleinfeasible", - "target": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_within_24h", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L184", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L124", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_hard_fail", - "target": "tests_test_hard_fail_testnormalplan", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L201", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_high_alignment_no_penalty", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_hard_fail_testnormalplan", - "target": "tests_test_hard_fail_testnormalplan_test_normal_plan_no_fails", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L202", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L137", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_hard_fail", - "target": "tests_test_hard_fail_testdayindex", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L221", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_hard_fail_testdayindex", - "target": "tests_test_hard_fail_testdayindex_test_day_index_defaults_to_none", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L222", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testdayindex", - "target": "tests_test_hard_fail_testdayindex_test_day_index_set_when_passed", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L229", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_make_poi", - "target": "src_data_models_poi", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L23", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testnoapikey", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_hard_fail_make_plan", - "target": "src_data_models_itineraryplan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L32", + "confidence_score": 1.0, + "source_file": "tests/test_theme_alignment.py", + "source_location": "L31", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_hard_fail_detector", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L59", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L10", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_theme_alignment_testparsellmresponse", + "target": "src_scoring_theme_alignment_themealignmentjudge" }, { - "source": "tests_test_hard_fail_open_poi", - "target": "tests_test_hard_fail_make_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L64", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L191", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_rationale_191", + "target": "src_scoring_theme_alignment_themealignmentjudge_is_available" }, { - "source": "tests_test_hard_fail_testoperatinghours_test_no_fail_within_hours", - "target": "tests_test_hard_fail_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L96", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", + "target": "src_scoring_theme_alignment_themealignmentjudge_is_available" }, { - "source": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_before_open", - "target": "tests_test_hard_fail_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L104", + "source_file": "src/scoring/theme_alignment.py", + "source_location": "L222", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", + "target": "src_scoring_theme_alignment_themealignmentjudge_call_llm" }, { - "source": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_after_close", - "target": "tests_test_hard_fail_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L114", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_scoring_travel_ratio_classify_ratio" }, { - "source": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_after_close", - "target": "tests_test_hard_fail_make_plan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L116", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_scoring_travel_ratio_compute_day_metric" }, { - "source": "tests_test_hard_fail_testoperatinghours_test_no_fail_for_fallback_hours", - "target": "tests_test_hard_fail_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L123", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_scoring_travel_ratio_dayratiometric" }, { - "source": "tests_test_hard_fail_testoperatinghours_test_no_fail_for_fallback_hours", - "target": "tests_test_hard_fail_make_plan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L125", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_scoring_travel_ratio_evaluate_travel_ratio" }, { - "source": "tests_test_hard_fail_testtraveltimeimpossible_test_travel_impossible", - "target": "tests_test_hard_fail_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L139", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_scoring_travel_ratio_travelratioreport" }, { - "source": "tests_test_hard_fail_testtraveltimeimpossible_test_travel_impossible", - "target": "tests_test_hard_fail_make_matrix", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L142", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_validation_vrptw_engine" }, { - "source": "tests_test_hard_fail_testtraveltimeimpossible_test_travel_impossible", - "target": "tests_test_hard_fail_make_plan", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L143", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_hard_fail_testtraveltimeimpossible_test_no_fail_sufficient_window", - "target": "tests_test_hard_fail_make_poi", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L151", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_hard_fail_testtraveltimeimpossible_test_no_fail_sufficient_window", - "target": "tests_test_hard_fail_make_matrix", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L154", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_rationale_1", + "target": "src_scoring_travel_ratio" }, { - "source": "tests_test_hard_fail_testtraveltimeimpossible_test_no_fail_sufficient_window", - "target": "tests_test_hard_fail_make_plan", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L155", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio", + "target": "src_scoring_travel_ratio" }, { - "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_exceeds_24h", - "target": "tests_test_hard_fail_make_poi", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L169", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_compute_day_metric", + "target": "src_scoring_travel_ratio_dayratiometric" }, { - "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_exceeds_24h", - "target": "tests_test_hard_fail_make_matrix", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L175", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L14", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_travel_ratio_dayratiometric", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_exceeds_24h", - "target": "tests_test_hard_fail_make_plan", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L178", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L14", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_travel_ratio_dayratiometric", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_within_24h", - "target": "tests_test_hard_fail_make_poi", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L186", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_evaluate_travel_ratio", + "target": "src_scoring_travel_ratio_travelratioreport" }, { - "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_within_24h", - "target": "tests_test_hard_fail_make_matrix", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L189", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L14", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_travel_ratio_travelratioreport", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_within_24h", - "target": "tests_test_hard_fail_make_plan", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L190", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L14", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_scoring_travel_ratio_travelratioreport", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_hard_fail_testnormalplan_test_normal_plan_no_fails", - "target": "tests_test_hard_fail_make_poi", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L204", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_compute_day_metric", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_hard_fail_testnormalplan_test_normal_plan_no_fails", - "target": "tests_test_hard_fail_make_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L209", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L97", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_evaluate_travel_ratio", + "target": "src_scoring_travel_ratio_compute_day_metric" }, { - "source": "tests_test_hard_fail_testnormalplan_test_normal_plan_no_fails", - "target": "tests_test_hard_fail_make_plan", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L212", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L52", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_rationale_52", + "target": "src_scoring_travel_ratio_compute_day_metric" }, { - "source": "tests_test_hard_fail_testdayindex_test_day_index_defaults_to_none", - "target": "tests_test_hard_fail_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L223", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_evaluate_travel_ratio", + "target": "src_scoring_travel_ratio_classify_ratio" }, { - "source": "tests_test_hard_fail_testdayindex_test_day_index_defaults_to_none", - "target": "tests_test_hard_fail_make_plan", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L224", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_rationale_73", + "target": "src_scoring_travel_ratio_classify_ratio" }, { - "source": "tests_test_hard_fail_testdayindex_test_day_index_set_when_passed", - "target": "tests_test_hard_fail_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L230", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_evaluate_travel_ratio", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_hard_fail_testdayindex_test_day_index_set_when_passed", - "target": "tests_test_hard_fail_make_plan", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L231", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_evaluate_travel_ratio", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_hard_fail_rationale_1", - "target": "tests_test_hard_fail", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L1", + "source_file": "src/scoring/travel_ratio.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_scoring_travel_ratio_rationale_87", + "target": "src_scoring_travel_ratio_evaluate_travel_ratio" }, { - "source": "tests_test_kakao_local", - "target": "unittest_mock", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L4", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio", + "target": "src_scoring_travel_ratio_evaluate_travel_ratio" }, { - "source": "tests_test_kakao_local", - "target": "src_data_kakao_local", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L6", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_test_no_penalty_when_ratio_low", + "target": "src_scoring_travel_ratio_evaluate_travel_ratio" }, { - "source": "tests_test_kakao_local", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L7", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days", + "target": "src_scoring_travel_ratio_evaluate_travel_ratio" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_ok_response", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L10", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_test_penalty_when_ratio_high", + "target": "src_scoring_travel_ratio_evaluate_travel_ratio" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_disabled_without_key_returns_none", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L29", + "source_file": "src/utils/geo.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_search_parses_first_document", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L35", + "source_file": "src/utils/geo.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_result_is_cached", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L46", + "source_file": "src/utils/geo.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_empty_documents_returns_none", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L55", + "source_file": "src/utils/geo.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_http_error_falls_back_to_none", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L64", + "source_file": "src/utils/geo.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo_rationale_1", + "target": "src_utils_geo" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_multi_response", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L73", + "source_file": "src/validation/hard_fail.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail", + "target": "src_utils_geo" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_search_keyword_list_parses_all", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L87", + "source_file": "src/validation/scoring.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_utils_geo" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_search_keyword_list_disabled_returns_empty", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L96", + "source_file": "src/validation/warning.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_utils_geo" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_address_response", - "relation": "contains", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L101", + "source_file": "tests/test_geo.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "src_utils_geo" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_geocode_address_parses_lat_lng", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L116", + "source_file": "src/utils/geo.py", + "source_location": "L31", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo_build_dist_cache", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_geocode_address_disabled_without_key_returns_none", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L124", + "source_file": "src/utils/geo.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo_get_travel_min", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_geocode_address_is_cached", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L129", + "source_file": "src/utils/geo.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo_nn_heuristic_km", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_geocode_address_empty_documents_returns_none", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L138", + "source_file": "src/utils/geo.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo_rationale_12", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_local", - "target": "tests_test_kakao_local_test_geocode_address_http_error_falls_back_to_none", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L147", + "source_file": "tests/test_geo.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_local_test_search_parses_first_document", - "target": "tests_test_kakao_local_ok_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L37", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testbuilddistcache_test_values_match_haversine", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_local_test_result_is_cached", - "target": "tests_test_kakao_local_ok_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L48", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L145", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testgettravelmin_test_haversine_fallback_when_no_matrix", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_local_test_search_keyword_list_parses_all", - "target": "tests_test_kakao_local_multi_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L89", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testhaversinekm_test_known_distance", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_local_test_geocode_address_parses_lat_lng", - "target": "tests_test_kakao_local_address_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L118", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testhaversinekm_test_positive", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_local_test_geocode_address_is_cached", - "target": "tests_test_kakao_local_address_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L131", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L30", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testhaversinekm_test_same_point_is_zero", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_local_rationale_1", - "target": "tests_test_kakao_local", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L1", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testhaversinekm_test_symmetric", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_matrix", - "target": "json", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L4", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L125", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testnnheuristickm_test_collinear_optimal_order_matches_nn", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_matrix", - "target": "unittest_mock", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L5", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testnnheuristickm_test_nn_le_actual_for_suboptimal", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_matrix", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L7", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L97", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testnnheuristickm_test_two_pois_returns_distance", + "target": "src_utils_geo_haversine_km" }, { - "source": "tests_test_kakao_matrix", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L9", + "source_file": "src/utils/geo.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo_rationale_22", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix", - "target": "src_validation_kakao_matrix", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L10", + "source_file": "src/validation/hard_fail.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix", - "target": "tests_test_kakao_matrix_place", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L13", + "confidence_score": 1.0, + "source_file": "src/validation/hard_fail.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_hard_fail_hardfaildetector_detect", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix_place", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "return_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L13", + "source_file": "src/validation/scoring.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix", - "target": "tests_test_kakao_matrix_ok_response", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L20", + "confidence_score": 1.0, + "source_file": "src/validation/scoring.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_scoring_scorecalculator_calc_efficiency", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix", - "target": "tests_test_kakao_matrix_httpx_sync_client", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L33", + "confidence_score": 1.0, + "source_file": "src/validation/scoring.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_scoring_scorecalculator_calc_feasibility", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix", - "target": "tests_test_kakao_matrix_testsamepoint", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L47", + "confidence_score": 1.0, + "source_file": "src/validation/scoring.py", + "source_location": "L147", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_scoring_scorecalculator_calc_flow", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix_testsamepoint", - "target": "tests_test_kakao_matrix_testsamepoint_test_same_coords_returns_zero", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L48", + "confidence_score": 1.0, + "source_file": "src/validation/scoring.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_scoring_scorecalculator_compute", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix", - "target": "tests_test_kakao_matrix_testapicall", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L58", + "source_file": "src/validation/warning.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix_testapicall", - "target": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L59", + "confidence_score": 1.0, + "source_file": "src/validation/warning.py", + "source_location": "L204", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix_testapicall", - "target": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L71", + "confidence_score": 1.0, + "source_file": "src/validation/warning.py", + "source_location": "L61", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_warning_warningdetector_detect", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix_testapicall", - "target": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L85", + "source_file": "tests/test_geo.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix_testapicall", - "target": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L98", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L54", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testbuilddistcache_test_all_pairs_present", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix", - "target": "tests_test_kakao_matrix_testquotaexhaustion", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L116", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L82", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testbuilddistcache_test_empty_list_empty_cache", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix_testquotaexhaustion", - "target": "tests_test_kakao_matrix_testquotaexhaustion_test_429_sets_quota_exhausted", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L117", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L62", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testbuilddistcache_test_no_self_pairs", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix_testquotaexhaustion", - "target": "tests_test_kakao_matrix_testquotaexhaustion_test_get_travel_time_haversine_fallback_when_no_cache", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L132", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L78", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testbuilddistcache_test_single_poi_empty_cache", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix_testquotaexhaustion", - "target": "tests_test_kakao_matrix_testquotaexhaustion_test_after_quota_exhausted_get_travel_time_falls_back", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L141", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testbuilddistcache_test_values_match_haversine", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix", - "target": "tests_test_kakao_matrix_testautherror", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L155", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L118", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testnnheuristickm_test_cache_gives_same_result", + "target": "src_utils_geo_build_dist_cache" }, { - "source": "tests_test_kakao_matrix_testautherror", - "target": "tests_test_kakao_matrix_testautherror_test_401_raises", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L156", + "source_file": "src/utils/geo.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo_rationale_39", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix", - "target": "tests_test_kakao_matrix_testcachepersistence", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L174", + "source_file": "src/validation/scoring.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix_testcachepersistence", - "target": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L175", + "confidence_score": 1.0, + "source_file": "src/validation/scoring.py", + "source_location": "L77", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_scoring_scorecalculator_calc_efficiency", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix", - "target": "tests_test_kakao_matrix_testfromenv", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L201", + "confidence_score": 1.0, + "source_file": "src/validation/scoring.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_scoring_scorecalculator_calc_flow", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix_testfromenv", - "target": "tests_test_kakao_matrix_testfromenv_test_no_key_raises", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L202", + "source_file": "src/validation/warning.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix_testfromenv", - "target": "tests_test_kakao_matrix_testfromenv_test_uses_mobility_key_first", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L208", + "confidence_score": 1.0, + "source_file": "src/validation/warning.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_warning_warningdetector_check_inefficient_route", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix_testfromenv", - "target": "tests_test_kakao_matrix_testfromenv_test_falls_back_to_rest_key", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L214", + "source_file": "tests/test_geo.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix", - "target": "tests_test_kakao_matrix_testasyncprefetch", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L225", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testnnheuristickm_test_cache_gives_same_result", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix_testasyncprefetch", - "target": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_populates_cache_and_hit_on_get", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L226", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L127", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testnnheuristickm_test_collinear_optimal_order_matches_nn", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix_testasyncprefetch", - "target": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_deduplicates_bidirectional", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L241", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L113", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testnnheuristickm_test_nn_le_actual_for_suboptimal", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix_place", - "target": "src_data_models_vrptwplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L14", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testnnheuristickm_test_single_poi_returns_zero", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix_testsamepoint_test_same_coords_returns_zero", - "target": "tests_test_kakao_matrix_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L50", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L98", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testnnheuristickm_test_two_pois_returns_distance", + "target": "src_utils_geo_nn_heuristic_km" }, { - "source": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache", - "target": "tests_test_kakao_matrix_place", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L61", + "source_file": "src/utils/geo.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_utils_geo_rationale_81", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache", - "target": "tests_test_kakao_matrix_httpx_sync_client", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L65", + "source_file": "src/validation/hard_fail.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache", - "target": "tests_test_kakao_matrix_ok_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L65", + "confidence_score": 1.0, + "source_file": "src/validation/hard_fail.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_hard_fail_hardfaildetector_check_operating_hours", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call", - "target": "tests_test_kakao_matrix_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L73", + "confidence_score": 1.0, + "source_file": "src/validation/hard_fail.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call", - "target": "tests_test_kakao_matrix_httpx_sync_client", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L77", + "confidence_score": 1.0, + "source_file": "src/validation/hard_fail.py", + "source_location": "L161", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call", - "target": "tests_test_kakao_matrix_ok_response", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L77", + "source_file": "src/validation/scoring.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit", - "target": "tests_test_kakao_matrix_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L87", + "confidence_score": 1.0, + "source_file": "src/validation/scoring.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_scoring_scorecalculator_calc_feasibility", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit", - "target": "tests_test_kakao_matrix_httpx_sync_client", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L91", + "source_file": "src/validation/warning.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit", - "target": "tests_test_kakao_matrix_ok_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L91", + "confidence_score": 1.0, + "source_file": "src/validation/warning.py", + "source_location": "L207", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached", - "target": "tests_test_kakao_matrix_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L100", + "confidence_score": 1.0, + "source_file": "src/validation/warning.py", + "source_location": "L86", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_warning_warningdetector_check_dense_schedule", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached", - "target": "tests_test_kakao_matrix_httpx_sync_client", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L104", + "source_file": "tests/test_geo.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached", - "target": "tests_test_kakao_matrix_ok_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L104", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L154", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testgettravelmin_test_cache_fallback_when_no_matrix", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testquotaexhaustion_test_429_sets_quota_exhausted", - "target": "tests_test_kakao_matrix_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L119", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L147", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testgettravelmin_test_haversine_fallback_when_no_matrix", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testquotaexhaustion_test_429_sets_quota_exhausted", - "target": "tests_test_kakao_matrix_httpx_sync_client", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L126", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L162", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testgettravelmin_test_matrix_takes_priority_over_cache", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testquotaexhaustion_test_get_travel_time_haversine_fallback_when_no_cache", - "target": "tests_test_kakao_matrix_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L134", + "confidence_score": 1.0, + "source_file": "tests/test_geo.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_geo_testgettravelmin_test_uses_matrix_when_available", + "target": "src_utils_geo_get_travel_min" }, { - "source": "tests_test_kakao_matrix_testquotaexhaustion_test_after_quota_exhausted_get_travel_time_falls_back", - "target": "tests_test_kakao_matrix_place", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L144", + "source_file": "src/validation/alternatives.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_kakao_matrix_testautherror_test_401_raises", - "target": "tests_test_kakao_matrix_place", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L161", + "source_file": "src/validation/alternatives.py", + "source_location": "L33", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives", + "target": "src_validation_alternatives_haversine_km" }, { - "source": "tests_test_kakao_matrix_testautherror_test_401_raises", - "target": "tests_test_kakao_matrix_httpx_sync_client", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L165", + "source_file": "src/validation/alternatives.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_rationale_1", + "target": "src_validation_alternatives" }, { - "source": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache", - "target": "tests_test_kakao_matrix_place", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L179", + "source_file": "tests/test_alternatives.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives", + "target": "src_validation_alternatives" }, { - "source": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache", - "target": "tests_test_kakao_matrix_httpx_sync_client", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L183", + "source_file": "src/validation/alternatives.py", + "source_location": "L75", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_alternativesfinder_find_alternatives", + "target": "src_validation_alternatives_haversine_km" }, { - "source": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache", - "target": "tests_test_kakao_matrix_ok_response", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L183", + "source_file": "src/validation/alternatives.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_alternativesfinder", + "target": "src_validation_alternatives_alternativesfinder_build_alternatives_map" }, { - "source": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_populates_cache_and_hit_on_get", - "target": "tests_test_kakao_matrix_place", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L231", + "source_file": "src/validation/alternatives.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_alternativesfinder", + "target": "src_validation_alternatives_alternativesfinder_find_alternatives" }, { - "source": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_deduplicates_bidirectional", - "target": "tests_test_kakao_matrix_place", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L249", + "source_file": "src/validation/alternatives.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_alternativesfinder", + "target": "src_validation_alternatives_alternativesfinder_init" }, { - "source": "tests_test_kakao_matrix_rationale_1", - "target": "tests_test_kakao_matrix", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L1", + "source_file": "src/validation/alternatives.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_rationale_42", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_kakao_matrix_rationale_21", - "target": "tests_test_kakao_matrix_ok_response", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L21", + "source_file": "tests/test_alternatives.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_kakao_matrix_rationale_34", - "target": "tests_test_kakao_matrix_httpx_sync_client", - "relation": "rationale_for", - "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L34", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_alternatives.py", + "source_location": "L6", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_alternatives_testbuildalternativesmap", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_kakao_matrix_rationale_227", - "target": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_populates_cache_and_hit_on_get", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L227", + "confidence_score": 1.0, + "source_file": "tests/test_alternatives.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_alternatives_testbuildalternativesmap_test_default_no_substitution", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_kakao_matrix_rationale_242", - "target": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_deduplicates_bidirectional", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L242", + "confidence_score": 1.0, + "source_file": "tests/test_alternatives.py", + "source_location": "L124", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_alternatives_testbuildalternativesmap_test_excludes_plan_pois_from_alternatives", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_party_config", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L4", + "confidence_score": 1.0, + "source_file": "tests/test_alternatives.py", + "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_alternatives_testbuildalternativesmap_test_maps_failed_poi_to_alternatives", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_party_config", - "target": "src_data_party_config", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L6", + "confidence_score": 1.0, + "source_file": "tests/test_alternatives.py", + "source_location": "L117", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_alternatives_testbuildalternativesmap_test_no_duplicate_keys", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_party_config", - "target": "tests_test_party_config_testpartyprofiles", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L9", + "confidence_score": 1.0, + "source_file": "tests/test_alternatives.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_alternatives_testbuildalternativesmap_test_skips_none_poi_name", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_party_config_testpartyprofiles", - "target": "tests_test_party_config_testpartyprofiles_test_all_types_defined", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L10", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_alternatives.py", + "source_location": "L6", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_alternatives_testfindalternatives", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_party_config_testpartyprofiles", - "target": "tests_test_party_config_testpartyprofiles_test_friends_speed_factor_one", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L14", + "confidence_score": 1.0, + "source_file": "tests/test_alternatives.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_alternatives_testfindalternatives_test_distance_km_is_correct", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_party_config_testpartyprofiles", - "target": "tests_test_party_config_testpartyprofiles_test_baby_speed_factor_below_one", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L17", + "confidence_score": 1.0, + "source_file": "tests/test_alternatives.py", + "source_location": "L51", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_alternatives_testfindalternatives_test_excludes_failed_poi_itself", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_party_config_testpartyprofiles", - "target": "tests_test_party_config_testpartyprofiles_test_elderly_speed_factor_below_one", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L20", + "confidence_score": 1.0, + "source_file": "tests/test_alternatives.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_alternatives_testfindalternatives_test_respects_max_alternatives", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_party_config_testpartyprofiles", - "target": "tests_test_party_config_testpartyprofiles_test_baby_fatigue_hours_lower_than_friends", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L23", + "confidence_score": 1.0, + "source_file": "tests/test_alternatives.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_alternatives_testfindalternatives_test_respects_search_radius", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_party_config_testpartyprofiles", - "target": "tests_test_party_config_testpartyprofiles_test_elderly_fatigue_hours_lower_than_friends", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L28", + "confidence_score": 1.0, + "source_file": "tests/test_alternatives.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_alternatives_testfindalternatives_test_returns_nearby_same_category", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_party_config_testpartyprofiles", - "target": "tests_test_party_config_testpartyprofiles_test_family_fatigue_between_friends_and_baby", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L33", + "confidence_score": 1.0, + "source_file": "tests/test_alternatives.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_alternatives_testfindalternatives_test_same_category_sorted_before_different", + "target": "src_validation_alternatives_alternativesfinder" }, { - "source": "tests_test_party_config_testpartyprofiles", - "target": "tests_test_party_config_testpartyprofiles_test_unknown_type_returns_default", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L39", + "source_file": "src/validation/alternatives.py", + "source_location": "L118", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_alternativesfinder_build_alternatives_map", + "target": "src_validation_alternatives_alternativesfinder_find_alternatives" }, { - "source": "tests_test_party_config_testpartyprofiles", - "target": "tests_test_party_config_testpartyprofiles_test_profile_is_frozen", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L44", + "source_file": "src/validation/alternatives.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_rationale_65", + "target": "src_validation_alternatives_alternativesfinder_find_alternatives" }, { - "source": "tests_test_party_config", - "target": "tests_test_party_config_testpartyprofilevalues", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L50", + "source_file": "src/validation/alternatives.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_alternatives_rationale_99", + "target": "src_validation_alternatives_alternativesfinder_build_alternatives_map" }, { - "source": "tests_test_party_config_testpartyprofilevalues", - "target": "tests_test_party_config_testpartyprofilevalues_test_friends_fatigue_12h", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L51", + "source_file": "src/validation/hard_fail.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_party_config_testpartyprofilevalues", - "target": "tests_test_party_config_testpartyprofilevalues_test_baby_fatigue_8h", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L54", + "source_file": "src/validation/hard_fail.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_rationale_1", + "target": "src_validation_hard_fail" }, { - "source": "tests_test_party_config_testpartyprofilevalues", - "target": "tests_test_party_config_testpartyprofilevalues_test_elderly_fatigue_8h", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L57", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail", + "target": "src_validation_hard_fail" }, { - "source": "tests_test_party_config_testpartyprofilevalues", - "target": "tests_test_party_config_testpartyprofilevalues_test_family_fatigue_10h", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L60", + "source_file": "tests/test_hard_fail.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "src_validation_hard_fail" }, { - "source": "tests_test_party_config_testpartyprofilevalues", - "target": "tests_test_party_config_testpartyprofilevalues_test_baby_speed_factor_is_point_eight", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L63", + "source_file": "src/validation/hard_fail.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector", + "target": "src_validation_hard_fail_hardfaildetector_check_operating_hours" }, { - "source": "tests_test_party_config_testpartyprofilevalues", - "target": "tests_test_party_config_testpartyprofilevalues_test_family_speed_factor_is_point_nine", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L66", + "source_file": "src/validation/hard_fail.py", + "source_location": "L189", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector", + "target": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible" }, { - "source": "tests_test_party_config", - "target": "tests_test_party_config_teststrainthresholdlogic", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L70", + "source_file": "src/validation/hard_fail.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector", + "target": "src_validation_hard_fail_hardfaildetector_check_travel_impossible" }, { - "source": "tests_test_party_config_teststrainthresholdlogic", - "target": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_lower_than_friends", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L75", + "source_file": "src/validation/hard_fail.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector", + "target": "src_validation_hard_fail_hardfaildetector_detect" }, { - "source": "tests_test_party_config_teststrainthresholdlogic", - "target": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_is_24km", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L80", + "source_file": "src/validation/hard_fail.py", + "source_location": "L227", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector", + "target": "src_validation_hard_fail_hardfaildetector_min_to_time" }, { - "source": "tests_test_party_config_teststrainthresholdlogic", - "target": "tests_test_party_config_teststrainthresholdlogic_test_friends_threshold_unchanged", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L84", + "source_file": "src/validation/hard_fail.py", + "source_location": "L222", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector", + "target": "src_validation_hard_fail_hardfaildetector_time_to_min" }, { - "source": "tests_test_party_config_rationale_1", - "target": "tests_test_party_config", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L1", + "source_file": "src/validation/hard_fail.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_rationale_18", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_party_config_rationale_71", - "target": "tests_test_party_config_teststrainthresholdlogic", - "relation": "rationale_for", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L71", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "unittest_mock", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L4", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail_test_estimated_hours_conflict_flagged_estimated", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L6", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail_test_verified_hours_conflict_not_estimated_and_message_unchanged", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_data_models", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", + "source_file": "tests/test_hard_fail.py", "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_explain_pipeline", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L9", + "source_file": "tests/test_hard_fail.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_detector", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_scoring_bonus_engine", - "relation": "imports_from", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L10", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testdayindex", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_make_poi", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L17", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testhelpers", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_pipeline_orchestrator_make_poi", - "target": "src_data_models_poi", - "relation": "references", - "context": "return_type", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L17", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testnormalplan", + "target": "src_validation_hard_fail_hardfaildetector" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_make_plan", - "relation": "contains", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testoperatinghours", + "target": "src_validation_hard_fail_hardfaildetector" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testscheduleinfeasible", + "target": "src_validation_hard_fail_hardfaildetector" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_hard_fail.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_hard_fail_testtraveltimeimpossible", + "target": "src_validation_hard_fail_hardfaildetector" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L33", + "source_file": "src/validation/hard_fail.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_detect", + "target": "src_validation_hard_fail_hardfaildetector_check_operating_hours" }, { - "source": "tests_test_pipeline_orchestrator_make_plan", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L33", + "source_file": "src/validation/hard_fail.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_detect", + "target": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_make_multi_day_plan", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L47", + "source_file": "src/validation/hard_fail.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_detect", + "target": "src_validation_hard_fail_hardfaildetector_check_travel_impossible" }, { - "source": "tests_test_pipeline_orchestrator_make_multi_day_plan", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L47", + "source_file": "src/validation/hard_fail.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_detect", + "target": "src_validation_hard_fail_hardfaildetector_time_to_min" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_make_empty_bonus_engine", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L56", + "source_file": "src/validation/hard_fail.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_rationale_34", + "target": "src_validation_hard_fail_hardfaildetector_detect" }, { - "source": "tests_test_pipeline_orchestrator_make_empty_bonus_engine", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L56", + "source_file": "src/validation/hard_fail.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_check_operating_hours", + "target": "src_validation_hard_fail_hardfaildetector_min_to_time" }, { - "source": "tests_test_pipeline_orchestrator_pipeline", - "target": "tests_test_pipeline_orchestrator_py_fixture", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L60", + "source_file": "src/validation/hard_fail.py", + "source_location": "L74", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_check_operating_hours", + "target": "src_validation_hard_fail_hardfaildetector_time_to_min" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_pipeline", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L61", + "source_file": "src/validation/hard_fail.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_rationale_64", + "target": "src_validation_hard_fail_hardfaildetector_check_operating_hours" }, { - "source": "tests_test_pipeline_orchestrator_pipeline", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L61", + "source_file": "src/validation/hard_fail.py", + "source_location": "L176", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", + "target": "src_validation_hard_fail_hardfaildetector_min_to_time" }, { - "source": "tests_test_pipeline_orchestrator_sample_pois", - "target": "tests_test_pipeline_orchestrator_py_fixture", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L65", + "source_file": "src/validation/hard_fail.py", + "source_location": "L153", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", + "target": "src_validation_hard_fail_hardfaildetector_time_to_min" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_sample_pois", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L66", + "source_file": "src/validation/hard_fail.py", + "source_location": "L148", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_rationale_148", + "target": "src_validation_hard_fail_hardfaildetector_check_travel_impossible" }, { - "source": "tests_test_pipeline_orchestrator_sample_pois", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L66", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_sample_plan", - "target": "tests_test_pipeline_orchestrator_py_fixture", - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L75", - "weight": 1.0, - "context": "decorator", - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_sample_plan", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L76", + "source_file": "src/validation/hard_fail.py", + "source_location": "L196", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_hard_fail_rationale_196", + "target": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible" }, { - "source": "tests_test_pipeline_orchestrator_sample_plan", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L76", + "confidence_score": 1.0, + "source_file": "tests/test_hard_fail.py", + "source_location": "L82", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_hard_fail_testhelpers_test_time_to_min", + "target": "src_validation_hard_fail_hardfaildetector_time_to_min" }, { - "source": "tests_test_pipeline_orchestrator_sample_plan", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L76", + "confidence_score": 1.0, + "source_file": "tests/test_hard_fail.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_hard_fail_testhelpers_test_time_to_min_midnight", + "target": "src_validation_hard_fail_hardfaildetector_time_to_min" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_testtovrptwday", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L84", + "confidence_score": 1.0, + "source_file": "tests/test_hard_fail.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_hard_fail_testhelpers_test_min_to_time", + "target": "src_validation_hard_fail_hardfaildetector_min_to_time" }, { - "source": "tests_test_pipeline_orchestrator_testtovrptwday", - "target": "tests_test_pipeline_orchestrator_testtovrptwday_test_converts_poi_fields", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L85", + "confidence_score": 1.0, + "source_file": "tests/test_hard_fail.py", + "source_location": "L91", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_hard_fail_testhelpers_test_min_to_time_midnight", + "target": "src_validation_hard_fail_hardfaildetector_min_to_time" }, { - "source": "tests_test_pipeline_orchestrator_testtovrptwday", - "target": "tests_test_pipeline_orchestrator_testtovrptwday_test_is_depot_false", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", + "confidence_score": 1.0, + "source_file": "tests/test_hard_fail.py", "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_hard_fail_testhelpers_test_min_to_time_wraps_past_24h", + "target": "src_validation_hard_fail_hardfaildetector_min_to_time" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_testpipelinebasic", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L104", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L46", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_returns_validation_result", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L105", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix", + "target": "src_validation_vrptw_engine" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_final_score_in_range", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L113", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_plan_id_matches", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L121", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_scores_populated", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L129", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_rationale_1", + "target": "src_validation_kakao_matrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_empty_pois_returns_zero_score", - "relation": "method", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L138", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "src_validation_kakao_matrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_base_score_populated", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L143", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", + "source_file": "src/validation/kakao_matrix.py", "source_location": "L156", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_acall_kakao" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_open_hours_conflict_caps_score", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L157", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L121", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_aprefetch_matrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_no_hard_fail_score_above_59_possible", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L173", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L282", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_cache_size" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_hard_fail_day_index_matches_offending_day", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L181", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L187", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L196", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_get_travel_time" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_not_computed_without_hard_fails", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L215", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_init" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L225", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L286", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_is_quota_exhausted" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_breakdown_fields_are_dicts", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L226", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L254", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_load_cache" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L235", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L251", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_make_key" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L246", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L264", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_maybe_save_cache" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_when_enabled", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L257", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L238", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_parse_duration" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_absent_when_disabled", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L266", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L269", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_save_cache" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L274", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L278", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_stats" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L289", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L36", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "target": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_multi_day_runs_without_error", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L290", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L36", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "target": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_sigungu_codes_accepted", - "relation": "method", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L301", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L91", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L318", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_rationale_47", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_fields_present", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L319", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_efficiency_gap_is_float_or_none", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L329", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testapicall", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_efficiency_gap_non_negative", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L337", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_optimal_route_per_day_count", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L346", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_in_breakdown_when_gap_exceeds_threshold", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L359", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_does_not_double_count_with_single_poi", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L373", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L70", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L385", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testasyncprefetch", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "target": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L386", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L274", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_deduplicates_bidirectional", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "target": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_no_repair_no_gain_fields_needed", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L406", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L256", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_populates_cache_and_hit_on_get", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testautherror", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_make_poi", - "target": "src_data_models_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L24", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L181", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testautherror_test_401_raises", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testcachepersistence", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_make_plan", - "target": "src_data_models_itineraryplan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L38", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testfromenv", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testquotaexhaustion", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_make_multi_day_plan", - "target": "src_data_models_itineraryplan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L48", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L137", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testquotaexhaustion_test_429_sets_quota_exhausted", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_make_empty_bonus_engine", - "target": "src_scoring_bonus_engine_bonusengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L57", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L162", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testquotaexhaustion_test_after_quota_exhausted_get_travel_time_falls_back", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_pipeline", - "target": "src_explain_pipeline_validatorpipeline", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L62", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testquotaexhaustion_test_get_travel_time_haversine_fallback_when_no_cache", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_kakao_matrix_testsamepoint", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_pipeline", - "target": "tests_test_pipeline_orchestrator_make_empty_bonus_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L62", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testsamepoint_test_same_coords_returns_zero", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix" }, { - "source": "tests_test_pipeline_orchestrator_sample_pois", - "target": "tests_test_pipeline_orchestrator_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L68", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L78", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_init", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_load_cache" }, { - "source": "tests_test_pipeline_orchestrator_sample_plan", - "target": "tests_test_pipeline_orchestrator_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L77", + "confidence_score": 1.0, + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_init", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_pipeline_orchestrator_testtovrptwday_test_converts_poi_fields", - "target": "tests_test_pipeline_orchestrator_make_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L86", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L97", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_rationale_97", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env" }, { - "source": "tests_test_pipeline_orchestrator_testtovrptwday_test_is_depot_false", - "target": "tests_test_pipeline_orchestrator_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L95", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L243", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testfromenv_test_falls_back_to_rest_key", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic_test_empty_pois_returns_zero_score", - "target": "tests_test_pipeline_orchestrator_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L139", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L232", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testfromenv_test_no_key_raises", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_open_hours_conflict_caps_score", - "target": "src_data_models_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L160", + "confidence_score": 1.0, + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L237", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_kakao_matrix_testfromenv_test_uses_mobility_key_first", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_open_hours_conflict_caps_score", - "target": "tests_test_pipeline_orchestrator_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L166", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_get_travel_time", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_make_key" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_open_hours_conflict_caps_score", - "target": "tests_test_pipeline_orchestrator_make_plan", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L168", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_rationale_104", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_get_travel_time" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_hard_fail_day_index_matches_offending_day", - "target": "tests_test_pipeline_orchestrator_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L183", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_aprefetch_matrix", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_save_cache" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_hard_fail_day_index_matches_offending_day", - "target": "src_data_models_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L184", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L126", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_rationale_126", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_aprefetch_matrix" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_hard_fail_day_index_matches_offending_day", - "target": "tests_test_pipeline_orchestrator_make_multi_day_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L191", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L169", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_acall_kakao", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_parse_duration" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L202", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L157", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_rationale_157", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_acall_kakao" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", - "target": "tests_test_pipeline_orchestrator_make_empty_bonus_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L203", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L192", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_make_key" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", - "target": "src_data_models_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L205", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L219", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_maybe_save_cache" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", - "target": "tests_test_pipeline_orchestrator_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L209", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L215", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_parse_duration" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L237", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L188", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_rationale_188", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_call_kakao_sync" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", - "target": "src_explain_pipeline_validatorpipeline", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L238", + "source_file": "src/validation/kakao_matrix.py", + "source_location": "L267", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_kakao_matrix_kakaomobilitymatrix_maybe_save_cache", + "target": "src_validation_kakao_matrix_kakaomobilitymatrix_save_cache" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", - "target": "tests_test_pipeline_orchestrator_make_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L240", + "source_file": "src/validation/scoring.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", - "target": "tests_test_pipeline_orchestrator_make_plan", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L241", + "source_file": "src/validation/scoring.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_validation_warning" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L248", + "source_file": "src/validation/scoring.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring", + "target": "src_validation_warning_cosine_distance" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L249", + "source_file": "tests/test_scoring.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "src_validation_scoring" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", - "target": "tests_test_pipeline_orchestrator_make_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L251", + "source_file": "src/validation/scoring.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_rationale_22", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", - "target": "tests_test_pipeline_orchestrator_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L252", + "source_file": "src/validation/scoring.py", + "source_location": "L168", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator", + "target": "src_validation_scoring_scorecalculator_calc_area_intensity" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_when_enabled", - "target": "tests_test_pipeline_orchestrator_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L258", + "source_file": "src/validation/scoring.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator", + "target": "src_validation_scoring_scorecalculator_calc_efficiency" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_when_enabled", - "target": "tests_test_pipeline_orchestrator_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L259", + "source_file": "src/validation/scoring.py", + "source_location": "L80", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator", + "target": "src_validation_scoring_scorecalculator_calc_feasibility" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_absent_when_disabled", - "target": "tests_test_pipeline_orchestrator_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L267", + "source_file": "src/validation/scoring.py", + "source_location": "L133", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator", + "target": "src_validation_scoring_scorecalculator_calc_flow" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_absent_when_disabled", - "target": "tests_test_pipeline_orchestrator_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L268", + "source_file": "src/validation/scoring.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator", + "target": "src_validation_scoring_scorecalculator_calc_purpose_fit" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L276", + "source_file": "src/validation/scoring.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator", + "target": "src_validation_scoring_scorecalculator_compute" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L277", + "source_file": "src/validation/scoring.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator", + "target": "src_validation_scoring_scorecalculator_cosine_distance" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", - "target": "tests_test_pipeline_orchestrator_make_poi", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L279", + "source_file": "tests/test_scoring.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", - "target": "tests_test_pipeline_orchestrator_make_plan", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L280", + "source_file": "tests/test_scoring.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_calc", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_multi_day_runs_without_error", - "target": "tests_test_pipeline_orchestrator_make_poi", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L291", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcompute", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_multi_day_runs_without_error", - "target": "tests_test_pipeline_orchestrator_make_multi_day_plan", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L293", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testcosinedistance", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_sigungu_codes_accepted", - "target": "tests_test_pipeline_orchestrator_make_poi", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L302", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testefficiency", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_sigungu_codes_accepted", - "target": "tests_test_pipeline_orchestrator_make_plan", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L303", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testfeasibility", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_optimal_route_per_day_count", - "target": "tests_test_pipeline_orchestrator_make_poi", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L347", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testpurposefit", + "target": "src_validation_scoring_scorecalculator" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_optimal_route_per_day_count", - "target": "tests_test_pipeline_orchestrator_make_multi_day_plan", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_scoring.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_scoring_testweights", + "target": "src_validation_scoring_scorecalculator" + }, + { + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L349", + "source_file": "src/validation/scoring.py", + "source_location": "L31", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_rationale_31", + "target": "src_validation_scoring_scorecalculator_compute" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_in_breakdown_when_gap_exceeds_threshold", - "target": "tests_test_pipeline_orchestrator_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L363", + "source_file": "src/validation/scoring.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_compute", + "target": "src_validation_scoring_scorecalculator_calc_area_intensity" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_in_breakdown_when_gap_exceeds_threshold", - "target": "tests_test_pipeline_orchestrator_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L367", + "source_file": "src/validation/scoring.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_compute", + "target": "src_validation_scoring_scorecalculator_calc_efficiency" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_does_not_double_count_with_single_poi", - "target": "tests_test_pipeline_orchestrator_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L374", + "source_file": "src/validation/scoring.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_compute", + "target": "src_validation_scoring_scorecalculator_calc_feasibility" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_does_not_double_count_with_single_poi", - "target": "tests_test_pipeline_orchestrator_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L375", + "source_file": "src/validation/scoring.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_compute", + "target": "src_validation_scoring_scorecalculator_calc_flow" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag", - "target": "tests_test_pipeline_orchestrator_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L388", + "source_file": "src/validation/scoring.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_compute", + "target": "src_validation_scoring_scorecalculator_calc_purpose_fit" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag", - "target": "src_data_models_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L390", + "source_file": "src/validation/scoring.py", + "source_location": "L61", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_rationale_61", + "target": "src_validation_scoring_scorecalculator_cosine_distance" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag", - "target": "tests_test_pipeline_orchestrator_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L395", + "source_file": "src/validation/scoring.py", + "source_location": "L131", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_scorecalculator_calc_purpose_fit", + "target": "src_validation_scoring_scorecalculator_cosine_distance" }, { - "source": "tests_test_pipeline_orchestrator_rationale_1", - "target": "tests_test_pipeline_orchestrator", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L1", + "source_file": "src/validation/scoring.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_rationale_69", + "target": "src_validation_scoring_scorecalculator_calc_efficiency" }, { - "source": "tests_test_pipeline_orchestrator_rationale_387", - "target": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L387", + "source_file": "src/validation/scoring.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_rationale_88", + "target": "src_validation_scoring_scorecalculator_calc_feasibility" }, { - "source": "tests_test_pipeline_orchestrator_rationale_407", - "target": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_no_repair_no_gain_fields_needed", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L407", + "source_file": "src/validation/scoring.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_rationale_115", + "target": "src_validation_scoring_scorecalculator_calc_purpose_fit" }, { - "source": "tests_test_plan_extractor", - "target": "unittest_mock", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L4", + "source_file": "src/validation/scoring.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_rationale_138", + "target": "src_validation_scoring_scorecalculator_calc_flow" }, { - "source": "tests_test_plan_extractor", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L6", + "source_file": "src/validation/scoring.py", + "source_location": "L169", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_scoring_rationale_169", + "target": "src_validation_scoring_scorecalculator_calc_area_intensity" }, { - "source": "tests_test_plan_extractor", - "target": "src_explain_plan_extractor", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L8", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_client_returning", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L11", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L330", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_check_depot_constraints" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_test_extract_from_text_parses_llm_response", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L19", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L229", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_compute_day_total_minutes" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_test_extract_from_text_strips_code_fence", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L32", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L137", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_haversine_m" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_test_extract_from_text_empty_raises", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L41", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_test_extract_from_text_without_client_falls_back_to_heuristic", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L47", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L160", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_minutes_to_hhmm" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_test_extract_from_document_without_client_raises", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L58", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L152", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_simresult" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_test_extract_from_document_empty_bytes_raises", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L64", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L165", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_simulate_day" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_test_extract_from_document_sends_document_block_for_pdf", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L70", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L258", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_solve_vrptw_ortools" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_test_extract_from_document_sends_image_block_for_png", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L81", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_time_to_minutes" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_test_invalid_json_response_raises", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L91", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_test_api_call_failure_raises_extraction_error", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L97", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L400", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_plan_extractor", - "target": "tests_test_plan_extractor_test_system_prompt_uses_prompt_caching", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L106", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_rationale_1", + "target": "src_validation_vrptw_engine" }, { - "source": "tests_test_plan_extractor_test_extract_from_text_parses_llm_response", - "target": "tests_test_plan_extractor_client_returning", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L20", + "source_file": "tests/test_route_matrix.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix", + "target": "src_validation_vrptw_engine" }, { - "source": "tests_test_plan_extractor_test_extract_from_text_strips_code_fence", - "target": "tests_test_plan_extractor_client_returning", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L33", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio", + "target": "src_validation_vrptw_engine" }, { - "source": "tests_test_plan_extractor_test_extract_from_text_empty_raises", - "target": "tests_test_plan_extractor_client_returning", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L42", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "src_validation_vrptw_engine" }, { - "source": "tests_test_plan_extractor_test_extract_from_document_empty_bytes_raises", - "target": "tests_test_plan_extractor_client_returning", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L65", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L427", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_validate", + "target": "src_validation_vrptw_engine_time_to_minutes" }, { - "source": "tests_test_plan_extractor_test_extract_from_document_sends_document_block_for_pdf", - "target": "tests_test_plan_extractor_client_returning", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L71", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_plan_extractor_test_extract_from_document_sends_image_block_for_png", - "target": "tests_test_plan_extractor_client_returning", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L82", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_cachedroutematrix", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_plan_extractor_test_invalid_json_response_raises", - "target": "tests_test_plan_extractor_client_returning", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L92", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L229", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_compute_day_total_minutes", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_plan_extractor_test_system_prompt_uses_prompt_caching", - "target": "tests_test_plan_extractor_client_returning", - "relation": "calls", - "context": "call", + "relation": "inherits", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L108", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_haversinematrix", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_plan_extractor_rationale_1", - "target": "tests_test_plan_extractor", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L1", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_rationale_64", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_plan_extractor_rationale_107", - "target": "tests_test_plan_extractor_test_system_prompt_uses_prompt_caching", - "relation": "rationale_for", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L107", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L165", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_simulate_day", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_region_config", - "target": "src_data_region_config", - "relation": "imports_from", - "context": "import", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L4", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L258", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_solve_vrptw_ortools", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_region_config", - "target": "tests_test_region_config_testgetthresholds", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L12", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_timematrix", + "target": "src_validation_vrptw_engine_timematrix_get_travel_time" }, { - "source": "tests_test_region_config_testgetthresholds", - "target": "tests_test_region_config_testgetthresholds_test_seoul_code_returns_high", - "relation": "method", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L13", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L407", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_init", + "target": "src_validation_vrptw_engine_timematrix" }, { - "source": "tests_test_region_config_testgetthresholds", - "target": "tests_test_region_config_testgetthresholds_test_busan_code_returns_high", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L16", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_rationale_68", + "target": "src_validation_vrptw_engine_timematrix_get_travel_time" }, { - "source": "tests_test_region_config_testgetthresholds", - "target": "tests_test_region_config_testgetthresholds_test_daegu_code_returns_medium", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L19", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L117", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_cachedroutematrix_init", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_region_config_testgetthresholds", - "target": "tests_test_region_config_testgetthresholds_test_rural_code_returns_low", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L22", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_haversinematrix", + "target": "src_validation_vrptw_engine_haversinematrix_effective_speed" }, { - "source": "tests_test_region_config_testgetthresholds", - "target": "tests_test_region_config_testgetthresholds_test_none_returns_medium", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L25", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_haversinematrix", + "target": "src_validation_vrptw_engine_haversinematrix_get_travel_time" }, { - "source": "tests_test_region_config_testgetthresholds", - "target": "tests_test_region_config_testgetthresholds_test_unknown_code_returns_low", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L28", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_rationale_72", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_region_config_testgetthresholds", - "target": "tests_test_region_config_testgetthresholds_test_high_dist_warn_smaller_than_low", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L31", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L412", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_init", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_region_config_testgetthresholds", - "target": "tests_test_region_config_testgetthresholds_test_high_physical_strain_smaller_than_low", - "relation": "method", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L34", + "source_file": "tests/test_route_matrix.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_region_config_testgetthresholds", - "target": "tests_test_region_config_testgetthresholds_test_tier_fields_ordered", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L37", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L7", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_route_matrix_fakerouteprovider", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_region_config_rationale_1", - "target": "tests_test_region_config", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L1", + "source_file": "tests/test_route_matrix.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix_test_haversine_provider_is_used_when_api_key_is_unavailable", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "src_data_models", - "relation": "imports_from", + "relation": "imports", "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L4", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "src_data_restaurant_catalog", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L5", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_test_no_penalty_when_ratio_low", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "src_explain_repair", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L6", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "tests_test_repair_repairengine", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L10", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_test_penalty_when_ratio_high", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_repairengine", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "references", - "context": "parameter_type", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L10", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_repairengine", - "target": "repairengineclass", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L10", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L467", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "tests_test_repair_poi", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L15", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L452", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_test_summary_contains_score", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "tests_test_repair_plan", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L31", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testcachedroutematrix", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_plan", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L31", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_miss_falls_back_to_haversine", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "tests_test_repair_fail", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L42", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testdepotconstraint", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_fail", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L42", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L111", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "tests_test_repair_testrepairenginenoop", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L53", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygap", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testrepairenginenoop", - "target": "tests_test_repair_testrepairenginenoop_test_empty_when_no_hard_fails", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L54", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L221", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testrepairenginenoop", - "target": "tests_test_repair_testrepairenginenoop_test_empty_when_pois_list_is_empty", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L60", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L229", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "tests_test_repair_outlier_pois", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L74", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygapthreshold", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_outlier_pois", - "target": "tests_test_repair_poi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L74", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L397", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "tests_test_repair_testdeletionsuggestion", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L88", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testfatiguescore", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L89", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L248", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L97", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L261", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L104", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testhaversinematrix", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L110", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testhaversinematrix_test_known_distance", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L117", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testhaversinematrix_test_same_point_is_zero", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L127", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testhaversinematrix_test_symmetry", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "tests_test_repair_testtimetunesuggestion", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L140", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L141", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmultidayresult", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L149", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L418", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L158", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L432", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "tests_test_repair_testresultmodel", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L173", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L440", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testresultmodel", - "target": "tests_test_repair_testresultmodel_test_to_dict_is_serializable", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L174", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testortoolsdegradation", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testresultmodel", - "target": "tests_test_repair_testresultmodel_test_is_empty_true_when_no_suggestions", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L182", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L287", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testresultmodel", - "target": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion", - "relation": "method", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testriskscore", + "target": "src_validation_vrptw_engine_haversinematrix" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L188", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L309", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair", - "target": "tests_test_repair_testtotalestimatedgain", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L199", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L303", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "tests_test_repair_testtotalestimatedgain_test_sums_across_different_days", - "relation": "method", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "src_validation_vrptw_engine_haversinematrix" + }, + { + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L200", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L169", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_engine", + "target": "src_validation_vrptw_engine_haversinematrix" }, { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "tests_test_repair_testtotalestimatedgain_test_takes_max_of_alternatives_on_same_day", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L207", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L96", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_haversinematrix_get_travel_time", + "target": "src_validation_vrptw_engine_haversinematrix_effective_speed" }, { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "tests_test_repair_testtotalestimatedgain_test_zero_when_empty", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L214", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L95", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_haversinematrix_get_travel_time", + "target": "src_validation_vrptw_engine_haversine_m" }, { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "tests_test_repair_testtotalestimatedgain_test_included_in_to_dict", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L217", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L125", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_cachedroutematrix", + "target": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time" }, { - "source": "tests_test_repair_repairengine", - "target": "repairengineclass", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L12", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_cachedroutematrix", + "target": "src_validation_vrptw_engine_cachedroutematrix_init" }, { - "source": "tests_test_repair_repairengine", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L12", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L120", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_cachedroutematrix_from_file", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_plan", - "target": "src_data_models_itineraryplan", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L34", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_rationale_100", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_fail", - "target": "src_data_models_hardfail", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L43", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testrepairenginenoop_test_empty_when_no_hard_fails", - "target": "tests_test_repair_repairengine", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L55", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testcachedroutematrix", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testrepairenginenoop_test_empty_when_no_hard_fails", - "target": "tests_test_repair_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L56", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_hit", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testrepairenginenoop_test_empty_when_no_hard_fails", - "target": "tests_test_repair_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L57", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_miss_falls_back_to_haversine", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testrepairenginenoop_test_empty_when_pois_list_is_empty", - "target": "tests_test_repair_repairengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L61", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L98", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testcachedroutematrix_test_load_from_dict", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testrepairenginenoop_test_empty_when_pois_list_is_empty", - "target": "tests_test_repair_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L62", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_testcachedroutematrix_test_reverse_key_fallback", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testrepairenginenoop_test_empty_when_pois_list_is_empty", - "target": "tests_test_repair_fail", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L63", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testdepotconstraint", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_outlier_pois", - "target": "tests_test_repair_poi", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L77", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygap", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier", - "target": "tests_test_repair_repairengine", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L90", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygapthreshold", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier", - "target": "tests_test_repair_plan", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L91", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testfatiguescore", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier", - "target": "tests_test_repair_outlier_pois", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L92", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testhaversinematrix", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier", - "target": "tests_test_repair_fail", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L93", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings", - "target": "tests_test_repair_repairengine", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L98", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmultidayresult", + "target": "src_validation_vrptw_engine_cachedroutematrix" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testortoolsdegradation", + "target": "src_validation_vrptw_engine_cachedroutematrix" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testriskscore", + "target": "src_validation_vrptw_engine_cachedroutematrix" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "src_validation_vrptw_engine_cachedroutematrix" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings", - "target": "tests_test_repair_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L99", + "confidence_score": 1.0, + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L490", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_vrptw_engine_test_cached_matrix_from_actual_file", + "target": "src_validation_vrptw_engine_cachedroutematrix_from_file" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings", - "target": "tests_test_repair_outlier_pois", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L100", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L244", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_compute_day_total_minutes", + "target": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings", - "target": "tests_test_repair_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L100", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L181", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_simulate_day", + "target": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois", - "target": "tests_test_repair_repairengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L105", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L271", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_solve_vrptw_ortools", + "target": "src_validation_vrptw_engine_cachedroutematrix_get_travel_time" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois", - "target": "tests_test_repair_plan", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L106", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_rationale_153", + "target": "src_validation_vrptw_engine_simresult" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois", - "target": "tests_test_repair_poi", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L107", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L165", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_simulate_day", + "target": "src_validation_vrptw_engine_simresult" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois", - "target": "tests_test_repair_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L107", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L192", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_simulate_day", + "target": "src_validation_vrptw_engine_minutes_to_hhmm" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate", - "target": "tests_test_repair_repairengine", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L111", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L170", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_rationale_170", + "target": "src_validation_vrptw_engine_simulate_day" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate", - "target": "tests_test_repair_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L112", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L267", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_solve_vrptw_ortools", + "target": "src_validation_vrptw_engine_simulate_day" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate", - "target": "tests_test_repair_outlier_pois", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L113", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L437", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_validate", + "target": "src_validation_vrptw_engine_simulate_day" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate", - "target": "tests_test_repair_fail", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L113", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L234", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_rationale_234", + "target": "src_validation_vrptw_engine_compute_day_total_minutes" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", - "target": "src_data_restaurant_catalog_restaurantcatalog", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L118", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L543", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_compute_risk_score", + "target": "src_validation_vrptw_engine_compute_day_total_minutes" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", - "target": "tests_test_repair_repairengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L119", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L442", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_validate", + "target": "src_validation_vrptw_engine_compute_day_total_minutes" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", - "target": "tests_test_repair_plan", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L120", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L263", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_rationale_263", + "target": "src_validation_vrptw_engine_solve_vrptw_ortools" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", - "target": "tests_test_repair_outlier_pois", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L121", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L462", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_validate", + "target": "src_validation_vrptw_engine_solve_vrptw_ortools" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", - "target": "tests_test_repair_fail", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L121", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L333", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_rationale_333", + "target": "src_validation_vrptw_engine_check_depot_constraints" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", - "target": "tests_test_repair_repairengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L128", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L425", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_validate", + "target": "src_validation_vrptw_engine_check_depot_constraints" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L128", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L401", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_rationale_401", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", - "target": "tests_test_repair_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L129", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L519", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine", + "target": "src_validation_vrptw_engine_vrptwengine_compute_risk_score" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", - "target": "tests_test_repair_outlier_pois", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L130", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L407", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine", + "target": "src_validation_vrptw_engine_vrptwengine_init" }, { - "source": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", - "target": "tests_test_repair_fail", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L130", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L418", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine", + "target": "src_validation_vrptw_engine_vrptwengine_validate" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit", - "target": "tests_test_repair_repairengine", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L143", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit", - "target": "tests_test_repair_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L144", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L467", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit", - "target": "tests_test_repair_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L145", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L452", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_test_summary_contains_score", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit", - "target": "tests_test_repair_fail", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testcachedroutematrix", + "target": "src_validation_vrptw_engine_vrptwengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testdepotconstraint", + "target": "src_validation_vrptw_engine_vrptwengine" + }, + { + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L146", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine", + "target": "src_validation_vrptw_engine_vrptwengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygap", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit", - "target": "tests_test_repair_repairengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L151", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L221", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit", - "target": "tests_test_repair_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L152", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L229", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap", + "target": "src_validation_vrptw_engine_vrptwengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testefficiencygapthreshold", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit", - "target": "tests_test_repair_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L153", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L397", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", + "target": "src_validation_vrptw_engine_vrptwengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testfatiguescore", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit", - "target": "tests_test_repair_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L154", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L248", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum", - "target": "tests_test_repair_repairengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L160", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L261", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum", - "target": "tests_test_repair_plan", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L161", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testhaversinematrix", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum", - "target": "tests_test_repair_poi", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L162", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum", - "target": "tests_test_repair_fail", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L163", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testmultidayresult", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testresultmodel_test_to_dict_is_serializable", - "target": "tests_test_repair_repairengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L175", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L418", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testresultmodel_test_to_dict_is_serializable", - "target": "tests_test_repair_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L176", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L432", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testresultmodel_test_to_dict_is_serializable", - "target": "tests_test_repair_outlier_pois", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L177", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L440", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testresultmodel_test_to_dict_is_serializable", - "target": "tests_test_repair_fail", - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L177", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testortoolsdegradation", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testresultmodel_test_is_empty_true_when_no_suggestions", - "target": "tests_test_repair_repairengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L183", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L287", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result", + "target": "src_validation_vrptw_engine_vrptwengine" + }, + { + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testriskscore", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testresultmodel_test_is_empty_true_when_no_suggestions", - "target": "tests_test_repair_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L184", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L309", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testresultmodel_test_is_empty_true_when_no_suggestions", - "target": "tests_test_repair_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L185", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L303", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion", - "target": "tests_test_repair_repairengine", - "relation": "calls", - "context": "call", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L11", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "src_validation_vrptw_engine_vrptwengine" + }, + { + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L189", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L168", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_engine", + "target": "src_validation_vrptw_engine_vrptwengine" }, { - "source": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion", - "target": "tests_test_repair_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L190", + "source_file": "src/validation/vrptw_engine.py", + "source_location": "L497", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_vrptw_engine_vrptwengine_validate", + "target": "src_validation_vrptw_engine_vrptwengine_compute_risk_score" }, { - "source": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion", - "target": "tests_test_repair_outlier_pois", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L191", + "source_file": "src/validation/warning.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_validation_warning_cosine_distance" }, { - "source": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion", - "target": "tests_test_repair_fail", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L191", + "source_file": "src/validation/warning.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_repair_rationale_11", - "target": "tests_test_repair_repairengine", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L11", + "source_file": "src/validation/warning.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_rationale_1", + "target": "src_validation_warning" }, { - "source": "tests_test_repair_rationale_75", - "target": "tests_test_repair_outlier_pois", - "relation": "rationale_for", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L75", + "source_file": "tests/test_warning.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "src_validation_warning" }, { - "source": "tests_test_repair_rationale_142", - "target": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L142", + "source_file": "src/validation/warning.py", + "source_location": "L171", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_check_purpose_mismatch", + "target": "src_validation_warning_cosine_distance" }, { - "source": "tests_test_repair_rationale_150", - "target": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L150", + "source_file": "src/validation/warning.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_rationale_42", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_repair_rationale_159", - "target": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L159", + "source_file": "src/validation/warning.py", + "source_location": "L256", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector", + "target": "src_validation_warning_warningdetector_check_area_revisit" }, { - "source": "tests_test_resolve_poi", - "target": "unittest_mock", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L4", + "source_file": "src/validation/warning.py", + "source_location": "L186", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector", + "target": "src_validation_warning_warningdetector_check_cumulative_fatigue" }, { - "source": "tests_test_resolve_poi", - "target": "openpyxl", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L6", + "source_file": "src/validation/warning.py", + "source_location": "L75", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector", + "target": "src_validation_warning_warningdetector_check_dense_schedule" }, { - "source": "tests_test_resolve_poi", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L7", + "source_file": "src/validation/warning.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector", + "target": "src_validation_warning_warningdetector_check_inefficient_route" }, { - "source": "tests_test_resolve_poi", - "target": "fastapi_testclient", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L8", + "source_file": "src/validation/warning.py", + "source_location": "L130", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector", + "target": "src_validation_warning_warningdetector_check_physical_strain" }, { - "source": "tests_test_resolve_poi", - "target": "src_api", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L10", + "source_file": "src/validation/warning.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector", + "target": "src_validation_warning_warningdetector_check_purpose_mismatch" }, { - "source": "tests_test_resolve_poi", - "target": "src_api_main", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L11", + "source_file": "src/validation/warning.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector", + "target": "src_validation_warning_warningdetector_detect" }, { - "source": "tests_test_resolve_poi", - "target": "tests_test_resolve_poi_write_jeju_xlsx", - "relation": "contains", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L19", + "source_file": "tests/test_warning.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_resolve_poi_jeju_xlsx_index", - "target": "tests_test_resolve_poi_py_fixture", "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L28", + "source_file": "tests/test_warning.py", + "source_location": "L66", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_detector", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_resolve_poi", - "target": "tests_test_resolve_poi_jeju_xlsx_index", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L29", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testarearevisit", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_resolve_poi", - "target": "tests_test_resolve_poi_test_jeju_index_prefers_tourapi_hours_over_legacy_text", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L51", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testdayindex", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_resolve_poi", - "target": "tests_test_resolve_poi_test_jeju_index_sets_contentid_when_tourapi_matched", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L56", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testdenseschedule", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_resolve_poi", - "target": "tests_test_resolve_poi_test_jeju_index_falls_back_to_legacy_hours_when_unmatched", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L61", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testphysicalstrain", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_resolve_poi", - "target": "tests_test_resolve_poi_test_jeju_index_sets_pet_friendly_flag_when_y", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L67", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testpurposemismatch", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_resolve_poi", - "target": "tests_test_resolve_poi_test_jeju_index_defaults_pet_friendly_false_when_blank", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L72", - "weight": 1.0, - "_origin": "ast" + "relation": "uses", + "confidence": "INFERRED", + "source_file": "tests/test_warning.py", + "source_location": "L8", + "weight": 0.8, + "_origin": "ast", + "confidence_score": 0.5, + "source": "tests_test_warning_testwarningfields", + "target": "src_validation_warning_warningdetector" }, { - "source": "tests_test_resolve_poi", - "target": "tests_test_resolve_poi_test_resolve_poi_propagates_pet_friendly_flag", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L77", + "source_file": "src/validation/warning.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_rationale_60", + "target": "src_validation_warning_warningdetector_detect" }, { - "source": "tests_test_resolve_poi", - "target": "tests_test_resolve_poi_test_geocode_fallback_used_when_keyword_search_fails", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L94", + "source_file": "src/validation/warning.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_detect", + "target": "src_validation_warning_warningdetector_check_area_revisit" }, { - "source": "tests_test_resolve_poi", - "target": "tests_test_resolve_poi_test_seoul_fallback_when_geocode_also_fails", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L110", + "source_file": "src/validation/warning.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_detect", + "target": "src_validation_warning_warningdetector_check_dense_schedule" }, { - "source": "tests_test_resolve_poi", - "target": "tests_test_resolve_poi_test_resolve_coords_endpoint_returns_poi_per_place", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L123", + "source_file": "src/validation/warning.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_detect", + "target": "src_validation_warning_warningdetector_check_inefficient_route" }, { - "source": "tests_test_resolve_poi_jeju_xlsx_index", - "target": "tests_test_resolve_poi_write_jeju_xlsx", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L31", + "source_file": "src/validation/warning.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_detect", + "target": "src_validation_warning_warningdetector_check_physical_strain" }, { - "source": "tests_test_resolve_poi_rationale_1", - "target": "tests_test_resolve_poi", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L1", + "source_file": "src/validation/warning.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_warningdetector_detect", + "target": "src_validation_warning_warningdetector_check_purpose_mismatch" }, { - "source": "tests_test_resolve_poi_rationale_30", - "target": "tests_test_resolve_poi_jeju_xlsx_index", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L30", + "source_file": "src/validation/warning.py", + "source_location": "L192", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_validation_warning_rationale_192", + "target": "src_validation_warning_warningdetector_check_cumulative_fatigue" }, { - "source": "tests_test_resolve_poi_rationale_78", - "target": "tests_test_resolve_poi_test_resolve_poi_propagates_pet_friendly_flag", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L78", + "source_file": "tests/conftest.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_conftest", + "target": "tests_conftest_clean_anthropic_api_key" }, { - "source": "tests_test_resolve_poi_rationale_95", - "target": "tests_test_resolve_poi_test_geocode_fallback_used_when_keyword_search_fails", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L95", + "source_file": "tests/conftest.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_conftest_rationale_1", + "target": "tests_conftest" }, { - "source": "tests_test_resolve_poi_rationale_111", - "target": "tests_test_resolve_poi_test_seoul_fallback_when_geocode_also_fails", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L111", + "source_file": "tests/test_alternatives.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives", + "target": "tests_test_alternatives_hardfail" }, { - "source": "tests_test_resolve_poi_rationale_124", - "target": "tests_test_resolve_poi_test_resolve_coords_endpoint_returns_poi_per_place", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L124", + "source_file": "tests/test_alternatives.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives", + "target": "tests_test_alternatives_poi" }, { - "source": "tests_test_restaurant_catalog", - "target": "src_data_restaurant_catalog", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L4", + "source_file": "tests/test_alternatives.py", + "source_location": "L90", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives", + "target": "tests_test_alternatives_testbuildalternativesmap" }, { - "source": "tests_test_restaurant_catalog", - "target": "tests_test_restaurant_catalog_catalog", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L7", + "source_file": "tests/test_alternatives.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives", + "target": "tests_test_alternatives_testfindalternatives" }, { - "source": "tests_test_restaurant_catalog_catalog", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "references", - "context": "return_type", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L7", + "source_file": "tests/test_alternatives.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_rationale_1", + "target": "tests_test_alternatives" }, { - "source": "tests_test_restaurant_catalog", - "target": "tests_test_restaurant_catalog_test_nearby_returns_within_radius_sorted_by_distance", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L15", + "source_file": "tests/test_alternatives.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap_test_default_no_substitution", + "target": "tests_test_alternatives_poi" }, { - "source": "tests_test_restaurant_catalog", - "target": "tests_test_restaurant_catalog_test_nearby_excludes_self", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L22", + "source_file": "tests/test_alternatives.py", + "source_location": "L123", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap_test_excludes_plan_pois_from_alternatives", + "target": "tests_test_alternatives_poi" }, { - "source": "tests_test_restaurant_catalog", - "target": "tests_test_restaurant_catalog_test_nearby_empty_when_no_restaurants_in_radius", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L27", + "source_file": "tests/test_alternatives.py", + "source_location": "L92", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap_test_maps_failed_poi_to_alternatives", + "target": "tests_test_alternatives_poi" }, { - "source": "tests_test_restaurant_catalog_catalog", - "target": "src_data_restaurant_catalog_restaurantcatalog", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L8", + "source_file": "tests/test_alternatives.py", + "source_location": "L116", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap_test_no_duplicate_keys", + "target": "tests_test_alternatives_poi" }, { - "source": "tests_test_restaurant_catalog_test_nearby_returns_within_radius_sorted_by_distance", - "target": "tests_test_restaurant_catalog_catalog", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L16", + "source_file": "tests/test_alternatives.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives_test_distance_km_is_correct", + "target": "tests_test_alternatives_poi" }, { - "source": "tests_test_restaurant_catalog_test_nearby_excludes_self", - "target": "tests_test_restaurant_catalog_catalog", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L23", + "source_file": "tests/test_alternatives.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives_test_excludes_failed_poi_itself", + "target": "tests_test_alternatives_poi" }, { - "source": "tests_test_restaurant_catalog_test_nearby_empty_when_no_restaurants_in_radius", - "target": "src_data_restaurant_catalog_restaurantcatalog", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L28", + "source_file": "tests/test_alternatives.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives_test_respects_max_alternatives", + "target": "tests_test_alternatives_poi" }, { - "source": "tests_test_restaurant_catalog_rationale_1", - "target": "tests_test_restaurant_catalog", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L1", + "source_file": "tests/test_alternatives.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives_test_respects_search_radius", + "target": "tests_test_alternatives_poi" }, { - "source": "tests_test_reward_engine", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L4", + "source_file": "tests/test_alternatives.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives_test_returns_nearby_same_category", + "target": "tests_test_alternatives_poi" }, { - "source": "tests_test_reward_engine", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L6", + "source_file": "tests/test_alternatives.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives_test_same_category_sorted_before_different", + "target": "tests_test_alternatives_poi" }, { - "source": "tests_test_reward_engine", - "target": "src_scoring_reward_engine", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L7", + "source_file": "tests/test_alternatives.py", + "source_location": "L105", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap_test_default_no_substitution", + "target": "tests_test_alternatives_hardfail" }, { - "source": "tests_test_reward_engine", - "target": "tests_test_reward_engine_scores", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L10", + "source_file": "tests/test_alternatives.py", + "source_location": "L125", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap_test_excludes_plan_pois_from_alternatives", + "target": "tests_test_alternatives_hardfail" }, { - "source": "tests_test_reward_engine", - "target": "tests_test_reward_engine_testgeneraterewards", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L16", + "source_file": "tests/test_alternatives.py", + "source_location": "L95", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap_test_maps_failed_poi_to_alternatives", + "target": "tests_test_alternatives_hardfail" }, { - "source": "tests_test_reward_engine_testgeneraterewards", - "target": "tests_test_reward_engine_testgeneraterewards_test_hard_fail_returns_empty", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L17", + "source_file": "tests/test_alternatives.py", + "source_location": "L118", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap_test_no_duplicate_keys", + "target": "tests_test_alternatives_hardfail" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_alternatives.py", + "source_location": "L111", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap_test_skips_none_poi_name", + "target": "tests_test_alternatives_hardfail" }, { - "source": "tests_test_reward_engine_testgeneraterewards", - "target": "tests_test_reward_engine_testgeneraterewards_test_excellent_flow_generates_message", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L27", + "source_file": "tests/test_alternatives.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives", + "target": "tests_test_alternatives_testfindalternatives_test_distance_km_is_correct" }, { - "source": "tests_test_reward_engine_testgeneraterewards", - "target": "tests_test_reward_engine_testgeneraterewards_test_excellent_efficiency_generates_message", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L37", + "source_file": "tests/test_alternatives.py", + "source_location": "L49", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives", + "target": "tests_test_alternatives_testfindalternatives_test_excludes_failed_poi_itself" }, { - "source": "tests_test_reward_engine_testgeneraterewards", - "target": "tests_test_reward_engine_testgeneraterewards_test_low_travel_ratio_generates_message", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L47", + "source_file": "tests/test_alternatives.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives", + "target": "tests_test_alternatives_testfindalternatives_test_respects_max_alternatives" }, { - "source": "tests_test_reward_engine_testgeneraterewards", - "target": "tests_test_reward_engine_testgeneraterewards_test_excellent_purpose_fit_generates_message", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L57", + "source_file": "tests/test_alternatives.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives", + "target": "tests_test_alternatives_testfindalternatives_test_respects_search_radius" }, { - "source": "tests_test_reward_engine_testgeneraterewards", - "target": "tests_test_reward_engine_testgeneraterewards_test_no_warnings_generates_message", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L67", + "source_file": "tests/test_alternatives.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives", + "target": "tests_test_alternatives_testfindalternatives_test_returns_nearby_same_category" }, { - "source": "tests_test_reward_engine_testgeneraterewards", - "target": "tests_test_reward_engine_testgeneraterewards_test_zero_cluster_penalty_generates_message", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L77", + "source_file": "tests/test_alternatives.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testfindalternatives", + "target": "tests_test_alternatives_testfindalternatives_test_same_category_sorted_before_different" }, { - "source": "tests_test_reward_engine_testgeneraterewards", - "target": "tests_test_reward_engine_testgeneraterewards_test_perfect_plan_all_messages", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L87", + "source_file": "tests/test_alternatives.py", + "source_location": "L101", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap", + "target": "tests_test_alternatives_testbuildalternativesmap_test_default_no_substitution" }, { - "source": "tests_test_reward_engine_testgeneraterewards", - "target": "tests_test_reward_engine_testgeneraterewards_test_mediocre_plan_few_messages", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L97", + "source_file": "tests/test_alternatives.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap", + "target": "tests_test_alternatives_testbuildalternativesmap_test_excludes_plan_pois_from_alternatives" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_hard_fail_returns_empty", - "target": "tests_test_reward_engine_scores", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L19", + "source_file": "tests/test_alternatives.py", + "source_location": "L91", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap", + "target": "tests_test_alternatives_testbuildalternativesmap_test_maps_failed_poi_to_alternatives" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_flow_generates_message", - "target": "tests_test_reward_engine_scores", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L29", + "source_file": "tests/test_alternatives.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap", + "target": "tests_test_alternatives_testbuildalternativesmap_test_no_duplicate_keys" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_efficiency_generates_message", - "target": "tests_test_reward_engine_scores", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L39", + "source_file": "tests/test_alternatives.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_alternatives_testbuildalternativesmap", + "target": "tests_test_alternatives_testbuildalternativesmap_test_skips_none_poi_name" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_low_travel_ratio_generates_message", - "target": "tests_test_reward_engine_scores", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L49", + "source_file": "tests/test_api_schemas.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_api_schemas", + "target": "tests_test_api_schemas_request" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_purpose_fit_generates_message", - "target": "tests_test_reward_engine_scores", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L59", + "source_file": "tests/test_api_schemas.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_api_schemas", + "target": "tests_test_api_schemas_test_date_and_start_time_are_validated" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_no_warnings_generates_message", - "target": "tests_test_reward_engine_scores", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L69", + "source_file": "tests/test_api_schemas.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_api_schemas", + "target": "tests_test_api_schemas_test_empty_day_is_rejected_at_request_boundary" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_zero_cluster_penalty_generates_message", - "target": "tests_test_reward_engine_scores", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L79", + "source_file": "tests/test_api_schemas.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_api_schemas", + "target": "tests_test_api_schemas_test_place_name_cannot_be_blank" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_perfect_plan_all_messages", - "target": "tests_test_reward_engine_scores", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L89", + "source_file": "tests/test_api_schemas.py", + "source_location": "L24", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_api_schemas_test_date_and_start_time_are_validated", + "target": "tests_test_api_schemas_request" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_mediocre_plan_few_messages", - "target": "tests_test_reward_engine_scores", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L99", + "source_file": "tests/test_api_schemas.py", + "source_location": "L31", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_api_schemas_test_empty_day_is_rejected_at_request_boundary", + "target": "tests_test_api_schemas_request" }, { - "source": "tests_test_scoring", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L4", + "source_file": "tests/test_api_schemas.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_api_schemas_test_place_name_cannot_be_blank", + "target": "tests_test_api_schemas_request" }, { - "source": "tests_test_scoring", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring", - "target": "src_validation_scoring", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L7", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring", - "target": "tests_test_scoring_make_poi", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L14", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "tests_test_bonus_engine_testaccessibilitybonus" }, { - "source": "tests_test_scoring_make_poi", - "target": "src_data_models_poi", - "relation": "references", - "context": "return_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L14", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L238", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "tests_test_bonus_engine_testbonusresultfields" }, { - "source": "tests_test_scoring", - "target": "tests_test_scoring_make_plan", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L29", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L195", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "tests_test_bonus_engine_testfromdataset" }, { - "source": "tests_test_scoring_make_plan", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "return_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L29", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L130", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "tests_test_bonus_engine_testpetfriendlybonus" }, { - "source": "tests_test_scoring", - "target": "tests_test_scoring_make_matrix", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L42", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L168", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "tests_test_bonus_engine_testtotalbonuscap" }, { - "source": "tests_test_scoring", - "target": "tests_test_scoring_make_hard_fail", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L52", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine", + "target": "tests_test_bonus_engine_testwellnessbonus" }, { - "source": "tests_test_scoring_make_hard_fail", - "target": "src_data_models_hardfail", - "relation": "references", - "context": "return_type", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L52", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_rationale_1", + "target": "tests_test_bonus_engine" }, { - "source": "tests_test_scoring_calc", - "target": "tests_test_scoring_py_fixture", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L65", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L120", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testaccessibilitybonus_test_accessibility_bonus_capped", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring", - "target": "tests_test_scoring_calc", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L66", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L105", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testaccessibilitybonus_test_accessible_party_gets_bonus", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_calc", - "target": "src_validation_scoring_scorecalculator", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L66", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L112", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testaccessibilitybonus_test_non_accessible_party_no_bonus", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_sample_pois", - "target": "tests_test_scoring_py_fixture", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L70", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L241", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testbonusresultfields_test_matched_names_populated", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring", - "target": "tests_test_scoring_sample_pois", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L71", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L247", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testbonusresultfields_test_no_match_empty_lists", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_sample_pois", - "target": "src_data_models_poi", - "relation": "references", - "context": "generic_arg", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L71", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L214", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testfromdataset_test_loads_from_json_files", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_sample_matrix", - "target": "tests_test_scoring_py_fixture", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L80", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L201", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testfromdataset_test_missing_files_give_empty_engine", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring", - "target": "tests_test_scoring_sample_matrix", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L81", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L228", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testfromdataset_test_zero_coords_skipped", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_sample_plan", - "target": "tests_test_scoring_py_fixture", - "relation": "references", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L86", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L133", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus_test_disabled_gives_zero_even_if_matched", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring", - "target": "tests_test_scoring_sample_plan", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L87", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L139", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_and_flagged_gives_bonus", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_sample_plan", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L87", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L145", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_but_not_flagged_no_bonus_no_penalty", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring", - "target": "tests_test_scoring_testweights", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L95", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L151", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_bonus_capped", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_testweights", - "target": "tests_test_scoring_testweights_test_weights_sum_to_one", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L96", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L158", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_matched_names_populated", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_testweights", - "target": "tests_test_scoring_testweights_test_weights_keys", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L100", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L172", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testtotalbonuscap_test_combined_bonus_capped_at_cap", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring", - "target": "tests_test_scoring_testcompute", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L110", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L182", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testtotalbonuscap_test_total_is_sum_when_under_cap", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_testcompute", - "target": "tests_test_scoring_testcompute_test_final_score_in_range", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L111", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L62", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_matching_poi_gives_bonus", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_testcompute", - "target": "tests_test_scoring_testcompute_test_hard_fail_caps_score_at_59", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L115", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_no_wellness_data_gives_zero", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_testcompute", - "target": "tests_test_scoring_testcompute_test_no_hard_fail_can_exceed_59", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L121", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_non_matching_poi_no_bonus", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_testcompute", - "target": "tests_test_scoring_testcompute_test_scores_object_fields", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L127", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_two_matching_pois_give_double_bonus", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring", - "target": "tests_test_scoring_testefficiency", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L140", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L91", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_wellness_applies_to_all_party_types", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_testefficiency", - "target": "tests_test_scoring_testefficiency_test_optimal_order_is_one", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L141", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testefficiency", - "target": "tests_test_scoring_testefficiency_test_suboptimal_order_below_one", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L150", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testefficiency", - "target": "tests_test_scoring_testefficiency_test_single_poi_returns_one", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L161", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring", - "target": "tests_test_scoring_testfeasibility", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L170", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testfeasibility", - "target": "tests_test_scoring_testfeasibility_test_no_hard_fails_hard_is_one", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L171", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testfeasibility", - "target": "tests_test_scoring_testfeasibility_test_hard_fail_reduces_feasibility", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L176", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testfeasibility", - "target": "tests_test_scoring_testfeasibility_test_feasibility_in_range", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L181", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring", - "target": "tests_test_scoring_testpurposefit", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L190", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testpurposefit", - "target": "tests_test_scoring_testpurposefit_test_cultural_all_cultural_high", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L191", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testpurposefit", - "target": "tests_test_scoring_testpurposefit_test_cultural_all_sports_low", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L197", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testpurposefit", - "target": "tests_test_scoring_testpurposefit_test_no_travel_type_returns_half", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L203", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring", - "target": "tests_test_scoring_testcosinedistance", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L213", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcosinedistance", - "target": "tests_test_scoring_testcosinedistance_test_identical_vectors", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L214", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcosinedistance", - "target": "tests_test_scoring_testcosinedistance_test_orthogonal_vectors", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L218", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcosinedistance", - "target": "tests_test_scoring_testcosinedistance_test_zero_vector", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L223", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_wellness_bonus_capped", + "target": "tests_test_bonus_engine_make_poi" }, { - "source": "tests_test_scoring_make_poi", - "target": "src_data_models_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L22", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testaccessibilitybonus_test_accessibility_bonus_capped", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_make_plan", - "target": "src_data_models_itineraryplan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L33", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testaccessibilitybonus_test_accessible_party_gets_bonus", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_make_hard_fail", - "target": "src_data_models_hardfail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L53", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L111", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testaccessibilitybonus_test_non_accessible_party_no_bonus", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_calc", - "target": "src_validation_scoring_scorecalculator", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L67", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L240", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testbonusresultfields_test_matched_names_populated", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_sample_pois", - "target": "tests_test_scoring_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L73", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L246", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testbonusresultfields_test_no_match_empty_lists", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_sample_matrix", - "target": "tests_test_scoring_make_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L83", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus_test_disabled_gives_zero_even_if_matched", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_sample_plan", - "target": "tests_test_scoring_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L88", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_and_flagged_gives_bonus", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_testcompute_test_hard_fail_caps_score_at_59", - "target": "tests_test_scoring_make_hard_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L117", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L144", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_but_not_flagged_no_bonus_no_penalty", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_testefficiency_test_optimal_order_is_one", - "target": "tests_test_scoring_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L144", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L152", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_bonus_capped", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_testefficiency_test_suboptimal_order_below_one", - "target": "tests_test_scoring_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L153", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L157", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_matched_names_populated", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_testefficiency_test_single_poi_returns_one", - "target": "tests_test_scoring_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L162", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L171", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testtotalbonuscap_test_combined_bonus_capped_at_cap", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_testfeasibility_test_hard_fail_reduces_feasibility", - "target": "tests_test_scoring_make_hard_fail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", + "source_file": "tests/test_bonus_engine.py", "source_location": "L177", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testtotalbonuscap_test_total_is_sum_when_under_cap", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_testpurposefit_test_cultural_all_cultural_high", - "target": "tests_test_scoring_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L192", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L61", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_matching_poi_gives_bonus", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_testpurposefit_test_cultural_all_cultural_high", - "target": "tests_test_scoring_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L193", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L55", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_no_wellness_data_gives_zero", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_testpurposefit_test_cultural_all_sports_low", - "target": "tests_test_scoring_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L198", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_non_matching_poi_no_bonus", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_testpurposefit_test_cultural_all_sports_low", - "target": "tests_test_scoring_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L199", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_two_matching_pois_give_double_bonus", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_testpurposefit_test_no_travel_type_returns_half", - "target": "tests_test_scoring_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L204", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L90", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_wellness_applies_to_all_party_types", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_testpurposefit_test_no_travel_type_returns_half", - "target": "tests_test_scoring_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L205", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L78", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus_test_wellness_bonus_capped", + "target": "tests_test_bonus_engine_make_engine" }, { - "source": "tests_test_scoring_rationale_1", - "target": "tests_test_scoring", - "relation": "rationale_for", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L1", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus", + "target": "tests_test_bonus_engine_testwellnessbonus_test_matching_poi_gives_bonus" }, { - "source": "tests_test_theme_alignment", - "target": "unittest_mock", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L4", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L54", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus", + "target": "tests_test_bonus_engine_testwellnessbonus_test_no_wellness_data_gives_zero" }, { - "source": "tests_test_theme_alignment", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L6", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus", + "target": "tests_test_bonus_engine_testwellnessbonus_test_non_matching_poi_no_bonus" }, { - "source": "tests_test_theme_alignment", - "target": "src_data_theme_taxonomy", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L8", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus", + "target": "tests_test_bonus_engine_testwellnessbonus_test_two_matching_pois_give_double_bonus" }, { - "source": "tests_test_theme_alignment", - "target": "src_scoring_theme_alignment", - "relation": "imports_from", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L89", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus", + "target": "tests_test_bonus_engine_testwellnessbonus_test_wellness_applies_to_all_party_types" }, { - "source": "tests_test_theme_alignment_clear_cache", - "target": "tests_test_theme_alignment_py_fixture", - "relation": "references", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L21", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L75", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testwellnessbonus", + "target": "tests_test_bonus_engine_testwellnessbonus_test_wellness_bonus_capped" }, { - "source": "tests_test_theme_alignment", - "target": "tests_test_theme_alignment_clear_cache", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L22", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L117", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testaccessibilitybonus", + "target": "tests_test_bonus_engine_testaccessibilitybonus_test_accessibility_bonus_capped" }, { - "source": "tests_test_theme_alignment", - "target": "tests_test_theme_alignment_testnoapikey", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L29", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testaccessibilitybonus", + "target": "tests_test_bonus_engine_testaccessibilitybonus_test_accessible_party_gets_bonus" }, { - "source": "tests_test_theme_alignment_testnoapikey", - "target": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L30", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testaccessibilitybonus", + "target": "tests_test_bonus_engine_testaccessibilitybonus_test_non_accessible_party_no_bonus" }, { - "source": "tests_test_theme_alignment", - "target": "tests_test_theme_alignment_testclassifyscore", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L41", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L131", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus", + "target": "tests_test_bonus_engine_testpetfriendlybonus_test_disabled_gives_zero_even_if_matched" }, { - "source": "tests_test_theme_alignment_testclassifyscore", - "target": "tests_test_theme_alignment_testclassifyscore_test_high_score_no_penalty", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L42", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L137", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus", + "target": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_and_flagged_gives_bonus" }, { - "source": "tests_test_theme_alignment_testclassifyscore", - "target": "tests_test_theme_alignment_testclassifyscore_test_low_score_critical", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L47", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus", + "target": "tests_test_bonus_engine_testpetfriendlybonus_test_enabled_but_not_flagged_no_bonus_no_penalty" }, { - "source": "tests_test_theme_alignment", - "target": "tests_test_theme_alignment_testparsellmresponse", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L53", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus", + "target": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_bonus_capped" }, { - "source": "tests_test_theme_alignment_testparsellmresponse", - "target": "tests_test_theme_alignment_testparsellmresponse_test_clean_json", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L54", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L156", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testpetfriendlybonus", + "target": "tests_test_bonus_engine_testpetfriendlybonus_test_pet_friendly_matched_names_populated" }, { - "source": "tests_test_theme_alignment_testparsellmresponse", - "target": "tests_test_theme_alignment_testparsellmresponse_test_score_clamped_to_1", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L61", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L169", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testtotalbonuscap", + "target": "tests_test_bonus_engine_testtotalbonuscap_test_combined_bonus_capped_at_cap" }, { - "source": "tests_test_theme_alignment_testparsellmresponse", - "target": "tests_test_theme_alignment_testparsellmresponse_test_code_block_stripped", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L66", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L176", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testtotalbonuscap", + "target": "tests_test_bonus_engine_testtotalbonuscap_test_total_is_sum_when_under_cap" }, { - "source": "tests_test_theme_alignment", - "target": "tests_test_theme_alignment_testevaluatewithmockclient", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L72", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L205", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testfromdataset", + "target": "tests_test_bonus_engine_testfromdataset_test_loads_from_json_files" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient", - "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_high_alignment_no_penalty", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L73", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L196", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testfromdataset", + "target": "tests_test_bonus_engine_testfromdataset_test_missing_files_give_empty_engine" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient", - "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L90", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L219", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testfromdataset", + "target": "tests_test_bonus_engine_testfromdataset_test_zero_coords_skipped" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient", - "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L106", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L239", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testbonusresultfields", + "target": "tests_test_bonus_engine_testbonusresultfields_test_matched_names_populated" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient", - "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L121", + "source_file": "tests/test_bonus_engine.py", + "source_location": "L245", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_bonus_engine_testbonusresultfields", + "target": "tests_test_bonus_engine_testbonusresultfields_test_no_match_empty_lists" }, { - "source": "tests_test_theme_alignment_rationale_1", - "target": "tests_test_theme_alignment", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L1", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "tests_test_cluster_dispersion_make_place" }, { - "source": "tests_test_theme_alignment_rationale_31", - "target": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L31", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "tests_test_cluster_dispersion_test_compact_day_no_penalty" }, { - "source": "tests_test_theme_alignment_rationale_91", - "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L91", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L78", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju" }, { - "source": "tests_test_theme_alignment_rationale_107", - "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L107", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires" }, { - "source": "tests_test_theme_alignment_rationale_122", - "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L122", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential" }, { - "source": "tests_test_theme_taxonomy", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L4", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty" }, { - "source": "tests_test_theme_taxonomy", - "target": "src_data_theme_taxonomy", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L6", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L59", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "tests_test_cluster_dispersion_test_per_day_independence" }, { - "source": "tests_test_theme_taxonomy", - "target": "tests_test_theme_taxonomy_testplacetypecount", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L15", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion", + "target": "tests_test_cluster_dispersion_test_sigungu_switches_only" }, { - "source": "tests_test_theme_taxonomy_testplacetypecount", - "target": "tests_test_theme_taxonomy_testplacetypecount_test_9_place_types", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L16", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_rationale_1", + "target": "tests_test_cluster_dispersion" }, { - "source": "tests_test_theme_taxonomy_testplacetypecount", - "target": "tests_test_theme_taxonomy_testplacetypecount_test_9_travel_styles", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L21", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L30", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_compact_day_no_penalty", + "target": "tests_test_cluster_dispersion_make_place" }, { - "source": "tests_test_theme_taxonomy", - "target": "tests_test_theme_taxonomy_testuserpreferences", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L27", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_theme_taxonomy_testuserpreferences", - "target": "tests_test_theme_taxonomy_testuserpreferences_test_valid_input", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L28", - "weight": 1.0, - "_origin": "ast" - }, - { - "source": "tests_test_theme_taxonomy_testuserpreferences", - "target": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_place_type_raises", - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L33", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L82", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju", + "target": "tests_test_cluster_dispersion_make_place" }, { - "source": "tests_test_theme_taxonomy_testuserpreferences", - "target": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_style_raises", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L37", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L123", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires", + "target": "tests_test_cluster_dispersion_make_place" }, { - "source": "tests_test_theme_taxonomy_testuserpreferences", - "target": "tests_test_theme_taxonomy_testuserpreferences_test_empty_both_axes_raises", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L41", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential", + "target": "tests_test_cluster_dispersion_make_place" }, { - "source": "tests_test_theme_taxonomy", - "target": "tests_test_theme_taxonomy_testmatchesplacetype", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", + "source_file": "tests/test_cluster_dispersion.py", "source_location": "L46", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty", + "target": "tests_test_cluster_dispersion_make_place" }, { - "source": "tests_test_theme_taxonomy_testmatchesplacetype", - "target": "tests_test_theme_taxonomy_testmatchesplacetype_test_mountain_matches_na04", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L47", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_per_day_independence", + "target": "tests_test_cluster_dispersion_make_place" }, { - "source": "tests_test_theme_taxonomy_testmatchesplacetype", - "target": "tests_test_theme_taxonomy_testmatchesplacetype_test_beach_matches_na12", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L51", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L142", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_test_sigungu_switches_only", + "target": "tests_test_cluster_dispersion_make_place" }, { - "source": "tests_test_theme_taxonomy_testmatchesplacetype", - "target": "tests_test_theme_taxonomy_testmatchesplacetype_test_festival_matches_content_type_15", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L54", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_rationale_27", + "target": "tests_test_cluster_dispersion_test_compact_day_no_penalty" }, { - "source": "tests_test_theme_taxonomy_testmatchesplacetype", - "target": "tests_test_theme_taxonomy_testmatchesplacetype_test_no_match", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L57", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_rationale_43", + "target": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty" }, { - "source": "tests_test_theme_taxonomy", - "target": "tests_test_theme_taxonomy_testgetplacetypesfor", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L62", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_rationale_60", + "target": "tests_test_cluster_dispersion_test_per_day_independence" }, { - "source": "tests_test_theme_taxonomy_testgetplacetypesfor", - "target": "tests_test_theme_taxonomy_testgetplacetypesfor_test_mountain_code_returns_list", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L63", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_rationale_79", + "target": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju" }, { - "source": "tests_test_theme_taxonomy_testgetplacetypesfor", - "target": "tests_test_theme_taxonomy_testgetplacetypesfor_test_no_code_returns_empty", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L67", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L101", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_rationale_101", + "target": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential" }, { - "source": "tests_test_theme_taxonomy_rationale_1", - "target": "tests_test_theme_taxonomy", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L1", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_rationale_115", + "target": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires" }, { - "source": "tests_test_travel_ratio", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L4", + "source_file": "tests/test_cluster_dispersion.py", + "source_location": "L139", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_cluster_dispersion_rationale_139", + "target": "tests_test_cluster_dispersion_test_sigungu_switches_only" }, { - "source": "tests_test_travel_ratio", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L6", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_engine" }, { - "source": "tests_test_travel_ratio", - "target": "src_scoring_travel_ratio", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L7", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L118", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_category_fallback" }, { - "source": "tests_test_travel_ratio", - "target": "src_validation_vrptw_engine", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L12", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L75", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_exact_match" }, { - "source": "tests_test_travel_ratio", - "target": "tests_test_travel_ratio_make_place", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L15", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_exact_match_low_season" }, { - "source": "tests_test_travel_ratio", - "target": "tests_test_travel_ratio_test_no_penalty_when_ratio_low", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L22", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L112", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_global_fallback" }, { - "source": "tests_test_travel_ratio", - "target": "tests_test_travel_ratio_test_penalty_when_ratio_high", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L35", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L129", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_invalid_month_raises" }, { - "source": "tests_test_travel_ratio", - "target": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L48", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L151", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_is_crowded_false" }, { - "source": "tests_test_travel_ratio_test_no_penalty_when_ratio_low", - "target": "tests_test_travel_ratio_make_place", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L25", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L147", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_is_crowded_true" }, { - "source": "tests_test_travel_ratio_test_penalty_when_ratio_high", - "target": "tests_test_travel_ratio_make_place", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L38", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L166", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_missing_csv_raises" }, { - "source": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days", - "target": "tests_test_travel_ratio_make_place", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L51", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L95", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_partial_match_substring" }, { - "source": "tests_test_travel_ratio_rationale_1", - "target": "tests_test_travel_ratio", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L1", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L101", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_partial_match_superstring" }, { - "source": "tests_test_travel_ratio_rationale_23", - "target": "tests_test_travel_ratio_test_no_penalty_when_ratio_low", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L23", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L136", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_result_is_dataclass" }, { - "source": "tests_test_travel_ratio_rationale_36", - "target": "tests_test_travel_ratio_test_penalty_when_ratio_high", - "relation": "rationale_for", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L36", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L155", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_score_itinerary" }, { - "source": "tests_test_vrptw_engine", - "target": "math", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L4", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine", + "target": "tests_test_congestion_engine_test_score_to_level" }, { - "source": "tests_test_vrptw_engine", - "target": "typing", - "relation": "imports_from", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L5", + "source_file": "tests/test_congestion_engine.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_congestion_engine_rationale_1", + "target": "tests_test_congestion_engine" }, { - "source": "tests_test_vrptw_engine", - "target": "unittest_mock", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L6", + "source_file": "tests/test_dwell_db.py", + "source_location": "L49", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db", + "target": "tests_test_dwell_db_testcontenttypefallback" }, { - "source": "tests_test_vrptw_engine", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L8", + "source_file": "tests/test_dwell_db.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db", + "target": "tests_test_dwell_db_testdefaultfallback" }, { - "source": "tests_test_vrptw_engine", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", + "source_file": "tests/test_dwell_db.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db", + "target": "tests_test_dwell_db_testistooshort" }, { - "source": "tests_test_vrptw_engine", - "target": "src_validation_vrptw_engine", - "relation": "imports_from", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", + "source_file": "tests/test_dwell_db.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db", + "target": "tests_test_dwell_db_testlclssystm1fallback" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_make_place", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L24", + "source_file": "tests/test_dwell_db.py", + "source_location": "L33", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db", + "target": "tests_test_dwell_db_testlclssystm3" }, { - "source": "tests_test_vrptw_engine_make_place", - "target": "src_data_models_vrptwplace", - "relation": "references", - "context": "return_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L24", + "source_file": "tests/test_dwell_db.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db", + "target": "tests_test_dwell_db_testmanualoverride" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_testhaversinematrix", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L54", + "source_file": "tests/test_dwell_db.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db_rationale_1", + "target": "tests_test_dwell_db" }, { - "source": "tests_test_vrptw_engine_testhaversinematrix", - "target": "tests_test_vrptw_engine_testhaversinematrix_test_same_point_is_zero", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L55", + "source_file": "tests/test_dwell_db.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db_testmanualoverride", + "target": "tests_test_dwell_db_testmanualoverride_test_n_seoul_tower_alias" }, { - "source": "tests_test_vrptw_engine_testhaversinematrix", - "target": "tests_test_vrptw_engine_testhaversinematrix_test_known_distance", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L59", + "source_file": "tests/test_dwell_db.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db_testmanualoverride", + "target": "tests_test_dwell_db_testmanualoverride_test_normalization_handles_spaces" }, { - "source": "tests_test_vrptw_engine_testhaversinematrix", - "target": "tests_test_vrptw_engine_testhaversinematrix_test_symmetry", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L66", + "source_file": "tests/test_dwell_db.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db_testmanualoverride", + "target": "tests_test_dwell_db_testmanualoverride_test_\uacbd\ubcf5\uad81_returns_manual_source" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_testcachedroutematrix", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L75", + "source_file": "tests/test_dwell_db.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db_testlclssystm3", + "target": "tests_test_dwell_db_testlclssystm3_test_museum_code" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix", - "target": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_hit", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L76", + "source_file": "tests/test_dwell_db.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db_testlclssystm1fallback", + "target": "tests_test_dwell_db_testlclssystm1fallback_test_lcls3_unknown_falls_back_to_lcls1" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix", - "target": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_miss_falls_back_to_haversine", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L81", + "source_file": "tests/test_dwell_db.py", + "source_location": "L50", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db_testcontenttypefallback", + "target": "tests_test_dwell_db_testcontenttypefallback_test_content_type_used_when_no_lcls" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix", - "target": "tests_test_vrptw_engine_testcachedroutematrix_test_reverse_key_fallback", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L87", + "source_file": "tests/test_dwell_db.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db_testdefaultfallback", + "target": "tests_test_dwell_db_testdefaultfallback_test_no_info_returns_default" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix", - "target": "tests_test_vrptw_engine_testcachedroutematrix_test_load_from_dict", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L93", + "source_file": "tests/test_dwell_db.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dwell_db_testistooshort", + "target": "tests_test_dwell_db_testistooshort_test_below_50pct_is_too_short" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_testdepotconstraint", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L105", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail", + "target": "tests_test_estimated_hardfail_plan" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint", - "target": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L106", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail", + "target": "tests_test_estimated_hardfail_poi" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "references", - "context": "return_type", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L106", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L32", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail", + "target": "tests_test_estimated_hardfail_test_estimated_hours_conflict_flagged_estimated" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint", - "target": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L109", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail", + "target": "tests_test_estimated_hardfail_test_verified_hours_conflict_not_estimated_and_message_unchanged" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint", - "target": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_middle_day_must_start_and_end_at_depot", - "relation": "method", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L126", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail_rationale_1", + "target": "tests_test_estimated_hardfail" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint", - "target": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L139", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail_test_estimated_hours_conflict_flagged_estimated", + "target": "tests_test_estimated_hardfail_poi" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_testtimewindowfeasibility", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L161", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail_test_verified_hours_conflict_not_estimated_and_message_unchanged", + "target": "tests_test_estimated_hardfail_poi" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility", - "target": "tests_test_vrptw_engine_testtimewindowfeasibility_engine", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L162", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail_test_estimated_hours_conflict_flagged_estimated", + "target": "tests_test_estimated_hardfail_plan" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_engine", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L162", + "source_file": "tests/test_estimated_hardfail.py", + "source_location": "L45", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_estimated_hardfail_test_verified_hours_conflict_not_estimated_and_message_unchanged", + "target": "tests_test_estimated_hardfail_plan" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility", - "target": "tests_test_vrptw_engine_testtimewindowfeasibility_test_feasible_schedule_passes", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L165", + "source_file": "tests/test_explain_engine.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_make_disabled_graph_stub" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility", - "target": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L174", + "source_file": "tests/test_explain_engine.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility", - "target": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L185", + "source_file": "tests/test_explain_engine.py", + "source_location": "L46", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_testefficiencygap", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L203", + "source_file": "tests/test_explain_engine.py", + "source_location": "L33", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testefficiencygap", - "target": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L204", + "source_file": "tests/test_explain_engine.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_make_scores" }, { - "source": "tests_test_vrptw_engine_testefficiencygap", - "target": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L212", + "source_file": "tests/test_explain_engine.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_make_warning" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_testfatiguescore", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L225", + "source_file": "tests/test_explain_engine.py", + "source_location": "L624", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_testbuildalternatives" }, { - "source": "tests_test_vrptw_engine_testfatiguescore", - "target": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L226", + "source_file": "tests/test_explain_engine.py", + "source_location": "L162", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_testbuilduserprompt" }, { - "source": "tests_test_vrptw_engine_testfatiguescore", - "target": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L239", + "source_file": "tests/test_explain_engine.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_testcachekey" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_testortoolsdegradation", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L256", + "source_file": "tests/test_explain_engine.py", + "source_location": "L613", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_testexplainenginegraphdefault" }, { - "source": "tests_test_vrptw_engine_testortoolsdegradation", - "target": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L257", + "source_file": "tests/test_explain_engine.py", + "source_location": "L495", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_testexplainenginemockllm" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_testriskscore", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L277", + "source_file": "tests/test_explain_engine.py", + "source_location": "L415", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_testexplainenginenollm" }, { - "source": "tests_test_vrptw_engine_testriskscore", - "target": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L278", + "source_file": "tests/test_explain_engine.py", + "source_location": "L346", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_testfallback" }, { - "source": "tests_test_vrptw_engine_testriskscore", - "target": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold", - "relation": "method", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L284", + "source_file": "tests/test_explain_engine.py", + "source_location": "L127", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_testgraphcontext" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_test_constants_accessible", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L298", + "source_file": "tests/test_explain_engine.py", + "source_location": "L242", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine", + "target": "tests_test_explain_engine_testparsellmresponse" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_testmodelvalidation", - "relation": "contains", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L308", + "source_file": "tests/test_explain_engine.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_rationale_1", + "target": "tests_test_explain_engine" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lat_raises", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L309", + "source_file": "tests/test_explain_engine.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_contains_plan_info", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lng_raises", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L313", + "source_file": "tests/test_explain_engine.py", + "source_location": "L211", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_hard_fail", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_format_raises", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L317", + "source_file": "tests/test_explain_engine.py", + "source_location": "L218", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_warning", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_value_raises", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L321", + "source_file": "tests/test_explain_engine.py", + "source_location": "L197", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "tests_test_vrptw_engine_testmodelvalidation_test_negative_stay_raises", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L325", + "source_file": "tests/test_explain_engine.py", + "source_location": "L169", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_hard_fail_in_prompt", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "tests_test_vrptw_engine_testmodelvalidation_test_zero_stay_allowed_for_depot", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L329", + "source_file": "tests/test_explain_engine.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "tests_test_vrptw_engine_testmodelvalidation_test_empty_day_raises", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L334", + "source_file": "tests/test_explain_engine.py", + "source_location": "L205", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_no_graph_omits_evidence_key", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "tests_test_vrptw_engine_testmodelvalidation_test_empty_days_raises", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L338", + "source_file": "tests/test_explain_engine.py", + "source_location": "L186", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_overall_item_present", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "tests_test_vrptw_engine_testmodelvalidation_test_open_minutes_property", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L342", + "source_file": "tests/test_explain_engine.py", + "source_location": "L178", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_penalty_in_prompt", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "tests_test_vrptw_engine_testmodelvalidation_test_close_minutes_property", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L346", + "source_file": "tests/test_explain_engine.py", + "source_location": "L182", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_scores_included_when_provided", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_testefficiencygapthreshold", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L355", + "source_file": "tests/test_explain_engine.py", + "source_location": "L232", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold", - "target": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L356", + "source_file": "tests/test_explain_engine.py", + "source_location": "L174", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_in_prompt", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_testmultidayresult", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L376", + "source_file": "tests/test_explain_engine.py", + "source_location": "L573", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmultidayresult", - "target": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L377", + "source_file": "tests/test_explain_engine.py", + "source_location": "L605", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmultidayresult", - "target": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L391", + "source_file": "tests/test_explain_engine.py", + "source_location": "L548", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_failure_falls_back_gracefully", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testmultidayresult", - "target": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel", - "relation": "method", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L404", + "source_file": "tests/test_explain_engine.py", + "source_location": "L532", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_test_summary_contains_score", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L415", + "source_file": "tests/test_explain_engine.py", + "source_location": "L430", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L427", + "source_file": "tests/test_explain_engine.py", + "source_location": "L457", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm_test_hard_fail_present_in_results", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine", - "target": "tests_test_vrptw_engine_test_cached_matrix_from_actual_file", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L444", + "source_file": "tests/test_explain_engine.py", + "source_location": "L443", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm_test_no_issues_returns_ok_overall", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_make_place", - "target": "src_data_models_vrptwplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L33", + "source_file": "tests/test_explain_engine.py", + "source_location": "L483", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm_test_penalty_present_in_results", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix_test_load_from_dict", - "target": "tests_test_vrptw_engine_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L96", + "source_file": "tests/test_explain_engine.py", + "source_location": "L470", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm_test_warning_present_in_results", + "target": "tests_test_explain_engine_make_plan" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L107", + "source_file": "tests/test_explain_engine.py", + "source_location": "L182", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_scores_included_when_provided", + "target": "tests_test_explain_engine_make_scores" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot", - "target": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L118", + "source_file": "tests/test_explain_engine.py", + "source_location": "L429", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items", + "target": "tests_test_explain_engine_make_scores" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_middle_day_must_start_and_end_at_depot", - "target": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L134", + "source_file": "tests/test_explain_engine.py", + "source_location": "L442", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm_test_no_issues_returns_ok_overall", + "target": "tests_test_explain_engine_make_scores" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied", - "target": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L147", + "source_file": "tests/test_explain_engine.py", + "source_location": "L631", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_disabled_graph_returns_empty", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_engine", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L163", + "source_file": "tests/test_explain_engine.py", + "source_location": "L668", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_duplicate_poi_name_only_looked_up_once", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_feasible_schedule_passes", - "target": "tests_test_vrptw_engine_testtimewindowfeasibility_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L169", + "source_file": "tests/test_explain_engine.py", + "source_location": "L637", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_hard_fail_without_poi_name_skipped", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical", - "target": "tests_test_vrptw_engine_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L176", + "source_file": "tests/test_explain_engine.py", + "source_location": "L643", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_match_returns_alternatives_keyed_by_poi_name", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical", - "target": "tests_test_vrptw_engine_testtimewindowfeasibility_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L180", + "source_file": "tests/test_explain_engine.py", + "source_location": "L653", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_no_nearby_omits_poi", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning", - "target": "tests_test_vrptw_engine_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L189", + "source_file": "tests/test_explain_engine.py", + "source_location": "L661", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_no_search_match_omits_poi", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning", - "target": "tests_test_vrptw_engine_testtimewindowfeasibility_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L193", + "source_file": "tests/test_explain_engine.py", + "source_location": "L209", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_hard_fail", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L207", + "source_file": "tests/test_explain_engine.py", + "source_location": "L192", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L215", + "source_file": "tests/test_explain_engine.py", + "source_location": "L169", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_hard_fail_in_prompt", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", - "target": "tests_test_vrptw_engine_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L229", + "source_file": "tests/test_explain_engine.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L233", + "source_file": "tests/test_explain_engine.py", + "source_location": "L205", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_no_graph_omits_evidence_key", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", - "target": "tests_test_vrptw_engine_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L242", + "source_file": "tests/test_explain_engine.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testcachekey_test_different_day_index_different_key", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L246", + "source_file": "tests/test_explain_engine.py", + "source_location": "L107", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testcachekey_test_different_score_different_key", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L265", + "source_file": "tests/test_explain_engine.py", + "source_location": "L101", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testcachekey_test_same_inputs_same_key", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L280", + "source_file": "tests/test_explain_engine.py", + "source_location": "L572", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L286", + "source_file": "tests/test_explain_engine.py", + "source_location": "L600", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lat_raises", - "target": "src_data_models_vrptwplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L311", + "source_file": "tests/test_explain_engine.py", + "source_location": "L543", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_failure_falls_back_gracefully", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lng_raises", - "target": "src_data_models_vrptwplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L315", + "source_file": "tests/test_explain_engine.py", + "source_location": "L527", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_format_raises", - "target": "src_data_models_vrptwplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L319", + "source_file": "tests/test_explain_engine.py", + "source_location": "L425", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_value_raises", - "target": "src_data_models_vrptwplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L323", + "source_file": "tests/test_explain_engine.py", + "source_location": "L452", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm_test_hard_fail_present_in_results", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation_test_negative_stay_raises", - "target": "src_data_models_vrptwplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L327", + "source_file": "tests/test_explain_engine.py", + "source_location": "L369", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback_test_always_has_overall_item", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation_test_zero_stay_allowed_for_depot", - "target": "src_data_models_vrptwplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L330", + "source_file": "tests/test_explain_engine.py", + "source_location": "L378", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback_test_failed_overall_is_critical", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation_test_open_minutes_property", - "target": "tests_test_vrptw_engine_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L343", + "source_file": "tests/test_explain_engine.py", + "source_location": "L348", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback_test_hard_fail_becomes_critical", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation_test_close_minutes_property", - "target": "tests_test_vrptw_engine_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L347", + "source_file": "tests/test_explain_engine.py", + "source_location": "L388", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback_test_hard_fail_day_index_propagated_and_prefixed", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", - "target": "tests_test_vrptw_engine_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L360", + "source_file": "tests/test_explain_engine.py", + "source_location": "L404", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback_test_no_day_index_no_prefix", + "target": "tests_test_explain_engine_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L364", + "source_file": "tests/test_explain_engine.py", + "source_location": "L215", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_warning", + "target": "tests_test_explain_engine_make_warning" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L384", + "source_file": "tests/test_explain_engine.py", + "source_location": "L225", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field", + "target": "tests_test_explain_engine_make_warning" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L398", + "source_file": "tests/test_explain_engine.py", + "source_location": "L230", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name", + "target": "tests_test_explain_engine_make_warning" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L406", + "source_file": "tests/test_explain_engine.py", + "source_location": "L174", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_in_prompt", + "target": "tests_test_explain_engine_make_warning" }, { - "source": "tests_test_vrptw_engine_test_summary_contains_score", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L417", + "source_file": "tests/test_explain_engine.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testcachekey_test_same_inputs_same_key", + "target": "tests_test_explain_engine_make_warning" }, { - "source": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", - "target": "tests_test_vrptw_engine_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L429", + "source_file": "tests/test_explain_engine.py", + "source_location": "L426", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items", + "target": "tests_test_explain_engine_make_warning" }, { - "source": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", - "target": "src_validation_vrptw_engine_vrptwengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L431", + "source_file": "tests/test_explain_engine.py", + "source_location": "L466", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm_test_warning_present_in_results", + "target": "tests_test_explain_engine_make_warning" }, { - "source": "tests_test_vrptw_engine_test_cached_matrix_from_actual_file", - "target": "tests_test_vrptw_engine_make_place", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L454", + "source_file": "tests/test_explain_engine.py", + "source_location": "L370", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback_test_always_has_overall_item", + "target": "tests_test_explain_engine_make_warning" }, { - "source": "tests_test_vrptw_engine_rationale_1", - "target": "tests_test_vrptw_engine", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L1", + "source_file": "tests/test_explain_engine.py", + "source_location": "L353", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback_test_warning_becomes_warning", + "target": "tests_test_explain_engine_make_warning" }, { - "source": "tests_test_vrptw_engine_rationale_88", - "target": "tests_test_vrptw_engine_testcachedroutematrix_test_reverse_key_fallback", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L88", + "source_file": "tests/test_explain_engine.py", + "source_location": "L396", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback_test_warning_day_index_propagated_and_prefixed", + "target": "tests_test_explain_engine_make_warning" }, { - "source": "tests_test_vrptw_engine_rationale_110", - "target": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot", "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L110", + "source_file": "tests/test_explain_engine.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_rationale_65", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_vrptw_engine_rationale_140", - "target": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L140", + "source_file": "tests/test_explain_engine.py", + "source_location": "L666", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_duplicate_poi_name_only_looked_up_once", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_vrptw_engine_rationale_175", - "target": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L175", + "source_file": "tests/test_explain_engine.py", + "source_location": "L636", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_hard_fail_without_poi_name_skipped", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_vrptw_engine_rationale_186", - "target": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L186", + "source_file": "tests/test_explain_engine.py", + "source_location": "L642", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_match_returns_alternatives_keyed_by_poi_name", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_vrptw_engine_rationale_205", - "target": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L205", + "source_file": "tests/test_explain_engine.py", + "source_location": "L626", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_no_hard_fails_returns_empty", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_vrptw_engine_rationale_213", - "target": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L213", + "source_file": "tests/test_explain_engine.py", + "source_location": "L651", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_no_nearby_omits_poi", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_vrptw_engine_rationale_258", - "target": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L258", + "source_file": "tests/test_explain_engine.py", + "source_location": "L658", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_no_search_match_omits_poi", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_vrptw_engine_rationale_357", - "target": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L357", + "source_file": "tests/test_explain_engine.py", + "source_location": "L199", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_vrptw_engine_rationale_428", - "target": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L428", + "source_file": "tests/test_explain_engine.py", + "source_location": "L232", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_vrptw_engine_rationale_445", - "target": "tests_test_vrptw_engine_test_cached_matrix_from_actual_file", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L445", + "source_file": "tests/test_explain_engine.py", + "source_location": "L598", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_warning", - "target": "pytest", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L4", + "source_file": "tests/test_explain_engine.py", + "source_location": "L135", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext_test_empty_poi_name_returns_none", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_warning", - "target": "src_data_models", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L6", + "source_file": "tests/test_explain_engine.py", + "source_location": "L148", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext_test_match_includes_nearby_alternatives", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_warning", - "target": "src_validation_warning", - "relation": "imports_from", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L7", + "source_file": "tests/test_explain_engine.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext_test_match_includes_region_and_category", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_warning", - "target": "tests_test_warning_make_poi", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L14", + "source_file": "tests/test_explain_engine.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext_test_no_match_returns_none", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_warning_make_poi", - "target": "src_data_models_poi", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L14", + "source_file": "tests/test_explain_engine.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext_test_no_nearby_omits_key", + "target": "tests_test_explain_engine_make_graph_stub" }, { - "source": "tests_test_warning", - "target": "tests_test_warning_make_plan", - "relation": "contains", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L29", + "source_file": "tests/test_explain_engine.py", + "source_location": "L630", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives_test_disabled_graph_returns_empty", + "target": "tests_test_explain_engine_make_disabled_graph_stub" }, { - "source": "tests_test_warning_make_plan", - "target": "src_data_models_itineraryplan", - "relation": "references", - "context": "return_type", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L29", + "source_file": "tests/test_explain_engine.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext_test_disabled_graph_returns_none", + "target": "tests_test_explain_engine_make_disabled_graph_stub" }, { - "source": "tests_test_warning", - "target": "tests_test_warning_make_matrix", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L44", + "source_file": "tests/test_explain_engine.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testcachekey", + "target": "tests_test_explain_engine_testcachekey_test_different_day_index_different_key" }, { - "source": "tests_test_warning_detector", - "target": "tests_test_warning_py_fixture", - "relation": "references", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L58", + "source_file": "tests/test_explain_engine.py", + "source_location": "L106", "weight": 1.0, - "context": "decorator", - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testcachekey", + "target": "tests_test_explain_engine_testcachekey_test_different_score_different_key" }, { - "source": "tests_test_warning", - "target": "tests_test_warning_detector", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L59", + "source_file": "tests/test_explain_engine.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testcachekey", + "target": "tests_test_explain_engine_testcachekey_test_empty_inputs" }, { - "source": "tests_test_warning_detector", - "target": "src_validation_warning_warningdetector", - "relation": "references", - "context": "return_type", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L59", + "source_file": "tests/test_explain_engine.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testcachekey", + "target": "tests_test_explain_engine_testcachekey_test_same_inputs_same_key" }, { - "source": "tests_test_warning", - "target": "tests_test_warning_testdenseschedule", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L67", + "source_file": "tests/test_explain_engine.py", + "source_location": "L131", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "tests_test_explain_engine_testgraphcontext_test_disabled_graph_returns_none" }, { - "source": "tests_test_warning_testdenseschedule", - "target": "tests_test_warning_testdenseschedule_test_dense_trigger_baby", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L68", + "source_file": "tests/test_explain_engine.py", + "source_location": "L134", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "tests_test_explain_engine_testgraphcontext_test_empty_poi_name_returns_none" }, { - "source": "tests_test_warning_testdenseschedule", - "target": "tests_test_warning_testdenseschedule_test_dense_trigger_friends_heavy", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L77", + "source_file": "tests/test_explain_engine.py", + "source_location": "L147", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "tests_test_explain_engine_testgraphcontext_test_match_includes_nearby_alternatives" }, { - "source": "tests_test_warning_testdenseschedule", - "target": "tests_test_warning_testdenseschedule_test_no_dense_within_threshold", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L86", + "source_file": "tests/test_explain_engine.py", + "source_location": "L142", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "tests_test_explain_engine_testgraphcontext_test_match_includes_region_and_category" }, { - "source": "tests_test_warning_testdenseschedule", - "target": "tests_test_warning_testdenseschedule_test_dense_message_includes_party_type", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L95", + "source_file": "tests/test_explain_engine.py", + "source_location": "L137", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "tests_test_explain_engine_testgraphcontext_test_no_match_returns_none" }, { - "source": "tests_test_warning", - "target": "tests_test_warning_testphysicalstrain", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L109", + "source_file": "tests/test_explain_engine.py", + "source_location": "L152", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "tests_test_explain_engine_testgraphcontext_test_no_nearby_omits_key" }, { - "source": "tests_test_warning_testphysicalstrain", - "target": "tests_test_warning_testphysicalstrain_test_strain_trigger", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L110", + "source_file": "tests/test_explain_engine.py", + "source_location": "L128", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testgraphcontext", + "target": "tests_test_explain_engine_testgraphcontext_test_none_graph_returns_none" }, { - "source": "tests_test_warning_testphysicalstrain", - "target": "tests_test_warning_testphysicalstrain_test_no_strain_short_distance", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L123", + "source_file": "tests/test_explain_engine.py", + "source_location": "L163", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_contains_plan_info" }, { - "source": "tests_test_warning", - "target": "tests_test_warning_testpurposemismatch", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L138", + "source_file": "tests/test_explain_engine.py", + "source_location": "L208", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_hard_fail" }, { - "source": "tests_test_warning_testpurposemismatch", - "target": "tests_test_warning_testpurposemismatch_test_mismatch_cultural_all_sports", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L139", + "source_file": "tests/test_explain_engine.py", + "source_location": "L214", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_warning" }, { - "source": "tests_test_warning_testpurposemismatch", - "target": "tests_test_warning_testpurposemismatch_test_no_mismatch_cultural_all_cultural", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L150", + "source_file": "tests/test_explain_engine.py", + "source_location": "L190", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched" }, { - "source": "tests_test_warning_testpurposemismatch", - "target": "tests_test_warning_testpurposemismatch_test_no_mismatch_when_no_travel_type", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L161", + "source_file": "tests/test_explain_engine.py", + "source_location": "L168", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_hard_fail_in_prompt" }, { - "source": "tests_test_warning", - "target": "tests_test_warning_testarearevisit", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L173", + "source_file": "tests/test_explain_engine.py", + "source_location": "L223", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field" }, { - "source": "tests_test_warning_testarearevisit", - "target": "tests_test_warning_testarearevisit_test_consecutive_same_category_triggers", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L174", + "source_file": "tests/test_explain_engine.py", + "source_location": "L204", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_no_graph_omits_evidence_key" }, { - "source": "tests_test_warning_testarearevisit", - "target": "tests_test_warning_testarearevisit_test_all_different_no_revisit", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L187", + "source_file": "tests/test_explain_engine.py", + "source_location": "L185", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_overall_item_present" }, { - "source": "tests_test_warning_testarearevisit", - "target": "tests_test_warning_testarearevisit_test_three_consecutive_triggers", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L199", + "source_file": "tests/test_explain_engine.py", + "source_location": "L177", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_penalty_in_prompt" }, { - "source": "tests_test_warning_testarearevisit", - "target": "tests_test_warning_testarearevisit_test_two_consecutive_no_trigger", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L212", + "source_file": "tests/test_explain_engine.py", + "source_location": "L181", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_scores_included_when_provided" }, { - "source": "tests_test_warning", - "target": "tests_test_warning_testwarningfields", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L230", + "source_file": "tests/test_explain_engine.py", + "source_location": "L229", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name" }, { - "source": "tests_test_warning_testwarningfields", - "target": "tests_test_warning_testwarningfields_test_warning_has_confidence_from_types", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L231", + "source_file": "tests/test_explain_engine.py", + "source_location": "L173", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuilduserprompt", + "target": "tests_test_explain_engine_testbuilduserprompt_test_warning_in_prompt" }, { - "source": "tests_test_warning_testwarningfields", - "target": "tests_test_warning_testwarningfields_test_warning_message_not_empty", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L242", + "source_file": "tests/test_explain_engine.py", + "source_location": "L307", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "tests_test_explain_engine_testparsellmresponse_test_day_index_echoed_back" }, { - "source": "tests_test_warning", - "target": "tests_test_warning_testdayindex", - "relation": "contains", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L255", + "source_file": "tests/test_explain_engine.py", + "source_location": "L324", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "tests_test_explain_engine_testparsellmresponse_test_missing_day_index_defaults_to_none" }, { - "source": "tests_test_warning_testdayindex", - "target": "tests_test_warning_testdayindex_test_day_index_defaults_to_none", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L256", + "source_file": "tests/test_explain_engine.py", + "source_location": "L267", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "tests_test_explain_engine_testparsellmresponse_test_multiple_items" }, { - "source": "tests_test_warning_testdayindex", - "target": "tests_test_warning_testdayindex_test_day_index_and_poi_names_set_when_passed", "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L266", + "source_file": "tests/test_explain_engine.py", + "source_location": "L243", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "tests_test_explain_engine_testparsellmresponse_test_parses_valid_json_array" }, { - "source": "tests_test_warning_make_poi", - "target": "src_data_models_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L22", + "source_file": "tests/test_explain_engine.py", + "source_location": "L291", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "tests_test_explain_engine_testparsellmresponse_test_returns_explanation_items" }, { - "source": "tests_test_warning_make_plan", - "target": "src_data_models_itineraryplan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L35", + "source_file": "tests/test_explain_engine.py", + "source_location": "L261", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testparsellmresponse", + "target": "tests_test_explain_engine_testparsellmresponse_test_strips_code_block_wrapper" }, { - "source": "tests_test_warning_detector", - "target": "src_validation_warning_warningdetector", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L60", + "source_file": "tests/test_explain_engine.py", + "source_location": "L367", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback", + "target": "tests_test_explain_engine_testfallback_test_always_has_overall_item" }, { - "source": "tests_test_warning_testdenseschedule_test_dense_trigger_baby", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L70", + "source_file": "tests/test_explain_engine.py", + "source_location": "L377", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback", + "target": "tests_test_explain_engine_testfallback_test_failed_overall_is_critical" }, { - "source": "tests_test_warning_testdenseschedule_test_dense_trigger_baby", - "target": "tests_test_warning_make_matrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L71", + "source_file": "tests/test_explain_engine.py", + "source_location": "L347", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback", + "target": "tests_test_explain_engine_testfallback_test_hard_fail_becomes_critical" }, { - "source": "tests_test_warning_testdenseschedule_test_dense_trigger_baby", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L72", + "source_file": "tests/test_explain_engine.py", + "source_location": "L387", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback", + "target": "tests_test_explain_engine_testfallback_test_hard_fail_day_index_propagated_and_prefixed" }, { - "source": "tests_test_warning_testdenseschedule_test_dense_trigger_friends_heavy", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L79", + "source_file": "tests/test_explain_engine.py", + "source_location": "L357", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback", + "target": "tests_test_explain_engine_testfallback_test_large_penalty_is_critical" }, { - "source": "tests_test_warning_testdenseschedule_test_dense_trigger_friends_heavy", - "target": "tests_test_warning_make_matrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L80", + "source_file": "tests/test_explain_engine.py", + "source_location": "L403", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback", + "target": "tests_test_explain_engine_testfallback_test_no_day_index_no_prefix" }, { - "source": "tests_test_warning_testdenseschedule_test_dense_trigger_friends_heavy", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L81", + "source_file": "tests/test_explain_engine.py", + "source_location": "L382", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback", + "target": "tests_test_explain_engine_testfallback_test_passed_overall_is_ok" }, { - "source": "tests_test_warning_testdenseschedule_test_no_dense_within_threshold", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L88", + "source_file": "tests/test_explain_engine.py", + "source_location": "L362", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback", + "target": "tests_test_explain_engine_testfallback_test_small_penalty_is_warning" }, { - "source": "tests_test_warning_testdenseschedule_test_no_dense_within_threshold", - "target": "tests_test_warning_make_matrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L89", + "source_file": "tests/test_explain_engine.py", + "source_location": "L352", "weight": 1.0, - "_origin": "ast" - }, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback", + "target": "tests_test_explain_engine_testfallback_test_warning_becomes_warning" + }, { - "source": "tests_test_warning_testdenseschedule_test_no_dense_within_threshold", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L90", + "source_file": "tests/test_explain_engine.py", + "source_location": "L395", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testfallback", + "target": "tests_test_explain_engine_testfallback_test_warning_day_index_propagated_and_prefixed" }, { - "source": "tests_test_warning_testdenseschedule_test_dense_message_includes_party_type", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L96", + "source_file": "tests/test_explain_engine.py", + "source_location": "L416", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "tests_test_explain_engine_testexplainenginenollm_setup_method" }, { - "source": "tests_test_warning_testdenseschedule_test_dense_message_includes_party_type", - "target": "tests_test_warning_make_matrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L97", + "source_file": "tests/test_explain_engine.py", + "source_location": "L423", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "tests_test_explain_engine_testexplainenginenollm_test_generate_returns_list_of_explanation_items" }, { - "source": "tests_test_warning_testdenseschedule_test_dense_message_includes_party_type", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L98", + "source_file": "tests/test_explain_engine.py", + "source_location": "L450", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "tests_test_explain_engine_testexplainenginenollm_test_hard_fail_present_in_results" }, { - "source": "tests_test_warning_testphysicalstrain_test_strain_trigger", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L113", + "source_file": "tests/test_explain_engine.py", + "source_location": "L420", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "tests_test_explain_engine_testexplainenginenollm_test_is_available_false_without_key" }, { - "source": "tests_test_warning_testphysicalstrain_test_strain_trigger", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L118", + "source_file": "tests/test_explain_engine.py", + "source_location": "L436", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "tests_test_explain_engine_testexplainenginenollm_test_no_issues_returns_ok_overall" }, { - "source": "tests_test_warning_testphysicalstrain_test_no_strain_short_distance", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L125", + "source_file": "tests/test_explain_engine.py", + "source_location": "L476", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "tests_test_explain_engine_testexplainenginenollm_test_penalty_present_in_results" }, { - "source": "tests_test_warning_testphysicalstrain_test_no_strain_short_distance", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L128", + "source_file": "tests/test_explain_engine.py", + "source_location": "L463", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginenollm", + "target": "tests_test_explain_engine_testexplainenginenollm_test_warning_present_in_results" }, { - "source": "tests_test_warning_testpurposemismatch_test_mismatch_cultural_all_sports", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L142", + "source_file": "tests/test_explain_engine.py", + "source_location": "L496", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "tests_test_explain_engine_testexplainenginemockllm_make_mock_client" }, { - "source": "tests_test_warning_testpurposemismatch_test_mismatch_cultural_all_sports", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L145", + "source_file": "tests/test_explain_engine.py", + "source_location": "L554", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call" }, { - "source": "tests_test_warning_testpurposemismatch_test_no_mismatch_cultural_all_cultural", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L153", + "source_file": "tests/test_explain_engine.py", + "source_location": "L582", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt" }, { - "source": "tests_test_warning_testpurposemismatch_test_no_mismatch_cultural_all_cultural", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L156", + "source_file": "tests/test_explain_engine.py", + "source_location": "L577", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "tests_test_explain_engine_testexplainenginemockllm_test_is_available_with_client" }, { - "source": "tests_test_warning_testpurposemismatch_test_no_mismatch_when_no_travel_type", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L162", + "source_file": "tests/test_explain_engine.py", + "source_location": "L538", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "tests_test_explain_engine_testexplainenginemockllm_test_llm_failure_falls_back_gracefully" }, { - "source": "tests_test_warning_testpurposemismatch_test_no_mismatch_when_no_travel_type", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L163", + "source_file": "tests/test_explain_engine.py", + "source_location": "L506", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm", + "target": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available" }, { - "source": "tests_test_warning_testarearevisit_test_consecutive_same_category_triggers", - "target": "tests_test_warning_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L177", + "source_file": "tests/test_explain_engine.py", + "source_location": "L569", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call", + "target": "tests_test_explain_engine_testexplainenginemockllm_make_mock_client" }, { - "source": "tests_test_warning_testarearevisit_test_consecutive_same_category_triggers", - "target": "tests_test_warning_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L182", + "source_file": "tests/test_explain_engine.py", + "source_location": "L597", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", + "target": "tests_test_explain_engine_testexplainenginemockllm_make_mock_client" }, { - "source": "tests_test_warning_testarearevisit_test_all_different_no_revisit", - "target": "tests_test_warning_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L189", + "source_file": "tests/test_explain_engine.py", + "source_location": "L525", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available", + "target": "tests_test_explain_engine_testexplainenginemockllm_make_mock_client" }, { - "source": "tests_test_warning_testarearevisit_test_all_different_no_revisit", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L194", + "source_file": "tests/test_explain_engine.py", + "source_location": "L614", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testexplainenginegraphdefault", + "target": "tests_test_explain_engine_testexplainenginegraphdefault_test_default_graph_uses_local_catalog_without_neo4j" }, { - "source": "tests_test_warning_testarearevisit_test_three_consecutive_triggers", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L202", + "source_file": "tests/test_explain_engine.py", + "source_location": "L629", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "tests_test_explain_engine_testbuildalternatives_test_disabled_graph_returns_empty" }, { - "source": "tests_test_warning_testarearevisit_test_three_consecutive_triggers", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L207", + "source_file": "tests/test_explain_engine.py", + "source_location": "L665", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "tests_test_explain_engine_testbuildalternatives_test_duplicate_poi_name_only_looked_up_once" }, { - "source": "tests_test_warning_testarearevisit_test_two_consecutive_no_trigger", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L215", + "source_file": "tests/test_explain_engine.py", + "source_location": "L635", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "tests_test_explain_engine_testbuildalternatives_test_hard_fail_without_poi_name_skipped" + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_explain_engine.py", + "source_location": "L641", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "tests_test_explain_engine_testbuildalternatives_test_match_returns_alternatives_keyed_by_poi_name" }, { - "source": "tests_test_warning_testarearevisit_test_two_consecutive_no_trigger", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L220", + "source_file": "tests/test_explain_engine.py", + "source_location": "L625", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "tests_test_explain_engine_testbuildalternatives_test_no_hard_fails_returns_empty" }, { - "source": "tests_test_warning_testwarningfields_test_warning_has_confidence_from_types", - "target": "tests_test_warning_make_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L233", + "source_file": "tests/test_explain_engine.py", + "source_location": "L649", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "tests_test_explain_engine_testbuildalternatives_test_no_nearby_omits_poi" }, { - "source": "tests_test_warning_testwarningfields_test_warning_has_confidence_from_types", - "target": "tests_test_warning_make_plan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L236", + "source_file": "tests/test_explain_engine.py", + "source_location": "L657", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_explain_engine_testbuildalternatives", + "target": "tests_test_explain_engine_testbuildalternatives_test_no_search_match_omits_poi" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_geo.py", + "source_location": "L11", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "tests_test_geo_make_poi" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_geo.py", + "source_location": "L51", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "tests_test_geo_testbuilddistcache" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_geo.py", + "source_location": "L135", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "tests_test_geo_testgettravelmin" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_geo.py", + "source_location": "L28", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "tests_test_geo_testhaversinekm" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_geo.py", + "source_location": "L90", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo", + "target": "tests_test_geo_testnnheuristickm" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_geo.py", + "source_location": "L1", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_rationale_1", + "target": "tests_test_geo" }, { - "source": "tests_test_warning_testwarningfields_test_warning_message_not_empty", - "target": "tests_test_warning_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L243", + "source_file": "tests/test_geo.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testbuilddistcache_test_all_pairs_present", + "target": "tests_test_geo_make_poi" }, { - "source": "tests_test_warning_testwarningfields_test_warning_message_not_empty", - "target": "tests_test_warning_make_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L244", + "source_file": "tests/test_geo.py", + "source_location": "L61", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testbuilddistcache_test_no_self_pairs", + "target": "tests_test_geo_make_poi" }, { - "source": "tests_test_warning_testwarningfields_test_warning_message_not_empty", - "target": "tests_test_warning_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L245", + "source_file": "tests/test_geo.py", + "source_location": "L77", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testbuilddistcache_test_single_poi_empty_cache", + "target": "tests_test_geo_make_poi" }, { - "source": "tests_test_warning_testdayindex_test_day_index_defaults_to_none", - "target": "tests_test_warning_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L257", + "source_file": "tests/test_geo.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testbuilddistcache_test_values_match_haversine", + "target": "tests_test_geo_make_poi" }, { - "source": "tests_test_warning_testdayindex_test_day_index_defaults_to_none", - "target": "tests_test_warning_make_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L258", + "source_file": "tests/test_geo.py", + "source_location": "L151", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testgettravelmin_test_cache_fallback_when_no_matrix", + "target": "tests_test_geo_make_poi" }, { - "source": "tests_test_warning_testdayindex_test_day_index_defaults_to_none", - "target": "tests_test_warning_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L259", + "source_file": "tests/test_geo.py", + "source_location": "L143", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testgettravelmin_test_haversine_fallback_when_no_matrix", + "target": "tests_test_geo_make_poi" }, { - "source": "tests_test_warning_testdayindex_test_day_index_and_poi_names_set_when_passed", - "target": "tests_test_warning_make_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L267", + "source_file": "tests/test_geo.py", + "source_location": "L158", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testgettravelmin_test_matrix_takes_priority_over_cache", + "target": "tests_test_geo_make_poi" }, { - "source": "tests_test_warning_testdayindex_test_day_index_and_poi_names_set_when_passed", - "target": "tests_test_warning_make_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L268", + "source_file": "tests/test_geo.py", + "source_location": "L137", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testgettravelmin_test_uses_matrix_when_available", + "target": "tests_test_geo_make_poi" }, { - "source": "tests_test_warning_testdayindex_test_day_index_and_poi_names_set_when_passed", - "target": "tests_test_warning_make_plan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L269", + "source_file": "tests/test_geo.py", + "source_location": "L117", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testnnheuristickm_test_cache_gives_same_result", + "target": "tests_test_geo_make_poi" }, { - "source": "tests_test_warning_rationale_1", - "target": "tests_test_warning", - "relation": "rationale_for", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L1", + "source_file": "tests/test_geo.py", + "source_location": "L123", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testnnheuristickm_test_collinear_optimal_order_matches_nn", + "target": "tests_test_geo_make_poi" }, { - "source": "src_matrix_init", - "target": "src_matrix_redis_matrix", - "relation": "re_exports", - "context": "export", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/matrix/__init__.py", - "source_location": "L2", + "source_file": "tests/test_geo.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testnnheuristickm_test_nn_le_actual_for_suboptimal", + "target": "tests_test_geo_make_poi" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L41", + "source_file": "tests/test_geo.py", + "source_location": "L92", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testnnheuristickm_test_single_poi_returns_zero", + "target": "tests_test_geo_make_poi" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_data_hours_db_resolve_hours", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L42", + "source_file": "tests/test_geo.py", + "source_location": "L96", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testnnheuristickm_test_two_pois_returns_distance", + "target": "tests_test_geo_make_poi" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_data_hours_db_hoursspec", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L42", + "source_file": "tests/test_geo.py", + "source_location": "L32", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testhaversinekm", + "target": "tests_test_geo_testhaversinekm_test_known_distance" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_data_hours_db_to_minutes", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", + "source_file": "tests/test_geo.py", "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testhaversinekm", + "target": "tests_test_geo_testhaversinekm_test_positive" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_data_models_vrptwday", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L43", + "source_file": "tests/test_geo.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testhaversinekm", + "target": "tests_test_geo_testhaversinekm_test_same_point_is_zero" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L43", + "source_file": "tests/test_geo.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testhaversinekm", + "target": "tests_test_geo_testhaversinekm_test_symmetric" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L44", + "source_file": "tests/test_geo.py", + "source_location": "L52", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testbuilddistcache", + "target": "tests_test_geo_testbuilddistcache_test_all_pairs_present" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L45", + "source_file": "tests/test_geo.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testbuilddistcache", + "target": "tests_test_geo_testbuilddistcache_test_empty_list_empty_cache" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L46", + "source_file": "tests/test_geo.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testbuilddistcache", + "target": "tests_test_geo_testbuilddistcache_test_no_self_pairs" }, { - "source": "gun_scripts_build_itinerary_excel", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L47", + "source_file": "tests/test_geo.py", + "source_location": "L76", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testbuilddistcache", + "target": "tests_test_geo_testbuilddistcache_test_single_poi_empty_cache" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L39", + "source_file": "tests/test_geo.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testbuilddistcache", + "target": "tests_test_geo_testbuilddistcache_test_values_match_haversine" }, { - "source": "gun_scripts_build_travel_matrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L40", + "source_file": "tests/test_geo.py", + "source_location": "L116", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testnnheuristickm", + "target": "tests_test_geo_testnnheuristickm_test_cache_gives_same_result" }, { - "source": "gun_scripts_setup_and_test", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/setup_and_test.py", - "source_location": "L47", + "source_file": "tests/test_geo.py", + "source_location": "L121", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testnnheuristickm", + "target": "tests_test_geo_testnnheuristickm_test_collinear_optimal_order_matches_nn" }, { - "source": "gun_scripts_setup_and_test", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/setup_and_test.py", - "source_location": "L48", + "source_file": "tests/test_geo.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testnnheuristickm", + "target": "tests_test_geo_testnnheuristickm_test_nn_le_actual_for_suboptimal" }, { - "source": "scripts_build_poi_dataset", - "target": "src_data_barrier_free_api_barrierfreeapiclient", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L25", + "source_file": "tests/test_geo.py", + "source_location": "L91", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testnnheuristickm", + "target": "tests_test_geo_testnnheuristickm_test_single_poi_returns_zero" }, { - "source": "scripts_build_poi_dataset", - "target": "src_data_models_settings", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L26", + "source_file": "tests/test_geo.py", + "source_location": "L95", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testnnheuristickm", + "target": "tests_test_geo_testnnheuristickm_test_two_pois_returns_distance" }, { - "source": "scripts_build_poi_dataset", - "target": "src_data_wellness_api_wellnessapiclient", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L27", + "source_file": "tests/test_geo.py", + "source_location": "L150", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testgettravelmin", + "target": "tests_test_geo_testgettravelmin_test_cache_fallback_when_no_matrix" }, { - "source": "scripts_demo_live_e2e", - "target": "src_data_graph_retriever_graphretriever", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L20", + "source_file": "tests/test_geo.py", + "source_location": "L142", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testgettravelmin", + "target": "tests_test_geo_testgettravelmin_test_haversine_fallback_when_no_matrix" }, { - "source": "scripts_demo_live_e2e", - "target": "src_data_models_dayplan", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L21", + "source_file": "tests/test_geo.py", + "source_location": "L157", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testgettravelmin", + "target": "tests_test_geo_testgettravelmin_test_matrix_takes_priority_over_cache" }, { - "source": "scripts_demo_live_e2e", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L21", + "source_file": "tests/test_geo.py", + "source_location": "L136", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_geo_testgettravelmin", + "target": "tests_test_geo_testgettravelmin_test_uses_matrix_when_available" }, { - "source": "scripts_demo_live_e2e", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L21", + "source_file": "tests/test_hard_fail.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "tests_test_hard_fail_detector" }, { - "source": "scripts_demo_live_e2e", - "target": "src_data_models_placeinput", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L21", + "source_file": "tests/test_hard_fail.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "tests_test_hard_fail_make_matrix" }, { - "source": "scripts_demo_live_e2e", - "target": "src_explain_explain_engine_explainengine", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L22", + "source_file": "tests/test_hard_fail.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "scripts_fetch_jeju_hours", - "target": "src_data_models_settings", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L28", + "source_file": "tests/test_hard_fail.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "scripts_fetch_jeju_hours", - "target": "src_data_tour_api_tourapiclient", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L29", + "source_file": "tests/test_hard_fail.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "tests_test_hard_fail_open_poi" }, { - "source": "scripts_geocode_jeju_missing_coords", - "target": "src_data_kakao_local_kakaolocalclient", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/geocode_jeju_missing_coords.py", - "source_location": "L22", + "source_file": "tests/test_hard_fail.py", + "source_location": "L258", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "tests_test_hard_fail_testdayindex" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "src_data_models_vrptwday", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L22", + "source_file": "tests/test_hard_fail.py", + "source_location": "L80", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "tests_test_hard_fail_testhelpers" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L22", + "source_file": "tests/test_hard_fail.py", + "source_location": "L233", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "tests_test_hard_fail_testnormalplan" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "src_data_models_vrptwrequest", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L22", + "source_file": "tests/test_hard_fail.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "tests_test_hard_fail_testoperatinghours" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L23", + "source_file": "tests/test_hard_fail.py", + "source_location": "L197", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "tests_test_hard_fail_testscheduleinfeasible" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L24", + "source_file": "tests/test_hard_fail.py", + "source_location": "L160", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail", + "target": "tests_test_hard_fail_testtraveltimeimpossible" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L25", + "source_file": "tests/test_hard_fail.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_rationale_1", + "target": "tests_test_hard_fail" }, { - "source": "scripts_neo4j_coverage_analysis", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L25", + "source_file": "tests/test_hard_fail.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_open_poi", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "scripts_test_pipeline", - "target": "src_data_models_dayplan", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L12", + "source_file": "tests/test_hard_fail.py", + "source_location": "L260", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testdayindex_test_day_index_defaults_to_none", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "scripts_test_pipeline", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L12", + "source_file": "tests/test_hard_fail.py", + "source_location": "L267", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testdayindex_test_day_index_set_when_passed", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "scripts_test_pipeline", - "target": "src_data_models_placeinput", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L12", + "source_file": "tests/test_hard_fail.py", + "source_location": "L236", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testnormalplan_test_normal_plan_no_fails", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "scripts_test_pipeline", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L12", + "source_file": "tests/test_hard_fail.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_after_close", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "scripts_test_pipeline", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L13", + "source_file": "tests/test_hard_fail.py", + "source_location": "L147", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours_test_no_fail_for_fallback_hours", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "scripts_test_pipeline", - "target": "src_validation_warning_warningdetector", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L14", + "source_file": "tests/test_hard_fail.py", + "source_location": "L112", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours_test_stay_must_finish_before_closing", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "scripts_test_pipeline", - "target": "src_validation_scoring_scorecalculator", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L15", + "source_file": "tests/test_hard_fail.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_exceeds_24h", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "src_api_router", - "target": "src_api_schemas_dayplanweb", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L13", + "source_file": "tests/test_hard_fail.py", + "source_location": "L219", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_within_24h", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "src_api_router", - "target": "src_api_schemas_parsedplanresponse", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L13", + "source_file": "tests/test_hard_fail.py", + "source_location": "L178", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testtraveltimeimpossible_test_no_fail_sufficient_window", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "src_api_router", - "target": "src_api_schemas_parsetextrequest", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L13", + "source_file": "tests/test_hard_fail.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testtraveltimeimpossible_test_travel_impossible", + "target": "tests_test_hard_fail_make_poi" }, { - "source": "src_api_router", - "target": "src_api_schemas_placeitem", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L13", + "source_file": "tests/test_hard_fail.py", + "source_location": "L261", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testdayindex_test_day_index_defaults_to_none", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_api_schemas_placesresponse", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L13", + "source_file": "tests/test_hard_fail.py", + "source_location": "L268", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testdayindex_test_day_index_set_when_passed", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_api_schemas_poiinfo", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L13", + "source_file": "tests/test_hard_fail.py", + "source_location": "L248", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testnormalplan_test_normal_plan_no_fails", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_api_schemas_validaterequest", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L13", + "source_file": "tests/test_hard_fail.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_after_close", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_api_schemas_validateresponse", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L13", + "source_file": "tests/test_hard_fail.py", + "source_location": "L128", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_before_open", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_data_graph_retriever_graphretriever", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L24", + "source_file": "tests/test_hard_fail.py", + "source_location": "L149", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours_test_no_fail_for_fallback_hours", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_data_hours_db_resolve_hours", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L25", + "source_file": "tests/test_hard_fail.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours_test_no_fail_within_hours", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_data_kakao_local_kakaolocalclient", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L26", + "source_file": "tests/test_hard_fail.py", + "source_location": "L119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours_test_stay_must_finish_before_closing", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L27", + "source_file": "tests/test_hard_fail.py", + "source_location": "L212", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_exceeds_24h", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_data_models_dayplan", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L27", + "source_file": "tests/test_hard_fail.py", + "source_location": "L221", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_within_24h", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L27", + "source_file": "tests/test_hard_fail.py", + "source_location": "L186", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testtraveltimeimpossible_test_no_fail_sufficient_window", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_data_models_placeinput", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L27", + "source_file": "tests/test_hard_fail.py", + "source_location": "L170", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testtraveltimeimpossible_test_travel_impossible", + "target": "tests_test_hard_fail_make_plan" }, { - "source": "src_api_router", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L28", + "source_file": "tests/test_hard_fail.py", + "source_location": "L241", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testnormalplan_test_normal_plan_no_fails", + "target": "tests_test_hard_fail_make_matrix" }, { - "source": "src_api_router", - "target": "src_explain_plan_extractor_planextractionerror", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L29", + "source_file": "tests/test_hard_fail.py", + "source_location": "L205", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_exceeds_24h", + "target": "tests_test_hard_fail_make_matrix" }, { - "source": "src_api_router", - "target": "src_explain_plan_extractor_planextractor", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L29", + "source_file": "tests/test_hard_fail.py", + "source_location": "L220", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_within_24h", + "target": "tests_test_hard_fail_make_matrix" }, { - "source": "src_data_barrier_free_api", - "target": "src_data_models_settings", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L16", + "source_file": "tests/test_hard_fail.py", + "source_location": "L185", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testtraveltimeimpossible_test_no_fail_sufficient_window", + "target": "tests_test_hard_fail_make_matrix" }, { - "source": "src_data_graph_retriever", - "target": "src_data_models_alternativepoi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L20", + "source_file": "tests/test_hard_fail.py", + "source_location": "L169", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testtraveltimeimpossible_test_travel_impossible", + "target": "tests_test_hard_fail_make_matrix" }, { - "source": "src_data_graph_retriever", - "target": "src_data_models_placeevidence", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L20", + "source_file": "tests/test_hard_fail.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testhelpers", + "target": "tests_test_hard_fail_testhelpers_test_min_to_time" }, { - "source": "src_data_kakao_local", - "target": "src_data_models_kakaoplace", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/data/kakao_local.py", - "source_location": "L18", + "source_file": "tests/test_hard_fail.py", + "source_location": "L90", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testhelpers", + "target": "tests_test_hard_fail_testhelpers_test_min_to_time_midnight" }, { - "source": "src_data_restaurant_catalog", - "target": "src_data_models_alternativepoi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L14", + "source_file": "tests/test_hard_fail.py", + "source_location": "L93", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testhelpers", + "target": "tests_test_hard_fail_testhelpers_test_min_to_time_wraps_past_24h" }, { - "source": "src_data_restaurant_catalog", - "target": "src_utils_geo_haversine_km", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L15", + "source_file": "tests/test_hard_fail.py", + "source_location": "L81", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testhelpers", + "target": "tests_test_hard_fail_testhelpers_test_time_to_min" }, { - "source": "src_data_seoul_citydata_client", - "target": "src_data_models_settings", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L95", + "source_file": "tests/test_hard_fail.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testhelpers", + "target": "tests_test_hard_fail_testhelpers_test_time_to_min_midnight" }, { - "source": "src_data_tour_api", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L9", + "source_file": "tests/test_hard_fail.py", + "source_location": "L136", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours", + "target": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_after_close" }, { - "source": "src_data_tour_api", - "target": "src_data_models_settings", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/data/tour_api.py", - "source_location": "L9", + "source_file": "tests/test_hard_fail.py", + "source_location": "L125", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours", + "target": "tests_test_hard_fail_testoperatinghours_test_fail_arrive_before_open" }, { - "source": "src_data_wellness_api", - "target": "src_data_models_settings", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/data/wellness_api.py", - "source_location": "L9", + "source_file": "tests/test_hard_fail.py", + "source_location": "L145", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours", + "target": "tests_test_hard_fail_testoperatinghours_test_no_fail_for_fallback_hours" }, { - "source": "src_explain_explain_engine", - "target": "src_data_graph_retriever_graphretriever", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L21", + "source_file": "tests/test_hard_fail.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours", + "target": "tests_test_hard_fail_testoperatinghours_test_no_fail_within_hours" }, { - "source": "src_explain_explain_engine", - "target": "src_data_models_alternativepoi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", + "source_file": "tests/test_hard_fail.py", + "source_location": "L111", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testoperatinghours", + "target": "tests_test_hard_fail_testoperatinghours_test_stay_must_finish_before_closing" }, { - "source": "src_explain_explain_engine", - "target": "src_data_models_explanationitem", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", + "source_file": "tests/test_hard_fail.py", + "source_location": "L177", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testtraveltimeimpossible", + "target": "tests_test_hard_fail_testtraveltimeimpossible_test_no_fail_sufficient_window" }, { - "source": "src_explain_explain_engine", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", + "source_file": "tests/test_hard_fail.py", + "source_location": "L161", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testtraveltimeimpossible", + "target": "tests_test_hard_fail_testtraveltimeimpossible_test_travel_impossible" }, { - "source": "src_explain_explain_engine", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", + "source_file": "tests/test_hard_fail.py", + "source_location": "L198", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testscheduleinfeasible", + "target": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_exceeds_24h" }, { - "source": "src_explain_explain_engine", - "target": "src_data_models_scores", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", + "source_file": "tests/test_hard_fail.py", + "source_location": "L218", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testscheduleinfeasible", + "target": "tests_test_hard_fail_testscheduleinfeasible_test_schedule_within_24h" }, { - "source": "src_explain_explain_engine", - "target": "src_data_models_warning", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", + "source_file": "tests/test_hard_fail.py", + "source_location": "L234", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testnormalplan", + "target": "tests_test_hard_fail_testnormalplan_test_normal_plan_no_fails" }, { - "source": "src_explain_pipeline", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", + "source_file": "tests/test_hard_fail.py", + "source_location": "L259", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testdayindex", + "target": "tests_test_hard_fail_testdayindex_test_day_index_defaults_to_none" }, { - "source": "src_explain_pipeline", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", + "source_file": "tests/test_hard_fail.py", + "source_location": "L266", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_hard_fail_testdayindex", + "target": "tests_test_hard_fail_testdayindex_test_day_index_set_when_passed" }, { - "source": "src_explain_pipeline", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", + "source_file": "tests/test_kakao_local.py", + "source_location": "L112", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_address_response" }, { - "source": "src_explain_pipeline", - "target": "src_data_models_scores", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", + "source_file": "tests/test_kakao_local.py", + "source_location": "L74", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_multi_response" }, { - "source": "src_explain_pipeline", - "target": "src_data_models_validationresult", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", + "source_file": "tests/test_kakao_local.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_ok_response" }, { - "source": "src_explain_pipeline", - "target": "src_data_models_vrptwday", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", + "source_file": "tests/test_kakao_local.py", + "source_location": "L30", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_disabled_without_key_returns_none" }, { - "source": "src_explain_pipeline", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", + "source_file": "tests/test_kakao_local.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_empty_documents_returns_none" }, { - "source": "src_explain_pipeline", - "target": "src_data_models_vrptwrequest", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", + "source_file": "tests/test_kakao_local.py", + "source_location": "L135", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_geocode_address_disabled_without_key_returns_none" }, { - "source": "src_explain_pipeline", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L36", + "source_file": "tests/test_kakao_local.py", + "source_location": "L149", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_geocode_address_empty_documents_returns_none" }, { - "source": "src_explain_pipeline", - "target": "src_explain_explain_engine_explainengine", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L37", + "source_file": "tests/test_kakao_local.py", + "source_location": "L158", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_geocode_address_http_error_falls_back_to_none" }, { - "source": "src_explain_pipeline", - "target": "src_explain_repair_repairengine", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L38", + "source_file": "tests/test_kakao_local.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_geocode_address_is_cached" }, { - "source": "src_explain_pipeline", - "target": "src_explain_repair_repairresult", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L38", + "source_file": "tests/test_kakao_local.py", + "source_location": "L127", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_geocode_address_parses_lat_lng" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L39", + "source_file": "tests/test_kakao_local.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_http_error_falls_back_to_none" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_bonus_engine_bonusresult", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L39", + "source_file": "tests/test_kakao_local.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_result_is_cached" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L40", + "source_file": "tests/test_kakao_local.py", + "source_location": "L107", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_search_keyword_list_disabled_returns_empty" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_reward_engine_generate_rewards", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L41", + "source_file": "tests/test_kakao_local.py", + "source_location": "L98", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_search_keyword_list_parses_all" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L42", + "source_file": "tests/test_kakao_local.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local", + "target": "tests_test_kakao_local_test_search_parses_first_document" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L42", + "source_file": "tests/test_kakao_local.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_rationale_1", + "target": "tests_test_kakao_local" }, { - "source": "src_explain_pipeline", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L43", + "source_file": "tests/test_kakao_local.py", + "source_location": "L49", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_result_is_cached", + "target": "tests_test_kakao_local_ok_response" }, { - "source": "src_explain_pipeline", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L44", + "source_file": "tests/test_kakao_local.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_search_parses_first_document", + "target": "tests_test_kakao_local_ok_response" }, { - "source": "src_explain_pipeline", - "target": "src_validation_scoring_scorecalculator", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L45", + "source_file": "tests/test_kakao_local.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_search_keyword_list_parses_all", + "target": "tests_test_kakao_local_multi_response" }, { - "source": "src_explain_pipeline", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L46", + "source_file": "tests/test_kakao_local.py", + "source_location": "L142", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_geocode_address_is_cached", + "target": "tests_test_kakao_local_address_response" }, { - "source": "src_explain_pipeline", - "target": "src_validation_warning_warningdetector", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L47", + "source_file": "tests/test_kakao_local.py", + "source_location": "L129", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_local_test_geocode_address_parses_lat_lng", + "target": "tests_test_kakao_local_address_response" }, { - "source": "src_explain_plan_extractor", - "target": "src_api_schemas_parsedday", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L19", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "tests_test_kakao_matrix_httpx_sync_client" }, { - "source": "src_explain_plan_extractor", - "target": "src_api_schemas_parsedplace", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L19", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "tests_test_kakao_matrix_ok_response" }, { - "source": "src_explain_plan_extractor", - "target": "src_api_schemas_parsedplanresponse", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L19", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_explain_repair", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L19", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "tests_test_kakao_matrix_testapicall" }, { - "source": "src_explain_repair", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L19", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L252", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "tests_test_kakao_matrix_testasyncprefetch" }, { - "source": "src_explain_repair", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L19", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L176", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "tests_test_kakao_matrix_testautherror" }, { - "source": "src_explain_repair", - "target": "src_data_party_config_get_party_profile", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L20", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L197", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "tests_test_kakao_matrix_testcachepersistence" }, { - "source": "src_explain_repair", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L21", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L227", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "tests_test_kakao_matrix_testfromenv" }, { - "source": "src_explain_repair", - "target": "src_utils_geo_build_dist_cache", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L22", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L135", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "tests_test_kakao_matrix_testquotaexhaustion" }, { - "source": "src_explain_repair", - "target": "src_utils_geo_get_travel_min", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L22", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix", + "target": "tests_test_kakao_matrix_testsamepoint" }, { - "source": "src_explain_repair", - "target": "src_utils_geo_haversine_km", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L22", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_rationale_1", + "target": "tests_test_kakao_matrix" }, { - "source": "src_explain_repair", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/repair.py", - "source_location": "L23", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L101", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_matrix_init", - "target": "src_matrix_redis_matrix_redistimematrix", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/matrix/__init__.py", - "source_location": "L2", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_matrix_redis_matrix", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L22", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L116", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_matrix_redis_matrix", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L23", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_matrix_redis_matrix", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L23", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L275", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_deduplicates_bidirectional", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_scoring_bonus_engine", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L8", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L257", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_populates_cache_and_hit_on_get", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_scoring_bonus_engine", - "target": "src_utils_geo_haversine_km", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L9", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L182", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testautherror_test_401_raises", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_data_models_deepdiveitem", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L21", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L202", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_data_models_vrptwday", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L21", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testquotaexhaustion_test_429_sets_quota_exhausted", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L21", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testquotaexhaustion_test_after_quota_exhausted_get_travel_time_falls_back", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_scoring_cluster_dispersion", - "target": "src_utils_geo_haversine_km", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L22", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L154", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testquotaexhaustion_test_get_travel_time_haversine_fallback_when_no_cache", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_scoring_congestion_engine", - "target": "src_data_seoul_citydata_client_seoulcitydataclient", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L22", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L59", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testsamepoint_test_same_coords_returns_zero", + "target": "tests_test_kakao_matrix_place" }, { - "source": "src_scoring_reward_engine", - "target": "src_data_models_scores", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/scoring/reward_engine.py", - "source_location": "L15", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_rationale_27", + "target": "tests_test_kakao_matrix_ok_response" }, { - "source": "src_scoring_theme_alignment", - "target": "src_data_models_deepdiveitem", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L21", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit", + "target": "tests_test_kakao_matrix_ok_response" }, { - "source": "src_scoring_theme_alignment", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L22", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L90", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call", + "target": "tests_test_kakao_matrix_ok_response" }, { - "source": "src_scoring_travel_ratio", - "target": "src_data_models_deepdiveitem", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L12", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L121", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached", + "target": "tests_test_kakao_matrix_ok_response" }, { - "source": "src_scoring_travel_ratio", - "target": "src_data_models_vrptwday", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L12", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L76", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache", + "target": "tests_test_kakao_matrix_ok_response" }, { - "source": "src_scoring_travel_ratio", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L12", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L207", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache", + "target": "tests_test_kakao_matrix_ok_response" }, { - "source": "src_scoring_travel_ratio", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L13", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_rationale_42", + "target": "tests_test_kakao_matrix_httpx_sync_client" }, { - "source": "src_scoring_travel_ratio", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L13", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit", + "target": "tests_test_kakao_matrix_httpx_sync_client" }, { - "source": "src_validation_alternatives", - "target": "src_data_models_alternativepoi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L26", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L90", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call", + "target": "tests_test_kakao_matrix_httpx_sync_client" }, { - "source": "src_validation_alternatives", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L26", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L121", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached", + "target": "tests_test_kakao_matrix_httpx_sync_client" }, { - "source": "src_validation_alternatives", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/alternatives.py", - "source_location": "L26", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L76", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache", + "target": "tests_test_kakao_matrix_httpx_sync_client" }, { - "source": "src_validation_hard_fail", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L4", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L186", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testautherror_test_401_raises", + "target": "tests_test_kakao_matrix_httpx_sync_client" }, { - "source": "src_validation_hard_fail", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L4", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L207", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache", + "target": "tests_test_kakao_matrix_httpx_sync_client" }, { - "source": "src_validation_hard_fail", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L4", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L145", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testquotaexhaustion_test_429_sets_quota_exhausted", + "target": "tests_test_kakao_matrix_httpx_sync_client" }, { - "source": "src_validation_hard_fail", - "target": "src_utils_geo_build_dist_cache", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L5", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testsamepoint", + "target": "tests_test_kakao_matrix_testsamepoint_test_same_coords_returns_zero" }, { - "source": "src_validation_hard_fail", - "target": "src_utils_geo_get_travel_min", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L5", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall", + "target": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit" }, { - "source": "src_validation_kakao_matrix", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L35", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall", + "target": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call" }, { - "source": "src_validation_kakao_matrix", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L36", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall", + "target": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached" }, { - "source": "src_validation_kakao_matrix", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L36", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testapicall", + "target": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache" }, { - "source": "src_validation_scoring", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L4", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L136", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testquotaexhaustion", + "target": "tests_test_kakao_matrix_testquotaexhaustion_test_429_sets_quota_exhausted" }, { - "source": "src_validation_scoring", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L4", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L161", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testquotaexhaustion", + "target": "tests_test_kakao_matrix_testquotaexhaustion_test_after_quota_exhausted_get_travel_time_falls_back" }, { - "source": "src_validation_scoring", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L4", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L152", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testquotaexhaustion", + "target": "tests_test_kakao_matrix_testquotaexhaustion_test_get_travel_time_haversine_fallback_when_no_cache" }, { - "source": "src_validation_scoring", - "target": "src_data_models_scores", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L4", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L177", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testautherror", + "target": "tests_test_kakao_matrix_testautherror_test_401_raises" }, { - "source": "src_validation_scoring", - "target": "src_data_party_config_get_party_profile", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L5", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L198", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testcachepersistence", + "target": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache" }, { - "source": "src_validation_scoring", - "target": "src_utils_geo_build_dist_cache", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L6", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L240", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testfromenv", + "target": "tests_test_kakao_matrix_testfromenv_test_falls_back_to_rest_key" }, { - "source": "src_validation_scoring", - "target": "src_utils_geo_get_travel_min", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L6", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L228", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testfromenv", + "target": "tests_test_kakao_matrix_testfromenv_test_no_key_raises" }, { - "source": "src_validation_scoring", - "target": "src_utils_geo_nn_heuristic_km", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L6", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L234", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testfromenv", + "target": "tests_test_kakao_matrix_testfromenv_test_uses_mobility_key_first" }, { - "source": "src_validation_scoring", - "target": "src_validation_warning_cosine_distance", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/scoring.py", - "source_location": "L7", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L267", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testasyncprefetch", + "target": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_deduplicates_bidirectional" }, { - "source": "src_validation_vrptw_engine", - "target": "src_data_models_dayroutecomparison", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L253", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_testasyncprefetch", + "target": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_populates_cache_and_hit_on_get" }, { - "source": "src_validation_vrptw_engine", - "target": "src_data_models_deepdiveitem", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L254", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_rationale_254", + "target": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_populates_cache_and_hit_on_get" }, { - "source": "src_validation_vrptw_engine", - "target": "src_data_models_vrptwday", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", + "source_file": "tests/test_kakao_matrix.py", + "source_location": "L268", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_kakao_matrix_rationale_268", + "target": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_deduplicates_bidirectional" }, { - "source": "src_validation_vrptw_engine", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", + "source_file": "tests/test_party_config.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config", + "target": "tests_test_party_config_testpartyprofiles" }, { - "source": "src_validation_vrptw_engine", - "target": "src_data_models_vrptwrequest", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", + "source_file": "tests/test_party_config.py", + "source_location": "L53", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config", + "target": "tests_test_party_config_testpartyprofilevalues" }, { - "source": "src_validation_vrptw_engine", - "target": "src_data_models_vrptwresult", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", + "source_file": "tests/test_party_config.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config", + "target": "tests_test_party_config_teststrainthresholdlogic" }, { - "source": "src_validation_warning", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L4", + "source_file": "tests/test_party_config.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_rationale_1", + "target": "tests_test_party_config" }, { - "source": "src_validation_warning", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L4", + "source_file": "tests/test_party_config.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofiles", + "target": "tests_test_party_config_testpartyprofiles_test_all_types_defined" }, { - "source": "src_validation_warning", - "target": "src_data_models_warning", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L4", + "source_file": "tests/test_party_config.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofiles", + "target": "tests_test_party_config_testpartyprofiles_test_baby_fatigue_hours_lower_than_friends" }, { - "source": "src_validation_warning", - "target": "src_data_party_config_get_party_profile", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L5", + "source_file": "tests/test_party_config.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofiles", + "target": "tests_test_party_config_testpartyprofiles_test_baby_speed_factor_below_one" }, { - "source": "src_validation_warning", - "target": "src_utils_geo_build_dist_cache", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L6", + "source_file": "tests/test_party_config.py", + "source_location": "L31", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofiles", + "target": "tests_test_party_config_testpartyprofiles_test_elderly_fatigue_hours_lower_than_friends" }, { - "source": "src_validation_warning", - "target": "src_utils_geo_get_travel_min", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L6", + "source_file": "tests/test_party_config.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofiles", + "target": "tests_test_party_config_testpartyprofiles_test_elderly_speed_factor_below_one" }, { - "source": "src_validation_warning", - "target": "src_utils_geo_haversine_km", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L6", + "source_file": "tests/test_party_config.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofiles", + "target": "tests_test_party_config_testpartyprofiles_test_family_fatigue_between_friends_and_baby" }, { - "source": "src_validation_warning", - "target": "src_utils_geo_nn_heuristic_km", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "src/validation/warning.py", - "source_location": "L6", + "source_file": "tests/test_party_config.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofiles", + "target": "tests_test_party_config_testpartyprofiles_test_friends_speed_factor_one" }, { - "source": "tests_test_alternatives", - "target": "src_data_models_alternativepoi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L6", + "source_file": "tests/test_party_config.py", + "source_location": "L47", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofiles", + "target": "tests_test_party_config_testpartyprofiles_test_profile_is_frozen" }, { - "source": "tests_test_alternatives", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L6", + "source_file": "tests/test_party_config.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofiles", + "target": "tests_test_party_config_testpartyprofiles_test_unknown_type_returns_default" }, { - "source": "tests_test_alternatives", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L6", + "source_file": "tests/test_party_config.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofilevalues", + "target": "tests_test_party_config_testpartyprofilevalues_test_baby_fatigue_8h" }, { - "source": "tests_test_alternatives", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L7", + "source_file": "tests/test_party_config.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofilevalues", + "target": "tests_test_party_config_testpartyprofilevalues_test_baby_speed_factor_is_point_eight" }, { - "source": "tests_test_bonus_engine", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L10", + "source_file": "tests/test_party_config.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofilevalues", + "target": "tests_test_party_config_testpartyprofilevalues_test_elderly_fatigue_8h" }, { - "source": "tests_test_bonus_engine", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L11", + "source_file": "tests/test_party_config.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofilevalues", + "target": "tests_test_party_config_testpartyprofilevalues_test_family_fatigue_10h" }, { - "source": "tests_test_bonus_engine", - "target": "src_scoring_bonus_engine_placecoord", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L11", + "source_file": "tests/test_party_config.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofilevalues", + "target": "tests_test_party_config_testpartyprofilevalues_test_family_speed_factor_is_point_nine" }, { - "source": "tests_test_cluster_dispersion", - "target": "src_data_models_vrptwday", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L6", + "source_file": "tests/test_party_config.py", + "source_location": "L54", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_testpartyprofilevalues", + "target": "tests_test_party_config_testpartyprofilevalues_test_friends_fatigue_12h" }, { - "source": "tests_test_cluster_dispersion", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L6", + "source_file": "tests/test_party_config.py", + "source_location": "L74", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_rationale_74", + "target": "tests_test_party_config_teststrainthresholdlogic" }, { - "source": "tests_test_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L7", + "source_file": "tests/test_party_config.py", + "source_location": "L83", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_teststrainthresholdlogic", + "target": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_is_24km" }, { - "source": "tests_test_cluster_dispersion", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L7", + "source_file": "tests/test_party_config.py", + "source_location": "L78", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_teststrainthresholdlogic", + "target": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_lower_than_friends" }, { - "source": "tests_test_congestion_engine", - "target": "src_scoring_congestion_engine_congestionengine", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L10", + "source_file": "tests/test_party_config.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_party_config_teststrainthresholdlogic", + "target": "tests_test_party_config_teststrainthresholdlogic_test_friends_threshold_unchanged" }, { - "source": "tests_test_congestion_engine", - "target": "src_scoring_congestion_engine_congestionlevel", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L10", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L67", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_make_empty_bonus_engine" }, { - "source": "tests_test_congestion_engine", - "target": "src_scoring_congestion_engine_congestionresult", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L10", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_make_multi_day_plan" }, { - "source": "tests_test_congestion_engine", - "target": "src_scoring_congestion_engine_score_to_level", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L10", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_dwell_db", - "target": "src_data_dwell_db_dwellrecommendation", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_dwell_db", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_pipeline" }, { - "source": "tests_test_estimated_hardfail", - "target": "src_data_models_dayplan", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_sample_plan" }, { - "source": "tests_test_estimated_hardfail", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L77", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_sample_pois" }, { - "source": "tests_test_estimated_hardfail", - "target": "src_data_models_placeinput", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L117", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_testpipelinebasic" }, { - "source": "tests_test_estimated_hardfail", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L256", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown" }, { - "source": "tests_test_estimated_hardfail", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L5", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L170", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_testpipelinehardfail" }, { - "source": "tests_test_explain_engine", - "target": "src_data_models_alternativepoi", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L319", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_testpipelinemultiday" }, { - "source": "tests_test_explain_engine", - "target": "src_data_models_dayplan", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L421", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation" }, { - "source": "tests_test_explain_engine", - "target": "src_data_models_explanationitem", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L351", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_testpipelinevrptw" }, { - "source": "tests_test_explain_engine", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L96", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator", + "target": "tests_test_pipeline_orchestrator_testtovrptwday" }, { - "source": "tests_test_explain_engine", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_rationale_1", + "target": "tests_test_pipeline_orchestrator" }, { - "source": "tests_test_explain_engine", - "target": "src_data_models_placeevidence", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_sample_pois", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_explain_engine", - "target": "src_data_models_placeinput", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L282", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_explain_engine", - "target": "src_data_models_scores", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L296", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_absent_when_disabled", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_explain_engine", - "target": "src_data_models_warning", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L289", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_when_enabled", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_explain_engine", - "target": "src_explain_explain_engine_explainengine", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L271", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_explain_engine", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L308", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_explain_engine", - "target": "src_explain_explain_engine_cache_key", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_hard_fail_day_index_matches_offending_day", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_explain_engine", - "target": "src_explain_explain_engine_fallback", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L184", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_open_hours_conflict_caps_score", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_explain_engine", - "target": "src_explain_explain_engine_graph_context", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L321", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_multi_day_runs_without_error", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_explain_engine", - "target": "src_explain_explain_engine_parse_llm_response", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L334", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_sigungu_codes_accepted", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_geo", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L424", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_geo", - "target": "src_utils_geo_build_dist_cache", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L7", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L380", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_optimal_route_per_day_count", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_geo", - "target": "src_utils_geo_get_travel_min", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L7", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L409", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_does_not_double_count_with_single_poi", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_geo", - "target": "src_utils_geo_haversine_km", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L7", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L398", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_in_breakdown_when_gap_exceeds_threshold", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_geo", - "target": "src_utils_geo_nn_heuristic_km", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_geo.py", - "source_location": "L7", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L98", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testtovrptwday_test_converts_poi_fields", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_graph_retriever", - "target": "src_data_graph_retriever_graphretriever", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L8", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L107", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testtovrptwday_test_is_depot_false", + "target": "tests_test_pipeline_orchestrator_make_poi" }, { - "source": "tests_test_graph_retriever", - "target": "src_data_models_alternativepoi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_sample_plan", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_graph_retriever", - "target": "src_data_models_placeevidence", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L152", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic_test_empty_pois_returns_zero_score", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_hard_fail", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L283", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_hard_fail", - "target": "src_data_models_dayplan", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L297", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_absent_when_disabled", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_hard_fail", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L290", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_when_enabled", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_hard_fail", - "target": "src_data_models_placeinput", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L272", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_hard_fail", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L7", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L309", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_kakao_local", - "target": "src_data_kakao_local_kakaolocalclient", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L239", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_kakao_local", - "target": "src_data_models_kakaoplace", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L7", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L186", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_open_hours_conflict_caps_score", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_kakao_matrix", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L335", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_sigungu_codes_accepted", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_kakao_matrix", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L10", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L437", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_party_config", - "target": "src_data_party_config_partyprofile", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L410", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_does_not_double_count_with_single_poi", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_party_config", - "target": "src_data_party_config_get_party_profile", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_party_config.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L402", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_in_breakdown_when_gap_exceeds_threshold", + "target": "tests_test_pipeline_orchestrator_make_plan" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_data_models_alternativepoi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", + "source_location": "L213", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_hard_fail_day_index_matches_offending_day", + "target": "tests_test_pipeline_orchestrator_make_multi_day_plan" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_data_models_dayplan", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", + "source_location": "L323", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_multi_day_runs_without_error", + "target": "tests_test_pipeline_orchestrator_make_multi_day_plan" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", + "source_location": "L382", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_optimal_route_per_day_count", + "target": "tests_test_pipeline_orchestrator_make_multi_day_plan" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_pipeline", + "target": "tests_test_pipeline_orchestrator_make_empty_bonus_engine" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_data_models_placeinput", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", + "source_location": "L227", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", + "target": "tests_test_pipeline_orchestrator_make_empty_bonus_engine" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", + "source_location": "L97", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testtovrptwday", + "target": "tests_test_pipeline_orchestrator_testtovrptwday_test_converts_poi_fields" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_data_models_validationresult", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testtovrptwday", + "target": "tests_test_pipeline_orchestrator_testtovrptwday_test_is_depot_false" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L9", + "source_location": "L156", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_base_score_populated" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_explain_pipeline_to_vrptw_day", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L9", + "source_location": "L151", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_empty_pois_returns_zero_score" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L10", + "source_location": "L126", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_final_score_in_range" }, { - "source": "tests_test_pipeline_orchestrator", - "target": "src_scoring_bonus_engine_placecoord", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L10", + "source_location": "L134", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_plan_id_matches" }, { - "source": "tests_test_plan_extractor", - "target": "src_explain_plan_extractor_planextractionerror", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L8", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L118", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_returns_validation_result" }, { - "source": "tests_test_plan_extractor", - "target": "src_explain_plan_extractor_planextractor", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L8", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L142", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebasic", + "target": "tests_test_pipeline_orchestrator_testpipelinebasic_test_scores_populated" }, { - "source": "tests_test_region_config", - "target": "src_data_region_config_get_thresholds", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_region_config.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L245", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_not_computed_without_hard_fails" }, { - "source": "tests_test_repair", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L218", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine" }, { - "source": "tests_test_repair", - "target": "src_data_models_dayplan", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L199", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_hard_fail_day_index_matches_offending_day" }, { - "source": "tests_test_repair", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L191", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_no_hard_fail_score_above_59_possible" }, { - "source": "tests_test_repair", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L171", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", + "target": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_open_hours_conflict_caps_score" }, { - "source": "tests_test_repair", - "target": "src_data_models_placeinput", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L277", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party" }, { - "source": "tests_test_repair", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L5", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L257", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_breakdown_fields_are_dicts" }, { - "source": "tests_test_repair", - "target": "src_explain_repair_deletionsuggestion", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L295", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_absent_when_disabled" }, { - "source": "tests_test_repair", - "target": "src_explain_repair_repairresult", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L288", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_pet_friendly_bonus_when_enabled" }, { - "source": "tests_test_repair", - "target": "src_explain_repair_repairengine", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L7", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L266", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown" }, { - "source": "tests_test_restaurant_catalog", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_restaurant_catalog.py", - "source_location": "L4", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L303", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", + "target": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result" }, { - "source": "tests_test_reward_engine", - "target": "src_data_models_scores", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L320", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", + "target": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_multi_day_runs_without_error" }, { - "source": "tests_test_reward_engine", - "target": "src_scoring_reward_engine_generate_rewards", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L7", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L333", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", + "target": "tests_test_pipeline_orchestrator_testpipelinemultiday_test_sigungu_codes_accepted" }, { - "source": "tests_test_scoring", - "target": "src_data_models_dayplan", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L362", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_efficiency_gap_is_float_or_none" }, { - "source": "tests_test_scoring", - "target": "src_data_models_hardfail", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L370", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_efficiency_gap_non_negative" }, { - "source": "tests_test_scoring", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L352", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_fields_present" }, { - "source": "tests_test_scoring", - "target": "src_data_models_placeinput", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L379", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_optimal_route_per_day_count" }, { - "source": "tests_test_scoring", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L408", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_does_not_double_count_with_single_poi" }, { - "source": "tests_test_scoring", - "target": "src_data_models_scores", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L394", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", + "target": "tests_test_pipeline_orchestrator_testpipelinevrptw_test_vrptw_penalty_in_breakdown_when_gap_exceeds_threshold" }, { - "source": "tests_test_scoring", - "target": "src_validation_scoring_scorecalculator", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L7", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L422", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", + "target": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag" }, { - "source": "tests_test_theme_alignment", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "imports", - "context": "import", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L8", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L448", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", + "target": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_no_repair_no_gain_fields_needed" }, { - "source": "tests_test_theme_alignment", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L423", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_rationale_423", + "target": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_deletion_suggestion_carries_gain_and_resolves_flag" }, { - "source": "tests_test_theme_alignment", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", + "source_file": "tests/test_pipeline_orchestrator.py", + "source_location": "L449", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_pipeline_orchestrator_rationale_449", + "target": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation_test_no_repair_no_gain_fields_needed" }, { - "source": "tests_test_theme_alignment", - "target": "src_scoring_theme_alignment_themejudgment", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_client_returning" }, { - "source": "tests_test_theme_alignment", - "target": "src_scoring_theme_alignment_classify_score", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_test_api_call_failure_raises_extraction_error" }, { - "source": "tests_test_theme_alignment", - "target": "src_scoring_theme_alignment_parse_llm_response", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_test_extract_from_document_empty_bytes_raises" }, { - "source": "tests_test_theme_taxonomy", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L6", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L75", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_test_extract_from_document_sends_document_block_for_pdf" }, { - "source": "tests_test_theme_taxonomy", - "target": "src_data_theme_taxonomy_get_place_types_for", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L6", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L86", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_test_extract_from_document_sends_image_block_for_png" }, { - "source": "tests_test_theme_taxonomy", - "target": "src_data_theme_taxonomy_matches_place_type", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L6", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_test_extract_from_document_without_client_raises" }, { - "source": "tests_test_travel_ratio", - "target": "src_data_models_vrptwday", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L6", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L42", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_test_extract_from_text_empty_raises" }, { - "source": "tests_test_travel_ratio", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L6", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_test_extract_from_text_parses_llm_response" }, { - "source": "tests_test_travel_ratio", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L7", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L33", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_test_extract_from_text_strips_code_fence" }, { - "source": "tests_test_travel_ratio", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L12", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_test_extract_from_text_without_client_falls_back_to_heuristic" }, { - "source": "tests_test_vrptw_engine", - "target": "src_data_models_vrptwday", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L96", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_test_invalid_json_response_raises" }, { - "source": "tests_test_vrptw_engine", - "target": "src_data_models_vrptwplace", - "relation": "imports", - "context": "import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L111", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor", + "target": "tests_test_plan_extractor_test_system_prompt_uses_prompt_caching" }, { - "source": "tests_test_vrptw_engine", - "target": "src_data_models_vrptwrequest", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_rationale_1", + "target": "tests_test_plan_extractor" }, { - "source": "tests_test_vrptw_engine", - "target": "src_data_models_vrptwresult", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L70", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_document_empty_bytes_raises", + "target": "tests_test_plan_extractor_client_returning" }, { - "source": "tests_test_vrptw_engine", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L76", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_document_sends_document_block_for_pdf", + "target": "tests_test_plan_extractor_client_returning" }, { - "source": "tests_test_vrptw_engine", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_document_sends_image_block_for_png", + "target": "tests_test_plan_extractor_client_returning" }, { - "source": "tests_test_vrptw_engine", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_text_empty_raises", + "target": "tests_test_plan_extractor_client_returning" }, { - "source": "tests_test_warning", - "target": "src_data_models_dayplan", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L6", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L21", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_text_parses_llm_response", + "target": "tests_test_plan_extractor_client_returning" }, { - "source": "tests_test_warning", - "target": "src_data_models_itineraryplan", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L6", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_extract_from_text_strips_code_fence", + "target": "tests_test_plan_extractor_client_returning" }, { - "source": "tests_test_warning", - "target": "src_data_models_placeinput", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L6", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L97", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_invalid_json_response_raises", + "target": "tests_test_plan_extractor_client_returning" }, { - "source": "tests_test_warning", - "target": "src_data_models_poi", - "relation": "imports", - "context": "import", + "relation": "calls", + "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L6", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L113", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_test_system_prompt_uses_prompt_caching", + "target": "tests_test_plan_extractor_client_returning" }, { - "source": "tests_test_warning", - "target": "src_validation_warning_warningdetector", - "relation": "imports", - "context": "import", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L7", + "source_file": "tests/test_plan_extractor.py", + "source_location": "L112", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_plan_extractor_rationale_112", + "target": "tests_test_plan_extractor_test_system_prompt_uses_prompt_caching" }, { - "source": "tests_test_resolve_poi", - "target": "src_api_router", - "relation": "imports_from", - "context": "submodule_import", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_resolve_poi.py", - "source_location": "L10", + "source_file": "tests/test_region_config.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config", + "target": "tests_test_region_config_testgetthresholds" }, { - "source": "gun_scripts_build_itinerary_excel_check_hours_violations", - "target": "src_data_hours_db_to_minutes", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L132", + "source_file": "tests/test_region_config.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config_rationale_1", + "target": "tests_test_region_config" }, { - "source": "gun_scripts_build_itinerary_excel_process_one_day", - "target": "src_data_hours_db_to_minutes", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L262", + "source_file": "tests/test_region_config.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config_testgetthresholds", + "target": "tests_test_region_config_testgetthresholds_test_busan_code_returns_high" }, { - "source": "gun_scripts_build_itinerary_excel_process_one_day", - "target": "src_data_hours_db_resolve_hours", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L276", + "source_file": "tests/test_region_config.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config_testgetthresholds", + "target": "tests_test_region_config_testgetthresholds_test_daegu_code_returns_medium" }, { - "source": "gun_scripts_build_itinerary_excel_process_one_day", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L306", + "source_file": "tests/test_region_config.py", + "source_location": "L32", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config_testgetthresholds", + "target": "tests_test_region_config_testgetthresholds_test_high_dist_warn_smaller_than_low" }, { - "source": "gun_scripts_build_itinerary_excel_process_one_day", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L307", + "source_file": "tests/test_region_config.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config_testgetthresholds", + "target": "tests_test_region_config_testgetthresholds_test_high_physical_strain_smaller_than_low" }, { - "source": "gun_scripts_build_itinerary_excel_process_one_day", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L316", + "source_file": "tests/test_region_config.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config_testgetthresholds", + "target": "tests_test_region_config_testgetthresholds_test_none_returns_medium" }, { - "source": "gun_scripts_build_itinerary_excel_main", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L405", + "source_file": "tests/test_region_config.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config_testgetthresholds", + "target": "tests_test_region_config_testgetthresholds_test_rural_code_returns_low" }, { - "source": "gun_scripts_build_itinerary_excel_main", - "target": "src_data_hours_db_resolve_hours", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L415", + "source_file": "tests/test_region_config.py", + "source_location": "L14", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config_testgetthresholds", + "target": "tests_test_region_config_testgetthresholds_test_seoul_code_returns_high" }, { - "source": "gun_scripts_build_itinerary_excel_main", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L451", + "source_file": "tests/test_region_config.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config_testgetthresholds", + "target": "tests_test_region_config_testgetthresholds_test_tier_fields_ordered" }, { - "source": "scripts_build_poi_dataset_main", - "target": "src_data_models_settings", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L67", + "source_file": "tests/test_region_config.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_region_config_testgetthresholds", + "target": "tests_test_region_config_testgetthresholds_test_unknown_code_returns_low" }, { - "source": "scripts_demo_live_e2e_main", - "target": "src_explain_explain_engine_explainengine", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L29", + "source_file": "tests/test_repair.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "tests_test_repair_fail" }, { - "source": "scripts_demo_live_e2e_main", - "target": "src_data_models_itineraryplan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L44", + "source_file": "tests/test_repair.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "tests_test_repair_outlier_pois" }, { - "source": "scripts_demo_live_e2e_main", - "target": "src_data_models_dayplan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L45", + "source_file": "tests/test_repair.py", + "source_location": "L37", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "tests_test_repair_plan" }, { - "source": "scripts_demo_live_e2e_main", - "target": "src_data_models_placeinput", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L45", + "source_file": "tests/test_repair.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "tests_test_repair_poi" }, { - "source": "scripts_demo_live_e2e_main", - "target": "src_data_models_hardfail", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L48", + "source_file": "tests/test_repair.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "tests_test_repair_repairengine" }, { - "source": "scripts_fetch_jeju_hours_main", - "target": "src_data_models_settings", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L44", + "source_file": "tests/test_repair.py", + "source_location": "L98", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "tests_test_repair_testdeletionsuggestion" }, { - "source": "scripts_neo4j_coverage_analysis_neo4j_timeslot_density", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L89", + "source_file": "tests/test_repair.py", + "source_location": "L62", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "tests_test_repair_testrepairenginenoop" }, { - "source": "scripts_neo4j_coverage_analysis_run_vrptw", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L128", + "source_file": "tests/test_repair.py", + "source_location": "L185", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "tests_test_repair_testresultmodel" }, { - "source": "scripts_neo4j_coverage_analysis_run_vrptw", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L129", + "source_file": "tests/test_repair.py", + "source_location": "L151", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "tests_test_repair_testtimetunesuggestion" }, { - "source": "scripts_neo4j_coverage_analysis_run_vrptw", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L130", + "source_file": "tests/test_repair.py", + "source_location": "L212", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair", + "target": "tests_test_repair_testtotalestimatedgain" }, { - "source": "scripts_neo4j_coverage_analysis_run_vrptw", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L134", + "source_file": "tests/test_repair.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_rationale_12", + "target": "tests_test_repair_repairengine" }, { - "source": "scripts_neo4j_coverage_analysis_run_vrptw", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L136", + "source_file": "tests/test_repair.py", + "source_location": "L138", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", + "target": "tests_test_repair_repairengine" }, { - "source": "scripts_test_pipeline_build_itinerary", - "target": "src_data_models_placeinput", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L311", + "source_file": "tests/test_repair.py", + "source_location": "L121", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate", + "target": "tests_test_repair_repairengine" }, { - "source": "scripts_test_pipeline_build_itinerary", - "target": "src_data_models_dayplan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L314", + "source_file": "tests/test_repair.py", + "source_location": "L129", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", + "target": "tests_test_repair_repairengine" }, { - "source": "scripts_test_pipeline_run_pipeline", - "target": "src_validation_hard_fail_hardfaildetector", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L366", + "source_file": "tests/test_repair.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier", + "target": "tests_test_repair_repairengine" }, { - "source": "scripts_test_pipeline_run_pipeline", - "target": "src_validation_warning_warningdetector", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L367", + "source_file": "tests/test_repair.py", + "source_location": "L115", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois", + "target": "tests_test_repair_repairengine" }, { - "source": "scripts_test_pipeline_run_pipeline", - "target": "src_validation_scoring_scorecalculator", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "scripts/test_pipeline.py", - "source_location": "L368", + "source_file": "tests/test_repair.py", + "source_location": "L108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings", + "target": "tests_test_repair_repairengine" }, { - "source": "src_api_router_resolve_poi", - "target": "src_data_hours_db_resolve_hours", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/api/router.py", - "source_location": "L675", + "source_file": "tests/test_repair.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testrepairenginenoop_test_empty_when_no_hard_fails", + "target": "tests_test_repair_repairengine" }, { - "source": "src_explain_pipeline_to_vrptw_day", - "target": "src_data_models_vrptwplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/pipeline.py", - "source_location": "L56", + "source_file": "tests/test_repair.py", + "source_location": "L70", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testrepairenginenoop_test_empty_when_pois_list_is_empty", + "target": "tests_test_repair_repairengine" }, { - "source": "src_explain_plan_extractor_fallback_text_parse", - "target": "src_api_schemas_parsedday", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L99", + "source_file": "tests/test_repair.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion", + "target": "tests_test_repair_repairengine" }, { - "source": "src_explain_plan_extractor_fallback_text_parse", - "target": "src_api_schemas_parsedplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L99", + "source_file": "tests/test_repair.py", + "source_location": "L195", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel_test_is_empty_true_when_no_suggestions", + "target": "tests_test_repair_repairengine" }, { - "source": "src_scoring_bonus_engine_nearest_km", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L138", + "source_file": "tests/test_repair.py", + "source_location": "L187", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel_test_to_dict_is_serializable", + "target": "tests_test_repair_repairengine" }, { - "source": "src_scoring_cluster_dispersion_compute_day_dispersion", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L146", + "source_file": "tests/test_repair.py", + "source_location": "L171", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum", + "target": "tests_test_repair_repairengine" }, { - "source": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "target": "src_data_models_deepdiveitem", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L228", + "source_file": "tests/test_repair.py", + "source_location": "L154", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit", + "target": "tests_test_repair_repairengine" }, { - "source": "src_scoring_travel_ratio_evaluate_travel_ratio", - "target": "src_validation_vrptw_engine_haversinematrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L86", + "source_file": "tests/test_repair.py", + "source_location": "L162", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit", + "target": "tests_test_repair_repairengine" }, { - "source": "src_scoring_travel_ratio_evaluate_travel_ratio", - "target": "src_data_models_deepdiveitem", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L105", + "source_file": "tests/test_repair.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_outlier_pois", + "target": "tests_test_repair_poi" }, { - "source": "tests_test_alternatives_poi", - "target": "src_data_models_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L17", + "source_file": "tests/test_repair.py", + "source_location": "L117", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois", + "target": "tests_test_repair_poi" }, { - "source": "tests_test_alternatives_hardfail", - "target": "src_data_models_hardfail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_alternatives.py", - "source_location": "L30", + "source_file": "tests/test_repair.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testrepairenginenoop_test_empty_when_no_hard_fails", + "target": "tests_test_repair_poi" }, { - "source": "tests_test_bonus_engine_make_engine", - "target": "src_scoring_bonus_engine_placecoord", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L38", + "source_file": "tests/test_repair.py", + "source_location": "L197", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel_test_is_empty_true_when_no_suggestions", + "target": "tests_test_repair_poi" }, { - "source": "tests_test_cluster_dispersion_make_place", - "target": "src_data_models_vrptwplace", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L18", + "source_file": "tests/test_repair.py", + "source_location": "L173", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum", + "target": "tests_test_repair_poi" }, { - "source": "tests_test_cluster_dispersion_test_compact_day_no_penalty", - "target": "src_data_models_vrptwday", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L26", + "source_file": "tests/test_repair.py", + "source_location": "L156", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit", + "target": "tests_test_repair_poi" }, { - "source": "tests_test_cluster_dispersion_test_compact_day_no_penalty", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L32", + "source_file": "tests/test_repair.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit", + "target": "tests_test_repair_poi" }, { - "source": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty", - "target": "src_data_models_vrptwday", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L40", + "source_file": "tests/test_repair.py", + "source_location": "L139", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_cluster_dispersion_test_lightning_pattern_high_penalty", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L46", + "source_file": "tests/test_repair.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_cluster_dispersion_test_per_day_independence", - "target": "src_data_models_vrptwday", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L55", + "source_file": "tests/test_repair.py", + "source_location": "L130", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_cluster_dispersion_test_per_day_independence", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L64", + "source_file": "tests/test_repair.py", + "source_location": "L101", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_cluster_dispersion_test_sigungu_switches_only", - "target": "src_data_models_vrptwday", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L127", + "source_file": "tests/test_repair.py", + "source_location": "L116", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_cluster_dispersion_test_sigungu_switches_only", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L135", + "source_file": "tests/test_repair.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_congestion_engine_test_missing_csv_raises", - "target": "src_scoring_congestion_engine_congestionengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_congestion_engine.py", - "source_location": "L166", + "source_file": "tests/test_repair.py", + "source_location": "L65", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testrepairenginenoop_test_empty_when_no_hard_fails", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_estimated_hardfail_poi", - "target": "src_data_models_poi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L9", + "source_file": "tests/test_repair.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testrepairenginenoop_test_empty_when_pois_list_is_empty", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_estimated_hardfail_plan", - "target": "src_data_models_dayplan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L24", + "source_file": "tests/test_repair.py", + "source_location": "L202", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_estimated_hardfail_plan", - "target": "src_data_models_placeinput", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L24", + "source_file": "tests/test_repair.py", + "source_location": "L196", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel_test_is_empty_true_when_no_suggestions", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_estimated_hardfail_test_estimated_hours_conflict_flagged_estimated", - "target": "src_validation_hard_fail_hardfaildetector", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L34", + "source_file": "tests/test_repair.py", + "source_location": "L188", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel_test_to_dict_is_serializable", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_estimated_hardfail_test_verified_hours_conflict_not_estimated_and_message_unchanged", - "target": "src_validation_hard_fail_hardfaildetector", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_estimated_hardfail.py", - "source_location": "L44", + "source_file": "tests/test_repair.py", + "source_location": "L172", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_explain_engine_make_plan", - "target": "src_data_models_dayplan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L36", + "source_file": "tests/test_repair.py", + "source_location": "L155", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_explain_engine_make_plan", - "target": "src_data_models_placeinput", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L36", + "source_file": "tests/test_repair.py", + "source_location": "L163", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit", + "target": "tests_test_repair_plan" }, { - "source": "tests_test_explain_engine_make_graph_stub", - "target": "src_data_models_placeevidence", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L70", + "source_file": "tests/test_repair.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_explain_engine_make_graph_stub", - "target": "src_data_models_alternativepoi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L77", + "source_file": "tests/test_repair.py", + "source_location": "L123", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_graph_retriever_test_disabled_without_uri_returns_empty", - "target": "src_data_graph_retriever_graphretriever", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L13", + "source_file": "tests/test_repair.py", + "source_location": "L131", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_graph_retriever_test_search_places_parses_records", - "target": "src_data_graph_retriever_graphretriever", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L21", + "source_file": "tests/test_repair.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_graph_retriever_test_search_places_empty_query_skips_call", - "target": "src_data_graph_retriever_graphretriever", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L41", + "source_file": "tests/test_repair.py", + "source_location": "L117", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_graph_retriever_test_search_places_neo4j_error_returns_empty", - "target": "src_data_graph_retriever_graphretriever", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L48", + "source_file": "tests/test_repair.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_graph_retriever_test_find_nearby_parses_and_converts_distance", - "target": "src_data_graph_retriever_graphretriever", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L55", + "source_file": "tests/test_repair.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testrepairenginenoop_test_empty_when_pois_list_is_empty", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_graph_retriever_test_repeated_failures_skip_driver_call_during_cooldown", - "target": "src_data_graph_retriever_graphretriever", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L70", + "source_file": "tests/test_repair.py", + "source_location": "L203", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_graph_retriever_test_close_closes_driver", - "target": "src_data_graph_retriever_graphretriever", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_graph_retriever.py", - "source_location": "L81", + "source_file": "tests/test_repair.py", + "source_location": "L189", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel_test_to_dict_is_serializable", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_hard_fail_make_plan", - "target": "src_data_models_dayplan", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L33", + "source_file": "tests/test_repair.py", + "source_location": "L174", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_hard_fail_make_plan", - "target": "src_data_models_placeinput", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L33", + "source_file": "tests/test_repair.py", + "source_location": "L157", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_kakao_local_test_disabled_without_key_returns_none", - "target": "src_data_kakao_local_kakaolocalclient", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L30", + "source_file": "tests/test_repair.py", + "source_location": "L165", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit", + "target": "tests_test_repair_fail" }, { - "source": "tests_test_kakao_local_test_search_parses_first_document", - "target": "src_data_kakao_local_kakaolocalclient", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L36", + "source_file": "tests/test_repair.py", + "source_location": "L63", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testrepairenginenoop", + "target": "tests_test_repair_testrepairenginenoop_test_empty_when_no_hard_fails" }, { - "source": "tests_test_kakao_local_test_result_is_cached", - "target": "src_data_kakao_local_kakaolocalclient", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L47", + "source_file": "tests/test_repair.py", + "source_location": "L69", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testrepairenginenoop", + "target": "tests_test_repair_testrepairenginenoop_test_empty_when_pois_list_is_empty" }, { - "source": "tests_test_kakao_local_test_empty_documents_returns_none", - "target": "src_data_kakao_local_kakaolocalclient", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L56", + "source_file": "tests/test_repair.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_rationale_85", + "target": "tests_test_repair_outlier_pois" }, { - "source": "tests_test_kakao_local_test_http_error_falls_back_to_none", - "target": "src_data_kakao_local_kakaolocalclient", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L67", + "source_file": "tests/test_repair.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby", + "target": "tests_test_repair_outlier_pois" }, { - "source": "tests_test_kakao_local_test_search_keyword_list_parses_all", - "target": "src_data_kakao_local_kakaolocalclient", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L88", + "source_file": "tests/test_repair.py", + "source_location": "L123", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate", + "target": "tests_test_repair_outlier_pois" }, { - "source": "tests_test_kakao_local_test_search_keyword_list_disabled_returns_empty", - "target": "src_data_kakao_local_kakaolocalclient", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L97", + "source_file": "tests/test_repair.py", + "source_location": "L131", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available", + "target": "tests_test_repair_outlier_pois" }, { - "source": "tests_test_kakao_local_test_geocode_address_parses_lat_lng", - "target": "src_data_kakao_local_kakaolocalclient", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L117", + "source_file": "tests/test_repair.py", + "source_location": "L102", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier", + "target": "tests_test_repair_outlier_pois" }, { - "source": "tests_test_kakao_local_test_geocode_address_disabled_without_key_returns_none", - "target": "src_data_kakao_local_kakaolocalclient", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L125", + "source_file": "tests/test_repair.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings", + "target": "tests_test_repair_outlier_pois" }, { - "source": "tests_test_kakao_local_test_geocode_address_is_cached", - "target": "src_data_kakao_local_kakaolocalclient", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L130", + "source_file": "tests/test_repair.py", + "source_location": "L203", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion", + "target": "tests_test_repair_outlier_pois" }, { - "source": "tests_test_kakao_local_test_geocode_address_empty_documents_returns_none", - "target": "src_data_kakao_local_kakaolocalclient", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L139", + "source_file": "tests/test_repair.py", + "source_location": "L189", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel_test_to_dict_is_serializable", + "target": "tests_test_repair_outlier_pois" }, { - "source": "tests_test_kakao_local_test_geocode_address_http_error_falls_back_to_none", - "target": "src_data_kakao_local_kakaolocalclient", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_kakao_local.py", - "source_location": "L150", + "source_file": "tests/test_repair.py", + "source_location": "L137", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "tests_test_repair_testdeletionsuggestion_test_deletion_explains_when_no_restaurant_nearby" }, { - "source": "tests_test_pipeline_orchestrator_make_plan", - "target": "src_data_models_dayplan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L39", + "source_file": "tests/test_repair.py", + "source_location": "L120", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "tests_test_repair_testdeletionsuggestion_test_deletion_reason_mentions_candidate" }, { - "source": "tests_test_pipeline_orchestrator_make_plan", - "target": "src_data_models_placeinput", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L39", + "source_file": "tests/test_repair.py", + "source_location": "L127", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "tests_test_repair_testdeletionsuggestion_test_deletion_recommends_nearby_restaurant_when_available" }, { - "source": "tests_test_pipeline_orchestrator_make_multi_day_plan", - "target": "src_data_models_dayplan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L49", + "source_file": "tests/test_repair.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "tests_test_repair_testdeletionsuggestion_test_identifies_geometric_outlier" }, { - "source": "tests_test_pipeline_orchestrator_make_multi_day_plan", - "target": "src_data_models_placeinput", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L49", + "source_file": "tests/test_repair.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "tests_test_repair_testdeletionsuggestion_test_no_deletion_for_two_pois" }, { - "source": "tests_test_plan_extractor_test_extract_from_text_parses_llm_response", - "target": "src_explain_plan_extractor_planextractor", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L23", + "source_file": "tests/test_repair.py", + "source_location": "L107", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testdeletionsuggestion", + "target": "tests_test_repair_testdeletionsuggestion_test_outlier_deletion_has_positive_savings" }, { - "source": "tests_test_plan_extractor_test_extract_from_text_strips_code_fence", - "target": "src_explain_plan_extractor_planextractor", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L34", + "source_file": "tests/test_repair.py", + "source_location": "L169", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum" }, { - "source": "tests_test_plan_extractor_test_extract_from_text_empty_raises", - "target": "src_explain_plan_extractor_planextractor", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L42", + "source_file": "tests/test_repair.py", + "source_location": "L152", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit" }, { - "source": "tests_test_plan_extractor_test_extract_from_text_without_client_falls_back_to_heuristic", - "target": "src_explain_plan_extractor_planextractor", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L48", + "source_file": "tests/test_repair.py", + "source_location": "L160", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtimetunesuggestion", + "target": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit" }, { - "source": "tests_test_plan_extractor_test_extract_from_document_without_client_raises", - "target": "src_explain_plan_extractor_planextractor", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L59", + "source_file": "tests/test_repair.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_rationale_153", + "target": "tests_test_repair_testtimetunesuggestion_test_no_tune_when_within_limit" }, { - "source": "tests_test_plan_extractor_test_extract_from_document_empty_bytes_raises", - "target": "src_explain_plan_extractor_planextractor", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L65", + "source_file": "tests/test_repair.py", + "source_location": "L161", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_rationale_161", + "target": "tests_test_repair_testtimetunesuggestion_test_tune_suggested_when_over_limit" }, { - "source": "tests_test_plan_extractor_test_extract_from_document_sends_document_block_for_pdf", - "target": "src_explain_plan_extractor_planextractor", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L72", + "source_file": "tests/test_repair.py", + "source_location": "L170", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_rationale_170", + "target": "tests_test_repair_testtimetunesuggestion_test_adjusted_durations_above_minimum" }, { - "source": "tests_test_plan_extractor_test_extract_from_document_sends_image_block_for_png", - "target": "src_explain_plan_extractor_planextractor", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L83", + "source_file": "tests/test_repair.py", + "source_location": "L200", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel", + "target": "tests_test_repair_testresultmodel_test_is_empty_false_when_has_deletion" }, { - "source": "tests_test_plan_extractor_test_invalid_json_response_raises", - "target": "src_explain_plan_extractor_planextractor", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L92", + "source_file": "tests/test_repair.py", + "source_location": "L194", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel", + "target": "tests_test_repair_testresultmodel_test_is_empty_true_when_no_suggestions" }, { - "source": "tests_test_plan_extractor_test_api_call_failure_raises_extraction_error", - "target": "src_explain_plan_extractor_planextractor", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L100", + "source_file": "tests/test_repair.py", + "source_location": "L186", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testresultmodel", + "target": "tests_test_repair_testresultmodel_test_to_dict_is_serializable" }, { - "source": "tests_test_plan_extractor_test_system_prompt_uses_prompt_caching", - "target": "src_explain_plan_extractor_planextractor", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_plan_extractor.py", - "source_location": "L109", + "source_file": "tests/test_repair.py", + "source_location": "L258", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "tests_test_repair_testtotalestimatedgain_test_included_in_to_dict" }, { - "source": "tests_test_repair_repairengine", - "target": "src_explain_repair_repairengine", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/test_repair.py", - "source_location": "L12", + "source_location": "L213", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "tests_test_repair_testtotalestimatedgain_test_sums_across_different_days" }, { - "source": "tests_test_repair_poi", - "target": "src_data_models_poi", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/test_repair.py", - "source_location": "L24", + "source_location": "L234", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "tests_test_repair_testtotalestimatedgain_test_takes_max_of_alternatives_on_same_day" }, { - "source": "tests_test_repair_plan", - "target": "src_data_models_dayplan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/test_repair.py", - "source_location": "L35", + "source_location": "L255", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_repair_testtotalestimatedgain", + "target": "tests_test_repair_testtotalestimatedgain_test_zero_when_empty" }, { - "source": "tests_test_repair_plan", - "target": "src_data_models_placeinput", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_repair.py", - "source_location": "L35", + "source_file": "tests/test_restaurant_catalog.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_restaurant_catalog", + "target": "tests_test_restaurant_catalog_catalog" }, { - "source": "tests_test_reward_engine_scores", - "target": "src_data_models_scores", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L13", + "source_file": "tests/test_restaurant_catalog.py", + "source_location": "L30", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_restaurant_catalog", + "target": "tests_test_restaurant_catalog_test_nearby_empty_when_no_restaurants_in_radius" }, { - "source": "tests_test_scoring_make_plan", - "target": "src_data_models_dayplan", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L34", + "source_file": "tests/test_restaurant_catalog.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_restaurant_catalog", + "target": "tests_test_restaurant_catalog_test_nearby_excludes_self" }, { - "source": "tests_test_scoring_make_plan", - "target": "src_data_models_placeinput", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_scoring.py", - "source_location": "L34", + "source_file": "tests/test_restaurant_catalog.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_restaurant_catalog", + "target": "tests_test_restaurant_catalog_test_nearby_returns_within_radius_sorted_by_distance" }, { - "source": "tests_test_travel_ratio_make_place", - "target": "src_data_models_vrptwplace", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L16", + "source_file": "tests/test_restaurant_catalog.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_restaurant_catalog_rationale_1", + "target": "tests_test_restaurant_catalog" }, { - "source": "tests_test_travel_ratio_test_no_penalty_when_ratio_low", - "target": "src_data_models_vrptwday", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L24", + "source_file": "tests/test_restaurant_catalog.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_restaurant_catalog_test_nearby_excludes_self", + "target": "tests_test_restaurant_catalog_catalog" }, { - "source": "tests_test_travel_ratio_test_no_penalty_when_ratio_low", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L30", + "source_file": "tests/test_restaurant_catalog.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_restaurant_catalog_test_nearby_returns_within_radius_sorted_by_distance", + "target": "tests_test_restaurant_catalog_catalog" }, { - "source": "tests_test_travel_ratio_test_no_penalty_when_ratio_low", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L30", + "source_file": "tests/test_reward_engine.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine", + "target": "tests_test_reward_engine_scores" }, { - "source": "tests_test_travel_ratio_test_penalty_when_ratio_high", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L37", + "source_file": "tests/test_reward_engine.py", + "source_location": "L15", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine", + "target": "tests_test_reward_engine_testgeneraterewards" }, { - "source": "tests_test_travel_ratio_test_penalty_when_ratio_high", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L41", + "source_file": "tests/test_reward_engine.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_efficiency_generates_message", + "target": "tests_test_reward_engine_scores" }, { - "source": "tests_test_travel_ratio_test_penalty_when_ratio_high", - "target": "src_validation_vrptw_engine_haversinematrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L41", + "source_file": "tests/test_reward_engine.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_flow_generates_message", + "target": "tests_test_reward_engine_scores" }, { - "source": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days", - "target": "src_data_models_vrptwday", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L50", + "source_file": "tests/test_reward_engine.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_purpose_fit_generates_message", + "target": "tests_test_reward_engine_scores" }, { - "source": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L59", + "source_file": "tests/test_reward_engine.py", + "source_location": "L18", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards_test_hard_fail_returns_empty", + "target": "tests_test_reward_engine_scores" }, { - "source": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days", - "target": "src_validation_vrptw_engine_haversinematrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_travel_ratio.py", - "source_location": "L59", + "source_file": "tests/test_reward_engine.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards_test_low_travel_ratio_generates_message", + "target": "tests_test_reward_engine_scores" }, { - "source": "tests_test_vrptw_engine_test_summary_contains_score", - "target": "src_data_models_vrptwrequest", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L416", + "source_file": "tests/test_reward_engine.py", + "source_location": "L98", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards_test_mediocre_plan_few_messages", + "target": "tests_test_reward_engine_scores" }, { - "source": "tests_test_vrptw_engine_test_summary_contains_score", - "target": "src_data_models_vrptwday", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L416", + "source_file": "tests/test_reward_engine.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards_test_no_warnings_generates_message", + "target": "tests_test_reward_engine_scores" }, { - "source": "tests_test_vrptw_engine_test_summary_contains_score", - "target": "src_validation_vrptw_engine_haversinematrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L417", + "source_file": "tests/test_reward_engine.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards_test_perfect_plan_all_messages", + "target": "tests_test_reward_engine_scores" }, { - "source": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", - "target": "src_data_models_vrptwrequest", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L430", + "source_file": "tests/test_reward_engine.py", + "source_location": "L78", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards_test_zero_cluster_penalty_generates_message", + "target": "tests_test_reward_engine_scores" }, { - "source": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L430", + "source_file": "tests/test_reward_engine.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards", + "target": "tests_test_reward_engine_testgeneraterewards_test_excellent_efficiency_generates_message" }, { - "source": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L431", + "source_file": "tests/test_reward_engine.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards", + "target": "tests_test_reward_engine_testgeneraterewards_test_excellent_flow_generates_message" }, { - "source": "tests_test_warning_make_plan", - "target": "src_data_models_dayplan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L36", + "source_file": "tests/test_reward_engine.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards", + "target": "tests_test_reward_engine_testgeneraterewards_test_excellent_purpose_fit_generates_message" }, { - "source": "tests_test_warning_make_plan", - "target": "src_data_models_placeinput", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "source_file": "tests/test_warning.py", - "source_location": "L36", + "source_file": "tests/test_reward_engine.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards", + "target": "tests_test_reward_engine_testgeneraterewards_test_hard_fail_returns_empty" }, { - "source": "gun_scripts_build_itinerary_excel_poimatcher", - "target": "src_data_hours_db_hoursspec", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L42", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_reward_engine.py", + "source_location": "L46", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards", + "target": "tests_test_reward_engine_testgeneraterewards_test_low_travel_ratio_generates_message" }, { - "source": "gun_scripts_build_itinerary_excel_poimatcher", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L43", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_reward_engine.py", + "source_location": "L96", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards", + "target": "tests_test_reward_engine_testgeneraterewards_test_mediocre_plan_few_messages" }, { - "source": "gun_scripts_build_itinerary_excel_poimatcher", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L43", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_reward_engine.py", + "source_location": "L66", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards", + "target": "tests_test_reward_engine_testgeneraterewards_test_no_warnings_generates_message" }, { - "source": "gun_scripts_build_itinerary_excel_poimatcher", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L46", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_reward_engine.py", + "source_location": "L86", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards", + "target": "tests_test_reward_engine_testgeneraterewards_test_perfect_plan_all_messages" }, { - "source": "gun_scripts_build_itinerary_excel_poimatcher", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L47", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_reward_engine.py", + "source_location": "L76", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_reward_engine_testgeneraterewards", + "target": "tests_test_reward_engine_testgeneraterewards_test_zero_cluster_penalty_generates_message" }, { - "source": "scripts_neo4j_coverage_analysis_coverageresult", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L23", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix", + "target": "tests_test_route_matrix_fakerouteprovider" }, { - "source": "scripts_neo4j_coverage_analysis_coverageresult", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L10", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix", + "target": "tests_test_route_matrix_poi" }, { - "source": "scripts_neo4j_coverage_analysis_coverageresult", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L34", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix", + "target": "tests_test_route_matrix_test_build_uses_provider_seconds_as_minutes" }, { - "source": "scripts_neo4j_coverage_analysis_coverageresult", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L25", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L47", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix", + "target": "tests_test_route_matrix_test_haversine_provider_is_used_when_api_key_is_unavailable" }, { - "source": "scripts_neo4j_coverage_analysis_coverageresult", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "scripts/neo4j_coverage_analysis.py", - "source_location": "L25", - "weight": 0.8, - "_origin": "ast" + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L1", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix_rationale_1", + "target": "tests_test_route_matrix" }, { - "source": "src_data_barrier_free_api_barrierfreeplace", - "target": "src_data_models_settings", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L16", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L37", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix_test_build_uses_provider_seconds_as_minutes", + "target": "tests_test_route_matrix_poi" }, { - "source": "src_data_barrier_free_api_barrierfreedetail", - "target": "src_data_models_settings", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L16", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L49", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix_test_haversine_provider_is_used_when_api_key_is_unavailable", + "target": "tests_test_route_matrix_poi" }, { - "source": "src_data_barrier_free_api_barrierfreeapiclient", - "target": "src_data_models_settings", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/barrier_free_api.py", - "source_location": "L16", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L27", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix_fakerouteprovider", + "target": "tests_test_route_matrix_fakerouteprovider_aprefetch_matrix" }, { - "source": "src_data_graph_retriever_graphretriever", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L20", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L30", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix_fakerouteprovider", + "target": "tests_test_route_matrix_fakerouteprovider_get_travel_time" }, { - "source": "src_data_graph_retriever_graphretriever", - "target": "src_data_models_placeevidence", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/graph_retriever.py", - "source_location": "L20", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L24", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix_fakerouteprovider", + "target": "tests_test_route_matrix_fakerouteprovider_init" }, { - "source": "src_data_kakao_local_kakaolocalclient", - "target": "src_data_models_kakaoplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/kakao_local.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_route_matrix.py", + "source_location": "L35", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_route_matrix_test_build_uses_provider_seconds_as_minutes", + "target": "tests_test_route_matrix_fakerouteprovider" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L14", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L73", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_calc" }, { - "source": "src_data_seoul_citydata_client_forecastslot", - "target": "src_data_models_settings", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L95", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L58", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_make_hard_fail" }, { - "source": "src_data_seoul_citydata_client_seoulrealtimecongestion", - "target": "src_data_models_settings", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L95", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L48", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_make_matrix" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient", - "target": "src_data_models_settings", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L95", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L35", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_make_plan" }, { - "source": "src_data_tour_api_tourapiclient", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/tour_api.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L15", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_make_poi" }, { - "source": "src_data_tour_api_tourapiclient", - "target": "src_data_models_settings", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/tour_api.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L88", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_sample_matrix" }, { - "source": "src_data_wellness_api_wellnessplace", - "target": "src_data_models_settings", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/wellness_api.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L94", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_sample_plan" }, { - "source": "src_data_wellness_api_wellnessapiclient", - "target": "src_data_models_settings", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/data/wellness_api.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L78", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_sample_pois" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_data_graph_retriever_graphretriever", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L123", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_testcompute" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_data_graph_retriever_graphretriever", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L229", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_testcosinedistance" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L152", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_testefficiency" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L182", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_testfeasibility" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_data_models_explanationitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L205", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_testpurposefit" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_data_models_explanationitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L103", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring", + "target": "tests_test_scoring_testweights" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L1", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_rationale_1", + "target": "tests_test_scoring" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L80", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_sample_pois", + "target": "tests_test_scoring_make_poi" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L156", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testefficiency_test_optimal_order_is_one", + "target": "tests_test_scoring_make_poi" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L173", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testefficiency_test_single_poi_returns_one", + "target": "tests_test_scoring_make_poi" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L164", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testefficiency_test_suboptimal_order_below_one", + "target": "tests_test_scoring_make_poi" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L207", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testpurposefit_test_cultural_all_cultural_high", + "target": "tests_test_scoring_make_poi" }, { - "source": "src_explain_explain_engine_lrucache", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L213", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testpurposefit_test_cultural_all_sports_low", + "target": "tests_test_scoring_make_poi" }, { - "source": "src_explain_explain_engine_explainengine", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/explain_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L219", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testpurposefit_test_no_travel_type_returns_half", + "target": "tests_test_scoring_make_poi" }, { - "source": "src_explain_pipeline_scorebundle", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_data_models_validationresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_data_models_validationresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L36", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L36", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_explain_explain_engine_explainengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L37", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_explain_explain_engine_explainengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L37", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_explain_repair_repairengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L38", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_explain_repair_repairengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L38", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_explain_repair_repairresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L38", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_explain_repair_repairresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L38", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L39", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L39", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_scoring_bonus_engine_bonusresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L39", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_scoring_bonus_engine_bonusresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L39", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L42", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L42", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L42", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L42", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L44", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L44", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_validation_scoring_scorecalculator", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L45", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_validation_scoring_scorecalculator", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L45", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L46", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L46", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_scorebundle", - "target": "src_validation_warning_warningdetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L47", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_pipeline_validatorpipeline", - "target": "src_validation_warning_warningdetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/pipeline.py", - "source_location": "L47", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_plan_extractor_planextractionerror", - "target": "src_api_schemas_parsedday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_plan_extractor_planextractor", - "target": "src_api_schemas_parsedday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_plan_extractor_planextractionerror", - "target": "src_api_schemas_parsedplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_plan_extractor_planextractor", - "target": "src_api_schemas_parsedplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_plan_extractor_planextractionerror", - "target": "src_api_schemas_parsedplanresponse", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_plan_extractor_planextractor", - "target": "src_api_schemas_parsedplanresponse", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/plan_extractor.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_reordersuggestion", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_timetunesuggestion", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_deletionsuggestion", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_repairresult", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_repairengine", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_reordersuggestion", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_timetunesuggestion", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_deletionsuggestion", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_repairresult", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_repairengine", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_reordersuggestion", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_timetunesuggestion", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_deletionsuggestion", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_repairresult", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_repairengine", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L19", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_reordersuggestion", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_timetunesuggestion", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_deletionsuggestion", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_repairresult", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_repairengine", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_reordersuggestion", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L23", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_timetunesuggestion", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L23", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_deletionsuggestion", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L23", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_repairresult", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L23", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_explain_repair_repairengine", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/explain/repair.py", - "source_location": "L23", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L23", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_matrix_redis_matrix_redistimematrix", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L23", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_bonus_engine_bonusresult", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_bonus_engine_placecoord", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_bonus_engine_bonusengine", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/bonus_engine.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_cluster_dispersion_daydispersionmetric", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_cluster_dispersion_clusterdispersionreport", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_cluster_dispersion_daydispersionmetric", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_cluster_dispersion_clusterdispersionreport", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_cluster_dispersion_daydispersionmetric", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_cluster_dispersion_clusterdispersionreport", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_congestion_engine_congestionlevel", - "target": "src_data_seoul_citydata_client_seoulcitydataclient", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_congestion_engine_congestionresult", - "target": "src_data_seoul_citydata_client_seoulcitydataclient", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_congestion_engine_congestionengine", - "target": "src_data_seoul_citydata_client_seoulcitydataclient", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/congestion_engine.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_theme_alignment_poiwithcategory", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_theme_alignment_themejudgment", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_theme_alignment_themealignmentreport", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_theme_alignment_themealignmentjudge", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L21", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_theme_alignment_poiwithcategory", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_theme_alignment_themejudgment", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_theme_alignment_themealignmentreport", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_theme_alignment_themealignmentjudge", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L22", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_travel_ratio_dayratiometric", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L12", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_travel_ratio_travelratioreport", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L12", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_travel_ratio_dayratiometric", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L12", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_travel_ratio_travelratioreport", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L12", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_travel_ratio_dayratiometric", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L12", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_travel_ratio_travelratioreport", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L12", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_travel_ratio_dayratiometric", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L13", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_travel_ratio_travelratioreport", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L13", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_travel_ratio_dayratiometric", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L13", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_scoring_travel_ratio_travelratioreport", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/scoring/travel_ratio.py", - "source_location": "L13", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_alternatives_alternativesfinder", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/alternatives.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_alternatives_alternativesfinder", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/alternatives.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_alternatives_alternativesfinder", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/alternatives.py", - "source_location": "L26", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_hard_fail_hardfaildetector", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_hard_fail_hardfaildetector", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_hard_fail_hardfaildetector", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/hard_fail.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L35", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L36", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix", - "target": "src_validation_vrptw_engine_timematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L36", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_scoring_scorecalculator", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/scoring.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_scoring_scorecalculator", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/scoring.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_scoring_scorecalculator", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/scoring.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_scoring_scorecalculator", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/scoring.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_timematrix", - "target": "src_data_models_dayroutecomparison", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_haversinematrix", - "target": "src_data_models_dayroutecomparison", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_cachedroutematrix", - "target": "src_data_models_dayroutecomparison", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_simresult", - "target": "src_data_models_dayroutecomparison", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_vrptwengine", - "target": "src_data_models_dayroutecomparison", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_timematrix", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_haversinematrix", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_cachedroutematrix", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_simresult", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_vrptwengine", - "target": "src_data_models_deepdiveitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_timematrix", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_haversinematrix", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_cachedroutematrix", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_simresult", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_vrptwengine", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_timematrix", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_haversinematrix", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_cachedroutematrix", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_simresult", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_vrptwengine", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_timematrix", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_haversinematrix", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_cachedroutematrix", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_simresult", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_vrptwengine", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_timematrix", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_haversinematrix", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_cachedroutematrix", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_simresult", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_vrptw_engine_vrptwengine", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L18", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_warning_warningdetector", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/warning.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_warning_warningdetector", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/warning.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "src_validation_warning_warningdetector", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "src/validation/warning.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_alternatives_testfindalternatives", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_alternatives.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_alternatives_testbuildalternativesmap", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_alternatives.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_alternatives_testfindalternatives", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_alternatives.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_alternatives_testbuildalternativesmap", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_alternatives.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_alternatives_testfindalternatives", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_alternatives.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_alternatives_testbuildalternativesmap", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_alternatives.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_alternatives_testfindalternatives", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_alternatives.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_alternatives_testbuildalternativesmap", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_alternatives.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testwellnessbonus", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testaccessibilitybonus", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testpetfriendlybonus", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testtotalbonuscap", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testfromdataset", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testbonusresultfields", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testwellnessbonus", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testaccessibilitybonus", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testpetfriendlybonus", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testtotalbonuscap", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testfromdataset", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_bonus_engine_testbonusresultfields", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_bonus_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_dwell_db_testmanualoverride", - "target": "src_data_dwell_db_dwellrecommendation", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_dwell_db_testlclssystm3", - "target": "src_data_dwell_db_dwellrecommendation", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_dwell_db_testlclssystm1fallback", - "target": "src_data_dwell_db_dwellrecommendation", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_dwell_db_testcontenttypefallback", - "target": "src_data_dwell_db_dwellrecommendation", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_dwell_db_testdefaultfallback", - "target": "src_data_dwell_db_dwellrecommendation", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_dwell_db_testistooshort", - "target": "src_data_dwell_db_dwellrecommendation", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_dwell_db.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testcachekey", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testfallback", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginegraphdefault", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testcachekey", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testfallback", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginegraphdefault", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testcachekey", - "target": "src_data_models_explanationitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "src_data_models_explanationitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "src_data_models_explanationitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "src_data_models_explanationitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testfallback", - "target": "src_data_models_explanationitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "src_data_models_explanationitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "src_data_models_explanationitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginegraphdefault", - "target": "src_data_models_explanationitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "src_data_models_explanationitem", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testcachekey", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testfallback", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginegraphdefault", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testcachekey", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testfallback", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginegraphdefault", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testcachekey", - "target": "src_data_models_placeevidence", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "src_data_models_placeevidence", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "src_data_models_placeevidence", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "src_data_models_placeevidence", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testfallback", - "target": "src_data_models_placeevidence", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "src_data_models_placeevidence", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "src_data_models_placeevidence", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginegraphdefault", - "target": "src_data_models_placeevidence", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "src_data_models_placeevidence", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testcachekey", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testfallback", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginegraphdefault", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testcachekey", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testfallback", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginegraphdefault", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testcachekey", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testfallback", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginegraphdefault", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "src_data_models_warning", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testcachekey", - "target": "src_explain_explain_engine_explainengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testgraphcontext", - "target": "src_explain_explain_engine_explainengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuilduserprompt", - "target": "src_explain_explain_engine_explainengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testparsellmresponse", - "target": "src_explain_explain_engine_explainengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testfallback", - "target": "src_explain_explain_engine_explainengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginenollm", - "target": "src_explain_explain_engine_explainengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginemockllm", - "target": "src_explain_explain_engine_explainengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testexplainenginegraphdefault", - "target": "src_explain_explain_engine_explainengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_explain_engine_testbuildalternatives", - "target": "src_explain_explain_engine_explainengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_explain_engine.py", - "source_location": "L20", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_geo_testhaversinekm", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_geo.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_geo_testbuilddistcache", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_geo.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_geo_testnnheuristickm", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_geo.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_geo_testgettravelmin", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_geo.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testhelpers", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testoperatinghours", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testtraveltimeimpossible", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testscheduleinfeasible", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testnormalplan", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testdayindex", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testhelpers", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testoperatinghours", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testtraveltimeimpossible", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testscheduleinfeasible", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testnormalplan", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testdayindex", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testhelpers", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testoperatinghours", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testtraveltimeimpossible", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testscheduleinfeasible", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testnormalplan", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testdayindex", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testhelpers", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testoperatinghours", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testtraveltimeimpossible", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testscheduleinfeasible", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testnormalplan", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testdayindex", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testhelpers", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testoperatinghours", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testtraveltimeimpossible", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testscheduleinfeasible", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testnormalplan", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_hard_fail_testdayindex", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_hard_fail.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testsamepoint", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testapicall", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testquotaexhaustion", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testautherror", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testcachepersistence", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testfromenv", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testasyncprefetch", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testsamepoint", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testapicall", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testquotaexhaustion", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testautherror", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testcachepersistence", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testfromenv", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_kakao_matrix_testasyncprefetch", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_party_config_testpartyprofiles", - "target": "src_data_party_config_partyprofile", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_party_config.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_party_config_testpartyprofilevalues", - "target": "src_data_party_config_partyprofile", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_party_config.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_party_config_teststrainthresholdlogic", - "target": "src_data_party_config_partyprofile", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_party_config.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testtovrptwday", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "target": "src_data_models_alternativepoi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testtovrptwday", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testtovrptwday", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testtovrptwday", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testtovrptwday", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testtovrptwday", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testtovrptwday", - "target": "src_data_models_validationresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "src_data_models_validationresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "src_data_models_validationresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "src_data_models_validationresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "target": "src_data_models_validationresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "src_data_models_validationresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "target": "src_data_models_validationresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testtovrptwday", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "target": "src_explain_pipeline_validatorpipeline", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testtovrptwday", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebasic", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinemultiday", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinevrptw", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_pipeline_orchestrator_testpipelinerepairgainestimation", - "target": "src_scoring_bonus_engine_bonusengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testrepairenginenoop", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testresultmodel", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testrepairenginenoop", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testresultmodel", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testrepairenginenoop", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testresultmodel", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testrepairenginenoop", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testresultmodel", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testrepairenginenoop", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testresultmodel", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L4", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testrepairenginenoop", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L5", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L5", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L5", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testresultmodel", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L5", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "src_data_restaurant_catalog_restaurantcatalog", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L5", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testrepairenginenoop", - "target": "src_explain_repair_deletionsuggestion", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "src_explain_repair_deletionsuggestion", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "src_explain_repair_deletionsuggestion", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testresultmodel", - "target": "src_explain_repair_deletionsuggestion", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "src_explain_repair_deletionsuggestion", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testrepairenginenoop", - "target": "src_explain_repair_repairresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "src_explain_repair_repairresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "src_explain_repair_repairresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testresultmodel", - "target": "src_explain_repair_repairresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "src_explain_repair_repairresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testrepairenginenoop", - "target": "src_explain_repair_repairengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testdeletionsuggestion", - "target": "src_explain_repair_repairengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtimetunesuggestion", - "target": "src_explain_repair_repairengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testresultmodel", - "target": "src_explain_repair_repairengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_repair_testtotalestimatedgain", - "target": "src_explain_repair_repairengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_repair.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_reward_engine_testgeneraterewards", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_reward_engine.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testweights", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcompute", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testefficiency", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testfeasibility", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testpurposefit", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcosinedistance", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testweights", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcompute", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testefficiency", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testfeasibility", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testpurposefit", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcosinedistance", - "target": "src_data_models_hardfail", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testweights", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcompute", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testefficiency", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testfeasibility", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testpurposefit", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcosinedistance", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testweights", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcompute", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testefficiency", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testfeasibility", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testpurposefit", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcosinedistance", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testweights", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcompute", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testefficiency", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testfeasibility", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testpurposefit", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcosinedistance", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testweights", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcompute", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testefficiency", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testfeasibility", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testpurposefit", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcosinedistance", - "target": "src_data_models_scores", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testweights", - "target": "src_validation_scoring_scorecalculator", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcompute", - "target": "src_validation_scoring_scorecalculator", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testefficiency", - "target": "src_validation_scoring_scorecalculator", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testfeasibility", - "target": "src_validation_scoring_scorecalculator", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testpurposefit", - "target": "src_validation_scoring_scorecalculator", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_scoring_testcosinedistance", - "target": "src_validation_scoring_scorecalculator", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_scoring.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testnoapikey", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testclassifyscore", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testparsellmresponse", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testevaluatewithmockclient", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L8", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testnoapikey", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testclassifyscore", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testparsellmresponse", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testevaluatewithmockclient", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testnoapikey", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testclassifyscore", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testparsellmresponse", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testevaluatewithmockclient", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testnoapikey", - "target": "src_scoring_theme_alignment_themejudgment", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testclassifyscore", - "target": "src_scoring_theme_alignment_themejudgment", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testparsellmresponse", - "target": "src_scoring_theme_alignment_themejudgment", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_alignment_testevaluatewithmockclient", - "target": "src_scoring_theme_alignment_themejudgment", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_alignment.py", - "source_location": "L9", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_taxonomy_testplacetypecount", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_taxonomy_testuserpreferences", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_taxonomy_testmatchesplacetype", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_theme_taxonomy_testgetplacetypesfor", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testhaversinematrix", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testcachedroutematrix", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testdepotconstraint", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testefficiencygap", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testfatiguescore", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testortoolsdegradation", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testriskscore", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testmultidayresult", - "target": "src_data_models_vrptwday", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testhaversinematrix", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testcachedroutematrix", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testdepotconstraint", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testefficiencygap", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testfatiguescore", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testortoolsdegradation", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testriskscore", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testmultidayresult", - "target": "src_data_models_vrptwplace", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testhaversinematrix", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testcachedroutematrix", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testdepotconstraint", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testefficiencygap", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testfatiguescore", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testortoolsdegradation", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testriskscore", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testmultidayresult", - "target": "src_data_models_vrptwrequest", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testhaversinematrix", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testcachedroutematrix", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testdepotconstraint", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testefficiencygap", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testfatiguescore", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testortoolsdegradation", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testriskscore", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testmultidayresult", - "target": "src_data_models_vrptwresult", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L10", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testhaversinematrix", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testcachedroutematrix", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testdepotconstraint", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testefficiencygap", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testfatiguescore", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testortoolsdegradation", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testriskscore", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" - }, - { - "source": "tests_test_vrptw_engine_testmultidayresult", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L95", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_sample_plan", + "target": "tests_test_scoring_make_plan" }, { - "source": "tests_test_vrptw_engine_testhaversinematrix", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L208", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testpurposefit_test_cultural_all_cultural_high", + "target": "tests_test_scoring_make_plan" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L214", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testpurposefit_test_cultural_all_sports_low", + "target": "tests_test_scoring_make_plan" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L220", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testpurposefit_test_no_travel_type_returns_half", + "target": "tests_test_scoring_make_plan" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L90", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_sample_matrix", + "target": "tests_test_scoring_make_matrix" }, { - "source": "tests_test_vrptw_engine_testefficiencygap", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L129", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testcompute_test_hard_fail_caps_score_at_59", + "target": "tests_test_scoring_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testfatiguescore", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L190", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testfeasibility_test_hard_fail_reduces_feasibility", + "target": "tests_test_scoring_make_hard_fail" }, { - "source": "tests_test_vrptw_engine_testortoolsdegradation", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L108", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testweights", + "target": "tests_test_scoring_testweights_test_weights_keys" }, { - "source": "tests_test_vrptw_engine_testriskscore", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L104", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testweights", + "target": "tests_test_scoring_testweights_test_weights_sum_to_one" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L124", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testcompute", + "target": "tests_test_scoring_testcompute_test_final_score_in_range" }, { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L128", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testcompute", + "target": "tests_test_scoring_testcompute_test_hard_fail_caps_score_at_59" }, { - "source": "tests_test_vrptw_engine_testmultidayresult", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L132", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testcompute", + "target": "tests_test_scoring_testcompute_test_no_hard_fail_can_exceed_59" }, { - "source": "tests_test_vrptw_engine_testhaversinematrix", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L138", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testcompute", + "target": "tests_test_scoring_testcompute_test_scores_object_fields" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L153", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testefficiency", + "target": "tests_test_scoring_testefficiency_test_optimal_order_is_one" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L172", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testefficiency", + "target": "tests_test_scoring_testefficiency_test_single_poi_returns_one" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L161", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testefficiency", + "target": "tests_test_scoring_testefficiency_test_suboptimal_order_below_one" }, { - "source": "tests_test_vrptw_engine_testefficiencygap", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L195", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testfeasibility", + "target": "tests_test_scoring_testfeasibility_test_feasibility_in_range" }, { - "source": "tests_test_vrptw_engine_testfatiguescore", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L188", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testfeasibility", + "target": "tests_test_scoring_testfeasibility_test_hard_fail_reduces_feasibility" }, { - "source": "tests_test_vrptw_engine_testortoolsdegradation", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L183", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testfeasibility", + "target": "tests_test_scoring_testfeasibility_test_no_hard_fails_hard_is_one" }, { - "source": "tests_test_vrptw_engine_testriskscore", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L206", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testpurposefit", + "target": "tests_test_scoring_testpurposefit_test_cultural_all_cultural_high" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L212", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testpurposefit", + "target": "tests_test_scoring_testpurposefit_test_cultural_all_sports_low" }, { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L218", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testpurposefit", + "target": "tests_test_scoring_testpurposefit_test_no_travel_type_returns_half" }, { - "source": "tests_test_vrptw_engine_testmultidayresult", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L11", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L230", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testcosinedistance", + "target": "tests_test_scoring_testcosinedistance_test_identical_vectors" }, { - "source": "tests_test_warning_testdenseschedule", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L234", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testcosinedistance", + "target": "tests_test_scoring_testcosinedistance_test_orthogonal_vectors" }, { - "source": "tests_test_warning_testphysicalstrain", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_scoring.py", + "source_location": "L239", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_scoring_testcosinedistance", + "target": "tests_test_scoring_testcosinedistance_test_zero_vector" }, { - "source": "tests_test_warning_testpurposemismatch", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_settings.py", + "source_location": "L8", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_settings", + "target": "tests_test_settings_test_settings_env_file_is_project_absolute_path" }, { - "source": "tests_test_warning_testarearevisit", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_settings.py", + "source_location": "L1", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_settings_rationale_1", + "target": "tests_test_settings" }, { - "source": "tests_test_warning_testwarningfields", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L21", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "tests_test_theme_alignment_clear_cache" }, { - "source": "tests_test_warning_testdayindex", - "target": "src_data_models_dayplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L40", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "tests_test_theme_alignment_testclassifyscore" }, { - "source": "tests_test_warning_testdenseschedule", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L71", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "tests_test_theme_alignment_testevaluatewithmockclient" }, { - "source": "tests_test_warning_testphysicalstrain", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L28", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "tests_test_theme_alignment_testnoapikey" }, { - "source": "tests_test_warning_testpurposemismatch", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L52", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment", + "target": "tests_test_theme_alignment_testparsellmresponse" }, { - "source": "tests_test_warning_testarearevisit", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L1", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_rationale_1", + "target": "tests_test_theme_alignment" }, { - "source": "tests_test_warning_testwarningfields", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L29", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_testnoapikey", + "target": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only" }, { - "source": "tests_test_warning_testdayindex", - "target": "src_data_models_itineraryplan", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L30", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_rationale_30", + "target": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only" }, { - "source": "tests_test_warning_testdenseschedule", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L41", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_testclassifyscore", + "target": "tests_test_theme_alignment_testclassifyscore_test_high_score_no_penalty" }, { - "source": "tests_test_warning_testphysicalstrain", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L46", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_testclassifyscore", + "target": "tests_test_theme_alignment_testclassifyscore_test_low_score_critical" }, { - "source": "tests_test_warning_testpurposemismatch", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L53", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_testparsellmresponse", + "target": "tests_test_theme_alignment_testparsellmresponse_test_clean_json" }, { - "source": "tests_test_warning_testarearevisit", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L65", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_testparsellmresponse", + "target": "tests_test_theme_alignment_testparsellmresponse_test_code_block_stripped" }, { - "source": "tests_test_warning_testwarningfields", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L60", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_testparsellmresponse", + "target": "tests_test_theme_alignment_testparsellmresponse_test_score_clamped_to_1" }, { - "source": "tests_test_warning_testdayindex", - "target": "src_data_models_placeinput", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L115", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_testevaluatewithmockclient", + "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call" }, { - "source": "tests_test_warning_testdenseschedule", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L72", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_testevaluatewithmockclient", + "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_high_alignment_no_penalty" }, { - "source": "tests_test_warning_testphysicalstrain", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L132", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_testevaluatewithmockclient", + "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational" }, { - "source": "tests_test_warning_testpurposemismatch", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L94", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_testevaluatewithmockclient", + "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical" }, { - "source": "tests_test_warning_testarearevisit", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L95", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_rationale_95", + "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical" }, { - "source": "tests_test_warning_testwarningfields", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L116", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_rationale_116", + "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call" }, { - "source": "tests_test_warning_testdayindex", - "target": "src_data_models_poi", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L6", - "weight": 0.8, - "_origin": "ast" + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_alignment.py", + "source_location": "L133", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_alignment_rationale_133", + "target": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational" }, { - "source": "tests_test_warning_testdenseschedule", - "target": "src_validation_warning_warningdetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L63", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy", + "target": "tests_test_theme_taxonomy_testgetplacetypesfor" }, { - "source": "tests_test_warning_testphysicalstrain", - "target": "src_validation_warning_warningdetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L47", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy", + "target": "tests_test_theme_taxonomy_testmatchesplacetype" }, { - "source": "tests_test_warning_testpurposemismatch", - "target": "src_validation_warning_warningdetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L16", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy", + "target": "tests_test_theme_taxonomy_testplacetypecount" }, { - "source": "tests_test_warning_testarearevisit", - "target": "src_validation_warning_warningdetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L28", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy", + "target": "tests_test_theme_taxonomy_testuserpreferences" }, { - "source": "tests_test_warning_testwarningfields", - "target": "src_validation_warning_warningdetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L1", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy_rationale_1", + "target": "tests_test_theme_taxonomy" }, { - "source": "tests_test_warning_testdayindex", - "target": "src_validation_warning_warningdetector", - "relation": "uses", - "confidence": "INFERRED", - "source_file": "tests/test_warning.py", - "source_location": "L7", - "weight": 0.8, - "_origin": "ast" + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L17", + "weight": 1.0, + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy_testplacetypecount", + "target": "tests_test_theme_taxonomy_testplacetypecount_test_9_place_types" }, { - "source": "scripts_collect_naver_full_print_stats", - "target": "counter", - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "scripts/collect_naver_full.py", - "source_location": "L457", + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy_testplacetypecount", + "target": "tests_test_theme_taxonomy_testplacetypecount_test_9_travel_styles" }, { - "source": "src_api_router_list_places", - "target": "src_api_schemas_placeitem", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L42", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "src/api/router.py", - "source_location": "L789", + "source": "tests_test_theme_taxonomy_testuserpreferences", + "target": "tests_test_theme_taxonomy_testuserpreferences_test_empty_both_axes_raises" + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy_testuserpreferences", + "target": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_place_type_raises" }, { - "source": "src_api_router_list_regions", - "target": "counter", - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "src/api/router.py", - "source_location": "L821", + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy_testuserpreferences", + "target": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_style_raises" }, { - "source": "src_api_router_validate_plan", - "target": "src_data_models_itineraryplan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L29", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "src/api/router.py", - "source_location": "L894", + "source": "tests_test_theme_taxonomy_testuserpreferences", + "target": "tests_test_theme_taxonomy_testuserpreferences_test_valid_input" + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L52", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy_testmatchesplacetype", + "target": "tests_test_theme_taxonomy_testmatchesplacetype_test_beach_matches_na12" }, { - "source": "src_api_router_validate_plan", - "target": "src_data_models_dayplan", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L55", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "src/api/router.py", - "source_location": "L896", + "source": "tests_test_theme_taxonomy_testmatchesplacetype", + "target": "tests_test_theme_taxonomy_testmatchesplacetype_test_festival_matches_content_type_15" + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L48", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy_testmatchesplacetype", + "target": "tests_test_theme_taxonomy_testmatchesplacetype_test_mountain_matches_na04" }, { - "source": "src_api_router_validate_plan", - "target": "src_data_models_placeinput", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L58", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "src/api/router.py", - "source_location": "L896", + "source": "tests_test_theme_taxonomy_testmatchesplacetype", + "target": "tests_test_theme_taxonomy_testmatchesplacetype_test_no_match" + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_theme_taxonomy_testgetplacetypesfor", + "target": "tests_test_theme_taxonomy_testgetplacetypesfor_test_mountain_code_returns_list" }, { - "source": "src_data_restaurant_catalog_restaurantcatalog_nearby", - "target": "src_utils_geo_haversine_km", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", + "source_file": "tests/test_theme_taxonomy.py", + "source_location": "L68", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "src/data/restaurant_catalog.py", - "source_location": "L67", + "source": "tests_test_theme_taxonomy_testgetplacetypesfor", + "target": "tests_test_theme_taxonomy_testgetplacetypesfor_test_no_code_returns_empty" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_tour_api_runtime.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_tour_api_runtime", + "target": "tests_test_tour_api_runtime_test_search_poi_sync_adapts_async_client" }, { - "source": "src_data_seoul_citydata_client_seoulcitydataclient_init", - "target": "src_data_models_settings", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", + "source_file": "tests/test_tour_api_runtime.py", + "source_location": "L1", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "src/data/seoul_citydata_client.py", - "source_location": "L96", + "source": "tests_test_tour_api_runtime_rationale_1", + "target": "tests_test_tour_api_runtime" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio", + "target": "tests_test_travel_ratio_make_place" }, { - "source": "src_explain_pipeline_validatorpipeline_init", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L24", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "src/explain/pipeline.py", - "source_location": "L109", + "source": "tests_test_travel_ratio", + "target": "tests_test_travel_ratio_test_no_penalty_when_ratio_low" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L54", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio", + "target": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days" }, { - "source": "src_explain_pipeline_validatorpipeline_init", - "target": "src_validation_warning_warningdetector", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L39", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "src/explain/pipeline.py", - "source_location": "L110", + "source": "tests_test_travel_ratio", + "target": "tests_test_travel_ratio_test_penalty_when_ratio_high" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_rationale_1", + "target": "tests_test_travel_ratio" }, { - "source": "src_explain_pipeline_validatorpipeline_init", - "target": "src_validation_scoring_scorecalculator", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/pipeline.py", - "source_location": "L111", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_test_no_penalty_when_ratio_low", + "target": "tests_test_travel_ratio_make_place" }, { - "source": "src_explain_pipeline_validatorpipeline_init", - "target": "src_explain_repair_repairengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/pipeline.py", - "source_location": "L112", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L58", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_test_overall_ratio_aggregates_across_days", + "target": "tests_test_travel_ratio_make_place" }, { - "source": "src_explain_pipeline_validatorpipeline_run", - "target": "src_scoring_reward_engine_generate_rewards", "relation": "calls", "context": "call", "confidence": "EXTRACTED", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L43", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "src/explain/pipeline.py", - "source_location": "L162", + "source": "tests_test_travel_ratio_test_penalty_when_ratio_high", + "target": "tests_test_travel_ratio_make_place" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_rationale_25", + "target": "tests_test_travel_ratio_test_no_penalty_when_ratio_low" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_data_models_scores", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/pipeline.py", - "source_location": "L273", + "source_file": "tests/test_travel_ratio.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_travel_ratio_rationale_40", + "target": "tests_test_travel_ratio_test_penalty_when_ratio_high" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_validation_vrptw_engine_vrptwengine", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/pipeline.py", - "source_location": "L286", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L25", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/pipeline.py", - "source_location": "L286", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L481", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_test_cached_matrix_from_actual_file" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/pipeline.py", - "source_location": "L300", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L322", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_test_constants_accessible" }, { - "source": "src_explain_pipeline_validatorpipeline_score", - "target": "src_scoring_travel_ratio_evaluate_travel_ratio", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/pipeline.py", - "source_location": "L307", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L463", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields" }, { - "source": "src_explain_repair_repairengine_init", - "target": "src_validation_hard_fail_hardfaildetector", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/repair.py", - "source_location": "L105", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L450", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_test_summary_contains_score" }, { - "source": "src_explain_repair_repairengine_try_time_tune", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/repair.py", - "source_location": "L179", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L78", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_testcachedroutematrix" }, { - "source": "src_explain_repair_repairengine_try_time_tune", - "target": "src_utils_geo_build_dist_cache", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/repair.py", - "source_location": "L181", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L109", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_testdepotconstraint" }, { - "source": "src_explain_repair_repairengine_try_time_tune", - "target": "src_utils_geo_get_travel_min", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/repair.py", - "source_location": "L184", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L217", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_testefficiencygap" }, { - "source": "src_explain_repair_repairengine_suggest_deletion", - "target": "src_utils_geo_build_dist_cache", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/repair.py", - "source_location": "L237", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L388", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_testefficiencygapthreshold" }, { - "source": "src_explain_repair_repairengine_suggest_deletion", - "target": "src_utils_geo_haversine_km", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/repair.py", - "source_location": "L252", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L240", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_testfatiguescore" }, { - "source": "src_matrix_redis_matrix_redistimematrix_init", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/matrix/redis_matrix.py", - "source_location": "L49", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L56", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_testhaversinematrix" }, { - "source": "src_scoring_cluster_dispersion_compute_day_dispersion", - "target": "src_validation_alternatives_haversine_km", - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "src/scoring/cluster_dispersion.py", - "source_location": "L146", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L333", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_testmodelvalidation" }, { - "source": "src_scoring_theme_alignment_themealignmentjudge_evaluate", - "target": "src_data_models_deepdiveitem", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/scoring/theme_alignment.py", - "source_location": "L206", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L410", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_testmultidayresult" }, { - "source": "src_validation_hard_fail_hardfaildetector_detect", - "target": "src_utils_geo_build_dist_cache", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/hard_fail.py", - "source_location": "L38", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L272", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_testortoolsdegradation" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_operating_hours", - "target": "src_utils_geo_get_travel_min", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/hard_fail.py", - "source_location": "L73", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L300", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_testriskscore" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_travel_impossible", - "target": "src_utils_geo_get_travel_min", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/hard_fail.py", - "source_location": "L131", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L167", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility" }, { - "source": "src_validation_hard_fail_hardfaildetector_check_schedule_infeasible", - "target": "src_utils_geo_get_travel_min", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/hard_fail.py", - "source_location": "L169", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_1", + "target": "tests_test_vrptw_engine" }, { - "source": "src_validation_kakao_matrix_kakaomobilitymatrix_init", - "target": "src_validation_vrptw_engine_haversinematrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/kakao_matrix.py", - "source_location": "L80", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L492", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_test_cached_matrix_from_actual_file", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_validation_scoring_scorecalculator_compute", - "target": "src_utils_geo_build_dist_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/scoring.py", - "source_location": "L35", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L465", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_validation_scoring_scorecalculator_calc_efficiency", - "target": "src_utils_geo_build_dist_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/scoring.py", - "source_location": "L72", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L99", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testcachedroutematrix_test_load_from_dict", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_validation_scoring_scorecalculator_calc_efficiency", - "target": "src_utils_geo_nn_heuristic_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/scoring.py", - "source_location": "L76", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L393", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_validation_scoring_scorecalculator_calc_feasibility", - "target": "src_utils_geo_build_dist_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/scoring.py", - "source_location": "L92", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L244", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_validation_scoring_scorecalculator_calc_feasibility", - "target": "src_data_party_config_get_party_profile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/scoring.py", - "source_location": "L95", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L257", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_validation_scoring_scorecalculator_calc_feasibility", - "target": "src_utils_geo_get_travel_min", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/scoring.py", - "source_location": "L101", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L379", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation_test_close_minutes_property", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_validation_scoring_scorecalculator_calc_flow", - "target": "src_utils_geo_build_dist_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/scoring.py", - "source_location": "L146", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L375", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation_test_open_minutes_property", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_validation_scoring_scorecalculator_calc_flow", - "target": "src_utils_geo_nn_heuristic_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/scoring.py", - "source_location": "L149", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L182", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_validation_vrptw_engine_vrptwengine_validate", - "target": "src_data_models_dayroutecomparison", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/vrptw_engine.py", - "source_location": "L443", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_request_start_time_is_used", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_validation_warning_warningdetector_detect", - "target": "src_utils_geo_build_dist_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/warning.py", - "source_location": "L59", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L193", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning", + "target": "tests_test_vrptw_engine_make_place" }, { - "source": "src_validation_warning_warningdetector_check_dense_schedule", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/warning.py", - "source_location": "L80", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L61", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testhaversinematrix", + "target": "tests_test_vrptw_engine_testhaversinematrix_test_known_distance" }, { - "source": "src_validation_warning_warningdetector_check_dense_schedule", - "target": "src_utils_geo_get_travel_min", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/warning.py", - "source_location": "L84", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L57", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testhaversinematrix", + "target": "tests_test_vrptw_engine_testhaversinematrix_test_same_point_is_zero" }, { - "source": "src_validation_warning_warningdetector_check_inefficient_route", - "target": "src_utils_geo_nn_heuristic_km", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/warning.py", - "source_location": "L110", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L68", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testhaversinematrix", + "target": "tests_test_vrptw_engine_testhaversinematrix_test_symmetry" }, { - "source": "src_validation_warning_warningdetector_check_physical_strain", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/warning.py", - "source_location": "L130", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testcachedroutematrix", + "target": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_hit" }, { - "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/warning.py", - "source_location": "L186", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testcachedroutematrix", + "target": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_miss_falls_back_to_haversine" }, { - "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", - "target": "src_utils_geo_build_dist_cache", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/warning.py", - "source_location": "L194", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L96", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testcachedroutematrix", + "target": "tests_test_vrptw_engine_testcachedroutematrix_test_load_from_dict" }, { - "source": "src_validation_warning_warningdetector_check_cumulative_fatigue", - "target": "src_utils_geo_get_travel_min", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/validation/warning.py", - "source_location": "L197", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L90", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testcachedroutematrix", + "target": "tests_test_vrptw_engine_testcachedroutematrix_test_reverse_key_fallback" }, { - "source": "tests_test_alternatives_testfindalternatives_test_returns_nearby_same_category", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_alternatives.py", - "source_location": "L45", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L91", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_91", + "target": "tests_test_vrptw_engine_testcachedroutematrix_test_reverse_key_fallback" }, { - "source": "tests_test_alternatives_testfindalternatives_test_excludes_failed_poi_itself", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_alternatives.py", - "source_location": "L52", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L110", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testdepotconstraint", + "target": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine" }, { - "source": "tests_test_alternatives_testfindalternatives_test_respects_max_alternatives", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_alternatives.py", - "source_location": "L59", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L144", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testdepotconstraint", + "target": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied" }, { - "source": "tests_test_alternatives_testfindalternatives_test_respects_search_radius", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_alternatives.py", - "source_location": "L67", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L113", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testdepotconstraint", + "target": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot" }, { - "source": "tests_test_alternatives_testfindalternatives_test_distance_km_is_correct", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_alternatives.py", - "source_location": "L74", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L129", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testdepotconstraint", + "target": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_middle_day_must_start_and_end_at_depot" }, { - "source": "tests_test_alternatives_testfindalternatives_test_same_category_sorted_before_different", - "target": "src_validation_alternatives_alternativesfinder", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_alternatives.py", - "source_location": "L85", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L152", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied", + "target": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_maps_failed_poi_to_alternatives", - "target": "src_validation_alternatives_alternativesfinder", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_alternatives.py", - "source_location": "L95", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot", + "target": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_default_no_substitution", - "target": "src_validation_alternatives_alternativesfinder", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_alternatives.py", - "source_location": "L105", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L137", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_middle_day_must_start_and_end_at_depot", + "target": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_skips_none_poi_name", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_alternatives.py", - "source_location": "L111", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L114", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_114", + "target": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_no_duplicate_keys", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_alternatives.py", - "source_location": "L118", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L145", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_145", + "target": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied" }, { - "source": "tests_test_alternatives_testbuildalternativesmap_test_excludes_plan_pois_from_alternatives", - "target": "src_validation_alternatives_alternativesfinder", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_alternatives.py", - "source_location": "L125", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L168", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility_engine" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L71", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L171", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility_test_feasible_schedule_passes" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_backtrack_gyeongju", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L79", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L180", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L92", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L200", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility_test_request_start_time_is_used" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_no_false_positive_sequential", - "target": "src_scoring_cluster_dispersion_count_geo_cluster_backtracks", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L98", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L189", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires", - "target": "src_data_models_vrptwday", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L110", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L173", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_feasible_schedule_passes", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility_engine" }, { - "source": "tests_test_cluster_dispersion_test_geo_cluster_no_double_penalty_when_m3_fires", - "target": "src_scoring_cluster_dispersion_evaluate_cluster_dispersion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_cluster_dispersion.py", - "source_location": "L116", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L184", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility_engine" }, { - "source": "tests_test_congestion_engine_engine", - "target": "src_scoring_congestion_engine_congestionengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_congestion_engine.py", - "source_location": "L51", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L207", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_request_start_time_is_used", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility_engine" }, { - "source": "tests_test_congestion_engine_test_score_to_level", - "target": "src_scoring_congestion_engine_score_to_level", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_congestion_engine.py", - "source_location": "L72", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L195", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility_engine" }, { - "source": "tests_test_dwell_db_testmanualoverride_test_\uacbd\ubcf5\uad81_returns_manual_source", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_dwell_db.py", - "source_location": "L18", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L181", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_181", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical" }, { - "source": "tests_test_dwell_db_testmanualoverride_test_normalization_handles_spaces", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_dwell_db.py", - "source_location": "L25", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L190", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_190", + "target": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning" }, { - "source": "tests_test_dwell_db_testmanualoverride_test_n_seoul_tower_alias", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_dwell_db.py", - "source_location": "L29", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L218", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testefficiencygap", + "target": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap" }, { - "source": "tests_test_dwell_db_testlclssystm3_test_museum_code", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_dwell_db.py", - "source_location": "L38", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L226", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testefficiencygap", + "target": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap" }, { - "source": "tests_test_dwell_db_testlclssystm1fallback_test_lcls3_unknown_falls_back_to_lcls1", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_dwell_db.py", - "source_location": "L46", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L219", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_219", + "target": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap" }, { - "source": "tests_test_dwell_db_testcontenttypefallback_test_content_type_used_when_no_lcls", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_dwell_db.py", - "source_location": "L53", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L227", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_227", + "target": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap" }, { - "source": "tests_test_dwell_db_testdefaultfallback_test_no_info_returns_default", - "target": "src_data_dwell_db_get_recommended_dwell", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_dwell_db.py", - "source_location": "L60", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L241", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testfatiguescore", + "target": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty" }, { - "source": "tests_test_dwell_db_testistooshort_test_below_50pct_is_too_short", - "target": "src_data_dwell_db_dwellrecommendation", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_dwell_db.py", - "source_location": "L67", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L254", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testfatiguescore", + "target": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue" }, { - "source": "tests_test_explain_engine_testcachekey_test_same_inputs_same_key", - "target": "src_explain_explain_engine_cache_key", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L98", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L273", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testortoolsdegradation", + "target": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result" }, { - "source": "tests_test_explain_engine_testcachekey_test_different_score_different_key", - "target": "src_explain_explain_engine_cache_key", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L102", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L274", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_274", + "target": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result" }, { - "source": "tests_test_explain_engine_testcachekey_test_empty_inputs", - "target": "src_explain_explain_engine_cache_key", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L105", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L307", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testriskscore", + "target": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold" }, { - "source": "tests_test_explain_engine_testcachekey_test_different_day_index_different_key", - "target": "src_explain_explain_engine_cache_key", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L113", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L301", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testriskscore", + "target": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_none_graph_returns_none", - "target": "src_explain_explain_engine_graph_context", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L122", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L378", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "tests_test_vrptw_engine_testmodelvalidation_test_close_minutes_property" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_disabled_graph_returns_none", - "target": "src_explain_explain_engine_graph_context", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L125", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L366", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "tests_test_vrptw_engine_testmodelvalidation_test_empty_day_raises" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_empty_poi_name_returns_none", - "target": "src_explain_explain_engine_graph_context", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L128", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L370", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "tests_test_vrptw_engine_testmodelvalidation_test_empty_days_raises" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_no_match_returns_none", - "target": "src_explain_explain_engine_graph_context", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L133", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L334", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lat_raises" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_match_includes_region_and_category", - "target": "src_explain_explain_engine_graph_context", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L136", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L338", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_lng_raises" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_match_includes_nearby_alternatives", - "target": "src_explain_explain_engine_graph_context", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L141", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L342", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_format_raises" }, { - "source": "tests_test_explain_engine_testgraphcontext_test_no_nearby_omits_key", - "target": "src_explain_explain_engine_graph_context", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L146", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L346", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "tests_test_vrptw_engine_testmodelvalidation_test_invalid_time_value_raises" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_contains_plan_info", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L156", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L350", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "tests_test_vrptw_engine_testmodelvalidation_test_negative_stay_raises" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_hard_fail_in_prompt", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L161", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L374", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "tests_test_vrptw_engine_testmodelvalidation_test_open_minutes_property" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_in_prompt", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L166", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L354", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmodelvalidation", + "target": "tests_test_vrptw_engine_testmodelvalidation_test_zero_stay_allowed_for_depot" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_penalty_in_prompt", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L170", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L389", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testefficiencygapthreshold", + "target": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_scores_included_when_provided", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L174", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L390", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_390", + "target": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_overall_item_present", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L178", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L411", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmultidayresult", + "target": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_graph_evidence_included_when_matched", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L183", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L425", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmultidayresult", + "target": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_no_graph_omits_evidence_key", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L191", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L438", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_testmultidayresult", + "target": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_hard_fail", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L197", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L464", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_464", + "target": "tests_test_vrptw_engine_test_deep_dive_items_have_all_fields" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_day_index_included_for_warning", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L204", + "source_file": "tests/test_vrptw_engine.py", + "source_location": "L482", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_vrptw_engine_rationale_482", + "target": "tests_test_vrptw_engine_test_cached_matrix_from_actual_file" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_no_day_index_omits_day_field", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L210", + "source_file": "tests/test_warning.py", + "source_location": "L66", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "tests_test_warning_detector" }, { - "source": "tests_test_explain_engine_testbuilduserprompt_test_warning_graph_evidence_uses_first_poi_name", - "target": "src_explain_explain_engine_build_user_prompt", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", + "source_file": "tests/test_warning.py", + "source_location": "L50", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L216", + "source": "tests_test_warning", + "target": "tests_test_warning_make_matrix" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_warning.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_explain_engine_testparsellmresponse_test_parses_valid_json_array", - "target": "src_explain_explain_engine_parse_llm_response", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", + "source_file": "tests/test_warning.py", + "source_location": "L15", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L235", + "source": "tests_test_warning", + "target": "tests_test_warning_make_poi" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_warning.py", + "source_location": "L175", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "tests_test_warning_testarearevisit" }, { - "source": "tests_test_explain_engine_testparsellmresponse_test_strips_code_block_wrapper", - "target": "src_explain_explain_engine_parse_llm_response", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", + "source_file": "tests/test_warning.py", + "source_location": "L256", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L242", + "source": "tests_test_warning", + "target": "tests_test_warning_testdayindex" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_warning.py", + "source_location": "L75", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "tests_test_warning_testdenseschedule" }, { - "source": "tests_test_explain_engine_testparsellmresponse_test_multiple_items", - "target": "src_explain_explain_engine_parse_llm_response", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", + "source_file": "tests/test_warning.py", + "source_location": "L118", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L251", + "source": "tests_test_warning", + "target": "tests_test_warning_testphysicalstrain" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "tests/test_warning.py", + "source_location": "L145", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning", + "target": "tests_test_warning_testpurposemismatch" }, { - "source": "tests_test_explain_engine_testparsellmresponse_test_returns_explanation_items", - "target": "src_explain_explain_engine_parse_llm_response", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", + "source_file": "tests/test_warning.py", + "source_location": "L233", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L259", + "source": "tests_test_warning", + "target": "tests_test_warning_testwarningfields" + }, + { + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "tests/test_warning.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_rationale_1", + "target": "tests_test_warning" }, { - "source": "tests_test_explain_engine_testparsellmresponse_test_day_index_echoed_back", - "target": "src_explain_explain_engine_parse_llm_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L267", + "source_file": "tests/test_warning.py", + "source_location": "L191", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit_test_all_different_no_revisit", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testparsellmresponse_test_missing_day_index_defaults_to_none", - "target": "src_explain_explain_engine_parse_llm_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L275", + "source_file": "tests/test_warning.py", + "source_location": "L179", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit_test_consecutive_same_category_triggers", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testfallback_test_hard_fail_becomes_critical", - "target": "src_explain_explain_engine_fallback", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L285", + "source_file": "tests/test_warning.py", + "source_location": "L204", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit_test_three_consecutive_triggers", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testfallback_test_warning_becomes_warning", - "target": "src_explain_explain_engine_fallback", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L290", + "source_file": "tests/test_warning.py", + "source_location": "L217", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit_test_two_consecutive_no_trigger", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testfallback_test_large_penalty_is_critical", - "target": "src_explain_explain_engine_fallback", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L295", + "source_file": "tests/test_warning.py", + "source_location": "L268", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdayindex_test_day_index_and_poi_names_set_when_passed", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testfallback_test_small_penalty_is_warning", - "target": "src_explain_explain_engine_fallback", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L300", + "source_file": "tests/test_warning.py", + "source_location": "L258", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdayindex_test_day_index_defaults_to_none", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testfallback_test_always_has_overall_item", - "target": "src_explain_explain_engine_fallback", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L310", + "source_file": "tests/test_warning.py", + "source_location": "L104", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_dense_message_includes_party_type", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testfallback_test_failed_overall_is_critical", - "target": "src_explain_explain_engine_fallback", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L315", + "source_file": "tests/test_warning.py", + "source_location": "L78", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_dense_trigger_baby", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testfallback_test_passed_overall_is_ok", - "target": "src_explain_explain_engine_fallback", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L320", + "source_file": "tests/test_warning.py", + "source_location": "L87", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_dense_trigger_friends_heavy", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testfallback_test_hard_fail_day_index_propagated_and_prefixed", - "target": "src_explain_explain_engine_fallback", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L327", + "source_file": "tests/test_warning.py", + "source_location": "L96", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_no_dense_within_threshold", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testfallback_test_warning_day_index_propagated_and_prefixed", - "target": "src_explain_explain_engine_fallback", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L335", + "source_file": "tests/test_warning.py", + "source_location": "L133", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testphysicalstrain_test_no_strain_short_distance", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testfallback_test_no_day_index_no_prefix", - "target": "src_explain_explain_engine_fallback", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L341", + "source_file": "tests/test_warning.py", + "source_location": "L122", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testphysicalstrain_test_strain_trigger", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testexplainenginenollm_setup_method", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L354", + "source_file": "tests/test_warning.py", + "source_location": "L148", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testpurposemismatch_test_mismatch_cultural_all_sports", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_response_used_when_available", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L437", + "source_file": "tests/test_warning.py", + "source_location": "L156", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testpurposemismatch_test_no_mismatch_cultural_all_cultural", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_llm_failure_falls_back_gracefully", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L448", + "source_file": "tests/test_warning.py", + "source_location": "L163", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testpurposemismatch_test_no_mismatch_when_no_travel_type", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_cache_prevents_second_llm_call", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L465", + "source_file": "tests/test_warning.py", + "source_location": "L235", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testwarningfields_test_warning_has_confidence_from_types", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_is_available_with_client", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L474", + "source_file": "tests/test_warning.py", + "source_location": "L243", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testwarningfields_test_warning_message_not_empty", + "target": "tests_test_warning_make_poi" }, { - "source": "tests_test_explain_engine_testexplainenginemockllm_test_graph_evidence_reaches_llm_prompt", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L486", + "source_file": "tests/test_warning.py", + "source_location": "L196", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit_test_all_different_no_revisit", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_explain_engine_testexplainenginegraphdefault_test_default_graph_disabled_without_env", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L499", + "source_file": "tests/test_warning.py", + "source_location": "L184", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit_test_consecutive_same_category_triggers", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_no_hard_fails_returns_empty", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L509", + "source_file": "tests/test_warning.py", + "source_location": "L209", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit_test_three_consecutive_triggers", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_disabled_graph_returns_empty", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L513", + "source_file": "tests/test_warning.py", + "source_location": "L222", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit_test_two_consecutive_no_trigger", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_hard_fail_without_poi_name_skipped", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L519", + "source_file": "tests/test_warning.py", + "source_location": "L270", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdayindex_test_day_index_and_poi_names_set_when_passed", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_match_returns_alternatives_keyed_by_poi_name", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L525", + "source_file": "tests/test_warning.py", + "source_location": "L260", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdayindex_test_day_index_defaults_to_none", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_no_nearby_omits_poi", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L533", + "source_file": "tests/test_warning.py", + "source_location": "L106", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_dense_message_includes_party_type", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_no_search_match_omits_poi", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L543", + "source_file": "tests/test_warning.py", + "source_location": "L80", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_dense_trigger_baby", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_explain_engine_testbuildalternatives_test_duplicate_poi_name_only_looked_up_once", - "target": "src_explain_explain_engine_explainengine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_explain_engine.py", - "source_location": "L550", + "source_file": "tests/test_warning.py", + "source_location": "L89", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_dense_trigger_friends_heavy", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_geo_testhaversinekm_test_same_point_is_zero", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L25", + "source_file": "tests/test_warning.py", + "source_location": "L98", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_no_dense_within_threshold", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_geo_testhaversinekm_test_known_distance", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L29", + "source_file": "tests/test_warning.py", + "source_location": "L134", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testphysicalstrain_test_no_strain_short_distance", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_geo_testhaversinekm_test_symmetric", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L33", + "source_file": "tests/test_warning.py", + "source_location": "L127", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testphysicalstrain_test_strain_trigger", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_geo_testhaversinekm_test_positive", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L38", + "source_file": "tests/test_warning.py", + "source_location": "L149", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testpurposemismatch_test_mismatch_cultural_all_sports", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_geo_testbuilddistcache_test_all_pairs_present", - "target": "src_utils_geo_build_dist_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L48", + "source_file": "tests/test_warning.py", + "source_location": "L157", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testpurposemismatch_test_no_mismatch_cultural_all_cultural", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_geo_testbuilddistcache_test_no_self_pairs", - "target": "src_utils_geo_build_dist_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L56", + "source_file": "tests/test_warning.py", + "source_location": "L164", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testpurposemismatch_test_no_mismatch_when_no_travel_type", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_geo_testbuilddistcache_test_values_match_haversine", - "target": "src_utils_geo_build_dist_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L65", + "source_file": "tests/test_warning.py", + "source_location": "L236", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testwarningfields_test_warning_has_confidence_from_types", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_geo_testbuilddistcache_test_values_match_haversine", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L66", + "source_file": "tests/test_warning.py", + "source_location": "L245", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testwarningfields_test_warning_message_not_empty", + "target": "tests_test_warning_make_plan" }, { - "source": "tests_test_geo_testbuilddistcache_test_single_poi_empty_cache", - "target": "src_utils_geo_build_dist_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L72", + "source_file": "tests/test_warning.py", + "source_location": "L269", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdayindex_test_day_index_and_poi_names_set_when_passed", + "target": "tests_test_warning_make_matrix" }, { - "source": "tests_test_geo_testbuilddistcache_test_empty_list_empty_cache", - "target": "src_utils_geo_build_dist_cache", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L76", + "source_file": "tests/test_warning.py", + "source_location": "L259", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdayindex_test_day_index_defaults_to_none", + "target": "tests_test_warning_make_matrix" }, { - "source": "tests_test_geo_testnnheuristickm_test_single_poi_returns_zero", - "target": "src_utils_geo_nn_heuristic_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L86", + "source_file": "tests/test_warning.py", + "source_location": "L105", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_dense_message_includes_party_type", + "target": "tests_test_warning_make_matrix" }, { - "source": "tests_test_geo_testnnheuristickm_test_two_pois_returns_distance", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L90", + "source_file": "tests/test_warning.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_dense_trigger_baby", + "target": "tests_test_warning_make_matrix" }, { - "source": "tests_test_geo_testnnheuristickm_test_two_pois_returns_distance", - "target": "src_utils_geo_nn_heuristic_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L91", + "source_file": "tests/test_warning.py", + "source_location": "L88", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_dense_trigger_friends_heavy", + "target": "tests_test_warning_make_matrix" }, { - "source": "tests_test_geo_testnnheuristickm_test_nn_le_actual_for_suboptimal", - "target": "src_utils_geo_haversine_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L102", + "source_file": "tests/test_warning.py", + "source_location": "L97", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule_test_no_dense_within_threshold", + "target": "tests_test_warning_make_matrix" }, { - "source": "tests_test_geo_testnnheuristickm_test_nn_le_actual_for_suboptimal", - "target": "src_utils_geo_nn_heuristic_km", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L106", + "source_file": "tests/test_warning.py", + "source_location": "L244", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testwarningfields_test_warning_message_not_empty", + "target": "tests_test_warning_make_matrix" }, { - "source": "tests_test_geo_testnnheuristickm_test_cache_gives_same_result", - "target": "src_utils_geo_build_dist_cache", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L111", + "source_file": "tests/test_warning.py", + "source_location": "L103", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule", + "target": "tests_test_warning_testdenseschedule_test_dense_message_includes_party_type" }, { - "source": "tests_test_geo_testnnheuristickm_test_cache_gives_same_result", - "target": "src_utils_geo_nn_heuristic_km", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L112", + "source_file": "tests/test_warning.py", + "source_location": "L76", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule", + "target": "tests_test_warning_testdenseschedule_test_dense_trigger_baby" }, { - "source": "tests_test_geo_testnnheuristickm_test_collinear_optimal_order_matches_nn", - "target": "src_utils_geo_haversine_km", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L118", + "source_file": "tests/test_warning.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule", + "target": "tests_test_warning_testdenseschedule_test_dense_trigger_friends_heavy" }, { - "source": "tests_test_geo_testnnheuristickm_test_collinear_optimal_order_matches_nn", - "target": "src_utils_geo_nn_heuristic_km", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L121", + "source_file": "tests/test_warning.py", + "source_location": "L94", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdenseschedule", + "target": "tests_test_warning_testdenseschedule_test_no_dense_within_threshold" }, { - "source": "tests_test_geo_testgettravelmin_test_uses_matrix_when_available", - "target": "src_utils_geo_get_travel_min", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L133", + "source_file": "tests/test_warning.py", + "source_location": "L132", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testphysicalstrain", + "target": "tests_test_warning_testphysicalstrain_test_no_strain_short_distance" }, { - "source": "tests_test_geo_testgettravelmin_test_haversine_fallback_when_no_matrix", - "target": "src_utils_geo_haversine_km", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L138", + "source_file": "tests/test_warning.py", + "source_location": "L119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testphysicalstrain", + "target": "tests_test_warning_testphysicalstrain_test_strain_trigger" }, { - "source": "tests_test_geo_testgettravelmin_test_haversine_fallback_when_no_matrix", - "target": "src_utils_geo_get_travel_min", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L140", + "source_file": "tests/test_warning.py", + "source_location": "L146", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testpurposemismatch", + "target": "tests_test_warning_testpurposemismatch_test_mismatch_cultural_all_sports" }, { - "source": "tests_test_geo_testgettravelmin_test_cache_fallback_when_no_matrix", - "target": "src_utils_geo_get_travel_min", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L147", + "source_file": "tests/test_warning.py", + "source_location": "L154", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testpurposemismatch", + "target": "tests_test_warning_testpurposemismatch_test_no_mismatch_cultural_all_cultural" }, { - "source": "tests_test_geo_testgettravelmin_test_matrix_takes_priority_over_cache", - "target": "src_utils_geo_get_travel_min", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_geo.py", - "source_location": "L155", + "source_file": "tests/test_warning.py", + "source_location": "L162", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testpurposemismatch", + "target": "tests_test_warning_testpurposemismatch_test_no_mismatch_when_no_travel_type" }, { - "source": "tests_test_kakao_matrix_testsamepoint_test_same_coords_returns_zero", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L49", + "source_file": "tests/test_warning.py", + "source_location": "L189", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit", + "target": "tests_test_warning_testarearevisit_test_all_different_no_revisit" }, { - "source": "tests_test_kakao_matrix_testapicall_test_sync_call_populates_cache", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L60", + "source_file": "tests/test_warning.py", + "source_location": "L176", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit", + "target": "tests_test_warning_testarearevisit_test_consecutive_same_category_triggers" }, { - "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_uses_cache_after_sync_call", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L72", + "source_file": "tests/test_warning.py", + "source_location": "L201", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit", + "target": "tests_test_warning_testarearevisit_test_three_consecutive_triggers" }, { - "source": "tests_test_kakao_matrix_testapicall_test_get_travel_time_second_call_cache_hit", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L86", + "source_file": "tests/test_warning.py", + "source_location": "L214", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testarearevisit", + "target": "tests_test_warning_testarearevisit_test_two_consecutive_no_trigger" }, { - "source": "tests_test_kakao_matrix_testapicall_test_reverse_direction_also_cached", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L99", + "source_file": "tests/test_warning.py", + "source_location": "L234", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testwarningfields", + "target": "tests_test_warning_testwarningfields_test_warning_has_confidence_from_types" }, { - "source": "tests_test_kakao_matrix_testquotaexhaustion_test_429_sets_quota_exhausted", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L118", + "source_file": "tests/test_warning.py", + "source_location": "L242", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testwarningfields", + "target": "tests_test_warning_testwarningfields_test_warning_message_not_empty" }, { - "source": "tests_test_kakao_matrix_testquotaexhaustion_test_get_travel_time_haversine_fallback_when_no_cache", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L133", + "source_file": "tests/test_warning.py", + "source_location": "L267", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdayindex", + "target": "tests_test_warning_testdayindex_test_day_index_and_poi_names_set_when_passed" }, { - "source": "tests_test_kakao_matrix_testquotaexhaustion_test_after_quota_exhausted_get_travel_time_falls_back", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L142", + "source_file": "tests/test_warning.py", + "source_location": "L257", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_warning_testdayindex", + "target": "tests_test_warning_testdayindex_test_day_index_defaults_to_none" }, { - "source": "tests_test_kakao_matrix_testautherror_test_401_raises", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "submodule_import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L160", + "source_file": "src/api/main.py", + "source_location": "L91", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main", + "target": "src_api_router", + "confidence_score": 1.0 }, { - "source": "tests_test_kakao_matrix_testcachepersistence_test_save_and_load_cache", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L178", + "source_file": "src/api/router.py", + "source_location": "L905", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_addr_to_region" }, { - "source": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_populates_cache_and_hit_on_get", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L230", + "source_file": "src/api/router.py", + "source_location": "L983", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_build_coord_index" }, { - "source": "tests_test_kakao_matrix_testasyncprefetch_test_aprefetch_deduplicates_bidirectional", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L248", + "source_file": "src/api/router.py", + "source_location": "L1097", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_build_full_place_list" }, { - "source": "tests_test_party_config_testpartyprofiles_test_friends_speed_factor_one", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L15", + "source_file": "src/api/router.py", + "source_location": "L933", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_build_jeju_place_index" }, { - "source": "tests_test_party_config_testpartyprofiles_test_baby_speed_factor_below_one", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L18", + "source_file": "src/api/router.py", + "source_location": "L1217", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_build_monthly_congestion" }, { - "source": "tests_test_party_config_testpartyprofiles_test_elderly_speed_factor_below_one", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", + "source_file": "src/api/router.py", + "source_location": "L1036", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L21", + "source": "src_api_router", + "target": "src_api_router_build_place_list" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "src/api/router.py", + "source_location": "L1394", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_calc_reliability_score" }, { - "source": "tests_test_party_config_testpartyprofiles_test_baby_fatigue_hours_lower_than_friends", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L24", + "source_file": "src/api/router.py", + "source_location": "L848", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_extract_chosung" }, { - "source": "tests_test_party_config_testpartyprofiles_test_elderly_fatigue_hours_lower_than_friends", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L29", + "source_file": "src/api/router.py", + "source_location": "L1404", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_get_pipeline" }, { - "source": "tests_test_party_config_testpartyprofiles_test_family_fatigue_between_friends_and_baby", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L34", + "source_file": "src/api/router.py", + "source_location": "L868", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_guess_dwell" }, { - "source": "tests_test_party_config_testpartyprofiles_test_unknown_type_returns_default", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L40", + "source_file": "src/api/router.py", + "source_location": "L74", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_kakao_cat_code" }, { - "source": "tests_test_party_config_testpartyprofiles_test_profile_is_frozen", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L45", + "source_file": "src/api/router.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_kakao_hint" }, { - "source": "tests_test_party_config_testpartyprofilevalues_test_friends_fatigue_12h", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L52", + "source_file": "src/api/router.py", + "source_location": "L1412", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_list_places" }, { - "source": "tests_test_party_config_testpartyprofilevalues_test_baby_fatigue_8h", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L55", + "source_file": "src/api/router.py", + "source_location": "L1506", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_list_regions" }, { - "source": "tests_test_party_config_testpartyprofilevalues_test_elderly_fatigue_8h", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L58", + "source_file": "src/api/router.py", + "source_location": "L1269", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_lookup_place" }, { - "source": "tests_test_party_config_testpartyprofilevalues_test_family_fatigue_10h", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L61", + "source_file": "src/api/router.py", + "source_location": "L1494", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_monthly_congestion" }, { - "source": "tests_test_party_config_testpartyprofilevalues_test_baby_speed_factor_is_point_eight", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L64", + "source_file": "src/api/router.py", + "source_location": "L859", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_normalize" }, { - "source": "tests_test_party_config_testpartyprofilevalues_test_family_speed_factor_is_point_nine", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L67", + "source_file": "src/api/router.py", + "source_location": "L1530", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_parse_document" }, { - "source": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_lower_than_friends", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L76", + "source_file": "src/api/router.py", + "source_location": "L922", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_parse_jeju_hours" }, { - "source": "tests_test_party_config_teststrainthresholdlogic_test_baby_threshold_is_24km", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L81", + "source_file": "src/api/router.py", + "source_location": "L1521", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_parse_text" }, { - "source": "tests_test_party_config_teststrainthresholdlogic_test_friends_threshold_unchanged", - "target": "src_data_party_config_get_party_profile", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_party_config.py", - "source_location": "L85", + "source_file": "src/api/router.py", + "source_location": "L1547", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_resolve_coords" }, { - "source": "tests_test_pipeline_orchestrator_testtovrptwday_test_converts_poi_fields", - "target": "src_explain_pipeline_to_vrptw_day", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L87", + "source_file": "src/api/router.py", + "source_location": "L1288", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_resolve_poi" }, { - "source": "tests_test_pipeline_orchestrator_testtovrptwday_test_is_depot_false", - "target": "src_explain_pipeline_to_vrptw_day", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L96", + "source_file": "src/api/router.py", + "source_location": "L1567", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_api_router_validate_plan" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinehardfail_test_alternatives_populated_from_explain_engine", - "target": "src_data_models_alternativepoi", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L200", + "source_file": "src/api/router.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_data_place_resolver" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_bonus_reflected_in_breakdown", - "target": "src_scoring_bonus_engine_placecoord", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L236", + "source_file": "src/api/router.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router", + "target": "src_data_place_resolver_externalplaceresolver" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_accessibility_bonus_for_accessible_party", - "target": "src_scoring_bonus_engine_placecoord", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L247", + "source_file": "src/api/router.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_1", + "target": "src_api_router" }, { - "source": "tests_test_pipeline_orchestrator_testpipelinebreakdown_test_wellness_matched_exposed_on_result", - "target": "src_scoring_bonus_engine_placecoord", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "submodule_import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_pipeline_orchestrator.py", - "source_location": "L275", + "source_file": "tests/test_health.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_health", + "target": "src_api_router", + "confidence_score": 1.0 }, { - "source": "tests_test_region_config_testgetthresholds_test_seoul_code_returns_high", - "target": "src_data_region_config_get_thresholds", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "submodule_import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_region_config.py", - "source_location": "L14", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L11", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "src_api_router" }, { - "source": "tests_test_region_config_testgetthresholds_test_busan_code_returns_high", - "target": "src_data_region_config_get_thresholds", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_region_config.py", - "source_location": "L17", + "source_file": "src/api/router.py", + "source_location": "L61", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_61", + "target": "src_api_router_kakao_hint" }, { - "source": "tests_test_region_config_testgetthresholds_test_daegu_code_returns_medium", - "target": "src_data_region_config_get_thresholds", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_region_config.py", - "source_location": "L20", + "source_file": "src/api/router.py", + "source_location": "L1325", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_resolve_poi", + "target": "src_api_router_kakao_hint" }, { - "source": "tests_test_region_config_testgetthresholds_test_rural_code_returns_low", - "target": "src_data_region_config_get_thresholds", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_region_config.py", - "source_location": "L23", + "source_file": "src/api/router.py", + "source_location": "L1452", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_list_places", + "target": "src_api_router_kakao_cat_code" }, { - "source": "tests_test_region_config_testgetthresholds_test_none_returns_medium", - "target": "src_data_region_config_get_thresholds", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_region_config.py", - "source_location": "L26", + "source_file": "src/api/router.py", + "source_location": "L75", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_75", + "target": "src_api_router_kakao_cat_code" }, { - "source": "tests_test_region_config_testgetthresholds_test_unknown_code_returns_low", - "target": "src_data_region_config_get_thresholds", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_region_config.py", - "source_location": "L29", + "source_file": "src/api/router.py", + "source_location": "L1437", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_list_places", + "target": "src_api_router_extract_chosung" }, { - "source": "tests_test_repair_testtotalestimatedgain_test_sums_across_different_days", - "target": "src_explain_repair_repairresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_repair.py", - "source_location": "L201", + "source_file": "src/api/router.py", + "source_location": "L996", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_coord_index", + "target": "src_api_router_normalize" }, { - "source": "tests_test_repair_testtotalestimatedgain_test_sums_across_different_days", - "target": "src_explain_repair_deletionsuggestion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_repair.py", - "source_location": "L202", + "source_file": "src/api/router.py", + "source_location": "L1108", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_full_place_list", + "target": "src_api_router_normalize" }, { - "source": "tests_test_repair_testtotalestimatedgain_test_takes_max_of_alternatives_on_same_day", - "target": "src_explain_repair_repairresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_repair.py", - "source_location": "L208", + "source_file": "src/api/router.py", + "source_location": "L950", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_jeju_place_index", + "target": "src_api_router_normalize" }, { - "source": "tests_test_repair_testtotalestimatedgain_test_takes_max_of_alternatives_on_same_day", - "target": "src_explain_repair_deletionsuggestion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_repair.py", - "source_location": "L209", + "source_file": "src/api/router.py", + "source_location": "L1061", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_place_list", + "target": "src_api_router_normalize" }, { - "source": "tests_test_repair_testtotalestimatedgain_test_zero_when_empty", - "target": "src_explain_repair_repairresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_repair.py", - "source_location": "L215", + "source_file": "src/api/router.py", + "source_location": "L869", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_guess_dwell", + "target": "src_api_router_normalize" }, { - "source": "tests_test_repair_testtotalestimatedgain_test_included_in_to_dict", - "target": "src_explain_repair_repairresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_repair.py", - "source_location": "L218", + "source_file": "src/api/router.py", + "source_location": "L1444", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_list_places", + "target": "src_api_router_normalize" }, { - "source": "tests_test_repair_testtotalestimatedgain_test_included_in_to_dict", - "target": "src_explain_repair_deletionsuggestion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_repair.py", - "source_location": "L219", + "source_file": "src/api/router.py", + "source_location": "L1272", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_lookup_place", + "target": "src_api_router_normalize" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_hard_fail_returns_empty", - "target": "src_scoring_reward_engine_generate_rewards", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_reward_engine.py", - "source_location": "L18", + "source_file": "src/api/router.py", + "source_location": "L1499", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_monthly_congestion", + "target": "src_api_router_normalize" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_flow_generates_message", - "target": "src_scoring_reward_engine_generate_rewards", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_reward_engine.py", - "source_location": "L28", + "source_file": "src/api/router.py", + "source_location": "L1296", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_resolve_poi", + "target": "src_api_router_normalize" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_efficiency_generates_message", - "target": "src_scoring_reward_engine_generate_rewards", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_reward_engine.py", - "source_location": "L38", + "source_file": "src/api/router.py", + "source_location": "L1350", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_resolve_poi", + "target": "src_api_router_guess_dwell" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_low_travel_ratio_generates_message", - "target": "src_scoring_reward_engine_generate_rewards", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_reward_engine.py", - "source_location": "L48", + "source_file": "src/api/router.py", + "source_location": "L907", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_addr_to_region", + "target": "get" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_excellent_purpose_fit_generates_message", - "target": "src_scoring_reward_engine_generate_rewards", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_reward_engine.py", - "source_location": "L58", + "source_file": "src/api/router.py", + "source_location": "L1002", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_coord_index", + "target": "src_api_router_addr_to_region" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_no_warnings_generates_message", - "target": "src_scoring_reward_engine_generate_rewards", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_reward_engine.py", - "source_location": "L68", + "source_file": "src/api/router.py", + "source_location": "L1119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_full_place_list", + "target": "src_api_router_addr_to_region" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_zero_cluster_penalty_generates_message", - "target": "src_scoring_reward_engine_generate_rewards", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_reward_engine.py", - "source_location": "L78", + "source_file": "src/api/router.py", + "source_location": "L1449", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_list_places", + "target": "src_api_router_addr_to_region" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_perfect_plan_all_messages", - "target": "src_scoring_reward_engine_generate_rewards", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_reward_engine.py", - "source_location": "L88", + "source_file": "src/api/router.py", + "source_location": "L971", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_jeju_place_index", + "target": "src_api_router_parse_jeju_hours" }, { - "source": "tests_test_reward_engine_testgeneraterewards_test_mediocre_plan_few_messages", - "target": "src_scoring_reward_engine_generate_rewards", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_reward_engine.py", - "source_location": "L98", + "source_file": "src/api/router.py", + "source_location": "L923", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_923", + "target": "src_api_router_parse_jeju_hours" }, { - "source": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only", - "target": "src_scoring_theme_alignment_themealignmentjudge", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L32", + "source_file": "src/api/router.py", + "source_location": "L947", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_jeju_place_index", + "target": "get" }, { - "source": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L33", + "source_file": "src/api/router.py", + "source_location": "L934", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_934", + "target": "src_api_router_build_jeju_place_index" }, { - "source": "tests_test_theme_alignment_testnoapikey_test_skip_returns_informational_only", - "target": "src_scoring_theme_alignment_poiwithcategory", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L34", + "source_file": "src/api/router.py", + "source_location": "L1002", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_coord_index", + "target": "get" }, { - "source": "tests_test_theme_alignment_testclassifyscore_test_high_score_no_penalty", - "target": "src_scoring_theme_alignment_classify_score", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L43", + "source_file": "src/api/router.py", + "source_location": "L984", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_984", + "target": "src_api_router_build_coord_index" }, { - "source": "tests_test_theme_alignment_testclassifyscore_test_low_score_critical", - "target": "src_scoring_theme_alignment_classify_score", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L48", + "source_file": "src/api/router.py", + "source_location": "L1059", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_place_list", + "target": "get" }, { - "source": "tests_test_theme_alignment_testparsellmresponse_test_clean_json", - "target": "src_scoring_theme_alignment_parse_llm_response", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L56", + "source_file": "src/api/router.py", + "source_location": "L1037", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_1037", + "target": "src_api_router_build_place_list" }, { - "source": "tests_test_theme_alignment_testparsellmresponse_test_score_clamped_to_1", - "target": "src_scoring_theme_alignment_parse_llm_response", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L63", + "source_file": "src/api/router.py", + "source_location": "L1119", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_full_place_list", + "target": "get" }, { - "source": "tests_test_theme_alignment_testparsellmresponse_test_code_block_stripped", - "target": "src_scoring_theme_alignment_parse_llm_response", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L68", + "source_file": "src/api/router.py", + "source_location": "L1098", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_1098", + "target": "src_api_router_build_full_place_list" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_high_alignment_no_penalty", - "target": "src_scoring_theme_alignment_themealignmentjudge", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L80", + "source_file": "src/api/router.py", + "source_location": "L1228", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_build_monthly_congestion", + "target": "get" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_high_alignment_no_penalty", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L81", + "source_file": "src/api/router.py", + "source_location": "L1218", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_1218", + "target": "src_api_router_build_monthly_congestion" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_high_alignment_no_penalty", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L83", + "source_file": "src/api/router.py", + "source_location": "L1270", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_1270", + "target": "src_api_router_lookup_place" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical", - "target": "src_scoring_theme_alignment_themealignmentjudge", "relation": "calls", "context": "call", "confidence": "EXTRACTED", + "source_file": "src/api/router.py", + "source_location": "L1294", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L97", + "source": "src_api_router_resolve_poi", + "target": "src_api_router_lookup_place" + }, + { + "relation": "indirect_call", + "context": "argument", + "confidence": "INFERRED", + "source_file": "src/api/router.py", + "source_location": "L1552", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_api_router_resolve_coords", + "target": "src_api_router_resolve_poi" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical", - "target": "src_data_theme_taxonomy_userpreferences", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L98", + "source_file": "src/api/router.py", + "source_location": "L1295", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_resolve_poi", + "target": "get" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_low_alignment_critical", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L100", + "source_file": "src/api/router.py", + "source_location": "L1288", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_resolve_poi", + "target": "poi" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call", - "target": "src_scoring_theme_alignment_themealignmentjudge", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", + "source_file": "src/api/router.py", + "source_location": "L1288", + "weight": 1.0, + "_origin": "ast", "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L113", + "source": "src_api_router_resolve_poi", + "target": "poiinfo" + }, + { + "relation": "indirect_call", + "context": "argument", + "confidence": "INFERRED", + "source_file": "src/api/router.py", + "source_location": "L1580", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 0.5, + "source": "src_api_router_validate_plan", + "target": "src_api_router_resolve_poi" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L114", + "source_file": "src/api/router.py", + "source_location": "L1547", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_resolve_coords", + "target": "poi" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_cache_hit_skips_second_call", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L115", + "source_file": "src/api/router.py", + "source_location": "L1394", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_calc_reliability_score", + "target": "poiinfo" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational", - "target": "src_scoring_theme_alignment_themealignmentjudge", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L126", + "source_file": "src/api/router.py", + "source_location": "L1397", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_calc_reliability_score", + "target": "get" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational", - "target": "src_data_theme_taxonomy_userpreferences", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L127", + "source_file": "src/api/router.py", + "source_location": "L1633", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_validate_plan", + "target": "src_api_router_calc_reliability_score" }, { - "source": "tests_test_theme_alignment_testevaluatewithmockclient_test_llm_failure_returns_informational", - "target": "src_scoring_theme_alignment_poiwithcategory", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_alignment.py", - "source_location": "L128", + "source_file": "src/api/router.py", + "source_location": "L1404", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_get_pipeline", + "target": "validatorpipeline" }, { - "source": "tests_test_theme_taxonomy_testuserpreferences_test_valid_input", - "target": "src_data_theme_taxonomy_userpreferences", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L29", + "source_file": "src/api/router.py", + "source_location": "L1618", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_validate_plan", + "target": "src_api_router_get_pipeline" }, { - "source": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_place_type_raises", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "decorator", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L35", + "source_file": "src/api/main.py", + "source_location": "L71", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main_health", + "target": "get", + "confidence_score": 1.0 }, { - "source": "tests_test_theme_taxonomy_testuserpreferences_test_invalid_style_raises", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L39", + "source_file": "src/api/main.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "source": "src_api_main_index", + "target": "get", + "confidence_score": 1.0 }, { - "source": "tests_test_theme_taxonomy_testuserpreferences_test_empty_both_axes_raises", - "target": "src_data_theme_taxonomy_userpreferences", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L43", + "source_file": "src/api/main.py", + "source_location": "L51", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "source": "src_api_main_manifest", + "target": "get", + "confidence_score": 1.0 }, { - "source": "tests_test_theme_taxonomy_testmatchesplacetype_test_mountain_matches_na04", - "target": "src_data_theme_taxonomy_matches_place_type", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L49", + "source_file": "src/api/main.py", + "source_location": "L59", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "source": "src_api_main_service_worker", + "target": "get", + "confidence_score": 1.0 }, { - "source": "tests_test_theme_taxonomy_testmatchesplacetype_test_beach_matches_na12", - "target": "src_data_theme_taxonomy_matches_place_type", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "decorator", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L52", + "source_file": "src/api/router.py", + "source_location": "L1411", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_list_places", + "target": "get" }, { - "source": "tests_test_theme_taxonomy_testmatchesplacetype_test_festival_matches_content_type_15", - "target": "src_data_theme_taxonomy_matches_place_type", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "decorator", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L55", + "source_file": "src/api/router.py", + "source_location": "L1505", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_list_regions", + "target": "get" }, { - "source": "tests_test_theme_taxonomy_testmatchesplacetype_test_no_match", - "target": "src_data_theme_taxonomy_matches_place_type", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "decorator", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L59", + "source_file": "src/api/router.py", + "source_location": "L1493", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_monthly_congestion", + "target": "get" }, { - "source": "tests_test_theme_taxonomy_testgetplacetypesfor_test_mountain_code_returns_list", - "target": "src_data_theme_taxonomy_get_place_types_for", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L64", + "source_file": "src/api/router.py", + "source_location": "L1532", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_parse_document", + "target": "get" }, { - "source": "tests_test_theme_taxonomy_testgetplacetypesfor_test_no_code_returns_empty", - "target": "src_data_theme_taxonomy_get_place_types_for", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_theme_taxonomy.py", - "source_location": "L68", + "source_file": "src/api/router.py", + "source_location": "L1676", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_validate_plan", + "target": "get" }, { - "source": "tests_test_vrptw_engine_testhaversinematrix_test_same_point_is_zero", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L56", + "source_file": "src/api/router.py", + "source_location": "L1412", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_list_places", + "target": "placesresponse" }, { - "source": "tests_test_vrptw_engine_testhaversinematrix_test_known_distance", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L62", + "source_file": "src/api/router.py", + "source_location": "L1420", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_1420", + "target": "src_api_router_list_places" }, { - "source": "tests_test_vrptw_engine_testhaversinematrix_test_symmetry", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L67", + "source_file": "src/api/router.py", + "source_location": "L1521", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_parse_text", + "target": "parsedplanresponse" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_hit", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L78", + "source_file": "src/api/router.py", + "source_location": "L1521", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_parse_text", + "target": "parsetextrequest" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_miss_falls_back_to_haversine", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L82", + "source_file": "src/api/router.py", + "source_location": "L1522", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_1522", + "target": "src_api_router_parse_text" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix_test_cache_miss_falls_back_to_haversine", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L84", + "source_file": "src/api/router.py", + "source_location": "L1530", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_parse_document", + "target": "parsedplanresponse" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix_test_reverse_key_fallback", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L90", + "source_file": "src/api/router.py", + "source_location": "L1531", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_1531", + "target": "src_api_router_parse_document" }, { - "source": "tests_test_vrptw_engine_testcachedroutematrix_test_load_from_dict", - "target": "src_validation_vrptw_engine_cachedroutematrix", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L95", + "source_file": "src/api/router.py", + "source_location": "L1548", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_rationale_1548", + "target": "src_api_router_resolve_coords" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_engine_with_haversine", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L107", + "source_file": "src/api/router.py", + "source_location": "L1547", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_resolve_coords", + "target": "dayplanweb" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L111", + "source_file": "src/api/router.py", + "source_location": "L1567", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_validate_plan", + "target": "validaterequest" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_day1_must_end_at_depot", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L113", + "source_file": "src/api/router.py", + "source_location": "L1567", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_api_router_validate_plan", + "target": "validateresponse" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_middle_day_must_start_and_end_at_depot", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L127", + "source_file": "src/data/place_resolver.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver", + "target": "src_data_place_resolver_externalplaceresolver" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_test_2n3d_middle_day_must_start_and_end_at_depot", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L129", + "source_file": "src/data/place_resolver.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver", + "target": "src_data_place_resolver_normalize" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L141", + "source_file": "src/data/place_resolver.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_rationale_1", + "target": "src_data_place_resolver" }, { - "source": "tests_test_vrptw_engine_testdepotconstraint_test_1n2d_no_depot_constraint_applied", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L143", + "source_file": "tests/test_place_resolver.py", + "source_location": "L4", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_place_resolver", + "target": "src_data_place_resolver" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_engine", - "target": "src_validation_vrptw_engine_haversinematrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L163", + "source_file": "src/data/place_resolver.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_externalplaceresolver_resolve", + "target": "src_data_place_resolver_normalize" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_feasible_schedule_passes", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L166", + "source_file": "src/data/place_resolver.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_externalplaceresolver", + "target": "src_data_place_resolver_externalplaceresolver_init" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_feasible_schedule_passes", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L167", + "source_file": "src/data/place_resolver.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_externalplaceresolver", + "target": "src_data_place_resolver_externalplaceresolver_resolve" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L177", + "source_file": "src/data/place_resolver.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_externalplaceresolver", + "target": "src_data_place_resolver_externalplaceresolver_search_keyword_list" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_infeasible_close_time_triggers_critical", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L178", + "source_file": "src/data/place_resolver.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "context": "return_type", + "confidence_score": 1.0, + "source": "src_data_place_resolver_externalplaceresolver_from_settings", + "target": "src_data_place_resolver_externalplaceresolver" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L190", + "source_file": "src/data/place_resolver.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_rationale_17", + "target": "src_data_place_resolver_externalplaceresolver" }, { - "source": "tests_test_vrptw_engine_testtimewindowfeasibility_test_safety_margin_warning", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L191", + "source_file": "src/data/place_resolver.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_externalplaceresolver_init", + "target": "kakaolocalclient" }, { - "source": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L206", + "source_file": "src/data/place_resolver.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_externalplaceresolver_init", + "target": "tourapiclient" }, { - "source": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L206", + "source_file": "src/data/place_resolver.py", + "source_location": "L28", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_externalplaceresolver_from_settings", + "target": "settings" }, { - "source": "tests_test_vrptw_engine_testefficiencygap_test_optimal_order_same_as_user_gives_zero_gap", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L207", + "source_file": "src/data/place_resolver.py", + "source_location": "L34", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_externalplaceresolver_resolve", + "target": "externalplaceresolution" }, { - "source": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "generic_arg", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L214", + "source_file": "src/data/place_resolver.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_externalplaceresolver_search_keyword_list", + "target": "kakaoplace" }, { - "source": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L214", + "source_file": "src/data/place_resolver.py", + "source_location": "L85", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "src_data_place_resolver_rationale_85", + "target": "src_data_place_resolver_externalplaceresolver_search_keyword_list" }, { - "source": "tests_test_vrptw_engine_testefficiencygap_test_reversed_inefficient_route_shows_gap", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L215", + "source_file": "tests/test_place_resolver.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_place_resolver", + "target": "tests_test_place_resolver_test_resolver_falls_back_to_kakao_then_geocode" }, { - "source": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L232", + "source_file": "tests/test_place_resolver.py", + "source_location": "L7", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_place_resolver", + "target": "tests_test_place_resolver_test_resolver_prefers_tour_api_and_returns_pydantic_model" }, { - "source": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L232", + "source_file": "tests/test_place_resolver.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_place_resolver_rationale_1", + "target": "tests_test_place_resolver" }, { - "source": "tests_test_vrptw_engine_testfatiguescore_test_12h_schedule_no_fatigue_penalty", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L233", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L12", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "src_api_main" }, { - "source": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L245", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_jeju_xlsx_index" }, { - "source": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L245", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L123", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_geocode_fallback_used_when_keyword_search_fails" }, { - "source": "tests_test_vrptw_engine_testfatiguescore_test_long_schedule_triggers_fatigue", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L246", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L95", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_jeju_index_defaults_pet_friendly_false_when_blank" }, { - "source": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L259", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L84", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_jeju_index_falls_back_to_legacy_hours_when_unmatched" }, { - "source": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L259", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L74", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_jeju_index_prefers_tourapi_hours_over_legacy_text" }, { - "source": "tests_test_vrptw_engine_testortoolsdegradation_test_missing_ortools_still_returns_result", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L265", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L79", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_jeju_index_sets_contentid_when_tourapi_matched" }, { - "source": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L279", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L90", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_jeju_index_sets_pet_friendly_flag_when_y" }, { - "source": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L279", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L152", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_resolve_coords_endpoint_returns_poi_per_place" }, { - "source": "tests_test_vrptw_engine_testriskscore_test_risk_score_in_0_100", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L280", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L200", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_resolve_coords_rejects_unresolved_place" }, { - "source": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L285", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L171", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_resolve_poi_can_use_tour_api_before_kakao" }, { - "source": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L285", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L100", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_resolve_poi_propagates_pet_friendly_flag" }, { - "source": "tests_test_vrptw_engine_testriskscore_test_pass_fail_threshold", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L286", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L139", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_seoul_fallback_when_geocode_also_fails" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation_test_empty_day_raises", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L336", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L215", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_test_validate_uses_external_place_resolver" }, { - "source": "tests_test_vrptw_engine_testmodelvalidation_test_empty_days_raises", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L340", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L29", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi", + "target": "tests_test_resolve_poi_write_jeju_xlsx" }, { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L363", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi_rationale_1", + "target": "tests_test_resolve_poi" }, { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", - "target": "src_data_models_vrptwday", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L363", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L41", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi_jeju_xlsx_index", + "target": "tests_test_resolve_poi_write_jeju_xlsx" }, { - "source": "tests_test_vrptw_engine_testefficiencygapthreshold_test_gap_over_threshold_adds_warning", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "references", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L364", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L38", "weight": 1.0, - "_origin": "ast" + "context": "decorator", + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi_jeju_xlsx_index", + "target": "fixture" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L378", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L40", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi_rationale_40", + "target": "tests_test_resolve_poi_jeju_xlsx_index" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L380", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L101", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi_rationale_101", + "target": "tests_test_resolve_poi_test_resolve_poi_propagates_pet_friendly_flag" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_returns_per_day_comparison", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L384", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L124", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi_rationale_124", + "target": "tests_test_resolve_poi_test_geocode_fallback_used_when_keyword_search_fails" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L392", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L140", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi_rationale_140", + "target": "tests_test_resolve_poi_test_seoul_fallback_when_geocode_also_fails" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L394", + "source_file": "tests/test_resolve_poi.py", + "source_location": "L153", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_resolve_poi_rationale_153", + "target": "tests_test_resolve_poi_test_resolve_coords_endpoint_returns_poi_per_place" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_multi_day_user_total_travel_is_sum", - "target": "src_validation_vrptw_engine_haversinematrix", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L398", + "source_file": "tests/test_dependency_manifests.py", + "source_location": "L10", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dependency_manifests", + "target": "tests_test_dependency_manifests_package_name" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel", - "target": "src_data_models_vrptwrequest", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L405", + "source_file": "tests/test_dependency_manifests.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dependency_manifests", + "target": "tests_test_dependency_manifests_test_runtime_dependency_manifests_are_in_sync" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel", - "target": "src_data_models_vrptwday", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L405", + "source_file": "tests/test_dependency_manifests.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dependency_manifests_rationale_1", + "target": "tests_test_dependency_manifests" }, { - "source": "tests_test_vrptw_engine_testmultidayresult_test_single_place_day_no_travel", - "target": "src_validation_vrptw_engine_haversinematrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L406", + "source_file": "tests/test_dependency_manifests.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_dependency_manifests_test_runtime_dependency_manifests_are_in_sync", + "target": "tests_test_dependency_manifests_package_name" }, { - "source": "gun_scripts_build_itinerary_excel_main", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "gun/scripts/build_itinerary_excel.py", - "source_location": "L453", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever", + "target": "tests_test_evidence_retriever_catalog" }, { - "source": "gun_scripts_build_travel_matrix_main", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L177", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever", + "target": "tests_test_evidence_retriever_test_find_nearby_returns_local_alternatives" }, { - "source": "gun_scripts_fetch_tourapi_to_csv_main", - "target": "gun_scripts_fetch_tourapi_to_csv_checkpoint_load", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L897", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever", + "target": "tests_test_evidence_retriever_test_missing_catalog_is_disabled" }, { - "source": "scripts_build_poi_dataset_main", - "target": "src_data_wellness_api_wellnessapiclient_from_settings", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L69", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever", + "target": "tests_test_evidence_retriever_test_search_places_reads_local_catalog" }, { - "source": "scripts_build_poi_dataset_main", - "target": "src_data_barrier_free_api_barrierfreeapiclient_from_settings", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "scripts/build_poi_dataset.py", - "source_location": "L70", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever_catalog", + "target": "path" }, { - "source": "scripts_demo_live_e2e_main", - "target": "src_data_graph_retriever_graphretriever_from_env", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "scripts/demo_live_e2e.py", - "source_location": "L28", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L36", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever_test_find_nearby_returns_local_alternatives", + "target": "tests_test_evidence_retriever_catalog" }, { - "source": "scripts_fetch_jeju_hours_main", - "target": "src_data_tour_api_tourapiclient_from_settings", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "scripts/fetch_jeju_hours.py", - "source_location": "L44", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L27", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever_test_search_places_reads_local_catalog", + "target": "tests_test_evidence_retriever_catalog" }, { - "source": "scripts_geocode_jeju_missing_coords_main", - "target": "src_data_kakao_local_kakaolocalclient_from_env", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "scripts/geocode_jeju_missing_coords.py", - "source_location": "L32", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L35", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever_test_find_nearby_returns_local_alternatives", + "target": "path" }, { - "source": "src_explain_explain_engine_explainengine_init", - "target": "src_data_graph_retriever_graphretriever_from_env", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/explain_engine.py", - "source_location": "L436", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L20", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever_test_missing_catalog_is_disabled", + "target": "path" }, { - "source": "src_explain_pipeline_validatorpipeline_init", - "target": "src_scoring_bonus_engine_bonusengine_from_dataset", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "parameter_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/pipeline.py", - "source_location": "L113", + "source_file": "tests/test_evidence_retriever.py", + "source_location": "L26", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "confidence_score": 1.0, + "source": "tests_test_evidence_retriever_test_search_places_reads_local_catalog", + "target": "path" }, { - "source": "src_explain_repair_repairengine_init", - "target": "src_data_restaurant_catalog_restaurantcatalog_from_default", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "src/explain/repair.py", - "source_location": "L106", + "source_file": "src/api/main.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main", + "target": "src_api_main_health", + "confidence_score": 1.0 }, { - "source": "tests_test_bonus_engine_testfromdataset_test_missing_files_give_empty_engine", - "target": "src_scoring_bonus_engine_bonusengine_from_dataset", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_bonus_engine.py", - "source_location": "L189", + "source_file": "src/api/main.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main", + "target": "src_api_main_index", + "confidence_score": 1.0 }, { - "source": "tests_test_bonus_engine_testfromdataset_test_loads_from_json_files", - "target": "src_scoring_bonus_engine_bonusengine_from_dataset", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_bonus_engine.py", - "source_location": "L205", + "source_file": "src/api/main.py", + "source_location": "L52", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main", + "target": "src_api_main_manifest", + "confidence_score": 1.0 }, { - "source": "tests_test_bonus_engine_testfromdataset_test_zero_coords_skipped", - "target": "src_scoring_bonus_engine_bonusengine_from_dataset", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_bonus_engine.py", - "source_location": "L217", + "source_file": "src/api/main.py", + "source_location": "L60", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main", + "target": "src_api_main_service_worker", + "confidence_score": 1.0 }, { - "source": "tests_test_graph_retriever_test_from_env_reads_variables", - "target": "src_data_graph_retriever_graphretriever_from_env", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_graph_retriever.py", - "source_location": "L92", + "source_file": "src/api/main.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main", + "target": "src_api_security", + "confidence_score": 1.0 }, { - "source": "tests_test_hard_fail_testhelpers_test_time_to_min", - "target": "src_validation_hard_fail_hardfaildetector_time_to_min", - "relation": "calls", - "context": "call", + "relation": "imports", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_hard_fail.py", - "source_location": "L73", + "source_file": "src/api/main.py", + "source_location": "L13", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main", + "target": "src_api_security_security_middleware", + "confidence_score": 1.0 }, { - "source": "tests_test_hard_fail_testhelpers_test_min_to_time", - "target": "src_validation_hard_fail_hardfaildetector_min_to_time", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_hard_fail.py", - "source_location": "L76", + "source_file": "tests/test_health.py", + "source_location": "L6", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_health", + "target": "src_api_main", + "confidence_score": 1.0 }, { - "source": "tests_test_hard_fail_testhelpers_test_time_to_min_midnight", - "target": "src_validation_hard_fail_hardfaildetector_time_to_min", - "relation": "calls", - "context": "call", + "relation": "imports_from", + "context": "import", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_hard_fail.py", - "source_location": "L79", + "source_file": "tests/test_security.py", + "source_location": "L5", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_security", + "target": "src_api_main", + "confidence_score": 1.0 }, { - "source": "tests_test_hard_fail_testhelpers_test_min_to_time_midnight", - "target": "src_validation_hard_fail_hardfaildetector_min_to_time", - "relation": "calls", - "context": "call", + "relation": "references", + "context": "return_type", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_hard_fail.py", - "source_location": "L82", + "source_file": "src/api/main.py", + "source_location": "L72", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main_health", + "target": "jsonresponse", + "confidence_score": 1.0 }, { - "source": "tests_test_hard_fail_testhelpers_test_min_to_time_wraps_past_24h", - "target": "src_validation_hard_fail_hardfaildetector_min_to_time", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_hard_fail.py", - "source_location": "L85", + "source_file": "src/api/main.py", + "source_location": "L73", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_main_rationale_73", + "target": "src_api_main_health", + "confidence_score": 1.0 }, { - "source": "tests_test_kakao_matrix_testfromenv_test_no_key_raises", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", "relation": "calls", "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L206", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "src/api/security.py", + "source_location": "L51", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security_security_middleware", + "target": "jsonresponse" }, { - "source": "tests_test_kakao_matrix_testfromenv_test_uses_mobility_key_first", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L211", + "source_file": "src/api/security.py", + "source_location": "L39", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security", + "target": "src_api_security_client_key", + "confidence_score": 1.0 }, { - "source": "tests_test_kakao_matrix_testfromenv_test_falls_back_to_rest_key", - "target": "src_validation_kakao_matrix_kakaomobilitymatrix_from_env", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_kakao_matrix.py", - "source_location": "L217", + "source_file": "src/api/security.py", + "source_location": "L16", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security", + "target": "src_api_security_inmemoryratelimiter", + "confidence_score": 1.0 }, { - "source": "tests_test_resolve_poi_jeju_xlsx_index", - "target": "src_api_router_build_jeju_place_index", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_resolve_poi.py", - "source_location": "L48", + "source_file": "src/api/security.py", + "source_location": "L43", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security", + "target": "src_api_security_security_middleware", + "confidence_score": 1.0 }, { - "source": "tests_test_resolve_poi_test_jeju_index_prefers_tourapi_hours_over_legacy_text", - "target": "src_api_router_normalize", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_resolve_poi.py", - "source_location": "L52", + "source_file": "src/api/security.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security_rationale_1", + "target": "src_api_security", + "confidence_score": 1.0 }, { - "source": "tests_test_resolve_poi_test_jeju_index_sets_contentid_when_tourapi_matched", - "target": "src_api_router_normalize", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_resolve_poi.py", - "source_location": "L57", + "source_file": "src/api/security.py", + "source_location": "L23", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security_inmemoryratelimiter", + "target": "src_api_security_inmemoryratelimiter_allow", + "confidence_score": 1.0 }, { - "source": "tests_test_resolve_poi_test_jeju_index_falls_back_to_legacy_hours_when_unmatched", - "target": "src_api_router_normalize", - "relation": "calls", - "context": "call", + "relation": "method", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_resolve_poi.py", - "source_location": "L62", + "source_file": "src/api/security.py", + "source_location": "L19", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security_inmemoryratelimiter", + "target": "src_api_security_inmemoryratelimiter_init", + "confidence_score": 1.0 }, { - "source": "tests_test_resolve_poi_test_jeju_index_sets_pet_friendly_flag_when_y", - "target": "src_api_router_normalize", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_resolve_poi.py", - "source_location": "L68", + "source_file": "src/api/security.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security_rationale_17", + "target": "src_api_security_inmemoryratelimiter", + "confidence_score": 1.0 }, { - "source": "tests_test_resolve_poi_test_jeju_index_defaults_pet_friendly_false_when_blank", - "target": "src_api_router_normalize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_resolve_poi.py", - "source_location": "L73", + "source_file": "src/api/security.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security_security_middleware", + "target": "src_api_security_inmemoryratelimiter_allow", + "confidence_score": 1.0 }, { - "source": "tests_test_resolve_poi_test_resolve_poi_propagates_pet_friendly_flag", - "target": "src_api_router_normalize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_resolve_poi.py", - "source_location": "L81", + "source_file": "src/api/security.py", + "source_location": "L64", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security_security_middleware", + "target": "src_api_security_client_key", + "confidence_score": 1.0 }, { - "source": "tests_test_resolve_poi_test_resolve_poi_propagates_pet_friendly_flag", - "target": "src_api_router_resolve_poi", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_resolve_poi.py", - "source_location": "L89", + "source_file": "src/api/security.py", + "source_location": "L44", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "src_api_security_rationale_44", + "target": "src_api_security_security_middleware", + "confidence_score": 1.0 }, { - "source": "tests_test_resolve_poi_test_geocode_fallback_used_when_keyword_search_fails", - "target": "src_api_router_resolve_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_resolve_poi.py", - "source_location": "L100", + "source_file": "tests/test_health.py", + "source_location": "L17", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_health", + "target": "tests_test_health_test_health_returns_503_when_required_data_is_missing", + "confidence_score": 1.0 }, { - "source": "tests_test_resolve_poi_test_seoul_fallback_when_geocode_also_fails", - "target": "src_api_router_resolve_poi", - "relation": "calls", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_resolve_poi.py", - "source_location": "L116", + "source_file": "tests/test_health.py", + "source_location": "L9", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_health", + "target": "tests_test_health_test_health_returns_ok_when_required_data_is_loaded", + "confidence_score": 1.0 }, { - "source": "tests_test_vrptw_engine_test_cached_matrix_from_actual_file", - "target": "src_validation_vrptw_engine_cachedroutematrix_from_file", - "relation": "calls", - "context": "call", + "relation": "rationale_for", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "tests/test_vrptw_engine.py", - "source_location": "L452", + "source_file": "tests/test_health.py", + "source_location": "L1", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_health_rationale_1", + "target": "tests_test_health", + "confidence_score": 1.0 }, { - "source": "gun_scripts_build_travel_matrix_resolve_base_dir", - "target": "gun_scripts_build_ppt_path", - "relation": "references", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "gun/scripts/build_travel_matrix.py", - "source_location": "L47", + "source_file": "tests/test_security.py", + "source_location": "L8", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_security", + "target": "tests_test_security_test_production_requires_bearer_token", + "confidence_score": 1.0 }, { - "source": "gun_scripts_fetch_tourapi_to_csv_resolve_base_dir", - "target": "gun_scripts_build_ppt_path", - "relation": "references", - "context": "call", + "relation": "contains", "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "gun/scripts/fetch_tourapi_to_csv.py", - "source_location": "L137", + "source_file": "tests/test_security.py", + "source_location": "L22", "weight": 1.0, - "_origin": "ast" + "_origin": "ast", + "source": "tests_test_security", + "target": "tests_test_security_test_production_without_auth_token_fails_closed", + "confidence_score": 1.0 } ], "hyperedges": [], - "input_tokens": 0, - "output_tokens": 0 + "built_at_commit": "c7c66a474d9485c27223e4763929802e961ad9be" } \ No newline at end of file diff --git a/graphify-out/manifest.json b/graphify-out/manifest.json index 3725280..bb25ec5 100644 --- a/graphify-out/manifest.json +++ b/graphify-out/manifest.json @@ -175,9 +175,9 @@ "semantic_hash": "ce948a97a6811024de015cf9ce79d638" }, "phases/3-graph/index.json": { - "mtime": 1777451253.56582, - "ast_hash": "aa318d13181f1a2e4c03f87d330b602d", - "semantic_hash": "aa318d13181f1a2e4c03f87d330b602d" + "mtime": 1789495293.676658, + "ast_hash": "149af2e3b02909b3ea7cfa35bc673f97", + "semantic_hash": "149af2e3b02909b3ea7cfa35bc673f97" }, "phases/4-validation/index.json": { "mtime": 1777451253.5661435, @@ -195,19 +195,14 @@ "semantic_hash": "2d1db8cdcfc97a5724732d226d59dc59" }, "phases/index.json": { - "mtime": 1777523379.983558, - "ast_hash": "6085025a092d0575637c1806feaff58c", - "semantic_hash": "6085025a092d0575637c1806feaff58c" + "mtime": 1789493326.8750117, + "ast_hash": "a329e46e0466c3c8e7e51122843fcc21", + "semantic_hash": "a329e46e0466c3c8e7e51122843fcc21" }, "pyproject.toml": { - "mtime": 1786589332.0267932, - "ast_hash": "eb94f4e2b4ed51f37b591ec9aa9cba4b", - "semantic_hash": "eb94f4e2b4ed51f37b591ec9aa9cba4b" - }, - "scripts/build_knowledge_graph.py": { - "mtime": 1785584052.3065748, - "ast_hash": "0def2652ee48fc99da8a8d88a4d7f54b", - "semantic_hash": "0def2652ee48fc99da8a8d88a4d7f54b" + "mtime": 1789207502.4444864, + "ast_hash": "cfde15b077f52348fb2e9f3161789e54", + "semantic_hash": "cfde15b077f52348fb2e9f3161789e54" }, "scripts/build_poi_dataset.py": { "mtime": 1777738552.4729176, @@ -230,9 +225,9 @@ "semantic_hash": "607745e1d0883c05b8702bd18c89a3bb" }, "scripts/demo_live_e2e.py": { - "mtime": 1785585693.7232184, - "ast_hash": "af8913359b7323311a2e7f0ae067137b", - "semantic_hash": "af8913359b7323311a2e7f0ae067137b" + "mtime": 1789493068.1425552, + "ast_hash": "8d588bb8772950ce33df99af08699951", + "semantic_hash": "8d588bb8772950ce33df99af08699951" }, "scripts/execute.py": { "mtime": 1777451253.5841513, @@ -259,16 +254,6 @@ "ast_hash": "a494ba184e1630033ab77b9afa486a8a", "semantic_hash": "a494ba184e1630033ab77b9afa486a8a" }, - "scripts/load_knowledge_graph_neo4j.py": { - "mtime": 1785583919.1200502, - "ast_hash": "da3caa98ff7d8808cad81fbe2cf22f49", - "semantic_hash": "da3caa98ff7d8808cad81fbe2cf22f49" - }, - "scripts/neo4j_coverage_analysis.py": { - "mtime": 1777520076.5689738, - "ast_hash": "ef54939459abe5bbfa09469e11e24ff2", - "semantic_hash": "ef54939459abe5bbfa09469e11e24ff2" - }, "scripts/test_execute.py": { "mtime": 1777451253.5842624, "ast_hash": "3b410dd3b98c54a6f4953b194061faa8", @@ -290,19 +275,19 @@ "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" }, "src/api/main.py": { - "mtime": 1785587795.1309295, - "ast_hash": "81767a349f90b701c89a55e7108aa8ec", - "semantic_hash": "81767a349f90b701c89a55e7108aa8ec" + "mtime": 1789634985.1701758, + "ast_hash": "6a0177253d359d503506794451538152", + "semantic_hash": "6a0177253d359d503506794451538152" }, "src/api/router.py": { - "mtime": 1786783687.653695, - "ast_hash": "53585ea2a562963e3cd97d83ffcc7929", - "semantic_hash": "53585ea2a562963e3cd97d83ffcc7929" + "mtime": 1789494814.740468, + "ast_hash": "19a1e98c7d90189eff0e78db189c22b4", + "semantic_hash": "19a1e98c7d90189eff0e78db189c22b4" }, "src/api/schemas.py": { - "mtime": 1786783667.34905, - "ast_hash": "151d032a0cb6e3aa607dd69444b66bcd", - "semantic_hash": "151d032a0cb6e3aa607dd69444b66bcd" + "mtime": 1789492862.066155, + "ast_hash": "af0e0803ebff1a042370c6959ca1fa3b", + "semantic_hash": "af0e0803ebff1a042370c6959ca1fa3b" }, "src/api/static/manifest.json": { "mtime": 1780124687.4502513, @@ -320,69 +305,64 @@ "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" }, "src/data/barrier_free_api.py": { - "mtime": 1777781991.1116767, - "ast_hash": "f4c68868de5f59953d9337dd2726d870", - "semantic_hash": "f4c68868de5f59953d9337dd2726d870" + "mtime": 1789207859.462057, + "ast_hash": "e6d409a8198b65098e377bc99614fdc0", + "semantic_hash": "e6d409a8198b65098e377bc99614fdc0" }, "src/data/dwell_db.py": { - "mtime": 1777451253.5845017, - "ast_hash": "b39f136229c23460b924bfe70c99ee43", - "semantic_hash": "b39f136229c23460b924bfe70c99ee43" - }, - "src/data/graph_retriever.py": { - "mtime": 1786616520.125144, - "ast_hash": "6d15df0ea351b042c42534e515e71545", - "semantic_hash": "6d15df0ea351b042c42534e515e71545" + "mtime": 1789207859.4631193, + "ast_hash": "4369bb6e30d1118b9d1eb407d6ad1265", + "semantic_hash": "4369bb6e30d1118b9d1eb407d6ad1265" }, "src/data/hours_db.py": { - "mtime": 1777774502.3764617, - "ast_hash": "9d61df5189ab67bf8a01a3c4a5324d7c", - "semantic_hash": "9d61df5189ab67bf8a01a3c4a5324d7c" + "mtime": 1789207859.462902, + "ast_hash": "37dae0ed3d91203c5d112b2046246690", + "semantic_hash": "37dae0ed3d91203c5d112b2046246690" }, "src/data/kakao_local.py": { - "mtime": 1785334192.9340384, - "ast_hash": "4f347b60a20e201308d309b5608a46af", - "semantic_hash": "4f347b60a20e201308d309b5608a46af" + "mtime": 1789207859.4634447, + "ast_hash": "6f706044b489670d48980f59dd1642d1", + "semantic_hash": "6f706044b489670d48980f59dd1642d1" }, "src/data/models.py": { - "mtime": 1786783617.9840896, - "ast_hash": "52dc9b4955b0b9b8927520c0546a392c", - "semantic_hash": "52dc9b4955b0b9b8927520c0546a392c" + "mtime": 1789494460.6322327, + "ast_hash": "add73c4b96ddeacce791cbffd007d65e", + "semantic_hash": "add73c4b96ddeacce791cbffd007d65e" }, "src/data/party_config.py": { - "mtime": 1777721907.7956548, - "ast_hash": "cf169b5e02aa957fb03ef5bbda4e5c68", - "semantic_hash": "cf169b5e02aa957fb03ef5bbda4e5c68" + "mtime": 1789207859.464857, + "ast_hash": "7916855d211bb137aa1d289dfb4b5a96", + "semantic_hash": "7916855d211bb137aa1d289dfb4b5a96" }, "src/data/region_config.py": { - "mtime": 1777718481.3908644, - "ast_hash": "05bc8c3245e9db27d8b821a565bd5a83", - "semantic_hash": "05bc8c3245e9db27d8b821a565bd5a83" + "mtime": 1789207859.464843, + "ast_hash": "9bd8426e8b4df8eb9cc29307d98d42cd", + "semantic_hash": "9bd8426e8b4df8eb9cc29307d98d42cd" }, "src/data/restaurant_catalog.py": { - "mtime": 1786616398.4857664, - "ast_hash": "ab5539e7ca5dcbcbd041e3d2e325b6a2", - "semantic_hash": "ab5539e7ca5dcbcbd041e3d2e325b6a2" + "mtime": 1789207859.4648602, + "ast_hash": "2bc08cebcbf6b343e550ec1d78b1bae6", + "semantic_hash": "2bc08cebcbf6b343e550ec1d78b1bae6" }, "src/data/seoul_citydata_client.py": { - "mtime": 1777523278.3714013, - "ast_hash": "08238f1cd346d828385a5d79e5e91f6c", - "semantic_hash": "08238f1cd346d828385a5d79e5e91f6c" + "mtime": 1789207859.464888, + "ast_hash": "97c1f0f3bd25606cf2ffc4694b9400b5", + "semantic_hash": "97c1f0f3bd25606cf2ffc4694b9400b5" }, "src/data/theme_taxonomy.py": { - "mtime": 1777451253.5846374, - "ast_hash": "da4875d28460fb6ade1741f46e97ca73", - "semantic_hash": "da4875d28460fb6ade1741f46e97ca73" + "mtime": 1789207859.4650805, + "ast_hash": "5de4c4647c599f308de098bf6b57e0c5", + "semantic_hash": "5de4c4647c599f308de098bf6b57e0c5" }, "src/data/tour_api.py": { - "mtime": 1777785284.9394975, - "ast_hash": "9761a387188ce0dbf7b455c9657430d0", - "semantic_hash": "9761a387188ce0dbf7b455c9657430d0" + "mtime": 1789493629.3732123, + "ast_hash": "11bb4e1f879b1cdd37dae6abff5867ef", + "semantic_hash": "11bb4e1f879b1cdd37dae6abff5867ef" }, "src/data/wellness_api.py": { - "mtime": 1777869280.2927735, - "ast_hash": "32fe6ce7ee2798eeaab1957851b8fd2d", - "semantic_hash": "32fe6ce7ee2798eeaab1957851b8fd2d" + "mtime": 1789207859.4618912, + "ast_hash": "fca3960803989a93bcd2ab328e47f128", + "semantic_hash": "fca3960803989a93bcd2ab328e47f128" }, "src/explain/__init__.py": { "mtime": 1777738407.0960405, @@ -390,34 +370,29 @@ "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" }, "src/explain/explain_engine.py": { - "mtime": 1786779975.226672, - "ast_hash": "ed1eebee75e49690ffcab9db86321bed", - "semantic_hash": "ed1eebee75e49690ffcab9db86321bed" + "mtime": 1789207887.0595918, + "ast_hash": "7be3725d9a74d204b30ddb1b883d93cc", + "semantic_hash": "7be3725d9a74d204b30ddb1b883d93cc" }, "src/explain/pipeline.py": { - "mtime": 1786851619.871098, - "ast_hash": "d25194b2822b0f08b85dafe626af1b98", - "semantic_hash": "d25194b2822b0f08b85dafe626af1b98" + "mtime": 1789207859.4622772, + "ast_hash": "8e61b9120969909cdb23de5d11adb386", + "semantic_hash": "8e61b9120969909cdb23de5d11adb386" }, "src/explain/plan_extractor.py": { - "mtime": 1786862653.1442518, - "ast_hash": "8d24197f6bcfbadf63026a94d86f1a83", - "semantic_hash": "8d24197f6bcfbadf63026a94d86f1a83" + "mtime": 1789207859.463044, + "ast_hash": "4bf36943685e291230a88f93c5b95be1", + "semantic_hash": "4bf36943685e291230a88f93c5b95be1" }, "src/explain/repair.py": { - "mtime": 1786861266.7705383, - "ast_hash": "19b32a4e14156a09b2da439f0dfc6739", - "semantic_hash": "19b32a4e14156a09b2da439f0dfc6739" + "mtime": 1789207954.1247709, + "ast_hash": "8cbe98345d900800f29ca59618a53fb9", + "semantic_hash": "8cbe98345d900800f29ca59618a53fb9" }, "src/matrix/__init__.py": { - "mtime": 1777718449.7403164, - "ast_hash": "b4325934db2b80cbc9c79bae4eaad220", - "semantic_hash": "b4325934db2b80cbc9c79bae4eaad220" - }, - "src/matrix/redis_matrix.py": { - "mtime": 1777718852.132281, - "ast_hash": "da4195921575fc46b85c68974844467a", - "semantic_hash": "da4195921575fc46b85c68974844467a" + "mtime": 1789496168.359335, + "ast_hash": "0130afe6038c253c810e80284200e587", + "semantic_hash": "0130afe6038c253c810e80284200e587" }, "src/scoring/__init__.py": { "mtime": 1777451253.5847325, @@ -425,34 +400,34 @@ "semantic_hash": "edf8eea9f9249828fe093a664120ea4f" }, "src/scoring/bonus_engine.py": { - "mtime": 1786783637.7312648, - "ast_hash": "bc771f96f6ea42989be32df91130e54a", - "semantic_hash": "bc771f96f6ea42989be32df91130e54a" + "mtime": 1789207859.4630065, + "ast_hash": "e2b46a8eda3a6ac872bea337179f085d", + "semantic_hash": "e2b46a8eda3a6ac872bea337179f085d" }, "src/scoring/cluster_dispersion.py": { - "mtime": 1777738403.7953079, - "ast_hash": "1c3c420adc418ed9e8c70eff5663dba3", - "semantic_hash": "1c3c420adc418ed9e8c70eff5663dba3" + "mtime": 1789208857.2245667, + "ast_hash": "7fb1bab37970acf8da1636b8df439db7", + "semantic_hash": "7fb1bab37970acf8da1636b8df439db7" }, "src/scoring/congestion_engine.py": { - "mtime": 1777523358.9986482, - "ast_hash": "6778ce5aa27e005f5c09f2dcc3754f71", - "semantic_hash": "6778ce5aa27e005f5c09f2dcc3754f71" + "mtime": 1789207887.1874032, + "ast_hash": "d2a48725bcd2ef67ad165d4dc7207f75", + "semantic_hash": "d2a48725bcd2ef67ad165d4dc7207f75" }, "src/scoring/reward_engine.py": { - "mtime": 1777718876.9925988, - "ast_hash": "21306e4c6dd2b7b355b3ba0ad90cdb6f", - "semantic_hash": "21306e4c6dd2b7b355b3ba0ad90cdb6f" + "mtime": 1789207859.4625685, + "ast_hash": "734aef9824b71d17b8ae5f6ee7784373", + "semantic_hash": "734aef9824b71d17b8ae5f6ee7784373" }, "src/scoring/theme_alignment.py": { - "mtime": 1786779975.2287865, - "ast_hash": "27bcd6b6e5081ae108445c3fbe6ccf7e", - "semantic_hash": "27bcd6b6e5081ae108445c3fbe6ccf7e" + "mtime": 1789207859.4632242, + "ast_hash": "bdd2227f5a046b72b5ae895b507615f7", + "semantic_hash": "bdd2227f5a046b72b5ae895b507615f7" }, "src/scoring/travel_ratio.py": { - "mtime": 1777451253.5849264, - "ast_hash": "60179d0db12925e08fb1d2966b3d1632", - "semantic_hash": "60179d0db12925e08fb1d2966b3d1632" + "mtime": 1789207859.463758, + "ast_hash": "024735afd7796d4b2d341f9c11dcbe50", + "semantic_hash": "024735afd7796d4b2d341f9c11dcbe50" }, "src/utils/__init__.py": { "mtime": 1777731460.2646558, @@ -460,9 +435,9 @@ "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" }, "src/utils/geo.py": { - "mtime": 1777731462.310334, - "ast_hash": "ad38814c8bee6298f244b56d20ceea95", - "semantic_hash": "ad38814c8bee6298f244b56d20ceea95" + "mtime": 1789207859.4642098, + "ast_hash": "8c93681d779f2674ce40b451bf1390cc", + "semantic_hash": "8c93681d779f2674ce40b451bf1390cc" }, "src/validation/__init__.py": { "mtime": 1777451253.5850027, @@ -470,34 +445,34 @@ "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" }, "src/validation/alternatives.py": { - "mtime": 1777828486.9440112, - "ast_hash": "6e321708fa1db6166e889a68019ce568", - "semantic_hash": "6e321708fa1db6166e889a68019ce568" + "mtime": 1789207859.462061, + "ast_hash": "472b24b629a36cf0fa1624d0b3436a8f", + "semantic_hash": "472b24b629a36cf0fa1624d0b3436a8f" }, "src/validation/hard_fail.py": { - "mtime": 1786616520.125523, - "ast_hash": "adfb4c5cbc13897cd98b7a3fd0d8dedb", - "semantic_hash": "adfb4c5cbc13897cd98b7a3fd0d8dedb" + "mtime": 1789207859.462705, + "ast_hash": "55e426a863b34efe0e5d1e38e9ed4d42", + "semantic_hash": "55e426a863b34efe0e5d1e38e9ed4d42" }, "src/validation/kakao_matrix.py": { - "mtime": 1777718149.8496418, - "ast_hash": "b763d51e06699163aab32b2d6cf50203", - "semantic_hash": "b763d51e06699163aab32b2d6cf50203" + "mtime": 1789208596.0108733, + "ast_hash": "271e13c721fc606ef27a3acca491669d", + "semantic_hash": "271e13c721fc606ef27a3acca491669d" }, "src/validation/scoring.py": { - "mtime": 1777828448.7311811, - "ast_hash": "fa308ab36ac24e183a00fb2c5f38ef36", - "semantic_hash": "fa308ab36ac24e183a00fb2c5f38ef36" + "mtime": 1789207859.462643, + "ast_hash": "94b64a9b7b0afd4db255a4cb49969524", + "semantic_hash": "94b64a9b7b0afd4db255a4cb49969524" }, "src/validation/vrptw_engine.py": { - "mtime": 1777473547.1145976, - "ast_hash": "aa820e564c7c25a4d5096f3969b77704", - "semantic_hash": "aa820e564c7c25a4d5096f3969b77704" + "mtime": 1789208001.5166693, + "ast_hash": "ddad64714f33ec32c912bc1333b13ae1", + "semantic_hash": "ddad64714f33ec32c912bc1333b13ae1" }, "src/validation/warning.py": { - "mtime": 1785639470.5717049, - "ast_hash": "d9ea0ac80563f212b021628c53c8a551", - "semantic_hash": "d9ea0ac80563f212b021628c53c8a551" + "mtime": 1789207859.464498, + "ast_hash": "a3c600bc4937bb46c453fb1cfd7737f9", + "semantic_hash": "a3c600bc4937bb46c453fb1cfd7737f9" }, "tests/__init__.py": { "mtime": 1777451253.5852776, @@ -505,138 +480,198 @@ "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" }, "tests/conftest.py": { - "mtime": 1786780450.9829178, - "ast_hash": "a4516f1cbdaf0fac499d7d3a03a80457", - "semantic_hash": "a4516f1cbdaf0fac499d7d3a03a80457" + "mtime": 1789207859.464845, + "ast_hash": "c9594634cd0d81b959035a96cba94b08", + "semantic_hash": "c9594634cd0d81b959035a96cba94b08" }, "tests/test_alternatives.py": { - "mtime": 1777828575.8245907, - "ast_hash": "2c3b38004c37d6654e28a7e0f3a502b0", - "semantic_hash": "2c3b38004c37d6654e28a7e0f3a502b0" + "mtime": 1789207859.462247, + "ast_hash": "9dc42b1817ce32f7af9ebb4a75b1faea", + "semantic_hash": "9dc42b1817ce32f7af9ebb4a75b1faea" }, "tests/test_bonus_engine.py": { - "mtime": 1786783575.5544577, - "ast_hash": "f2640b62ad8974e26f5ad6c4caae01d8", - "semantic_hash": "f2640b62ad8974e26f5ad6c4caae01d8" + "mtime": 1789207859.4634511, + "ast_hash": "b484e2fe2ca7a55b97fcdd2e0ff731a1", + "semantic_hash": "b484e2fe2ca7a55b97fcdd2e0ff731a1" }, "tests/test_cluster_dispersion.py": { - "mtime": 1777521944.1446033, - "ast_hash": "819da2ce7aaac4695b1dcaca2b1317f7", - "semantic_hash": "819da2ce7aaac4695b1dcaca2b1317f7" + "mtime": 1789208930.2187984, + "ast_hash": "2d3ef3acb681f0da29ff2c0d82a55dff", + "semantic_hash": "2d3ef3acb681f0da29ff2c0d82a55dff" }, "tests/test_congestion_engine.py": { - "mtime": 1777516006.3020432, - "ast_hash": "d6403b05086a45b97edfc6320c270629", - "semantic_hash": "d6403b05086a45b97edfc6320c270629" + "mtime": 1789207859.4644873, + "ast_hash": "641a7e8dc8861d201360e25064269aa2", + "semantic_hash": "641a7e8dc8861d201360e25064269aa2" }, "tests/test_dwell_db.py": { - "mtime": 1777451253.585397, - "ast_hash": "3db1954090bebb210b9d9d91fc5637d2", - "semantic_hash": "3db1954090bebb210b9d9d91fc5637d2" + "mtime": 1789207859.4618235, + "ast_hash": "c641286e43198fb7459ec102fe7094cd", + "semantic_hash": "c641286e43198fb7459ec102fe7094cd" }, "tests/test_estimated_hardfail.py": { - "mtime": 1780630909.497777, - "ast_hash": "1570b16326c198f485dabe897bdb43c6", - "semantic_hash": "1570b16326c198f485dabe897bdb43c6" + "mtime": 1789207859.4624455, + "ast_hash": "f40794ce0989a1dbe32f4f7caf46a88a", + "semantic_hash": "f40794ce0989a1dbe32f4f7caf46a88a" }, "tests/test_explain_engine.py": { - "mtime": 1785640352.0980227, - "ast_hash": "7809ce2937ebea8895e346332e32539f", - "semantic_hash": "7809ce2937ebea8895e346332e32539f" + "mtime": 1789494249.1060371, + "ast_hash": "1b07f525516b660e0717076b53fbb450", + "semantic_hash": "1b07f525516b660e0717076b53fbb450" }, "tests/test_geo.py": { - "mtime": 1777736842.6244195, - "ast_hash": "a719a5de25ce9da7335b0be13ccbd7fe", - "semantic_hash": "a719a5de25ce9da7335b0be13ccbd7fe" - }, - "tests/test_graph_retriever.py": { - "mtime": 1786616520.1256936, - "ast_hash": "9d5692c51c01fa101ea2cc53fd8f7438", - "semantic_hash": "9d5692c51c01fa101ea2cc53fd8f7438" + "mtime": 1789207859.4636478, + "ast_hash": "3143cdde645bdef638cf76c256f894a1", + "semantic_hash": "3143cdde645bdef638cf76c256f894a1" }, "tests/test_hard_fail.py": { - "mtime": 1786616520.1258426, - "ast_hash": "f96e535fe3737adb7831b55296dcefb6", - "semantic_hash": "f96e535fe3737adb7831b55296dcefb6" + "mtime": 1789207859.4622474, + "ast_hash": "c105b298b8756758d5fc42683981e33d", + "semantic_hash": "c105b298b8756758d5fc42683981e33d" }, "tests/test_kakao_local.py": { - "mtime": 1785334170.3045812, - "ast_hash": "660c80c74224ce8965f3ab1e31e35b20", - "semantic_hash": "660c80c74224ce8965f3ab1e31e35b20" + "mtime": 1789207859.4628894, + "ast_hash": "5a870669e721b04896a1b9fd825e33c5", + "semantic_hash": "5a870669e721b04896a1b9fd825e33c5" }, "tests/test_kakao_matrix.py": { - "mtime": 1777718270.6302164, - "ast_hash": "7058ab733cde49cadce430d4f8a04967", - "semantic_hash": "7058ab733cde49cadce430d4f8a04967" + "mtime": 1789207859.4635224, + "ast_hash": "eb37e787b9c5fb4ba403ed7adcc67bb1", + "semantic_hash": "eb37e787b9c5fb4ba403ed7adcc67bb1" }, "tests/test_party_config.py": { - "mtime": 1777722533.6004114, - "ast_hash": "c0b29a60e9c74541931b7c45823c23f6", - "semantic_hash": "c0b29a60e9c74541931b7c45823c23f6" + "mtime": 1789207927.6812265, + "ast_hash": "ee67464923a21071a9dcef2e84e4ffc3", + "semantic_hash": "ee67464923a21071a9dcef2e84e4ffc3" }, "tests/test_pipeline_orchestrator.py": { - "mtime": 1786851429.3373396, - "ast_hash": "1253c5654eb06c414e1bd869650a0077", - "semantic_hash": "1253c5654eb06c414e1bd869650a0077" + "mtime": 1789207859.4632266, + "ast_hash": "aecc3f833e44fe0fffe3534474694ce4", + "semantic_hash": "aecc3f833e44fe0fffe3534474694ce4" }, "tests/test_plan_extractor.py": { - "mtime": 1786862644.0086124, - "ast_hash": "b75c1813810d653728e1727ea32960bb", - "semantic_hash": "b75c1813810d653728e1727ea32960bb" + "mtime": 1789207859.4639373, + "ast_hash": "6c289ff3f2a6a49fa907dc3fdc80b53a", + "semantic_hash": "6c289ff3f2a6a49fa907dc3fdc80b53a" }, "tests/test_region_config.py": { - "mtime": 1777718962.185176, - "ast_hash": "6a8e96f8703bc5b43f18750766624e2a", - "semantic_hash": "6a8e96f8703bc5b43f18750766624e2a" + "mtime": 1789207859.4647863, + "ast_hash": "443afb97f7a53997fb72e80f6afe8851", + "semantic_hash": "443afb97f7a53997fb72e80f6afe8851" }, "tests/test_repair.py": { - "mtime": 1786861255.0592692, - "ast_hash": "f53b00b667549e720a222e6fa85bcd6c", - "semantic_hash": "f53b00b667549e720a222e6fa85bcd6c" + "mtime": 1789207859.4651792, + "ast_hash": "f38c4c7818497b07c02ed47c847c0d5c", + "semantic_hash": "f38c4c7818497b07c02ed47c847c0d5c" }, "tests/test_resolve_poi.py": { - "mtime": 1786783594.6301389, - "ast_hash": "28e9638cc17a4dea344d92e578dcfcc2", - "semantic_hash": "28e9638cc17a4dea344d92e578dcfcc2" + "mtime": 1789496012.0376763, + "ast_hash": "c5347666b0993a1cabfb8f075b0b8461", + "semantic_hash": "c5347666b0993a1cabfb8f075b0b8461" }, "tests/test_restaurant_catalog.py": { - "mtime": 1786616467.294536, - "ast_hash": "c46f9353a2f56132c31a70ab86b54882", - "semantic_hash": "c46f9353a2f56132c31a70ab86b54882" + "mtime": 1789207859.4625134, + "ast_hash": "1d6d589af2a4422c5f6d83f4461cb16a", + "semantic_hash": "1d6d589af2a4422c5f6d83f4461cb16a" }, "tests/test_reward_engine.py": { - "mtime": 1777718976.8613403, - "ast_hash": "7174620d9fa8ac955e6dcd1275c60d92", - "semantic_hash": "7174620d9fa8ac955e6dcd1275c60d92" + "mtime": 1789207859.4627736, + "ast_hash": "f1734a40e7e4b26271b2efa1bea88423", + "semantic_hash": "f1734a40e7e4b26271b2efa1bea88423" }, "tests/test_scoring.py": { - "mtime": 1777736815.9053977, - "ast_hash": "fa745f6624a3e8b54b486d827c2e67fe", - "semantic_hash": "fa745f6624a3e8b54b486d827c2e67fe" + "mtime": 1789207859.4633484, + "ast_hash": "46db9b2dd57c20d5e11cac056e12a523", + "semantic_hash": "46db9b2dd57c20d5e11cac056e12a523" }, "tests/test_theme_alignment.py": { - "mtime": 1777451253.5854843, - "ast_hash": "ac31773f3944fdf4de7785cb14507a62", - "semantic_hash": "ac31773f3944fdf4de7785cb14507a62" + "mtime": 1789207859.463797, + "ast_hash": "b5290055f4abce504a0dc2fb35e3d6c0", + "semantic_hash": "b5290055f4abce504a0dc2fb35e3d6c0" }, "tests/test_theme_taxonomy.py": { - "mtime": 1777451253.5855556, - "ast_hash": "4fcd5e0c59deab9d74911fc9b99209d6", - "semantic_hash": "4fcd5e0c59deab9d74911fc9b99209d6" + "mtime": 1789207859.46457, + "ast_hash": "26dbc41254d432e46dd3afdb0ad8d601", + "semantic_hash": "26dbc41254d432e46dd3afdb0ad8d601" }, "tests/test_travel_ratio.py": { - "mtime": 1777451253.5856159, - "ast_hash": "08e5a691a6a0b48fc629f3c76dba82fa", - "semantic_hash": "08e5a691a6a0b48fc629f3c76dba82fa" + "mtime": 1789207859.4644938, + "ast_hash": "fbf8c3f40754f50f1d83ec9ebe774479", + "semantic_hash": "fbf8c3f40754f50f1d83ec9ebe774479" }, "tests/test_vrptw_engine.py": { - "mtime": 1777451253.585699, - "ast_hash": "92c79b6ec9be760bbf6190cb9a255a7e", - "semantic_hash": "92c79b6ec9be760bbf6190cb9a255a7e" + "mtime": 1789207927.7246094, + "ast_hash": "3f356bb3edd704ec7ae91d5ffe5f45db", + "semantic_hash": "3f356bb3edd704ec7ae91d5ffe5f45db" }, "tests/test_warning.py": { - "mtime": 1785639582.983331, - "ast_hash": "da8729cf7272ad1756417344d0ff94c9", - "semantic_hash": "da8729cf7272ad1756417344d0ff94c9" + "mtime": 1789207859.4650784, + "ast_hash": "fcc408a95117d45f78ff10cb569ade08", + "semantic_hash": "fcc408a95117d45f78ff10cb569ade08" + }, + "src/api/security.py": { + "mtime": 1789635218.5016801, + "ast_hash": "245b76bd0c79444d8ee7b9c935cdd18c", + "semantic_hash": "245b76bd0c79444d8ee7b9c935cdd18c" + }, + "src/data/evidence_retriever.py": { + "mtime": 1789207859.462216, + "ast_hash": "08e18ec084d5e085b3820f1a9c2a1525", + "semantic_hash": "08e18ec084d5e085b3820f1a9c2a1525" + }, + "src/data/place_resolver.py": { + "mtime": 1789494814.690648, + "ast_hash": "d6e4914347d5a81249a12a485de1219b", + "semantic_hash": "d6e4914347d5a81249a12a485de1219b" + }, + "src/matrix/route_matrix.py": { + "mtime": 1789207859.4622705, + "ast_hash": "ea2bf581f6902a04292ed3c996b6644d", + "semantic_hash": "ea2bf581f6902a04292ed3c996b6644d" + }, + "tests/test_api_schemas.py": { + "mtime": 1789205719.0277107, + "ast_hash": "9df23ae7ebdbb7df383a07f723d0194d", + "semantic_hash": "9df23ae7ebdbb7df383a07f723d0194d" + }, + "tests/test_place_resolver.py": { + "mtime": 1789496011.992879, + "ast_hash": "9ebd1d15d4d916202afbde80324d5f3b", + "semantic_hash": "9ebd1d15d4d916202afbde80324d5f3b" + }, + "tests/test_route_matrix.py": { + "mtime": 1789206425.6364017, + "ast_hash": "7755e0b690ef6792598402509e30b8db", + "semantic_hash": "7755e0b690ef6792598402509e30b8db" + }, + "tests/test_security.py": { + "mtime": 1789635270.5519412, + "ast_hash": "f76857dfd93b8a3a8a7648a1c11fa0d3", + "semantic_hash": "f76857dfd93b8a3a8a7648a1c11fa0d3" + }, + "tests/test_settings.py": { + "mtime": 1789206898.083239, + "ast_hash": "3eb2955c55d7605364f9f7a0ff4d8c09", + "semantic_hash": "3eb2955c55d7605364f9f7a0ff4d8c09" + }, + "tests/test_tour_api_runtime.py": { + "mtime": 1789493643.9564326, + "ast_hash": "d87e7a9fe1b6fc49e7e01405008ac456", + "semantic_hash": "d87e7a9fe1b6fc49e7e01405008ac456" + }, + "tests/test_dependency_manifests.py": { + "mtime": 1789496380.5556018, + "ast_hash": "29f9ef0a7cc55f2a6d62bb5946b7cd03", + "semantic_hash": "29f9ef0a7cc55f2a6d62bb5946b7cd03" + }, + "tests/test_evidence_retriever.py": { + "mtime": 1789207859.4643016, + "ast_hash": "2c74b1505082d9dd4bbcdd6863d106d5", + "semantic_hash": "2c74b1505082d9dd4bbcdd6863d106d5" + }, + "tests/test_health.py": { + "mtime": 1789635035.4370673, + "ast_hash": "e74e54dbd442c05095113a9f1db687cb", + "semantic_hash": "e74e54dbd442c05095113a9f1db687cb" } } \ No newline at end of file diff --git a/gun/docs/DESIGN_RECONCILIATION.md b/gun/docs/DESIGN_RECONCILIATION.md index 2eb5fc1..e96d678 100644 --- a/gun/docs/DESIGN_RECONCILIATION.md +++ b/gun/docs/DESIGN_RECONCILIATION.md @@ -1,4 +1,4 @@ - + # Design Reconciliation — PRD ↔ ENHANCEMENT_PLAN ↔ 실제 코드 > ENHANCEMENT_PLAN(2026-04-26) 검토 중 발견된 **3대 정합성 이슈**를 해소하기 위한 결정 기록. 이 문서가 원본 문서들의 **상위 권위**를 가진다 (이후 충돌 시 본 문서 기준). @@ -127,11 +127,11 @@ def evaluate_category_revisit(days: list[VRPTWDay], lcls_codes_per_day) -> Repor --- -## 3. 결정 ③ — Neo4j MVP에서 제외 (Phase 7+ 연기) +## 3. 과거 결정 — Neo4j MVP 제외 ### 결정 - **MVP 범위에서 Neo4j 제외**. -- ARCHITECTURE.md의 Neo4j 의존성과 ADR-005를 **연기 결정으로 갱신**. +- 이 문서는 당시의 범위 결정 기록이다. 현재 ADR-005에서는 Neo4j를 제품 런타임과 의존성에서 제거하고, 로컬 근거 카탈로그로 대체했다. - VRPTW 검증 로직은 in-memory Pydantic 객체로 충분히 작동 (이미 검증됨). ### 이유 @@ -213,7 +213,7 @@ ENHANCEMENT_PLAN §9의 P0~P4를 본 문서 결정사항을 반영하여 재정 - [x] PRD ↔ PLAN 점수 공식 충돌 명시 - [x] 누락된 Warning 2건의 처리 결정 (PHYSICAL_STRAIN → cluster_dispersion 메트릭 3, AREA_REVISIT → 신규 모듈) -- [x] Neo4j 연기 결정 명시 + Phase 7 재검토 조건 정의 +- [x] Neo4j 제거 결정과 로컬 근거 카탈로그 대체를 현재 ADR에 반영 - [x] ENHANCEMENT_PLAN 자체 보완 사항 7건 정리 - [x] 갱신된 P0~P4 통합 순서 제시 - [ ] (다음 단계) 본 문서 결정사항을 코드에 반영 — P1 작업들 diff --git a/gun/docs/README.md b/gun/docs/README.md index 042b971..5d78fae 100644 --- a/gun/docs/README.md +++ b/gun/docs/README.md @@ -1,4 +1,4 @@ - + # `gun/` 폴더 — 신규·수정 문서 인덱스 > 본 폴더는 프로젝트의 **신규 추가** 또는 **기존 문서 수정** 산출물을 모은다. @@ -10,7 +10,7 @@ | 파일 | 목적 | 영향 받는 원본 문서 | |---|---|---| | `README.md` | 본 인덱스 | — | -| `DESIGN_RECONCILIATION.md` | PRD ↔ ENHANCEMENT_PLAN ↔ 실제 코드 간 3대 충돌(점수체계 교체 / 누락 Warning 2건 / Neo4j 연기) 명문화 | `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ENHANCEMENT_PLAN.md`, `docs/ADR.md` | +| `DESIGN_RECONCILIATION.md` | PRD ↔ ENHANCEMENT_PLAN ↔ 실제 코드 간 3대 충돌과 Neo4j 제거 결정을 기록 | `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ENHANCEMENT_PLAN.md`, `docs/ADR.md` | ## 사용 규칙 @@ -24,7 +24,7 @@ ``` 1. docs/PRD.md (제품 비전 + MVP 정의) -2. docs/ARCHITECTURE.md (시스템 흐름 + Neo4j 설계) +2. docs/ARCHITECTURE.md (시스템 흐름 + 현재 로컬 근거 구조) 3. docs/ENHANCEMENT_PLAN.md (6대 패널티 — VRPTW + 3 scoring 모듈) 4. gun/docs/DESIGN_RECONCILIATION.md ⭐ (위 3개의 충돌 해소 + 미반영 항목 결정) ``` diff --git a/phases/0-setup/step0.md b/phases/0-setup/step0.md index 277bc07..5e6bb44 100644 --- a/phases/0-setup/step0.md +++ b/phases/0-setup/step0.md @@ -1,96 +1,35 @@ - -# Step 0: python-env + -## 읽어야 할 파일 +# Step 0. 설치와 환경 설정 -먼저 아래 파일들을 읽고 프로젝트의 기획·아키텍처·설계 의도를 파악하라: +## 목적 -- `/CLAUDE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` +Python 3.11 이상에서 API와 검증 파이프라인을 실행할 수 있는 개발 환경을 만든다. -## 작업 +## 설치 -프로젝트 루트에 Python 환경 설정 파일들을 생성하라. 소스 코드는 이 step에서 작성하지 않는다. - -### 1. `pyproject.toml` 생성 - -```toml -[build-system] -requires = ["setuptools>=72"] -build-backend = "setuptools.backends.legacy:build" - -[project] -name = "travel-plan-validator" -version = "0.1.0" -requires-python = ">=3.11" -dependencies = [ - "fastapi>=0.115.0", - "uvicorn[standard]>=0.30.0", - "neo4j>=5.24.0", - "httpx>=0.27.0", - "anthropic>=0.40.0", - "pydantic>=2.9.0", - "pydantic-settings>=2.6.0", - "python-dotenv>=1.0.0", -] - -[project.optional-dependencies] -dev = [ - "pytest>=8.3.0", - "pytest-asyncio>=0.24.0", - "pytest-mock>=3.14.0", - "ruff>=0.8.0", -] - -[tool.setuptools.packages.find] -where = ["."] -include = ["src*"] - -[tool.ruff] -line-length = 100 -target-version = "py311" - -[tool.pytest.ini_options] -asyncio_mode = "auto" -testpaths = ["tests", "scripts"] -``` - -### 2. `.env.example` 생성 - -``` -ANTHROPIC_API_KEY=your_anthropic_api_key_here -CLAUDE_MODEL=claude-sonnet-4-6 -TOUR_API_KEY=your_tour_api_key_here -KAKAO_REST_API_KEY=your_kakao_rest_api_key_here -KAKAO_MOBILITY_KEY= -NEO4J_URI=bolt://localhost:7687 -NEO4J_USER=neo4j -NEO4J_PASSWORD=your_neo4j_password_here +```bash +python -m venv .venv +source .venv/bin/activate +pip install -e ".[dev]" ``` -### 3. `src/__init__.py` 생성 (빈 파일) +Windows에서는 `.venv\\Scripts\\activate`를 사용한다. -### 4. `tests/__init__.py` 생성 (빈 파일) - -## Acceptance Criteria +## 환경변수 ```bash -pip install -e ".[dev]" -python -c "import fastapi; import neo4j; import httpx; import anthropic; import pydantic; print('All dependencies OK')" +cp .env.example .env ``` -## 검증 절차 +`.env`에는 실제 키를 넣고 저장소에는 커밋하지 않는다. 외부 연동 키는 TourAPI, Kakao, 서울 도시데이터, Anthropic만 사용한다. 키가 없는 개발 환경에서는 각 클라이언트가 안전한 폴백을 사용하며, 검증 결과에는 데이터 신뢰도가 표시된다. -1. 위 AC 커맨드를 실행한다. -2. `pyproject.toml`이 CLAUDE.md 기술 스택과 일치하는지 확인한다 (ChromaDB, sentence-transformers, kiwipiepy, KeyBERT 없음). -3. 결과에 따라 `phases/0-setup/index.json`의 step 0 status를 업데이트한다: - - 성공 → `"status": "completed"`, `"summary": "pyproject.toml, .env.example, src/__init__.py, tests/__init__.py 생성 완료"` - - 설치 실패 → `"status": "blocked"`, `"blocked_reason": "구체적 에러 메시지"` +## 확인 -## 금지사항 +```bash +python -m pytest tests/ -q +ruff check src tests +uvicorn src.api.main:app --reload +``` -- `src/` 하위에 실제 로직 코드를 작성하지 마라. 이 step은 환경 설정 파일만 만든다. -- API 키 실제값을 어떤 파일에도 하드코딩하지 마라. -- `requirements.txt`를 별도로 만들지 마라. `pyproject.toml`만 사용한다. -- ChromaDB, sentence-transformers, kiwipiepy, KeyBERT는 의존성에 추가하지 마라. +운영 환경에서는 `ENVIRONMENT=production`과 `API_AUTH_TOKEN`을 설정한다. diff --git a/phases/0-setup/step1.md b/phases/0-setup/step1.md index c4c76f5..1cd73f3 100644 --- a/phases/0-setup/step1.md +++ b/phases/0-setup/step1.md @@ -1,289 +1,39 @@ - -# Step 1: src-scaffold + -## 읽어야 할 파일 +# Step 1. 설정 모델과 외부 클라이언트 -먼저 아래 파일들을 읽고 프로젝트의 구조와 설계 의도를 파악하라: +## 설정의 단일 진입점 -- `/CLAUDE.md` -- `/docs/ARCHITECTURE.md` -- `/phases/0-setup/index.json` (step 0 summary 확인) +`src/config.py`의 `Settings`가 환경변수를 읽는다. `.env` 경로는 프로젝트 루트를 기준으로 해 실행 위치가 달라도 같은 설정을 사용한다. -## 작업 +주요 설정은 다음과 같다. -`src/` 디렉토리 하위의 모든 모듈 파일을 **스텁(인터페이스만, 구현은 `raise NotImplementedError`)** 으로 생성하라. -이후 각 phase에서 실제 구현으로 교체한다. +- `ANTHROPIC_API_KEY`: 설명 생성과 문서 파싱 +- `TOUR_API_KEY`: 한국관광공사 TourAPI +- `KAKAO_REST_API_KEY`: 장소 검색·주소 지오코딩 +- `SEOUL_API_KEY`: 서울 실시간 도시데이터 +- `ENVIRONMENT`, `API_AUTH_TOKEN`, `CORS_ALLOWED_ORIGINS`: 운영 보호 -### 생성할 파일 목록 +키는 코드나 테스트 fixture에 하드코딩하지 않는다. 테스트는 각 외부 클라이언트를 mock/stub으로 대체한다. -**패키지 `__init__.py`** (각각 빈 파일): -`src/data/__init__.py`, `src/matrix/__init__.py`, `src/graph/__init__.py`, -`src/validation/__init__.py`, `src/explain/__init__.py`, `src/api/__init__.py` +## 레이어 규칙 ---- +외부 I/O는 `src/data/`의 클라이언트에서만 실행한다. API 라우터는 클라이언트를 조합하고, 계산 레이어에는 `src/data/models.py`의 Pydantic 모델만 전달한다. -**`src/data/models.py`** — Pydantic 모델 정의 (실제 구현, 스텁 아님) +현재 실행 흐름은 다음과 같다. -```python -from pydantic import BaseModel, Field -from pydantic_settings import BaseSettings - -class POI(BaseModel): - poi_id: str - name: str - lat: float - lng: float - category: str - open_start: str # "HH:MM" - open_end: str # "HH:MM" - duration_min: int - -class PlaceInput(BaseModel): - name: str - stay_minutes: int - visit_order: int - -class ItineraryPlan(BaseModel): - plan_id: str - places: list[PlaceInput] - transport: str # "transit" | "car" | "walk" - travel_type: str # "cultural" | "nature" | "shopping" | "food" | "adventure" - date: str # "YYYY-MM-DD" - start_time: str = "09:00" # "HH:MM" - -class HardFail(BaseModel): - type: str - message: str - affected_places: list[str] - confidence: str # "High" | "Medium" | "Medium-Low" - evidence: dict - -class Warning(BaseModel): - type: str - message: str - affected_places: list[str] - confidence: str - -class Scores(BaseModel): - efficiency: float - feasibility: float - purpose_fit: float - flow: float - area_intensity: float - -class RepairSuggestion(BaseModel): - priority: int - action: str - affected_places: list[str] - detail: str - -class ValidationResult(BaseModel): - plan_id: str - final_score: int = Field(ge=0, le=100) - hard_fails: list[HardFail] - warnings: list[Warning] - scores: Scores - explanation: str - repair_suggestions: list[RepairSuggestion] - -class Settings(BaseSettings): - anthropic_api_key: str = "" - claude_model: str = "claude-sonnet-4-6" - tour_api_key: str = "" - kakao_rest_api_key: str = "" - kakao_mobility_key: str = "" - neo4j_uri: str = "bolt://localhost:7687" - neo4j_user: str = "neo4j" - neo4j_password: str = "" - - model_config = {"env_file": ".env", "env_file_encoding": "utf-8"} -``` - ---- - -**`src/data/tour_api.py`** — 스텁 - -```python -class TourAPIClient: - def __init__(self, api_key: str) -> None: ... - async def get_poi(self, place_name: str) -> "POI": raise NotImplementedError -``` - -**`src/data/kakao_client.py`** — 스텁 - -```python -class KakaoClient: - def __init__(self, rest_api_key: str, mobility_key: str = "") -> None: ... - async def normalize_poi(self, place_name: str) -> tuple[float, float]: raise NotImplementedError - async def get_travel_time(self, origin: tuple, dest: tuple, mode: str) -> dict: raise NotImplementedError +```text +api → explain → validation/scoring → data clients ``` ---- - -**`src/matrix/travel_matrix.py`** — 스텁 - -```python -class TravelMatrixBuilder: - def __init__(self, kakao_client) -> None: ... - async def build(self, pois: list, mode: str) -> dict: raise NotImplementedError - # 반환: {i: {j: {"travel_min": float, "distance_km": float, "mode": str, "is_fallback": bool}}} -``` - ---- - -**`src/graph/neo4j_client.py`** — 스텁 - -```python -class Neo4jClient: - def __init__(self, uri: str, user: str, password: str) -> None: ... - def __enter__(self) -> "Neo4jClient": raise NotImplementedError - def __exit__(self, *args) -> None: raise NotImplementedError - def run(self, query: str, **params) -> list[dict]: raise NotImplementedError -``` - -**`src/graph/schema.py`** — 상수 정의 (실제 구현) - -```python -class NodeLabel: - POI = "POI" - AREA = "Area" - TIME_SLOT = "TimeSlot" - -class RelType: - IN_AREA = "IN_AREA" - SCHEDULED_AT = "SCHEDULED_AT" - FOLLOWED_BY = "FOLLOWED_BY" - TRAVELS_TO = "TRAVELS_TO" -``` - -**`src/graph/builder.py`** — 스텁 - -```python -class ItineraryGraphBuilder: - def __init__(self, client) -> None: ... - def build(self, plan, pois: list, matrix: dict) -> None: raise NotImplementedError -``` - -**`src/graph/queries.py`** — 스텁 - -```python -def get_total_travel_time(client, slot_ids: list) -> float: raise NotImplementedError -def get_area_revisits(client, poi_ids: list) -> list[dict]: raise NotImplementedError -def get_operating_conflicts(client, poi_ids: list) -> list[dict]: raise NotImplementedError -``` +검증 요청은 장소를 해석한 뒤 Kakao 이동시간 행렬을 준비하고, 필요한 경우 TourAPI·서울 도시데이터를 조회한다. 외부 조회 실패는 데이터 신뢰도를 낮추되 서버 오류로 위장하지 않는다. ---- - -**`src/validation/hard_fail.py`** — 스텁 - -```python -class HardFailDetector: - def detect(self, plan, pois: list, matrix: dict) -> list["HardFail"]: raise NotImplementedError -``` - -**`src/validation/warning.py`** — 스텁 - -```python -class WarningDetector: - def detect(self, plan, pois: list, matrix: dict) -> list["Warning"]: raise NotImplementedError -``` - -**`src/validation/scoring.py`** — 스텁 - -```python -class ScoreCalculator: - def compute(self, plan, pois: list, matrix: dict, hard_fails: list) -> "Scores": raise NotImplementedError -``` - ---- - -**`src/explain/prompts.py`** — 스텁 - -```python -def build_system_prompt() -> str: raise NotImplementedError -def build_user_prompt(plan, pois, hard_fails, warnings, scores) -> str: raise NotImplementedError -``` - -**`src/explain/explain_engine.py`** — 스텁 - -```python -class ExplainEngine: - def __init__(self, settings) -> None: ... - async def explain(self, plan, hard_fails, warnings, scores) -> tuple[str, list]: raise NotImplementedError - # 반환: (explanation_text, repair_suggestions) -``` - -**`src/explain/orchestrator.py`** — 스텁 - -```python -class ValidationOrchestrator: - def __init__(self, settings) -> None: ... - async def run(self, plan: "ItineraryPlan") -> "ValidationResult": raise NotImplementedError -``` - ---- - -**`src/api/schemas.py`** — 스텁 - -```python -from pydantic import BaseModel -class ValidateRequest(BaseModel): ... -class ValidateResponse(BaseModel): ... -class RepairResponse(BaseModel): ... -class HealthResponse(BaseModel): ... -``` - -**`src/api/routes.py`** — 스텁 -**`src/api/main.py`** — 스텁 - -## Acceptance Criteria +## 테스트와 실행 ```bash -python -c " -from src.data.models import POI, ItineraryPlan, ValidationResult, Settings -from src.data.tour_api import TourAPIClient -from src.data.kakao_client import KakaoClient -from src.matrix.travel_matrix import TravelMatrixBuilder -from src.graph.neo4j_client import Neo4jClient -from src.graph.schema import NodeLabel, RelType -from src.graph.builder import ItineraryGraphBuilder -from src.graph.queries import get_total_travel_time -from src.validation.hard_fail import HardFailDetector -from src.validation.warning import WarningDetector -from src.validation.scoring import ScoreCalculator -from src.explain.prompts import build_system_prompt -from src.explain.explain_engine import ExplainEngine -from src.explain.orchestrator import ValidationOrchestrator -from src.api.main import app -print('All stubs import OK') -" +python -m pytest tests/ -q +ruff check src tests +uvicorn src.api.main:app --reload ``` -## 검증 절차 - -1. 위 AC 커맨드를 실행한다. -2. `src/data/models.py`의 Pydantic 모델이 ARCHITECTURE.md 스키마와 일치하는지 확인한다. -3. 결과에 따라 `phases/0-setup/index.json`의 step 1 status를 업데이트한다. - -## 금지사항 - -- `src/data/models.py`와 `src/graph/schema.py` 외 다른 파일에 실제 로직을 구현하지 마라. -- 구현 없는 함수에 `pass`를 쓰지 마라. 반드시 `raise NotImplementedError`로 명시한다. -- `tests/` 디렉토리는 이 step에서 만들지 마라. - - - - -========================== - - ┌──────────────┬─────────────────────────────────────────────────┐ - │ 차트 │ 말하는 것 │ - ├──────────────┼─────────────────────────────────────────────────┤ - │ ① 히스토그램 │ 이동 비율 분포 — 꼬리가 두껍고 위험11 구간이 존재 │ - ├──────────────┼─────────────────────────────────────────────────┤ - │ ② 박스플롯 │ 2박3일 일정의 분산이 심각 — 이상값 다수 │ - ├──────────────┼─────────────────────────────────────────────────┤ - │ ③ 파이차트 │ 1/6이 경고 이상 — 검증 없이 신뢰 불가 │ - ├──────────────┼─────────────────────────────────────────────────┤ - │ ④ 산점도 │ AI가 50km+ 떨어진 장소를 같은 날 배치하는 패턴 │ - └──────────────┴─────────────────────────────────────────────────┘ +Neo4j 기반 설정과 클라이언트는 현재 제품에서 제거되었다. 과거 설계가 필요한 경우 `docs/ADR.md`의 ADR-005를 참고하되, 새 코드나 운영 문서에서 해당 서비스를 요구하지 않는다. diff --git a/phases/3-graph/index.json b/phases/3-graph/index.json index 3ce3857..bbaa28a 100644 --- a/phases/3-graph/index.json +++ b/phases/3-graph/index.json @@ -2,8 +2,8 @@ "project": "Explainable Travel Plan Validator", "phase": "3-graph", "steps": [ - { "step": 0, "name": "neo4j-schema", "status": "pending" }, - { "step": 1, "name": "graph-builder", "status": "pending" }, - { "step": 2, "name": "graph-queries", "status": "pending" } + { "step": 0, "name": "removed", "status": "removed" }, + { "step": 1, "name": "removed", "status": "removed" }, + { "step": 2, "name": "removed", "status": "removed" } ] } diff --git a/phases/3-graph/step0.md b/phases/3-graph/step0.md index 31de337..75a67f8 100644 --- a/phases/3-graph/step0.md +++ b/phases/3-graph/step0.md @@ -1,4 +1,4 @@ - + # Step 0: graph-db (removed) 이 단계는 과거 Neo4j 스키마를 정의하던 기록이다. 외부 그래프 DB는 현재 제품 런타임과 의존성에서 제거되었다. @@ -6,4 +6,3 @@ 현재 장소 근거 검색은 `src/data/evidence_retriever.py`의 `LocalEvidenceRetriever`가 프로젝트 데이터 CSV를 로컬에서 읽어 처리한다. 외부 네트워크 없이 테스트할 수 있으며, 지역·근접 대안 정보도 동일한 Pydantic 모델로 반환한다. - diff --git a/phases/3-graph/step1.md b/phases/3-graph/step1.md index acbb572..653ea82 100644 --- a/phases/3-graph/step1.md +++ b/phases/3-graph/step1.md @@ -1,8 +1,7 @@ - + # Step 1: graph-load (removed) 과거 그래프 적재 작업은 폐기했다. `scripts/`의 과거 적재 파일은 운영 경로에서 호출되지 않으며, 새 환경은 `data/jeju_places.csv`를 애플리케이션 시작 시 로컬 인덱스로 읽는다. 검증·설명·대안 추천은 모두 외부 그래프 연결 없이 동작해야 한다. - diff --git a/phases/3-graph/step2.md b/phases/3-graph/step2.md index 3252354..4d77610 100644 --- a/phases/3-graph/step2.md +++ b/phases/3-graph/step2.md @@ -1,7 +1,6 @@ - + # Step 2: graph-query (removed) 그래프 쿼리 단계는 제거했다. 이동시간은 `KakaoMobilityMatrix` 또는 명시적인 Haversine 폴백이 담당하고, 운영시간·구역 재방문·클러스터 분산은 `validation/`과 `scoring/`의 결정론적 Python 로직이 담당한다. - diff --git a/phases/4-validation/step0.md b/phases/4-validation/step0.md index 3de8751..967dd97 100644 --- a/phases/4-validation/step0.md +++ b/phases/4-validation/step0.md @@ -1,4 +1,4 @@ - + # Step 0: hard-fail ## 읽어야 할 파일 @@ -124,6 +124,6 @@ python -m pytest tests/test_hard_fail.py -v ## 금지사항 -- 외부 I/O(Neo4j, API)를 이 모듈에서 직접 호출하지 마라. 순수 Python 계산만. +- 외부 I/O(외부 API)를 이 모듈에서 직접 호출하지 마라. 순수 Python 계산만. - HardFail.confidence는 ARCHITECTURE.md Confidence Level 표를 따른다 ("High" for 이동불가, "Medium" for 운영시간). - 운영시간을 "00:00"~"23:59"로 파싱한 경우 (폴백), OPERATING_HOURS_CONFLICT를 생성하지 마라 (운영시간 미확인으로 처리). diff --git a/phases/5-explain/step2.md b/phases/5-explain/step2.md index 227bc95..1b4becd 100644 --- a/phases/5-explain/step2.md +++ b/phases/5-explain/step2.md @@ -1,175 +1,30 @@ - -# Step 2: orchestrator + -## 읽어야 할 파일 +# Step 2. 설명 생성 오케스트레이션 -- `/CLAUDE.md` -- `/docs/ARCHITECTURE.md` (데이터 흐름 섹션) -- `/src/data/models.py` -- `/src/data/tour_api.py` -- `/src/data/kakao_client.py` -- `/src/matrix/travel_matrix.py` -- `/src/graph/builder.py` -- `/src/validation/hard_fail.py` -- `/src/validation/warning.py` -- `/src/validation/scoring.py` -- `/src/explain/explain_engine.py` -- `/phases/5-explain/index.json` (step 1 summary 확인) +## 역할 -## 작업 +`src/explain/explain_engine.py`는 검증 결과를 근거 기반 설명으로 변환한다. Hard Fail, Warning, 점수, 패널티·보너스, 일정 모델을 입력으로 받고 `ExplanationItem` 목록을 반환한다. -`src/explain/orchestrator.py`를 구현하고, `tests/test_orchestrator.py`를 작성하라. +설명 생성에 필요한 외부 호출은 Explain 레이어가 담당하는 Anthropic 클라이언트에서만 수행한다. 문서 파싱도 같은 원칙으로 처리하며, 키가 없거나 호출이 실패하면 규칙 기반 설명으로 안전하게 폴백한다. -### 1. `src/explain/orchestrator.py` 구현 +## 근거 조회 -```python -import asyncio -from src.data.models import Settings, ItineraryPlan, ValidationResult -from src.data.tour_api import TourAPIClient -from src.data.kakao_client import KakaoClient -from src.matrix.travel_matrix import TravelMatrixBuilder -from src.graph.neo4j_client import Neo4jClient -from src.graph.builder import ItineraryGraphBuilder -from src.validation.hard_fail import HardFailDetector -from src.validation.warning import WarningDetector -from src.validation.scoring import ScoreCalculator -from src.explain.explain_engine import ExplainEngine +`src/data/evidence_retriever.py`의 `LocalEvidenceRetriever`가 `data/jeju_places.csv`를 읽어 지역 정보와 인근 대안을 제공한다. 이 카탈로그는 설명의 근거를 보강하지만 검증 계산을 임의로 바꾸지 않는다. -class ValidationOrchestrator: - def __init__(self, settings: Settings) -> None: - self._settings = settings - self._tour = TourAPIClient(settings.tour_api_key) - self._kakao = KakaoClient(settings.kakao_rest_api_key, settings.kakao_mobility_key) - self._hard_fail = HardFailDetector() - self._warning = WarningDetector() - self._score = ScoreCalculator() - self._explain = ExplainEngine(settings) - # Neo4j 연결 (실패 시 None, Graph 저장 skip) - try: - self._neo4j = Neo4jClient(settings.neo4j_uri, settings.neo4j_user, settings.neo4j_password) - except Exception: - self._neo4j = None - - async def run(self, plan: ItineraryPlan) -> ValidationResult: - """ - 전체 파이프라인 실행: - 1. TourAPI → POI 메타데이터 (병렬) - 2. Kakao → 좌표 정규화 (병렬) - 3. TravelMatrix 빌드 - 4. Neo4j 그래프 저장 (실패 시 skip) - 5. Hard Fail 탐지 - 6. Warning 탐지 - 7. 점수 계산 - 8. 설명 + Repair 제안 생성 - → ValidationResult 반환 - """ - sorted_places = sorted(plan.places, key=lambda p: p.visit_order) - - # 1. POI 조회 (병렬) - pois = await asyncio.gather(*[ - self._tour.get_poi(p.name) for p in sorted_places - ]) - - # 2. 좌표 정규화 (병렬) + POI 좌표 업데이트 - coords = await asyncio.gather(*[ - self._kakao.normalize_poi(poi.name) for poi in pois - ]) - for poi, (lat, lng) in zip(pois, coords): - if lat != 0.0 and lng != 0.0: - object.__setattr__(poi, "lat", lat) - object.__setattr__(poi, "lng", lng) - - # 3. 이동시간 행렬 - matrix_builder = TravelMatrixBuilder(self._kakao) - matrix = await matrix_builder.build(list(pois), plan.transport) - - # 4. Neo4j 저장 (실패 시 skip) - if self._neo4j: - try: - builder = ItineraryGraphBuilder(self._neo4j) - builder.build(plan, list(pois), matrix) - except Exception: - pass # Graph 저장 실패는 전체 파이프라인을 막지 않음 - - # 5-7. Validation - hard_fails = self._hard_fail.detect(plan, list(pois), matrix) - warnings = self._warning.detect(plan, list(pois), matrix) - scores, final_score = self._score.compute(plan, list(pois), matrix, hard_fails) - - # 8. 설명 생성 - explanation, repair_suggestions = await self._explain.explain( - plan, list(pois), hard_fails, warnings, scores - ) - - return ValidationResult( - plan_id=plan.plan_id, - final_score=final_score, - hard_fails=hard_fails, - warnings=warnings, - scores=scores, - explanation=explanation, - repair_suggestions=repair_suggestions, - ) -``` - -### 2. `tests/test_orchestrator.py` 작성 - -모든 외부 의존성(TourAPI, Kakao, Neo4j, Claude API)을 mock으로 대체: - -```python -import pytest -from unittest.mock import AsyncMock, MagicMock, patch -from src.explain.orchestrator import ValidationOrchestrator -from src.data.models import Settings, ItineraryPlan, PlaceInput - -@pytest.fixture -def settings(): - return Settings( - anthropic_api_key="test", tour_api_key="test", - kakao_rest_api_key="test", neo4j_password="test", - ) - -@pytest.fixture -def plan(): - return ItineraryPlan( - places=[ - PlaceInput(name="경복궁", stay_minutes=120, visit_order=1), - PlaceInput(name="인사동", stay_minutes=60, visit_order=2), - PlaceInput(name="남산서울타워", stay_minutes=90, visit_order=3), - PlaceInput(name="명동", stay_minutes=60, visit_order=4), - ], - transport="transit", - travel_type="cultural", - date="2024-07-20", - ) -``` - -테스트 케이스: -- `orchestrator.run(plan)` → ValidationResult 반환, plan_id 일치 확인 -- TourAPI 404 (ValueError) → HTTPException이 아닌 ValueError 전파 -- Neo4j 연결 실패 → 오케스트레이터 초기화는 성공 (`_neo4j = None`) -- Neo4j 저장 실패 → 파이프라인 계속 진행 (skip) -- TourAPI가 POI 수만큼 호출되는지 확인 - -## Acceptance Criteria +라이브 점검은 다음 명령으로 실행한다. ```bash -python -m pytest tests/test_orchestrator.py -v +python scripts/demo_live_e2e.py ``` -모든 테스트 통과. 모든 외부 의존성은 mock. - -## 검증 절차 +실제 Anthropic 키가 없는 환경에서는 라이브 점검을 실행하지 말고 mock 기반 테스트를 사용한다. -1. 위 AC 커맨드를 실행한다. -2. 전체 테스트 스위트 실행: - ```bash - python -m pytest tests/ -v --tb=short - ``` -3. `phases/5-explain/index.json`의 step 2 status를 업데이트한다. +## 품질 규칙 -## 금지사항 +- 외부 응답을 설명의 사실처럼 만들지 않고, 입력된 검증 근거와 데이터 신뢰도를 함께 전달한다. +- 호출 실패는 전체 검증 실패가 아니라 안전한 폴백으로 처리한다. +- 모든 외부 클라이언트는 테스트에서 mock/stub으로 대체한다. +- 설명 생성기는 API 라우터에 직접 배치하지 않는다. -- Neo4j 저장 실패 시 전체 파이프라인이 중단되면 안 된다. `try/except`로 skip 처리. -- `asyncio.gather`로 TourAPI와 Kakao를 병렬 호출하라. 순차 호출 금지. -- 설명 엔진 실패 시 예외를 그대로 전파하라 (API 503으로 처리됨). +그래프 데이터베이스 의존성은 ADR-005에 따라 제거되었다. 과거 구현을 새 런타임에 다시 연결하지 않는다. diff --git a/phases/6-api/step0.md b/phases/6-api/step0.md index 038c889..5d1afab 100644 --- a/phases/6-api/step0.md +++ b/phases/6-api/step0.md @@ -1,4 +1,4 @@ - + # Step 0: API schemas 현재 API는 Pydantic v2로 입력을 검증한다. @@ -6,4 +6,3 @@ - `POST /api/validate`: 1~30일, 하루 1~8장소, ISO 날짜, `HH:MM` 시작 시각 - 빈 일정·공백 장소명·잘못된 날짜/시각은 FastAPI 422로 반환한다. - 검증 응답은 점수, Hard Fail/Warning, 설명, `repair_suggestions`를 함께 포함한다. - diff --git a/phases/6-api/step1.md b/phases/6-api/step1.md index 75acc35..6bdedee 100644 --- a/phases/6-api/step1.md +++ b/phases/6-api/step1.md @@ -1,11 +1,10 @@ - + # Step 1: API runtime 라우터는 외부 I/O를 직접 수행하지 않고 data/scoring 계층의 클라이언트를 호출한다. - `POST /api/validate`: Kakao 경로 행렬(키가 없으면 Haversine 명시적 폴백), 시작 시각, 실시간 서울 혼잡도, Repair 제안을 한 응답에 반영한다. - `POST /api/parse/text`, `POST /api/parse/document`: 파싱 실패는 구체적인 4xx로 반환하고 문서 업로드는 15MB로 제한한다. -- `GET /health`: API 키 설정 여부뿐 아니라 필수 데이터 로딩 여부를 `ready`로 보고한다. +- `GET /health`: API 키 설정 여부와 필수 데이터 로딩 여부를 반환하며, 필수 데이터가 없으면 HTTP 503을 반환한다. 외부 API 연결성 자체를 보장하는 probe는 아니다. - `ENVIRONMENT=production`에서는 비용이 큰 엔드포인트에 `Authorization: Bearer` 토큰이 필요하며, 모든 API 요청은 IP별 sliding-window 레이트리밋을 적용한다. - 별도 `/repair/{plan_id}` 조회 API는 제공하지 않는다. Repair 제안은 검증 응답의 `repair_suggestions` 필드에 포함한다. - diff --git a/phases/index.json b/phases/index.json index eb2c629..5414976 100644 --- a/phases/index.json +++ b/phases/index.json @@ -3,7 +3,7 @@ { "dir": "0-setup", "status": "completed" }, { "dir": "1-data", "status": "completed" }, { "dir": "2-matrix", "status": "in_progress" }, - { "dir": "3-graph", "status": "removed", "note": "Neo4j 제거 확정 — Python M3/M4로 100% 대체 (scripts/neo4j_coverage_analysis.py)" }, + { "dir": "3-graph", "status": "removed", "note": "Neo4j 제거 확정 — Python M3/M4와 로컬 근거 카탈로그로 대체" }, { "dir": "4-validation", "status": "in_progress" }, { "dir": "5-explain", "status": "pending" }, { "dir": "6-api", "status": "pending" } diff --git a/scripts/build_knowledge_graph.py b/scripts/build_knowledge_graph.py deleted file mode 100644 index 48e0a1f..0000000 --- a/scripts/build_knowledge_graph.py +++ /dev/null @@ -1,274 +0,0 @@ -#!/usr/bin/env python3 -"""제주특별자치도_통합.xlsx → data_construct.md 스키마 기반 지식그래프 CSV 빌더. - -`신분류체계정보 관광타입정보 연계 정의서.xlsx`(국문 매뉴얼 부속 카테고리표)로 -소분류(신) 코드를 관광타입명(구분류체계: 음식점/숙박/관광지/문화시설/레포츠/쇼핑 등)에 -매핑하고, Place/Region/Category 노드와 IS_LOCATED_IN/PART_OF/HAS_CATEGORY/NEAR_BY -관계를 Neo4j `neo4j-admin database import` 호환 CSV로 data/graph/ 에 출력한다. - -원본 xlsx에 없는 데이터(Theme/Audience/business_hours/off_days, Itinerary/Visit)는 -만들어내지 않고 건너뛴다 — data_construct.md "5. 현재 데이터 상태" 참고. - -Usage: - python scripts/build_knowledge_graph.py -""" -from __future__ import annotations - -import math -import re -import sys -from pathlib import Path - -import numpy as np -import pandas as pd -from scipy.spatial import cKDTree - -ROOT = Path(__file__).parent.parent -PLACE_XLSX = ROOT / "제주특별자치도_통합.xlsx" -CATEGORY_XLSX = ROOT / "신분류체계정보 관광타입정보 연계 정의서.xlsx" -OUT_DIR = ROOT / "data" / "graph" - -NEAR_BY_RADIUS_M = 300 -# Aura Free 관계 400,000개 하드캡: 나머지 관계(IS_LOCATED_IN+PART_OF+HAS_CATEGORY) -# 50,831개를 뺀 예산 349,169 안에 들어오도록 Top-K를 낮춰서 맞춘다. -NEAR_BY_TOP_K = 16 -WALK_SPEED_M_PER_MIN = 75 # 300m ≈ 도보 4분 (data_construct.md 근거) - -PLACE_TYPE_BY_MAJOR = { - "FD": "RESTAURANT", - "AC": "ACCOMMODATION", - "SH": "ACTIVITY", - "VE": "ACTIVITY", # 리조트류만 예외 (아래 _place_type 참고) - "LS": "ACTIVITY", - "EX": "ACTIVITY", - "HS": "ACTIVITY", -} - -# 원본 데이터에 존재하지만 카테고리 연계 정의서(240개 리프)에는 없는 소분류코드. -# 상위 대분류명 기준 상식적으로 귀속되는 관광타입명을 수동 지정한다. -CATEGORY_GROUP_OVERRIDE = { - "AC999900": "숙박", - "FD019900": "음식점", - "FD999900": "음식점", -} - -CITY_RE = re.compile(r"(제주시|서귀포시)") -EUPMYEON_RE = re.compile(r"(제주시|서귀포시)\s+(\S+?(?:읍|면))\b") -PAREN_DONG_RE = re.compile(r"\(([가-힣0-9]+동)[,\)]") -BARE_DONG_RE = re.compile(r"(제주시|서귀포시)\s+([가-힣]+동)\b") - - -def _place_type(major_code: str, medium_name: str, minor_name: str) -> str: - if major_code == "VE" and ("리조트" in (medium_name or "") or "리조트" in (minor_name or "")): - return "ACCOMMODATION" - return PLACE_TYPE_BY_MAJOR.get(major_code, "ACTIVITY") - - -def _parse_region_chain(address: str) -> list[tuple[str, str]]: - """주소 → [(id, name), ...] 최상위(읍/면/동 또는 시) → 시 → 도 순서. - - 반환 리스트의 첫 항목이 Place가 IS_LOCATED_IN으로 연결될 가장 구체적인 Region. - """ - city_m = CITY_RE.search(address or "") - if not city_m: - return [("jeju_do", "제주도")] - - city_name = city_m.group(1) - city_id = "jeju_si" if city_name == "제주시" else "seogwipo_si" - chain = [(city_id, city_name), ("jeju_do", "제주도")] - - sub = None - m = EUPMYEON_RE.search(address) - if m: - sub = m.group(2) - else: - m = PAREN_DONG_RE.search(address) - if m: - sub = m.group(1) - else: - m = BARE_DONG_RE.search(address) - if m: - sub = m.group(2) - - if sub: - sub_id = f"{city_id}__{sub}" - chain.insert(0, (sub_id, sub)) - - return chain - - -def _load_category_group_map() -> dict[str, str]: - raw = pd.read_excel(CATEGORY_XLSX, sheet_name=0, header=None) - tbl = raw.iloc[5:, 0:9].copy() - tbl.columns = [ - "대분류코드", "대분류명", "중분류코드", "중분류명", - "소분류코드", "소분류명", "국문코드", "다국어코드", "관광타입명", - ] - tbl = tbl.dropna(subset=["소분류코드"]) - group_map = dict(zip(tbl["소분류코드"], tbl["관광타입명"], strict=True)) - group_map.update(CATEGORY_GROUP_OVERRIDE) - return group_map - - -def _project_meters(lat: np.ndarray, lng: np.ndarray) -> np.ndarray: - """소범위(제주도)용 등장방형 투영 — 300m 스케일에서 오차 무시 가능.""" - lat0 = math.radians(float(np.mean(lat))) - x = lng * 111_320 * math.cos(lat0) - y = lat * 110_540 - return np.column_stack([x, y]) - - -def build_near_by(places: pd.DataFrame) -> pd.DataFrame: - coords_df = places.dropna(subset=["lat", "lng"]) - xy = _project_meters(coords_df["lat"].to_numpy(), coords_df["lng"].to_numpy()) - ids = coords_df["id"].to_numpy() - - tree = cKDTree(xy) - pairs = tree.query_pairs(r=NEAR_BY_RADIUS_M, output_type="ndarray") - - # query_pairs는 무방향 쌍(i None: - assert _place_type("FD", "한식", "한식(일반)") == "RESTAURANT" - assert _place_type("VE", "복합관광시설", "리조트") == "ACCOMMODATION" - assert _place_type("VE", "공연시설", "공연장") == "ACTIVITY" - - chain = _parse_region_chain("제주특별자치도 제주시 한림읍 한림로 247, 2층") - assert [n for _, n in chain] == ["한림읍", "제주시", "제주도"], chain - - chain = _parse_region_chain("제주특별자치도 제주시 항골남길 46, 1층 (이호일동)") - assert [n for _, n in chain] == ["이호일동", "제주시", "제주도"], chain - - chain = _parse_region_chain("제주특별자치도 제주시 신대로 60") - assert [n for _, n in chain] == ["제주시", "제주도"], chain - print(" self-check 통과") - - -def main() -> None: - print("[0/5] self-check") - _selfcheck() - - print("[1/5] 원본 로드") - places_raw = pd.read_excel(PLACE_XLSX) - group_map = _load_category_group_map() - - print("[2/5] Place / Category 구성") - places_raw["place_id"] = "kakao_" + places_raw["ID"].astype(str) - places_raw["place_type"] = places_raw.apply( - lambda r: _place_type(r["대분류코드"], r["중분류명"], r["소분류명"]), axis=1 - ) - places_raw["category_group"] = places_raw["소분류코드"].map(group_map) - unmapped = places_raw.loc[places_raw["category_group"].isna(), "소분류코드"].unique() - if len(unmapped): - print(f" 경고: 관광타입명 매핑 실패 소분류코드 {list(unmapped)} (group 값 비움)") - - place_nodes = pd.DataFrame({ - "id:ID": places_raw["place_id"], - "name": places_raw["상호명"], - "place_type": places_raw["place_type"], - "category_major_code": places_raw["대분류코드"], - "category_major_name": places_raw["대분류명"], - "category_medium_code": places_raw["중분류코드"], - "category_medium_name": places_raw["중분류명"], - "address": places_raw["도로명주소"].fillna(""), - "lat:float": places_raw["위도"], - "lng:float": places_raw["경도"], - "business_hours": "", # 원본에 없음 — data_construct.md 5절 참고 - "off_days": "", # 원본에 없음 - ":LABEL": "Place", - }) - - category_nodes = ( - places_raw[["소분류코드", "소분류명", "category_group"]] - .drop_duplicates(subset=["소분류코드"]) - .rename(columns={"소분류코드": "code:ID", "소분류명": "name", "category_group": "group"}) - ) - category_nodes[":LABEL"] = "Category" - - rel_has_category = pd.DataFrame({ - ":START_ID": places_raw["place_id"], - ":END_ID": places_raw["소분류코드"], - ":TYPE": "HAS_CATEGORY", - }) - - print("[3/5] Region 구성 (주소 파싱)") - chains = places_raw["도로명주소"].fillna("").map(_parse_region_chain) - places_raw["region_id"] = chains.map(lambda c: c[0][0]) - - region_seen: dict[str, str] = {} - part_of_edges: set[tuple[str, str]] = set() - for chain in chains: - for rid, rname in chain: - region_seen[rid] = rname - for (child_id, _), (parent_id, _) in zip(chain, chain[1:], strict=False): - part_of_edges.add((child_id, parent_id)) - - region_nodes = pd.DataFrame( - [{"id:ID": rid, "name": rname, ":LABEL": "Region"} for rid, rname in region_seen.items()] - ) - rel_part_of = pd.DataFrame( - [{":START_ID": c, ":END_ID": p, ":TYPE": "PART_OF"} for c, p in sorted(part_of_edges)] - ) - rel_is_located_in = pd.DataFrame({ - ":START_ID": places_raw["place_id"], - ":END_ID": places_raw["region_id"], - ":TYPE": "IS_LOCATED_IN", - }) - - print("[4/5] NEAR_BY 계산 (반경 300m + Top-20)") - near_by_input = pd.DataFrame({ - "id": places_raw["place_id"], "lat": places_raw["위도"], "lng": places_raw["경도"], - }) - rel_near_by = build_near_by(near_by_input) - - print("[5/5] CSV 출력") - OUT_DIR.mkdir(parents=True, exist_ok=True) - place_nodes.to_csv(OUT_DIR / "place_nodes.csv", index=False) - region_nodes.to_csv(OUT_DIR / "region_nodes.csv", index=False) - category_nodes.to_csv(OUT_DIR / "category_nodes.csv", index=False) - rel_is_located_in.to_csv(OUT_DIR / "rel_is_located_in.csv", index=False) - rel_part_of.to_csv(OUT_DIR / "rel_part_of.csv", index=False) - rel_has_category.to_csv(OUT_DIR / "rel_has_category.csv", index=False) - rel_near_by.to_csv(OUT_DIR / "rel_near_by.csv", index=False) - - print(f""" -=== 완료 === -Place : {len(place_nodes):,} -Region : {len(region_nodes):,} -Category : {len(category_nodes):,} -IS_LOCATED_IN : {len(rel_is_located_in):,} -PART_OF : {len(rel_part_of):,} -HAS_CATEGORY : {len(rel_has_category):,} -NEAR_BY : {len(rel_near_by):,} -출력 위치: {OUT_DIR} - -건너뜀 (원본 xlsx에 데이터 없음): Theme/HAS_THEME, Audience/SUITABLE_FOR, -Place.business_hours/off_days 값, Itinerary/Visit — data_construct.md 5절 참고. -""") - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/scripts/demo_live_e2e.py b/scripts/demo_live_e2e.py index dcf6409..513b2d2 100644 --- a/scripts/demo_live_e2e.py +++ b/scripts/demo_live_e2e.py @@ -1,12 +1,5 @@ -"""라이브 E2E 데모 — 실제 Claude API + 실제 Neo4j Aura를 동시에 호출한다. +"""라이브 E2E 데모: 로컬 근거 카탈로그와 실제 Claude API를 점검한다.""" -mock 없음. .env의 ANTHROPIC_API_KEY / NEO4J_* 로 각각 실제 서비스에 접속해 -제주 Hard Fail 1건을 ExplainEngine에 넣고, Aura 그래프에서 찾은 근거(지역· -도보권 대안)가 Claude 응답에 실제로 반영되는지 눈으로 확인한다. - -Usage: - python scripts/demo_live_e2e.py -""" from __future__ import annotations import sys @@ -17,7 +10,7 @@ sys.path.insert(0, str(Path(__file__).parent.parent)) load_dotenv(Path(__file__).parent.parent / ".env") -from src.data.graph_retriever import GraphRetriever +from src.data.evidence_retriever import LocalEvidenceRetriever from src.data.models import DayPlan, HardFail, ItineraryPlan, PlaceInput from src.explain.explain_engine import ExplainEngine @@ -25,53 +18,51 @@ def main() -> None: - graph = GraphRetriever.from_env() - engine = ExplainEngine(graph_retriever=graph) - - print(f"[1/3] Neo4j Aura 연결: {'OK' if graph.enabled else 'FAIL — NEO4J_* .env 확인'}") - print(f"[1/3] Claude API 연결: {'OK' if engine.is_available() else 'FAIL — ANTHROPIC_API_KEY .env 확인'}") - assert graph.enabled, "Aura 미연결 — .env NEO4J_URI/USERNAME/PASSWORD 필요" - assert engine.is_available(), "Claude 미연결 — .env ANTHROPIC_API_KEY 필요" - - places = graph.search_places(POI_NAME, limit=1) - assert places, f"Aura 그래프에 '{POI_NAME}' 없음 — scripts/load_knowledge_graph_neo4j.py 적재 확인" + catalog = LocalEvidenceRetriever.from_settings() + engine = ExplainEngine(graph_retriever=catalog) + + print(f"[1/3] 로컬 근거 카탈로그: {'OK' if catalog.enabled else 'FAIL'}") + print(f"[1/3] Claude API: {'OK' if engine.is_available() else 'FAIL'}") + if not catalog.enabled: + raise RuntimeError("로컬 근거 카탈로그를 사용할 수 없습니다.") + if not engine.is_available(): + raise RuntimeError("ANTHROPIC_API_KEY를 설정해야 합니다.") + + places = catalog.search_places(POI_NAME, limit=1) + if not places: + raise RuntimeError(f"근거 카탈로그에 '{POI_NAME}'이 없습니다.") place = places[0] - nearby = graph.find_nearby(place.place_id, limit=3) - print(f"\n[2/3] Aura 조회 결과: {place.name} ({place.region_name}, {place.category_name})") - for alt in nearby: - print(f" 도보권 대안: {alt.name} ({alt.distance_km}km)") + nearby = catalog.find_nearby(place.place_id, limit=3) + print(f"[2/3] {place.name} ({place.region_name}, {place.category_name})") + print(" 인근 대안:", ", ".join(item.name for item in nearby) or "없음") plan = ItineraryPlan( days=[DayPlan(places=[PlaceInput(name=POI_NAME), PlaceInput(name="카멜리아힐")])], - party_size=2, party_type="연인", date="2026-06-01", + party_size=2, + party_type="연인", + date="2026-06-01", ) hard_fail = HardFail( fail_type="OPERATING_HOURS_CONFLICT", message=f"{POI_NAME} 도착 예정 18:30, 마감 18:00", - evidence="도착 18:30 > 마감 18:00", + evidence="도착 18:30 마감 18:00", confidence="High", poi_name=POI_NAME, ) - explanations = engine.generate( - hard_fails=[hard_fail], warnings=[], penalty_breakdown={}, bonus_breakdown={}, - scores=None, plan=plan, final_score=45, + hard_fails=[hard_fail], + warnings=[], + penalty_breakdown={}, + bonus_breakdown={}, + scores=None, + plan=plan, + final_score=45, ) - assert explanations, "Claude가 explanation을 반환하지 않음" - - print(f"\n[3/3] Claude 응답 ({len(explanations)}건):") + if not explanations: + raise RuntimeError("Claude가 explanation을 반환하지 않았습니다.") + print(f"[3/3] Claude 응답: {len(explanations)}건") for item in explanations: - print(f" - [{item.item_type}/{item.risk}] {item.fact}") - print(f" 근거: {item.rule}") - print(f" 제안: {item.suggestion}") - - grounded = any( - place.region_name and place.region_name in (item.fact + item.rule + item.suggestion) - for item in explanations - ) - print(f"\n그래프 근거({place.region_name}) Claude 응답 반영: {'YES' if grounded else 'no (LLM이 문구를 바꿔 표현했을 수 있음)'}") - - graph.close() + print(f" - [{item.item_type}/{item.risk}] {item.fact}") if __name__ == "__main__": diff --git a/scripts/load_knowledge_graph_neo4j.py b/scripts/load_knowledge_graph_neo4j.py deleted file mode 100644 index 6cca466..0000000 --- a/scripts/load_knowledge_graph_neo4j.py +++ /dev/null @@ -1,170 +0,0 @@ -#!/usr/bin/env python3 -"""data/graph/*.csv → Neo4j Aura 적재. - -scripts/build_knowledge_graph.py가 만든 neo4j-admin-import 포맷 CSV를 읽어 -Bolt 드라이버로 배치 UNWIND+MERGE 적재한다 (Aura는 관리형이라 neo4j-admin CLI -오프라인 임포트를 못 쓰기 때문). 멱등적 — 재실행해도 중복 생성되지 않는다. - -용량이 큰 NEAR_BY(약 42만건)는 맨 마지막에 적재한다. Aura Free는 노드/관계 -쿼터가 있어 중간에 실패할 수 있는데, 그 앞의 핵심 그래프(Place/Region/Category -+ IS_LOCATED_IN/PART_OF/HAS_CATEGORY)는 이미 다 적재된 상태로 남는다. - -Usage: - python scripts/load_knowledge_graph_neo4j.py -""" -from __future__ import annotations - -import os -import sys -from pathlib import Path - -import pandas as pd -from dotenv import load_dotenv -from neo4j import Driver, GraphDatabase -from neo4j.exceptions import Neo4jError - -ROOT = Path(__file__).parent.parent -GRAPH_DIR = ROOT / "data" / "graph" -BATCH_SIZE = 2000 - -CONSTRAINTS = [ - "CREATE CONSTRAINT place_id IF NOT EXISTS FOR (p:Place) REQUIRE p.id IS UNIQUE", - "CREATE CONSTRAINT region_id IF NOT EXISTS FOR (r:Region) REQUIRE r.id IS UNIQUE", - "CREATE CONSTRAINT category_code IF NOT EXISTS FOR (c:Category) REQUIRE c.code IS UNIQUE", -] - - -def _strip_type_suffix(col: str) -> str: - # neo4j-admin import 헤더: "id:ID"/"lat:float" → 콜론 앞이 실제 이름, - # ":START_ID"/":END_ID"/":TYPE" → 콜론 뒤가 실제 이름 (앞은 빈 문자열) - if col.startswith(":"): - return col[1:] - return col.split(":")[0] - - -def _load_rows(filename: str) -> list[dict]: - df = pd.read_csv(GRAPH_DIR / filename) - df = df.rename(columns=_strip_type_suffix) - df = df.where(pd.notna(df), None) - return df.to_dict("records") - - -def _run_batched(driver: Driver, database: str, label: str, query: str, rows: list[dict]) -> None: - total = len(rows) - for start in range(0, total, BATCH_SIZE): - batch = rows[start : start + BATCH_SIZE] - driver.execute_query(query, rows=batch, database_=database) - done = min(start + BATCH_SIZE, total) - print(f" {label}: {done:,}/{total:,}") - - -def main() -> None: - load_dotenv(ROOT / ".env") - uri = os.environ["NEO4J_URI"] - user = os.environ["NEO4J_USERNAME"] - password = os.environ["NEO4J_PASSWORD"] - database = os.environ.get("NEO4J_DATABASE", "neo4j") - - driver = GraphDatabase.driver(uri, auth=(user, password)) - driver.verify_connectivity() - print(f"연결 성공: {uri} (database={database})") - - print("[1/8] 제약조건 생성") - for stmt in CONSTRAINTS: - driver.execute_query(stmt, database_=database) - - print("[2/8] Region 노드") - _run_batched( - driver, database, "Region", - "UNWIND $rows AS row MERGE (r:Region {id: row.id}) SET r.name = row.name", - _load_rows("region_nodes.csv"), - ) - - print("[3/8] Category 노드") - _run_batched( - driver, database, "Category", - "UNWIND $rows AS row MERGE (c:Category {code: row.code}) " - "SET c.name = row.name, c.group = row.group", - _load_rows("category_nodes.csv"), - ) - - print("[4/8] Place 노드") - _run_batched( - driver, database, "Place", - """ - UNWIND $rows AS row - MERGE (p:Place {id: row.id}) - SET p.name = row.name, p.place_type = row.place_type, - p.category_major_code = row.category_major_code, - p.category_major_name = row.category_major_name, - p.category_medium_code = row.category_medium_code, - p.category_medium_name = row.category_medium_name, - p.address = row.address, p.lat = row.lat, p.lng = row.lng, - p.business_hours = row.business_hours, p.off_days = row.off_days - """, - _load_rows("place_nodes.csv"), - ) - - print("[5/8] IS_LOCATED_IN") - _run_batched( - driver, database, "IS_LOCATED_IN", - """ - UNWIND $rows AS row - MATCH (p:Place {id: row.START_ID}), (r:Region {id: row.END_ID}) - MERGE (p)-[:IS_LOCATED_IN]->(r) - """, - _load_rows("rel_is_located_in.csv"), - ) - - print("[6/8] PART_OF") - _run_batched( - driver, database, "PART_OF", - """ - UNWIND $rows AS row - MATCH (c:Region {id: row.START_ID}), (parent:Region {id: row.END_ID}) - MERGE (c)-[:PART_OF]->(parent) - """, - _load_rows("rel_part_of.csv"), - ) - - print("[7/8] HAS_CATEGORY") - _run_batched( - driver, database, "HAS_CATEGORY", - """ - UNWIND $rows AS row - MATCH (p:Place {id: row.START_ID}), (c:Category {code: row.END_ID}) - MERGE (p)-[:HAS_CATEGORY]->(c) - """, - _load_rows("rel_has_category.csv"), - ) - - print("[8/8] NEAR_BY (용량 큼 — Free 티어 쿼터로 중간에 멈출 수 있음)") - near_by_rows = _load_rows("rel_near_by.csv") - loaded = 0 - try: - for start in range(0, len(near_by_rows), BATCH_SIZE): - batch = near_by_rows[start : start + BATCH_SIZE] - driver.execute_query( - """ - UNWIND $rows AS row - MATCH (a:Place {id: row.START_ID}), (b:Place {id: row.END_ID}) - MERGE (a)-[rel:NEAR_BY]->(b) - SET rel.distance_m = row.distance_m, rel.walk_min = row.walk_min - """, - rows=batch, - database_=database, - ) - loaded = min(start + BATCH_SIZE, len(near_by_rows)) - print(f" NEAR_BY: {loaded:,}/{len(near_by_rows):,}") - except Neo4jError as exc: - print(f"\nNEAR_BY 적재 {loaded:,}/{len(near_by_rows):,}건에서 중단됨: {exc}") - print("(Place/Region/Category + IS_LOCATED_IN/PART_OF/HAS_CATEGORY는 이미 적재 완료)") - driver.close() - sys.exit(1) - - driver.close() - print("\n=== 적재 완료 ===") - - -if __name__ == "__main__": - main() diff --git a/scripts/neo4j_coverage_analysis.py b/scripts/neo4j_coverage_analysis.py deleted file mode 100644 index cbfc46b..0000000 --- a/scripts/neo4j_coverage_analysis.py +++ /dev/null @@ -1,367 +0,0 @@ -"""Neo4j 제거 타당성 분석 — 설계 의도 vs 현재 Python 로직 커버리지 비교. - -Neo4j가 SUMMARY.md에서 맡기로 한 3가지 역할: - Role-A: 비연속 구역 재진입(백트래킹) 탐지 - Role-B: 동선 역행 수치화 (지리 순서 vs 시간 순서 교차 비교) - Role-C: 시간대별 일정 밀도(TimeSlot 과밀) 탐지 - -각 역할에 대해: - - Neo4j라면 탐지했을 케이스를 시뮬레이션 - - 현재 Python 모듈(vrptw/cluster_dispersion)이 실제로 탐지하는지 검증 - -Usage: - python scripts/neo4j_coverage_analysis.py -""" -from __future__ import annotations - -import sys -from dataclasses import dataclass - -sys.path.insert(0, ".") - -from src.data.models import VRPTWDay, VRPTWPlace, VRPTWRequest -from src.scoring.cluster_dispersion import evaluate_cluster_dispersion -from src.scoring.travel_ratio import evaluate_travel_ratio -from src.validation.vrptw_engine import HaversineMatrix, VRPTWEngine - - -# ── 테스트용 POI 좌표 (실제 위치 기반) ────────────────────────────────── -POI_COORDS = { - # (lat, lng, sigungu_code, open, close) - "강남역": (37.4979, 127.0276, "11680", "00:00", "23:59"), - "코엑스": (37.5115, 127.0590, "11680", "10:00", "22:00"), - "홍대입구역": (37.5574, 126.9248, "11440", "00:00", "23:59"), - "연남동": (37.5634, 126.9259, "11440", "10:00", "22:00"), - "명동": (37.5636, 126.9869, "11140", "10:00", "22:00"), - "경복궁": (37.5796, 126.9770, "11110", "09:00", "18:00"), - "인사동": (37.5742, 126.9856, "11110", "10:00", "22:00"), - "이태원": (37.5340, 126.9947, "11590", "10:00", "23:00"), - "남산타워": (37.5512, 126.9882, "11140", "10:00", "23:00"), - "잠실롯데월드": (37.5110, 127.0980, "11710", "09:30", "21:00"), - "송파올림픽공원":(37.5207, 127.1217, "11710", "09:00", "18:00"), - "여의도": (37.5219, 126.9245, "11560", "00:00", "23:59"), -} - - -def make_place( - name: str, - stay_min: int = 60, - is_depot: bool = False, -) -> VRPTWPlace: - lat, lng, _, open_, close = POI_COORDS[name] - return VRPTWPlace( - name=name, lat=lat, lng=lng, - open=open_, close=close, - stay_duration=stay_min, - is_depot=is_depot, - ) - - -def sigungu_for(name: str) -> str: - return POI_COORDS[name][2] - - -# ── Neo4j 백트래킹 탐지 시뮬레이션 ────────────────────────────────────── - -def neo4j_backtrack_count(place_names: list[str]) -> int: - """Neo4j IN_AREA 노드 로직 시뮬레이션. - - 방문 순서에서 이미 방문한 Area(시군구)에 비연속으로 재진입하는 횟수를 계산. - (강남→홍대→강남) → 1회 - """ - visited: list[str] = [] - backtrack = 0 - seen: set[str] = set() - for name in place_names: - area = sigungu_for(name) - if area in seen and (not visited or visited[-1] != area): - backtrack += 1 - seen.add(area) - visited.append(area) - return backtrack - - -def neo4j_timeslot_density(place_names: list[str], stay_min: int = 60) -> dict[str, int]: - """Neo4j TimeSlot 노드 밀도 시뮬레이션. - - 09:00 출발, 각 POI를 순서대로 방문했을 때 시간대별 점유 수 계산. - """ - matrix = HaversineMatrix() - places = [make_place(n, stay_min) for n in place_names] - slots: dict[str, int] = {} - current = 9 * 60 # 09:00 in minutes - - for i, place in enumerate(places): - if i > 0: - travel_s = matrix.get_travel_time(places[i - 1], place) - current += travel_s / 60 - arrive = max(current, place.open_minutes) - depart = arrive + stay_min - # 1시간 단위 슬롯 점유 - h = int(arrive // 60) - while h * 60 < depart: - key = f"{h:02d}:00" - slots[key] = slots.get(key, 0) + 1 - h += 1 - current = depart - - return slots - - -# ── 케이스별 비교 함수 ────────────────────────────────────────────────── - -@dataclass -class CoverageResult: - case: str - neo4j_would_detect: bool - python_detects: bool - neo4j_detail: str - python_detail: str - - @property - def covered(self) -> bool: - return self.python_detects or not self.neo4j_would_detect - - -def run_vrptw(days_names: list[list[str]], stay_min: int = 60) -> tuple: - """VRPTWEngine + cluster_dispersion 실행, (vrptw_result, dispersion_report) 반환.""" - engine = VRPTWEngine(ortools_available=False) - days = [VRPTWDay(places=[make_place(n, stay_min) for n in day]) for day in days_names] - request = VRPTWRequest(days=days) - vrptw = engine.validate(request) - - sigungu = [[sigungu_for(n) for n in day] for day in days_names] - disp = evaluate_cluster_dispersion(days, sigungu) - - ratio = evaluate_travel_ratio(days) - - return vrptw, disp, ratio - - -def print_result(r: CoverageResult) -> None: - icon = "✓" if r.python_detects else ("△" if not r.neo4j_would_detect else "✗") - print(f"\n [{icon}] {r.case}") - print(f" Neo4j 탐지 여부 : {'YES — ' + r.neo4j_detail if r.neo4j_would_detect else 'NO'}") - print(f" Python 탐지 여부: {'YES — ' + r.python_detail if r.python_detects else 'NO (미탐지)'}") - - -# ════════════════════════════════════════════════════════════════════════════ -# Role-A: 비연속 구역 재진입(백트래킹) 탐지 -# ════════════════════════════════════════════════════════════════════════════ - -def test_role_a() -> list[CoverageResult]: - results = [] - - # A-1: 소규모 백트래킹 (강남→홍대→강남) — 시군구 전환 2회 - names = ["강남역", "홍대입구역", "코엑스"] # 강남구→마포구→강남구 - bt = neo4j_backtrack_count(names) - vrptw, disp, _ = run_vrptw([names]) - sw = disp.per_day[0].sigungu_switches - gap = vrptw.efficiency_gap - - bt_py = disp.per_day[0].area_backtrack_count - results.append(CoverageResult( - case="A-1: 소규모 백트래킹 (강남→홍대→강남, 시군구 전환 2회)", - neo4j_would_detect=bt >= 1, - neo4j_detail=f"비연속 구역 재진입 {bt}회 탐지", - python_detects=bt_py >= 1 or sw >= 3 or (gap is not None and gap > 0.20), - python_detail=( - f"area_backtrack={bt_py}(M3 신규), sigungu_switches={sw}(임계 3), " - + (f"efficiency_gap={gap:.1%}" if gap is not None else "gap=None") - ), - )) - - # A-2: 명확한 백트래킹 (강남→홍대→강남→이태원→강남, 전환 4회) - names2 = ["강남역", "홍대입구역", "코엑스", "이태원", "잠실롯데월드"] - # 강남구→마포구→강남구→용산구→송파구 (전환4회, 재진입1회) - bt2 = neo4j_backtrack_count(names2) - vrptw2, disp2, _ = run_vrptw([names2]) - sw2 = disp2.per_day[0].sigungu_switches - gap2 = vrptw2.efficiency_gap - km2 = disp2.per_day[0].max_pairwise_km - bt2_py = disp2.per_day[0].area_backtrack_count - - results.append(CoverageResult( - case="A-2: 명확한 백트래킹 (5-POI, 시군구 전환 4회)", - neo4j_would_detect=bt2 >= 1, - neo4j_detail=f"비연속 구역 재진입 {bt2}회", - python_detects=bt2_py >= 1 or sw2 >= 3 or km2 >= 30.0, - python_detail=( - f"area_backtrack={bt2_py}(M3), sigungu_switches={sw2}(임계 3), " - f"max_km={km2:.1f}, penalty={disp2.total_penalty}" - ), - )) - - # A-3: 백트래킹 없는 순방향 동선 (강남→송파→잠실) - names3 = ["강남역", "이태원", "명동", "경복궁"] - bt3 = neo4j_backtrack_count(names3) - _, disp3, _ = run_vrptw([names3]) - sw3 = disp3.per_day[0].sigungu_switches - bt3_py = disp3.per_day[0].area_backtrack_count - - results.append(CoverageResult( - case="A-3: 순방향 동선 (False-positive 검사, 탐지=0이어야 정상)", - neo4j_would_detect=bt3 >= 1, - neo4j_detail=f"비연속 재진입 {bt3}회", - python_detects=bt3_py >= 1, # M3만으로 판정 — sw는 False-positive 발생 가능 - python_detail=f"area_backtrack={bt3_py}(M3, 0이면 정상), sigungu_switches={sw3}", - )) - - return results - - -# ════════════════════════════════════════════════════════════════════════════ -# Role-B: 동선 역행 수치화 -# ════════════════════════════════════════════════════════════════════════════ - -def test_role_b() -> list[CoverageResult]: - results = [] - - # B-1: 심각한 동선 역행 (서울 북→남→북→남 패턴) - # 경복궁(북)→잠실(남동)→인사동(북)→여의도(서) - names = ["경복궁", "잠실롯데월드", "인사동", "여의도"] - vrptw, disp, ratio = run_vrptw([names]) - km = disp.per_day[0].max_pairwise_km - has_penalty = disp.total_penalty > 0 or ratio.total_penalty > 0 - - results.append(CoverageResult( - case="B-1: 극단적 동선 역행 (경복궁→잠실→인사동→여의도)", - neo4j_would_detect=True, # 지리 순서 vs 시간 순서 역전으로 탐지 - neo4j_detail="SCHEDULED_AT 시간 순서 vs IN_AREA 지리 순서 역전", - python_detects=has_penalty or km >= 30.0, - python_detail=( - f"max_km={km:.1f}(임계 30), " - f"disp_penalty={disp.total_penalty}, " - f"ratio_penalty={ratio.total_penalty}, " - f"deep_dive={len(vrptw.deep_dive)}건" - ), - )) - - # B-2: 효율적인 순환 동선 (False-positive) - # 경복궁→인사동→명동→남산타워 (지리적으로 순방향) - names2 = ["경복궁", "인사동", "명동", "남산타워"] - vrptw2, disp2, ratio2 = run_vrptw([names2]) - km2 = disp2.per_day[0].max_pairwise_km - - results.append(CoverageResult( - case="B-2: 효율적 순환 동선 (False-positive 검사)", - neo4j_would_detect=False, - neo4j_detail="역행 없음", - python_detects=disp2.total_penalty > 0 or ratio2.total_penalty > 0, - python_detail=( - f"max_km={km2:.1f}, disp_penalty={disp2.total_penalty}, " - f"ratio_penalty={ratio2.total_penalty}" - ), - )) - - return results - - -# ════════════════════════════════════════════════════════════════════════════ -# Role-C: 시간대별 일정 밀도(TimeSlot 과밀) 탐지 -# ════════════════════════════════════════════════════════════════════════════ - -def test_role_c() -> list[CoverageResult]: - results = [] - - # C-1: 오전 과밀 일정 (6개 POI를 오전에 몰아 넣기, stay 30분씩) - names = ["경복궁", "인사동", "명동", "남산타워", "이태원", "홍대입구역"] - slots = neo4j_timeslot_density(names, stay_min=30) - peak_count = max(slots.values()) if slots else 0 - neo4j_peak_hour = [k for k, v in slots.items() if v == peak_count] - - vrptw, disp, ratio = run_vrptw([names], stay_min=30) - fatigue_items = [d for d in vrptw.deep_dive if d.rule == "fatigue"] - has_fatigue = len(fatigue_items) > 0 - - results.append(CoverageResult( - case="C-1: 오전 과밀 일정 (6 POI × 30분, 하루 내)", - neo4j_would_detect=peak_count >= 3, - neo4j_detail=f"피크 시간대 {neo4j_peak_hour} 동시 {peak_count}개 POI", - python_detects=has_fatigue or ratio.overall_ratio >= 0.20, - python_detail=( - f"fatigue 탐지={has_fatigue}, " - f"travel_ratio={ratio.overall_ratio:.1%}(임계 20%), " - f"deep_dive={len(vrptw.deep_dive)}건" - ), - )) - - # C-2: 적정 일정 (4 POI × 90분, 여유 있는 하루) - names2 = ["경복궁", "인사동", "명동", "남산타워"] - slots2 = neo4j_timeslot_density(names2, stay_min=90) - peak2 = max(slots2.values()) if slots2 else 0 - - vrptw2, disp2, ratio2 = run_vrptw([names2], stay_min=90) - fatigue2 = [d for d in vrptw2.deep_dive if d.rule == "fatigue"] - - results.append(CoverageResult( - case="C-2: 적정 일정 (4 POI × 90분, False-positive 검사)", - neo4j_would_detect=peak2 >= 3, - neo4j_detail=f"최고 밀도 {peak2}", - python_detects=len(fatigue2) > 0, - python_detail=f"fatigue 탐지={len(fatigue2) > 0}, ratio={ratio2.overall_ratio:.1%}", - )) - - return results - - -# ════════════════════════════════════════════════════════════════════════════ -# 실행 및 요약 -# ════════════════════════════════════════════════════════════════════════════ - -def main() -> None: - print("=" * 65) - print(" Neo4j 제거 타당성 분석 — 설계 의도 vs Python 로직 커버리지") - print("=" * 65) - - all_results: list[CoverageResult] = [] - - print("\n【Role-A】비연속 구역 재진입(백트래킹) 탐지") - for r in test_role_a(): - print_result(r) - all_results.append(r) - - print("\n【Role-B】동선 역행 수치화") - for r in test_role_b(): - print_result(r) - all_results.append(r) - - print("\n【Role-C】시간대별 일정 밀도 탐지") - for r in test_role_c(): - print_result(r) - all_results.append(r) - - # 요약 - neo4j_detectable = [r for r in all_results if r.neo4j_would_detect] - covered = [r for r in neo4j_detectable if r.python_detects] - missed = [r for r in neo4j_detectable if not r.python_detects] - - print("\n" + "=" * 65) - print(" 커버리지 요약") - print("=" * 65) - print(f" Neo4j가 탐지했을 케이스 : {len(neo4j_detectable)}개") - print(f" Python 로직이 커버하는 수: {len(covered)}개") - print(f" Python 로직이 미탐지한 수: {len(missed)}개") - coverage_pct = len(covered) / len(neo4j_detectable) * 100 if neo4j_detectable else 100 - print(f" 커버리지 : {coverage_pct:.0f}%") - - if missed: - print("\n ⚠ 미탐지 케이스:") - for r in missed: - print(f" - {r.case}") - print(f" → {r.neo4j_detail}") - - print("\n 결론:") - if coverage_pct == 100: - print(" ✓ 현재 Python 로직이 Neo4j 설계 역할을 완전히 커버합니다.") - print(" → Neo4j 제거 가능.") - elif coverage_pct >= 80: - print(" △ 대부분 커버되나 일부 케이스에서 미탐지가 있습니다.") - print(" → 미탐지 케이스를 Python으로 보완 후 제거 권장.") - else: - print(" ✗ Python 로직만으로는 탐지율이 부족합니다.") - print(" → Neo4j 유지 또는 Python으로 전면 재구현 필요.") - - -if __name__ == "__main__": - main() diff --git a/src/api/main.py b/src/api/main.py index 293af94..f9d2ae1 100644 --- a/src/api/main.py +++ b/src/api/main.py @@ -6,7 +6,7 @@ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware -from fastapi.responses import HTMLResponse, Response +from fastapi.responses import HTMLResponse, JSONResponse, Response from fastapi.staticfiles import StaticFiles from src.api.router import router @@ -69,7 +69,7 @@ async def service_worker() -> Response: @app.get("/health", include_in_schema=False) -async def health() -> dict: +async def health() -> JSONResponse: """라이브니스 + 구성 진단. 시크릿 값은 절대 노출하지 않고, 키 설정 여부(bool)와 @@ -99,10 +99,13 @@ async def health() -> dict: data_loaded = {} ready = data_loaded.get("places", 0) > 0 and data_loaded.get("congestion_places", 0) > 0 - return { - "status": "ok" if ready else "degraded", - "ready": ready, - "version": app.version, - "apis_configured": apis_configured, - "data_loaded": data_loaded, - } + return JSONResponse( + content={ + "status": "ok" if ready else "degraded", + "ready": ready, + "version": app.version, + "apis_configured": apis_configured, + "data_loaded": data_loaded, + }, + status_code=200 if ready else 503, + ) diff --git a/src/api/router.py b/src/api/router.py index f785178..70f6a3a 100644 --- a/src/api/router.py +++ b/src/api/router.py @@ -26,6 +26,8 @@ from src.data.hours_db import resolve_hours from src.data.kakao_local import KakaoLocalClient from src.data.models import POI, DayPlan, ItineraryPlan, PlaceInput +from src.data.place_resolver import ExternalPlaceResolver +from src.data.tour_api import TourAPIClient from src.explain.pipeline import ValidatorPipeline from src.explain.plan_extractor import PlanExtractionError, PlanExtractor from src.matrix.route_matrix import RouteMatrixService @@ -36,6 +38,8 @@ # 카카오 로컬 키워드 검색 (식당 등 pois.csv 미수록 장소의 좌표 보강). # 키가 없으면 enabled=False 로 동작해 기존 폴백을 유지한다. _KAKAO_LOCAL = KakaoLocalClient.from_env() +_TOUR_API = TourAPIClient.from_settings() +_PLACE_RESOLVER = ExternalPlaceResolver(_KAKAO_LOCAL, _TOUR_API) # 로컬 장소 근거 — 지역/근접 대안 조회. _GRAPH = LocalEvidenceRetriever.from_settings() @@ -1281,7 +1285,12 @@ def _lookup_place(name: str) -> dict | None: return None -def _resolve_poi(name: str, idx: int, address: str = "") -> tuple[POI, POIInfo]: +def _resolve_poi( + name: str, + idx: int, + address: str = "", + allow_tour_api: bool = False, +) -> tuple[POI, POIInfo]: place = _lookup_place(name) has_coords = place is not None and place.get("has_coords", False) norm = _normalize(name) @@ -1291,6 +1300,7 @@ def _resolve_poi(name: str, idx: int, address: str = "") -> tuple[POI, POIInfo]: # Medium — pois.csv / naver_metadata 매칭 (TourAPI 수집 좌표) # Low — 서울 시청 폴백 (좌표 신뢰 불가) hint: str | None = None + tour_hours: tuple[str, str] | None = None contentid = "" if norm in _COORD_CATALOG_NORM: confidence: str = "High" @@ -1305,36 +1315,32 @@ def _resolve_poi(name: str, idx: int, address: str = "") -> tuple[POI, POIInfo]: category = place["cat"] contentid = str(place.get("contentid") or "") else: - # pois.csv·카탈로그 미매칭 → 카카오 로컬 키워드 검색으로 좌표 보강 - # (식당·카페 등). 실패 시에만 서울시청 폴백으로 떨어진다. - kp = _KAKAO_LOCAL.search_keyword(name) - if kp is not None: + # 검증 경로에서는 TourAPI를 먼저 조회하고, 이후 Kakao를 보강 소스로 사용한다. + external = _PLACE_RESOLVER.resolve(name, address, allow_tour_api=allow_tour_api) + if external is not None: confidence = "Medium" - source = "kakao" - lat, lng = kp.lat, kp.lng - category = "12" - hint = _kakao_hint(kp.category_name) + source = external.source + lat, lng = external.lat, external.lng + category = external.category + hint = _kakao_hint(external.category_name) + if external.open_start and external.open_end: + tour_hours = (external.open_start, external.open_end) + contentid = external.poi_id else: - # 카카오 키워드 검색도 실패 — 파싱된 주소가 있으면 지오코딩으로 최후 보강 - # (4·3길 등 사업장이 아닌 장소는 키워드 검색에 잡히지 않는다). - geo = _KAKAO_LOCAL.geocode_address(address) if address else None - if geo is not None: - confidence = "Medium" - source = "geocode" - lat, lng = geo - category = "12" - else: - confidence = "Low" - source = "fallback" - lat, lng = _DEFAULT_CENTER - category = "12" + confidence = "Low" + source = "fallback" + lat, lng = _DEFAULT_CENTER + category = "12" # 운영시간: TourAPI 실측(jeju_hours.json) → jeju_places.csv 실측 영업시간 → # 카테고리·키워드 추정(hours_db) 순으로 폴백. real_hours = _JEJU_HOURS.get(contentid) if contentid else None if not real_hours and place and place.get("open_start"): real_hours = {"open": place["open_start"], "close": place["open_end"]} - if real_hours: + if tour_hours: + open_start, open_end = tour_hours + hours_estimated = open_start == "00:00" and open_end == "23:59" + elif real_hours: open_start, open_end = real_hours["open"], real_hours["close"] hours_estimated = False else: @@ -1436,7 +1442,7 @@ async def list_places( # 로컬 DB(pois.csv)에 결과가 적으면 카카오 키워드 검색으로 보강(식당 등 미수록 장소). if q and not q_is_jamo and len(filtered) < 8 and _KAKAO_LOCAL.enabled: existing = {_normalize(p["name"]) for p in filtered} - for kp in _KAKAO_LOCAL.search_keyword_list(q, size=15): + for kp in _PLACE_RESOLVER.search_keyword_list(q, size=15): nm = _normalize(kp.name) if not nm or nm in existing: continue @@ -1547,6 +1553,13 @@ async def resolve_coords(req: DayPlanWeb) -> list[POI]: for idx, place in enumerate(req.places) ) ) + unresolved = [info.name for _poi, info in resolved if not info.found] + if unresolved: + raise HTTPException( + status_code=422, + detail=f"좌표를 확인할 수 없는 장소: {', '.join(unresolved)}", + ) + return [poi for poi, _info in resolved] @@ -1555,7 +1568,7 @@ async def validate_plan(req: ValidateRequest) -> ValidateResponse: if not req.days: raise HTTPException(status_code=422, detail="days must not be empty") - # _resolve_poi는 Kakao/Neo4j 블로킹 I/O를 포함한다 — 장소별로 순차 실행하면 + # _resolve_poi는 외부 데이터 클라이언트의 블로킹 I/O를 포함한다. 장소별로 # 지연이 선형으로 누적되고 이벤트 루프까지 막힌다. to_thread로 동시 실행한다. flat_places = [ (day_idx, place.name, place.address) @@ -1564,7 +1577,7 @@ async def validate_plan(req: ValidateRequest) -> ValidateResponse: ] resolved = await asyncio.gather( *( - asyncio.to_thread(_resolve_poi, name, idx, address) + asyncio.to_thread(_resolve_poi, name, idx, address, True) for idx, (_, name, address) in enumerate(flat_places) ) ) diff --git a/src/api/schemas.py b/src/api/schemas.py index 9b28e45..89da6e0 100644 --- a/src/api/schemas.py +++ b/src/api/schemas.py @@ -29,7 +29,16 @@ class DayPlanWeb(BaseModel): class POIInfo(BaseModel): name: str found: bool - source: str # "catalog" | "pois" | "fallback" + source: Literal[ + "catalog", + "pois", + "fallback", + "kakao", + "geocode", + "tour_api", + "jeju_csv", + "seoul_realtime", + ] confidence: Literal["High", "Medium", "Low"] = "Medium" lat: float lng: float diff --git a/src/api/security.py b/src/api/security.py index e0750c7..4161186 100644 --- a/src/api/security.py +++ b/src/api/security.py @@ -46,13 +46,17 @@ async def security_middleware(request: Request, call_next): if path.startswith("/api/") and request.method != "OPTIONS": settings = Settings() protected = path in _PROTECTED_PATHS - token_required = settings.environment.lower() == "production" or bool( - settings.api_auth_token.strip() - ) + token = settings.api_auth_token.strip() + if settings.environment.lower() == "production" and not token: + return JSONResponse( + {"detail": "API_AUTH_TOKEN must be configured in production"}, + status_code=503, + ) + token_required = settings.environment.lower() == "production" and bool(token) if protected and token_required: authorization = request.headers.get("Authorization", "") supplied = authorization.removeprefix("Bearer ").strip() - expected = settings.api_auth_token.strip() + expected = token if not expected or not secrets.compare_digest(supplied, expected): return JSONResponse({"detail": "인증이 필요합니다."}, status_code=401) diff --git a/src/api/static/index.html b/src/api/static/index.html index 22e54e5..c866579 100644 --- a/src/api/static/index.html +++ b/src/api/static/index.html @@ -1271,6 +1271,7 @@ } + @@ -1335,13 +1336,13 @@

내 여행 일정,
실제로 가능한지 검증해드립니다

02
방문 장소 구성
03
검증 결과 확인
- - + + +
diff --git a/src/api/static/landing.css b/src/api/static/landing.css new file mode 100644 index 0000000..aa2b43e --- /dev/null +++ b/src/api/static/landing.css @@ -0,0 +1,67 @@ +/* Reference-led landing: illustrated travel map, centered introduction, + and a single white input surface. Builder and result styles stay scoped. */ +body:has(#s1.active) { background: #60d9d2; } +body:has(#s1.active) header { background: #f7fafb; backdrop-filter: none; padding-inline: 36px; border: 0; } +body:has(#s1.active) .brand-mark { width: 39px; height: 38px; background: #e84830; border-radius: 12px; } +body:has(#s1.active) .brand-name { font-size: 21px; } +body:has(#s1.active) .brand-sub { font-size: 11px; } +body:has(#s1.active) .stepbar { display: none; } +#s1 { + min-height: max(100svh, 1500px); + padding-bottom: 180px; + background-color: #62dbd2; + background-image: linear-gradient(180deg, rgba(8,47,72,.32), rgba(8,47,72,0) 650px), url('/static/qtrip-map.png'); + background-size: cover; + background-position: center top; + background-repeat: no-repeat; +} +#s1 .s1-hero { background: none; padding: 62px 24px 46px; overflow: visible; } +#s1 .s1-hero::before, #s1 .s1-hero::after { content: none; } +#s1 .s1-hero-inner { max-width: 1000px; margin-inline: auto; } +#s1 .s1-eyebrow { font-size: 13px; letter-spacing: .22em; opacity: 1; margin-bottom: 20px; color: #fff; } +#s1 .s1-hero h2 { font-size: clamp(30px, 3.3vw, 46px); font-weight: 800; line-height: 1.2; letter-spacing: -.035em; margin-bottom: 14px; color: #fff; text-wrap: balance; } +#s1 .s1-hero p { max-width: 620px; font-size: 16px; line-height: 1.65; opacity: 1; color: #fff; text-shadow: 0 1px 8px rgba(0,45,66,.4); } +#s1 .hero-how { display: flex; justify-content: center; gap: 10px; } +#s1 .hero-step { min-width: 96px; padding: 9px 12px; border: 1px solid rgba(255,255,255,.42); border-radius: 10px; background: rgba(215,250,255,.18); color: #fff; } +#s1 .hero-step-n { font-size: 13px; color: #fff; margin-bottom: 3px; } +#s1 .hero-step-t { font-size: 13px; color: #fff; } +#s1 .hero-scroll-cue { display: flex; flex-direction: column; align-items: center; gap: 7px; margin: 28px auto 0; padding: 7px 16px; min-height: 44px; border: 0; background: transparent; color: #fff; font: inherit; font-size: 12px; cursor: pointer; opacity: 1; } +#s1 .hero-scroll-chevron { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #fff; border-radius: 50%; } +#s1 .s1-body { width: calc(100% - 48px); max-width: 840px; margin: 0 auto; padding: 20px 20px 24px; background: rgba(255,255,255,.98); border-radius: 24px; box-shadow: none; scroll-margin-top: 80px; } +#s1 .s1-tab-bar { padding: 4px; margin: 0 0 12px; background: #f3f4f6; border-radius: 16px; } +#s1 .s1-tab-bar button { min-height: 48px; font-size: 15px; color: #616b7d; border-radius: 12px; } +#s1 .s1-tab-bar button.active { background: #fff; color: #cf351e; box-shadow: none; } +#s1 .scard { background: transparent; padding: 24px; margin: 0; border: 0; border-radius: 0; box-shadow: none; } +#s1 .scard-label { font-size: 16px; font-weight: 800; letter-spacing: 0; color: #202b3a; margin-bottom: 16px; } +#s1 .upload-drop { min-height: 120px; padding: 24px 16px; border: 1.5px solid #c7cfdb; border-radius: 12px; background: #fff; color: #59677a; } +#s1 .upload-drop:hover, #s1 .upload-drop.drag { border-color: #e84830; background: #fff7f3; } +#s1 .upload-drop span { font-size: 13px; font-weight: 400; } +#s1 .upload-divider { margin: 18px 0; color: #626d7c; } +#s1 .upload-textarea { min-height: 122px; padding: 17px; background: #f9fafc; border: 1px solid #d6dce5; border-radius: 12px; font-size: 14px; } +#s1 .upload-textarea::placeholder { color: #626d7c; } +#s1 .cta { min-height: 56px; background: #e7472f; border-radius: 12px; box-shadow: none; font-size: 17px; } +#s1 .cta:hover:not(:disabled) { background: #c93622; transform: none; box-shadow: none; } +#s1 .cta:disabled { background: #e7472f; opacity: .65; } +#s1 #s1-tab-manual .scard + .scard { border-top: 1px solid #eef0f3; } +#s1 #s1-tab-manual > .cta { width: calc(100% - 48px); margin: 12px 24px; } +#s1 .s1-body > p { color: #435366 !important; padding-inline: 16px; } +#s1 button:focus-visible, #s1 textarea:focus-visible, #s1 .upload-drop:focus-within { outline: 3px solid #173e67; outline-offset: 4px; } +@media (max-width: 700px) { + body:has(#s1.active) header { padding-inline: 18px; } + #s1 { min-height: 100svh; padding-bottom: 72px; background-position: 58% top; } + #s1 .s1-hero { padding: 44px 18px 30px; } + #s1 .s1-eyebrow { font-size: 11px; letter-spacing: .13em; } + #s1 .s1-hero h2 { font-size: clamp(28px, 5.5vw, 38px); } + #s1 .s1-hero p { font-size: 14px; } + #s1 .hero-step { min-width: 0; padding: 9px 10px; } + #s1 .hero-step-t { font-size: 11px; } + #s1 .s1-body { width: calc(100% - 28px); padding: 12px; border-radius: 20px; } + #s1 .scard { padding: 20px 8px 10px; } + #s1 .scard-label { font-size: 15px; } + #s1 .s1-tab-bar button { font-size: 14px; } + #s1 #s1-tab-manual > .cta { width: calc(100% - 16px); margin: 12px 8px; } +} +@media (prefers-reduced-motion: reduce) { + html { scroll-behavior: auto; } + #s1, #s1 *, #s1 *::before, #s1 *::after { animation: none !important; transition: none !important; } +} diff --git a/src/api/static/qtrip-map.png b/src/api/static/qtrip-map.png new file mode 100644 index 0000000..70a6693 Binary files /dev/null and b/src/api/static/qtrip-map.png differ diff --git a/src/api/static/service-worker.js b/src/api/static/service-worker.js index cc831eb..79e1927 100644 --- a/src/api/static/service-worker.js +++ b/src/api/static/service-worker.js @@ -1,4 +1,4 @@ -const CACHE = 'qtrip-v1'; +const CACHE = 'qtrip-v2-map-landing'; const SHELL = ['/']; self.addEventListener('install', function(e) { diff --git a/src/data/models.py b/src/data/models.py index 64ba8d4..a1dadd0 100644 --- a/src/data/models.py +++ b/src/data/models.py @@ -56,6 +56,19 @@ class KakaoPlace(BaseModel): place_url: str = "" +class ExternalPlaceResolution(BaseModel): + """외부 장소 클라이언트가 반환하는 정규화된 장소 후보.""" + + lat: float + lng: float + category: str = "12" + source: Literal["tour_api", "kakao", "geocode"] + poi_id: str = "" + category_name: str = "" + open_start: str | None = None + open_end: str | None = None + + class PlaceEvidence(BaseModel): """로컬 장소 근거 검색 결과 1건 (Region 컨텍스트 포함).""" diff --git a/src/data/place_resolver.py b/src/data/place_resolver.py new file mode 100644 index 0000000..885550a --- /dev/null +++ b/src/data/place_resolver.py @@ -0,0 +1,88 @@ +"""외부 장소 클라이언트를 조합하는 데이터 레이어 resolver.""" + +from __future__ import annotations + +import re + +from src.data.kakao_local import KakaoLocalClient +from src.data.models import ExternalPlaceResolution, KakaoPlace, Settings +from src.data.tour_api import TourAPIClient + + +def _normalize(value: str) -> str: + return re.sub(r"[\s\W_]+", "", value or "", flags=re.UNICODE).lower() + + +class ExternalPlaceResolver: + """TourAPI, Kakao 키워드 검색, 주소 지오코딩의 우선순위를 관리한다.""" + + def __init__( + self, + kakao_client: KakaoLocalClient | None, + tour_api_client: TourAPIClient | None, + ) -> None: + self._kakao = kakao_client + self._tour_api = tour_api_client + + @classmethod + def from_settings(cls, settings: Settings | None = None) -> ExternalPlaceResolver: + return cls( + KakaoLocalClient.from_env(), + TourAPIClient.from_settings(settings), + ) + + def resolve( + self, + name: str, + address: str = "", + allow_tour_api: bool = False, + ) -> ExternalPlaceResolution | None: + normalized = _normalize(name) + + if allow_tour_api and self._tour_api is not None: + candidates = self._tour_api.search_poi_sync(name, num_of_rows=5) + candidate = next( + ( + poi + for poi in candidates + if _normalize(poi.name) == normalized or normalized in _normalize(poi.name) + ), + None, + ) + if candidate is not None: + return ExternalPlaceResolution( + lat=candidate.lat, + lng=candidate.lng, + category=candidate.category, + source="tour_api", + poi_id=candidate.poi_id, + open_start=candidate.open_start, + open_end=candidate.open_end, + ) + + if self._kakao is not None: + candidate = self._kakao.search_keyword(name) + if candidate is not None: + return ExternalPlaceResolution( + lat=candidate.lat, + lng=candidate.lng, + category_name=candidate.category_name, + source="kakao", + ) + + if address: + coordinates = self._kakao.geocode_address(address) + if coordinates is not None: + return ExternalPlaceResolution( + lat=coordinates[0], + lng=coordinates[1], + source="geocode", + ) + + return None + + def search_keyword_list(self, query: str, size: int = 15) -> list[KakaoPlace]: + """카카오 장소 목록 검색을 data 레이어에서 수행한다.""" + if self._kakao is None: + return [] + return self._kakao.search_keyword_list(query, size=size) diff --git a/src/data/tour_api.py b/src/data/tour_api.py index 9c7328c..5b2d718 100644 --- a/src/data/tour_api.py +++ b/src/data/tour_api.py @@ -2,6 +2,7 @@ from __future__ import annotations +import asyncio import re from typing import Any @@ -58,6 +59,7 @@ def __init__( self._timeout = timeout_sec self._mobile_app = mobile_app self._hours_cache: dict[str, tuple[str, str]] = {} + self._search_cache: dict[str, list[POI]] = {} @classmethod def from_settings(cls, settings: Settings | None = None) -> TourAPIClient | None: @@ -75,6 +77,9 @@ async def search_poi( num_of_rows: int = 10, ) -> list[POI]: """키워드로 POI 검색. 실패 시 빈 리스트 반환.""" + cache_key = f"{keyword.strip()}:{content_type_id}:{num_of_rows}" + if cache_key in self._search_cache: + return self._search_cache[cache_key] params: dict[str, Any] = { "serviceKey": self._key, "numOfRows": num_of_rows, @@ -95,6 +100,7 @@ async def search_poi( return [] items = _extract_items(r.json()) except Exception: + self._search_cache[cache_key] = [] return [] pois: list[POI] = [] @@ -121,8 +127,18 @@ async def search_poi( ) except Exception: continue + self._search_cache[cache_key] = pois return pois + def search_poi_sync( + self, + keyword: str, + content_type_id: int | None = None, + num_of_rows: int = 10, + ) -> list[POI]: + """동기 호출 지점(스레드)에서 async 검색을 안전하게 실행한다.""" + return asyncio.run(self.search_poi(keyword, content_type_id, num_of_rows)) + async def get_operating_hours( self, content_id: str, @@ -159,3 +175,4 @@ async def get_operating_hours( def clear_cache(self) -> None: self._hours_cache.clear() + self._search_cache.clear() diff --git a/src/matrix/__init__.py b/src/matrix/__init__.py index a59d6cc..dfe815d 100644 --- a/src/matrix/__init__.py +++ b/src/matrix/__init__.py @@ -1,5 +1 @@ -"""matrix — 이동시간 행렬 구현체 패키지.""" - -from src.matrix.redis_matrix import RedisTimeMatrix - -__all__ = ["RedisTimeMatrix"] +"""이동시간 행렬 구현 패키지.""" diff --git a/src/matrix/redis_matrix.py b/src/matrix/redis_matrix.py deleted file mode 100644 index 025fdd0..0000000 --- a/src/matrix/redis_matrix.py +++ /dev/null @@ -1,149 +0,0 @@ -"""Redis 기반 TimeMatrix — REDIS_URL 환경변수로 자동 활성화. - -KakaoMobilityMatrix의 drop-in 대체재: - - REDIS_URL이 설정되어 있으면 Redis에서 캐시 읽기/쓰기 - - REDIS_URL이 없으면 `from_env()` 호출 시 None 반환 (활성화 안 됨) - - redis-py 미설치 시에도 임포트 오류 없이 None 반환 - -키 형식: "travel:{lng1:.4f},{lat1:.4f}|{lng2:.4f},{lat2:.4f}" → TTL 없음 (영구 저장) -양방향 캐시: A→B 저장 시 B→A도 동일 값으로 저장. - -사용 예: - matrix = RedisTimeMatrix.from_env() - if matrix is None: - matrix = KakaoMobilityMatrix.from_env(cache_path="data/route_cache.json") -""" - -from __future__ import annotations - -import os -from pathlib import Path - -from src.data.models import VRPTWPlace -from src.validation.vrptw_engine import HaversineMatrix, TimeMatrix - -try: - import redis as _redis_lib - - _REDIS_AVAILABLE = True -except ImportError: - _REDIS_AVAILABLE = False - - -_KEY_PREFIX = "travel:" - - -class RedisTimeMatrix(TimeMatrix): - """Redis 기반 TimeMatrix. - - redis-py가 설치되어 있고 REDIS_URL이 유효할 때만 동작. - get_travel_time은 항상 동기 (VRPTWEngine/OR-Tools 호환). - Redis 장애 시 HaversineMatrix 자동 폴백. - """ - - def __init__(self, redis_url: str) -> None: - if not _REDIS_AVAILABLE: - raise RuntimeError("redis-py 미설치. `pip install redis` 후 사용하세요.") - self._client = _redis_lib.from_url(redis_url, decode_responses=True) - self._fallback = HaversineMatrix() - self._stats: dict[str, int] = { - "cache_hit": 0, - "cache_miss": 0, - "fallback": 0, - "write": 0, - } - - # ── 팩토리 ─────────────────────────────────────────────────────────── - @classmethod - def from_env( - cls, - env_path: str | Path | None = None, - ) -> RedisTimeMatrix | None: - """REDIS_URL 환경변수가 있으면 인스턴스 반환, 없으면 None.""" - if env_path: - cls._load_dotenv(Path(env_path)) - else: - project_root = Path(__file__).resolve().parents[2] - env_default = project_root / ".env" - if env_default.exists(): - cls._load_dotenv(env_default) - - url = os.environ.get("REDIS_URL", "").strip() - if not url: - return None - if not _REDIS_AVAILABLE: - return None - try: - instance = cls(redis_url=url) - instance._client.ping() - return instance - except Exception: - return None - - @staticmethod - def _load_dotenv(env_path: Path) -> None: - if not env_path.exists(): - return - for line in env_path.read_text(encoding="utf-8").splitlines(): - line = line.strip() - if line and not line.startswith("#") and "=" in line: - k, _, v = line.partition("=") - os.environ.setdefault(k.strip(), v.strip()) - - # ── TimeMatrix 인터페이스 ──────────────────────────────────────────── - def get_travel_time(self, origin: VRPTWPlace, destination: VRPTWPlace) -> int: - if origin.lat == destination.lat and origin.lng == destination.lng: - return 0 - - key_fwd = self._make_key(origin, destination) - key_rev = self._make_key(destination, origin) - - try: - val = self._client.get(key_fwd) or self._client.get(key_rev) - if val is not None: - self._stats["cache_hit"] += 1 - return int(val) - except Exception: - pass - - self._stats["fallback"] += 1 - return self._fallback.get_travel_time(origin, destination) - - def set_travel_time( - self, - origin: VRPTWPlace, - destination: VRPTWPlace, - seconds: int, - bidirectional: bool = True, - ) -> None: - """캐시에 이동시간 저장 (초 단위).""" - key_fwd = self._make_key(origin, destination) - try: - self._client.set(key_fwd, seconds) - if bidirectional: - key_rev = self._make_key(destination, origin) - self._client.set(key_rev, seconds) - self._stats["write"] += 1 - except Exception: - pass - - # ── 유틸 ───────────────────────────────────────────────────────────── - @staticmethod - def _make_key(origin: VRPTWPlace, destination: VRPTWPlace) -> str: - return ( - f"{_KEY_PREFIX}" - f"{origin.lng:.4f},{origin.lat:.4f}" - f"|{destination.lng:.4f},{destination.lat:.4f}" - ) - - @property - def stats(self) -> dict[str, int]: - return dict(self._stats) - - @property - def is_available(self) -> bool: - try: - self._client.ping() - return True - except Exception: - return False diff --git a/src/scoring/cluster_dispersion.py b/src/scoring/cluster_dispersion.py index 1025eb8..e48024c 100644 --- a/src/scoring/cluster_dispersion.py +++ b/src/scoring/cluster_dispersion.py @@ -102,8 +102,11 @@ def count_geo_cluster_backtracks( 경주·제주·강원 지방 목적지에서 효과적. sklearn 미설치 시 0 반환 (graceful fallback). """ - if not _SKLEARN_AVAILABLE or len(places) < 2: + if len(places) < 2: return 0 + if not _SKLEARN_AVAILABLE: + labels = _fallback_cluster_labels(places, eps_km) + return _count_label_backtracks(labels) coords = np.radians([[p.lat, p.lng] for p in places]) eps_rad = eps_km / _EARTH_R_KM labels: list[int] = ( @@ -112,6 +115,33 @@ def count_geo_cluster_backtracks( return _count_label_backtracks(labels) +def _fallback_cluster_labels(places: list[VRPTWPlace], eps_km: float) -> list[int]: + """sklearn 없이도 min_samples=1 DBSCAN과 같은 연결성 클러스터를 계산한다.""" + labels = [-1] * len(places) + cluster_id = 0 + for start in range(len(places)): + if labels[start] != -1: + continue + labels[start] = cluster_id + queue = [start] + while queue: + current = queue.pop() + for neighbor in range(len(places)): + if labels[neighbor] != -1: + continue + distance = _haversine_km( + places[current].lat, + places[current].lng, + places[neighbor].lat, + places[neighbor].lng, + ) + if distance <= eps_km: + labels[neighbor] = cluster_id + queue.append(neighbor) + cluster_id += 1 + return labels + + @dataclass(frozen=True) class DayDispersionMetric: """일자별 밀집도 측정.""" diff --git a/tests/test_cluster_dispersion.py b/tests/test_cluster_dispersion.py index 212e84d..ad8d5df 100644 --- a/tests/test_cluster_dispersion.py +++ b/tests/test_cluster_dispersion.py @@ -2,11 +2,8 @@ from __future__ import annotations -import pytest - from src.data.models import VRPTWDay, VRPTWPlace from src.scoring.cluster_dispersion import ( - _SKLEARN_AVAILABLE, COMBINED_PENALTY_CAP, PENALTY_SWITCH_WARN, count_geo_cluster_backtracks, @@ -78,7 +75,6 @@ def test_per_day_independence(): assert report.total_penalty == 0 -@pytest.mark.skipif(not _SKLEARN_AVAILABLE, reason="sklearn not installed") def test_geo_cluster_backtrack_gyeongju(): """M4: 경주 — 동일 시군구지만 지리적으로 분산 왕복 → M3=0인데 M4≥1.""" day = VRPTWDay( @@ -101,7 +97,6 @@ def test_geo_cluster_backtrack_gyeongju(): assert "geo_cluster_backtrack" in bt_rules -@pytest.mark.skipif(not _SKLEARN_AVAILABLE, reason="sklearn not installed") def test_geo_cluster_no_false_positive_sequential(): """M4 false positive: 강남→홍대 순방향 방문은 패널티 없어야.""" day = VRPTWDay( @@ -116,7 +111,6 @@ def test_geo_cluster_no_false_positive_sequential(): assert bt == 0, "순방향 방문은 지리 클러스터 백트래킹 0" -@pytest.mark.skipif(not _SKLEARN_AVAILABLE, reason="sklearn not installed") def test_geo_cluster_no_double_penalty_when_m3_fires(): """M3가 이미 탐지한 이벤트에 M4가 중복 패널티를 추가하지 않는다. diff --git a/tests/test_dependency_manifests.py b/tests/test_dependency_manifests.py new file mode 100644 index 0000000..eeded70 --- /dev/null +++ b/tests/test_dependency_manifests.py @@ -0,0 +1,29 @@ +"""배포용 requirements와 프로젝트 선언의 의존성 일치 검증.""" + +import re +import tomllib +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] + + +def _package_name(requirement: str) -> str: + token = requirement.split(";", 1)[0].split("#", 1)[0].strip() + token = token.split("[", 1)[0] + return re.split(r"[<>=!~]", token, maxsplit=1)[0].strip().lower().replace("_", "-") + + +def test_runtime_dependency_manifests_are_in_sync() -> None: + project = tomllib.loads((ROOT / "pyproject.toml").read_text(encoding="utf-8")) + declared = project["project"]["dependencies"] + declared += project["project"]["optional-dependencies"]["dev"] + pyproject_names = {_package_name(requirement) for requirement in declared} + requirements_names = { + _package_name(line) + for line in (ROOT / "requirements.txt").read_text(encoding="utf-8").splitlines() + if line.strip() and not line.lstrip().startswith("#") + } + + assert requirements_names == pyproject_names + assert {"scikit-learn", "ortools"} <= requirements_names + assert "neo4j" not in requirements_names diff --git a/tests/test_graph_retriever.py b/tests/test_evidence_retriever.py similarity index 100% rename from tests/test_graph_retriever.py rename to tests/test_evidence_retriever.py diff --git a/tests/test_explain_engine.py b/tests/test_explain_engine.py index fb5dc51..3dc50d4 100644 --- a/tests/test_explain_engine.py +++ b/tests/test_explain_engine.py @@ -611,8 +611,7 @@ def test_graph_evidence_reaches_llm_prompt(self): class TestExplainEngineGraphDefault: - def test_default_graph_uses_local_catalog_without_env(self, monkeypatch): - monkeypatch.delenv("NEO4J_URI", raising=False) + def test_default_graph_uses_local_catalog_without_neo4j(self): engine = ExplainEngine(api_key="", client=None) assert engine._graph.enabled is True diff --git a/tests/test_health.py b/tests/test_health.py new file mode 100644 index 0000000..a2633c3 --- /dev/null +++ b/tests/test_health.py @@ -0,0 +1,26 @@ +"""배포 프로브가 실제 애플리케이션 준비 상태를 반영하는지 검증한다.""" + +from fastapi.testclient import TestClient + +from src.api import router +from src.api.main import app + + +def test_health_returns_ok_when_required_data_is_loaded() -> None: + with TestClient(app) as client: + response = client.get("/health") + + assert response.status_code == 200 + assert response.json()["ready"] is True + + +def test_health_returns_503_when_required_data_is_missing(monkeypatch) -> None: + monkeypatch.setattr(router, "_PLACE_LIST", []) + monkeypatch.setattr(router, "_MONTHLY_CONG", {}) + + with TestClient(app) as client: + response = client.get("/health") + + assert response.status_code == 503 + assert response.json()["status"] == "degraded" + assert response.json()["ready"] is False diff --git a/tests/test_place_resolver.py b/tests/test_place_resolver.py new file mode 100644 index 0000000..ced5a40 --- /dev/null +++ b/tests/test_place_resolver.py @@ -0,0 +1,55 @@ +"""외부 장소 resolver의 호출 우선순위와 정규화 테스트.""" + +from src.data.models import POI, KakaoPlace +from src.data.place_resolver import ExternalPlaceResolver + + +def test_resolver_prefers_tour_api_and_returns_pydantic_model(): + tour_poi = POI( + poi_id="tour-1", + name="테스트 관광지", + lat=35.1, + lng=129.0, + open_start="10:00", + open_end="19:00", + duration_min=60, + category="14", + ) + + class FakeTourAPI: + def search_poi_sync(self, keyword, num_of_rows=10): + assert keyword == "테스트관광지" + assert num_of_rows == 5 + return [tour_poi] + + class FakeKakao: + def search_keyword(self, _query): + raise AssertionError("TourAPI 결과가 있으면 Kakao를 호출하지 않아야 한다") + + resolver = ExternalPlaceResolver(FakeKakao(), FakeTourAPI()) + result = resolver.resolve("테스트관광지", allow_tour_api=True) + + assert result is not None + assert result.source == "tour_api" + assert (result.lat, result.lng) == (35.1, 129.0) + assert (result.open_start, result.open_end) == ("10:00", "19:00") + + +def test_resolver_falls_back_to_kakao_then_geocode(): + class FakeKakao: + def search_keyword(self, _query): + return KakaoPlace( + name="카카오 장소", + lat=35.2, + lng=129.1, + category_name="음식점 > 한식", + ) + + def geocode_address(self, _address): + raise AssertionError("Kakao 키워드 결과가 있으면 지오코딩하지 않아야 한다") + + result = ExternalPlaceResolver(FakeKakao(), None).resolve("카카오 장소") + + assert result is not None + assert result.source == "kakao" + assert result.category_name == "음식점 > 한식" diff --git a/tests/test_resolve_poi.py b/tests/test_resolve_poi.py index b48265f..9a5df2b 100644 --- a/tests/test_resolve_poi.py +++ b/tests/test_resolve_poi.py @@ -10,6 +10,7 @@ from src.api import router from src.api.main import app +from src.data.models import POI, ExternalPlaceResolution _XLSX_HEADER = [ "상호명", @@ -165,3 +166,74 @@ def test_resolve_coords_endpoint_returns_poi_per_place(): assert len(pois) == 1 assert pois[0]["name"] == "존재하지않는장소12345" assert (pois[0]["lat"], pois[0]["lng"]) == (33.5, 126.9) + + +def test_resolve_poi_can_use_tour_api_before_kakao(monkeypatch): + expected = POI( + poi_id="tour-1", + name="실시간 관광지", + lat=35.1, + lng=129.0, + open_start="10:00", + open_end="19:00", + duration_min=60, + category="14", + ) + + class FakeTourAPI: + def search_poi_sync(self, keyword, num_of_rows=10): + assert keyword == "실시간 관광지" + assert num_of_rows == 5 + return [expected] + + monkeypatch.setattr(router._PLACE_RESOLVER, "_tour_api", FakeTourAPI()) + monkeypatch.setattr(router._KAKAO_LOCAL, "search_keyword", lambda _: None) + + poi, info = router._resolve_poi("실시간 관광지", 0, allow_tour_api=True) + + assert info.source == "tour_api" + assert info.confidence == "Medium" + assert (poi.lat, poi.lng) == (35.1, 129.0) + assert (poi.open_start, poi.open_end) == ("10:00", "19:00") + + +def test_resolve_coords_rejects_unresolved_place(): + client = TestClient(app) + with ( + patch.object(router._KAKAO_LOCAL, "search_keyword", return_value=None), + patch.object(router._KAKAO_LOCAL, "geocode_address", return_value=None), + ): + res = client.post( + "/api/resolve-coords", + json={"places": [{"name": "존재하지 않는 장소"}]}, + ) + + assert res.status_code == 422 + assert "좌표" in res.json()["detail"] + + +def test_validate_uses_external_place_resolver(monkeypatch): + candidate = ExternalPlaceResolution( + lat=35.1, + lng=129.0, + category="14", + source="tour_api", + poi_id="tour-validate-1", + open_start="10:00", + open_end="19:00", + ) + calls = [] + + def fake_resolve(name, address="", allow_tour_api=False): + calls.append((name, address, allow_tour_api)) + return candidate + + monkeypatch.setattr(router._PLACE_RESOLVER, "resolve", fake_resolve) + res = TestClient(app).post( + "/api/validate", + json={"days": [{"places": [{"name": "실시간 검증 장소"}]}]}, + ) + + assert res.status_code == 200 + assert calls == [("실시간 검증 장소", "", True)] + assert res.json()["poi_info"][0]["source"] == "tour_api" diff --git a/tests/test_security.py b/tests/test_security.py index 3a28a59..267a03a 100644 --- a/tests/test_security.py +++ b/tests/test_security.py @@ -17,3 +17,14 @@ def test_production_requires_bearer_token(monkeypatch): ).status_code == 422 ) + + +def test_production_without_auth_token_fails_closed(monkeypatch): + monkeypatch.setenv("ENVIRONMENT", "production") + monkeypatch.delenv("API_AUTH_TOKEN", raising=False) + + client = TestClient(app) + response = client.post("/api/validate", json={}) + + assert response.status_code == 503 + assert "API_AUTH_TOKEN" in response.json()["detail"] diff --git a/tests/test_tour_api_runtime.py b/tests/test_tour_api_runtime.py new file mode 100644 index 0000000..d8c13a9 --- /dev/null +++ b/tests/test_tour_api_runtime.py @@ -0,0 +1,26 @@ +"""TourAPI runtime adapter tests.""" + +from src.data.models import POI +from src.data.tour_api import TourAPIClient + + +def test_search_poi_sync_adapts_async_client(monkeypatch): + client = TourAPIClient(api_key="test-key") + expected = [ + POI( + poi_id="1", + name="테스트 관광지", + lat=33.5, + lng=126.5, + open_start="09:00", + open_end="18:00", + duration_min=60, + category="12", + ) + ] + + async def fake_search(keyword: str, content_type_id=None, num_of_rows=10): + return expected + + monkeypatch.setattr(client, "search_poi", fake_search) + assert client.search_poi_sync("테스트") == expected diff --git a/uv.lock b/uv.lock deleted file mode 100644 index 74d2054..0000000 --- a/uv.lock +++ /dev/null @@ -1,1751 +0,0 @@ -version = 1 -revision = 3 -requires-python = ">=3.11" -resolution-markers = [ - "python_full_version >= '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32'", - "python_full_version < '3.12' and sys_platform == 'win32'", - "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version < '3.12' and sys_platform == 'emscripten'", - "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version < '3.12' and sys_platform != 'emscripten' and sys_platform != 'win32'", -] - -[[package]] -name = "annotated-doc" -version = "0.0.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5a/8e/38aa427ed5402449e226975b649c5dc73ccadfefeb95e6aecb8f8ea4b6b6/annotated_doc-0.0.5.tar.gz", hash = "sha256:c7e58ce09192557605d8bbd92836d7e1d520ac9580096042c0bfd197efacf1bb", size = 10758, upload-time = "2026-07-28T13:50:58.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3e/30/e900b21425a860e195f32e37657aa1f7c7f2b1bfb26f03ca209b90933c06/annotated_doc-0.0.5-py3-none-any.whl", hash = "sha256:117bac03a25ede5df5440e855b32d556049ca169ead221505badf432fed4b101", size = 5302, upload-time = "2026-07-28T13:50:57.239Z" }, -] - -[[package]] -name = "annotated-types" -version = "0.8.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5f/56/a8120250d128bed162cd73c76d45f6ef9991f3e068f62a8ee060afa3104a/annotated_types-0.8.0.tar.gz", hash = "sha256:13b2beaad985e05e2d6407ee4c4f35590b11f8d693a258a561055cac8f64cab7", size = 15893, upload-time = "2026-07-23T20:16:13.995Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/99/91/8acff4f5e50511b911bbccb72b8628a49c68ce14148cd9f6431094859a90/annotated_types-0.8.0-py3-none-any.whl", hash = "sha256:f072f4d804ea359e4eaf198b1af7a8b0943881a87f31bb764f8bf219bb9419e0", size = 13427, upload-time = "2026-07-23T20:16:12.938Z" }, -] - -[[package]] -name = "anthropic" -version = "0.120.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "distro" }, - { name = "docstring-parser" }, - { name = "httpx" }, - { name = "jiter" }, - { name = "pydantic" }, - { name = "sniffio" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d7/10/4ca013cb166f226bd89e0aeb0fcaff94f45ddf716d4925ce89475d3c587b/anthropic-0.120.2.tar.gz", hash = "sha256:9722efc10c27a30a69f5338ddacdb35bc6a64297a4e4ba729bf83af873d5fb3a", size = 1008421, upload-time = "2026-07-28T17:38:26.986Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/63/af/0f5db57b9397a0f3b7fc204cbef143401a7cadaf982330f97f1ce3d39f34/anthropic-0.120.2-py3-none-any.whl", hash = "sha256:0f0bc2b381dc0eb41c8d886b815d79c2041cd2374f83aed36f574b6dc9c579c1", size = 1022851, upload-time = "2026-07-28T17:38:25.466Z" }, -] - -[[package]] -name = "anyio" -version = "4.14.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "idna" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/61/cc/a381afa6efea9f496eff839d4a6a1aed3bfafc7b3ab4b0d1b243a12573dd/anyio-4.14.2.tar.gz", hash = "sha256:cfa139f3ed1a23ee8f88a145ddb5ac7605b8bbfd8592baacd7ce3d8bb4313c7f", size = 260176, upload-time = "2026-07-12T20:29:07.082Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/da/35/f2287558c17e29fafc8ef3daf819bb9834061cfa43bff8014f7df7f63bdc/anyio-4.14.2-py3-none-any.whl", hash = "sha256:9f505dda5ac9f0c8309b5e8bd445a8c2bf7246f3ce950121e45ea15bc41d1494", size = 125813, upload-time = "2026-07-12T20:29:05.763Z" }, -] - -[[package]] -name = "certifi" -version = "2026.7.22" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a3/c2/24167ea9858356b47a87a50d39908bfdb72ceeefe0041586e704e5376b3a/certifi-2026.7.22.tar.gz", hash = "sha256:741e2c3b351ddf169a738da9f2c048608ff7f2c5cc02f1ebc6b118bb090d5d55", size = 138112, upload-time = "2026-07-22T03:35:12.644Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/a7/71ac2cff56fec219ed242bb11b8efb69fcc4bec75db06fb7bfe35de520e6/certifi-2026.7.22-py3-none-any.whl", hash = "sha256:62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775", size = 136983, upload-time = "2026-07-22T03:35:11.276Z" }, -] - -[[package]] -name = "cffi" -version = "2.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser", marker = "implementation_name != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/57/5f/ff100cae70ebe9d8df1c01a00e510e45d9adb5c1fdda84791b199141de97/cffi-2.1.0.tar.gz", hash = "sha256:efc1cdd798b1aaf39b4610bba7aad28c9bea9b910f25c784ccf9ec1fa719d1f9", size = 531036, upload-time = "2026-07-06T21:34:30.382Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/67/85c89a59ba36a671e79638f44d466749f08179266a57e4f2ffdf92174072/cffi-2.1.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:02cb7ff33ded4f1532476731f89ede53e2e488a8e6205515a82144246ffa7dcc", size = 183845, upload-time = "2026-07-06T21:32:26.32Z" }, - { url = "https://files.pythonhosted.org/packages/ea/dd/e3b0baa2d3d6a857ac72b7efbf18e32e487c9cdafcc13049ad765495b15e/cffi-2.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f5bce581e6b8c235e566a14768a943b172ada3ed73537bb0c0be1edee312d4e7", size = 184186, upload-time = "2026-07-06T21:32:28.025Z" }, - { url = "https://files.pythonhosted.org/packages/65/68/9f3ef890cf3c6ab97bd531c5677f67613d302165d16f8142b2811782a614/cffi-2.1.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:30b65779d598c370374fefabf138d456fd6f3216bfa7bedfab1ba82025b0cd93", size = 211892, upload-time = "2026-07-06T21:32:29.565Z" }, - { url = "https://files.pythonhosted.org/packages/22/d7/1a74539db16d8bfd839ff1515948948efbb162e574650fd3d846896eea95/cffi-2.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88023dfe18799507b73f1dbb0d14326a17465de1bc9c9c7655c22845e9ddc3a2", size = 218793, upload-time = "2026-07-06T21:32:30.951Z" }, - { url = "https://files.pythonhosted.org/packages/ec/d1/9a5b7169499e8e8d8e636de70b97ac7c9447104d2ff1a2cd94790cea5162/cffi-2.1.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:0a96b74cda968eebbad56d973efe5098974f0a9fb323865bf99ea1fd24e3e64c", size = 205737, upload-time = "2026-07-06T21:32:32.216Z" }, - { url = "https://files.pythonhosted.org/packages/ba/b0/e131a9c41f10607926278453d9596163594fe1c4ebc46efe3b5e5b34eb84/cffi-2.1.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:a5781494d4d400a3f47f8f1da94b324f6e6b440a53387774002890a2a2f4b50f", size = 204909, upload-time = "2026-07-06T21:32:33.655Z" }, - { url = "https://files.pythonhosted.org/packages/fb/d2/4398416cd699b35167947c6e22aca52c47e69ad5695073c9f1f2c52e04aa/cffi-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aa7a1b53a2a4452ada2d1b5dade9960b2522f1e61293a811a077439e39029565", size = 217883, upload-time = "2026-07-06T21:32:35.173Z" }, - { url = "https://files.pythonhosted.org/packages/a2/a5/d4fe77b589e5e82d43ebc809bf2e6474afe8e48e32ea050b9357645b6471/cffi-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d8272c0e483b024e1b9ad029821470ed8ec65631dbd90217469da0e7cd89f1c", size = 221251, upload-time = "2026-07-06T21:32:36.527Z" }, - { url = "https://files.pythonhosted.org/packages/22/f0/a2fc43084c0433caf7f461bccc013e28f848d04ee1c5ed7fce71423cf4d9/cffi-2.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7762faa47e8ff7eb80bd261d9a7d8eea2d8baa69de5e95b70c1f338bbe712f02", size = 214250, upload-time = "2026-07-06T21:32:37.852Z" }, - { url = "https://files.pythonhosted.org/packages/04/8c/b925975448cf20634a9fbd5efceb807219db452653648d2897c0989cab2d/cffi-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:89095c1968b4ba8285840e131bf2891b09ae137fe2146905acae0354fbce1b5e", size = 219441, upload-time = "2026-07-06T21:32:39.146Z" }, - { url = "https://files.pythonhosted.org/packages/eb/da/5c4918a2d61d86fa927d716cb3d8e4626ef8dc8f605a599d32f33897f59a/cffi-2.1.0-cp311-cp311-win32.whl", hash = "sha256:64c753a0f87a256020004f37a1c8c02c480e725f910f0b2a0f3f07debd1b2479", size = 174496, upload-time = "2026-07-06T21:32:40.467Z" }, - { url = "https://files.pythonhosted.org/packages/f9/c8/6c2de1d55cf35ef8b92885d5ef280790f0fb9634d87ea1cc315176aecd61/cffi-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:4f26194e3d95e06501b942642855aed4f953d55e95d7d01b7c4483db3ecff458", size = 185113, upload-time = "2026-07-06T21:32:41.761Z" }, - { url = "https://files.pythonhosted.org/packages/9e/4e/e8d7cb5783f1841a3c8fb3a7735838d7484d08ec08c9f984b14cac1ac0e9/cffi-2.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:35aaea0c7ee0e58a5cd8c2fd1a48fdf7ece0d2699b7ecdda08194e9ce5dd9b3d", size = 179927, upload-time = "2026-07-06T21:32:42.961Z" }, - { url = "https://files.pythonhosted.org/packages/1e/85/990925db5df586ec90beb97529c853497e7f85ba0234830447faf41c3057/cffi-2.1.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:df2b82571a1b30f58a87bf4e5a9e78d2b1eff6c6ce8fd3aa3757221f93f0863f", size = 184829, upload-time = "2026-07-06T21:32:44.324Z" }, - { url = "https://files.pythonhosted.org/packages/4b/92/e7bb136ad6b5352603732cf907ef862ca103f20f2031c1735a46300c20c9/cffi-2.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78474632761faa0fb96f30b1c928c84ebcf68713cbb80d15bab09dfe61640fde", size = 184728, upload-time = "2026-07-06T21:32:45.683Z" }, - { url = "https://files.pythonhosted.org/packages/c3/c0/d1ec30ffb370f748f2fb54425972bfef9871e0132e82fb589c46b6676049/cffi-2.1.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:5972433ad71a9e46516584ef60a0fda12d9dc459938d1539c3ddecf9bdc1368d", size = 214815, upload-time = "2026-07-06T21:32:48.557Z" }, - { url = "https://files.pythonhosted.org/packages/1b/dc/5620cf930688be01f2d673804291de757a934c90b946dbdc3d84130c2ea4/cffi-2.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b6422532152adf4e59b110cb2808cee7a033800952f5c036b4af047ee43199e7", size = 222429, upload-time = "2026-07-06T21:32:49.848Z" }, - { url = "https://files.pythonhosted.org/packages/4b/a4/77b53abbf7a1e0beb9637edbef2a94d15f9c822f591e85d439ffd91519a6/cffi-2.1.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:46b1c8db8f6122420f32d02fffb924c2fe9bc772d228c7c711748fff56aabb2b", size = 210315, upload-time = "2026-07-06T21:32:51.221Z" }, - { url = "https://files.pythonhosted.org/packages/58/0c/f528df19cc94b675087324d4760d9e6d5bfae97d6217aa4fac43de4f5fcc/cffi-2.1.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9fafc5aa2e2a39aaf7f8cc0c1f044a9b07fca12e558dca53a3cc5c654ad67a7", size = 208859, upload-time = "2026-07-06T21:32:52.512Z" }, - { url = "https://files.pythonhosted.org/packages/62/f2/c9522a81c32132799a1972c39f5c5f8b4c8b9f00488a23feaa6c06f07741/cffi-2.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1e9f50d192a3e525b15a75ab5114e442d83d657b7ec29182a991bc9a88fd3a66", size = 221844, upload-time = "2026-07-06T21:32:53.704Z" }, - { url = "https://files.pythonhosted.org/packages/6e/28/bd53988b9833e8f8ad539d26f4c07a6b3f6bcb1e9e02e7ca038250b3428d/cffi-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98fff996e983a36d3aa2eca83af40c5821202e7e6f32d13ae94e3d2286f10cfe", size = 225287, upload-time = "2026-07-06T21:32:54.907Z" }, - { url = "https://files.pythonhosted.org/packages/79/99/0d0fd37f055224085f42bbb2c022d002e17dde4a97972822327b07d84101/cffi-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:379de10ce1ba048b1448599d1b37b24caee16309d1ac98d3982fc997f768700b", size = 223681, upload-time = "2026-07-06T21:32:56.329Z" }, - { url = "https://files.pythonhosted.org/packages/b0/80/c138990aa2a70b1a269f6e06348729836d733d6f970867943f61d367f8cc/cffi-2.1.0-cp312-cp312-win32.whl", hash = "sha256:9b8f0f26ca4e7513c534d351eca551947d053fac438f2a04ac96d882909b0d3a", size = 175269, upload-time = "2026-07-06T21:32:57.777Z" }, - { url = "https://files.pythonhosted.org/packages/a8/eb/f636456ff21a83fc13c032b58cc5dde061691546ac79efa284b2989b7982/cffi-2.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:c97f080ea627e2863524c5af3836e2270b5f5dfff1f104392b959f8df0c5d384", size = 185881, upload-time = "2026-07-06T21:32:59.253Z" }, - { url = "https://files.pythonhosted.org/packages/dd/2c/400ea43e721727dca8a65c4521390e9196757caba4a45643acb2b63271b8/cffi-2.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:6d194185eabd279f1c05ebe3504265ddfc5ad2b58d0714f7db9f01da592e9eb6", size = 180088, upload-time = "2026-07-06T21:33:02.278Z" }, - { url = "https://files.pythonhosted.org/packages/96/88/a996879e2eeccb815f6e3a5967b12a308257412acec882039d386bd2aa7b/cffi-2.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:10537b1df4967ca26d21e5072d7d54188354483b91dc75058968d3f0cf13fbda", size = 194331, upload-time = "2026-07-06T21:33:03.697Z" }, - { url = "https://files.pythonhosted.org/packages/58/85/7ae00d5c8dd6266f4e944c3db630f3c5c9a98b61d469c714d848b1d8138a/cffi-2.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a95b05f9baf29b91171b3a8bd2020b028835243e7b0ff6bb23e2a3c228518b1b", size = 196966, upload-time = "2026-07-06T21:33:05.353Z" }, - { url = "https://files.pythonhosted.org/packages/8c/e9/45c3a76ad8d43ad9261f4c95436da61128d3ca545d72b9612c0ab5be0b1c/cffi-2.1.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:15faec4adfff450819f3aee0e2e02c812de6edb88203aa58807955db2003472a", size = 184795, upload-time = "2026-07-06T21:33:06.699Z" }, - { url = "https://files.pythonhosted.org/packages/84/4c/82f132cb4418ee6d953d982b19191e87e2a6372c8a4ce36e50b69d6ade4a/cffi-2.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:716ff8ec22f20b4d988b12884086bcef0fc99737043e503f7a3935a6be99b1ea", size = 184746, upload-time = "2026-07-06T21:33:08.071Z" }, - { url = "https://files.pythonhosted.org/packages/a0/1c/4ed5a0e5bdca6cbc275556de3328dd1b76fd0c11cc13c88fe66d1d8715f2/cffi-2.1.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:63960549e4f8dc41e31accb97b975abaecfc44c03e396c093a6436763c2ea7db", size = 214747, upload-time = "2026-07-06T21:33:09.671Z" }, - { url = "https://files.pythonhosted.org/packages/3a/a6/e879bb68cc23a2bc9ba8f4b7d8019f0c2694bad2ab6c4a3701d429439f58/cffi-2.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ff067a8d8d880e7809e4ac88eb009bb848870115317b306666502ccad30b147f", size = 222392, upload-time = "2026-07-06T21:33:10.896Z" }, - { url = "https://files.pythonhosted.org/packages/88/f6/01890cfd63c08f8eb96a8319b0443690197d240a8bd6346048cf7bde9190/cffi-2.1.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3b926723c13eba9f81d2ef3820d63aeceec3b2d4639906047bf675cb8a7a500d", size = 210285, upload-time = "2026-07-06T21:33:12.251Z" }, - { url = "https://files.pythonhosted.org/packages/a6/cf/2b684132056f438567b61e19d690dd31cd0921ace051e0a458be6074369e/cffi-2.1.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:47ff3a8bfd8cb9da1af7524b965127095055654c177fcfc7578debcb015eecd0", size = 208801, upload-time = "2026-07-06T21:33:13.617Z" }, - { url = "https://files.pythonhosted.org/packages/6f/08/f2e7d62c460faae0926f2d6e423694aa409ced3bc1fe2927a0a6e5f05416/cffi-2.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:799416bae98336e400981ff6e532d67d5c709cfb30afb79865a1315f94b0e224", size = 221808, upload-time = "2026-07-06T21:33:15.466Z" }, - { url = "https://files.pythonhosted.org/packages/38/37/04f54b8e63a02f3d908332c9effbf8c366167c6f733ed8a3d4f79b7e2a1e/cffi-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:961be50688f7fba2fa65f63712d3b9b341a22311f5253460ce933f52f0de1c8c", size = 225241, upload-time = "2026-07-06T21:33:16.869Z" }, - { url = "https://files.pythonhosted.org/packages/a9/d6/c72eecca433cd3e681c65ed313ab4835d9d4a379704d0f628a6a05f51c2e/cffi-2.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf5c6cf48238b0eb4c086978c492ad1cbc22373fc5b2d7353b3a598ce6db887a", size = 223588, upload-time = "2026-07-06T21:33:18.239Z" }, - { url = "https://files.pythonhosted.org/packages/c6/4b/e706f67279140f92939da3475ad610df18bfd52d50f14953a8e5fede71d5/cffi-2.1.0-cp313-cp313-win32.whl", hash = "sha256:db3eb7d46527159a878ec3460e9d40615bc25ba337d477db681aea6e4f05c5d2", size = 175248, upload-time = "2026-07-06T21:33:19.799Z" }, - { url = "https://files.pythonhosted.org/packages/5a/47/59eb7975cb0e4ef0afa764ea945b29a5bb4537a9f771cb7d6c8a5dd74c95/cffi-2.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:8e74a6135550c4748af665b1b1118b6aab33b1fc6a16f9aff630af107c3b4512", size = 185717, upload-time = "2026-07-06T21:33:21.47Z" }, - { url = "https://files.pythonhosted.org/packages/5a/af/34fee85c48f8d94efc8597bc09470c9dd274c145f1c12e0fbc6ab6d38d74/cffi-2.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:2282cd5e38aa8accd03e99d1256af8411c84cdbee6a89d841b563fdbd1f3e50f", size = 180114, upload-time = "2026-07-06T21:33:22.515Z" }, - { url = "https://files.pythonhosted.org/packages/d8/f0/81478e482afa03f6d18dc8f2afb5edc45b3080853b634b5ed91961be0998/cffi-2.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:d2117334c3af3bdcb9a88522b844a2bdb5efdc4f71c6c822df55486ae1c3347a", size = 194142, upload-time = "2026-07-06T21:33:23.657Z" }, - { url = "https://files.pythonhosted.org/packages/7d/95/8de304305cd9204974b0ca051b86d307cafca13aa575a0ef1b44d92c0d8c/cffi-2.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:702c436735fbe99d59ada02a1f65cfc0d31c0ee8b7290912f8fbc5cd1e4b16c3", size = 196819, upload-time = "2026-07-06T21:33:25.007Z" }, - { url = "https://files.pythonhosted.org/packages/20/71/7c8372d30e42415602ed9f268f7cfd66f1b855fed881ecd168bcb45dbc0b/cffi-2.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1ff3456eab0d889592d1936d6125bbfbc7ae4d3354a700f8bd80450a66445d4d", size = 184965, upload-time = "2026-07-06T21:33:26.605Z" }, - { url = "https://files.pythonhosted.org/packages/d6/5c/584e626835f0375c928176c04137c96927165cb8733cdb3150ec04e5ee5e/cffi-2.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c4165821e131d6d4ca444347c2b694e2311bcfa3fe5a861cc72968f28867beac", size = 184952, upload-time = "2026-07-06T21:33:27.823Z" }, - { url = "https://files.pythonhosted.org/packages/2e/d2/065fcae1c73979fac8e054462478d0ff8a29c40cdc2ed7ea5676a061df53/cffi-2.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:276f20fffd7b396e12516ba8edf9509210ac248cbbc5acbc39cd512f9f59ebe6", size = 222353, upload-time = "2026-07-06T21:33:29.178Z" }, - { url = "https://files.pythonhosted.org/packages/ed/a5/e8bbb1ce5b3ac2f53ad6a10bde44318a5a8d99d4f4a000d44a6e39aeb3e4/cffi-2.1.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7d5980a3433d4b71a5e120f9dd551403d7824e31e2e67124fe2769c404c06913", size = 210051, upload-time = "2026-07-06T21:33:30.534Z" }, - { url = "https://files.pythonhosted.org/packages/28/ed/c127d3ac36e899c965e3361357c3befacd6578c03f40125183e41c3b219e/cffi-2.1.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6ca4919c6e4f89aa99c42510b42cf54596892c00b3f9077f6bdd1505e24b9c8d", size = 208630, upload-time = "2026-07-06T21:33:31.753Z" }, - { url = "https://files.pythonhosted.org/packages/cc/d7/97d3136f81db489ec8d1d67748c110d6c994268fd7528014aa9f2b085e4e/cffi-2.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d53d10f7da99ae46f7373b9150393e9c5eab9b224909982b43832668de4779f5", size = 221593, upload-time = "2026-07-06T21:33:33.044Z" }, - { url = "https://files.pythonhosted.org/packages/d3/27/93195977168ee63aed233a1a0993a2178798654d1f4bddcdd321d6fd3b21/cffi-2.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c351efb95e832a853a29361675f33a7ce53de1a109cd73fd47af0712213aa4ce", size = 225146, upload-time = "2026-07-06T21:33:34.224Z" }, - { url = "https://files.pythonhosted.org/packages/b3/c1/6dbd291ee2ae5a50a034aa057207081f545923bbf15dad4511e985aafff5/cffi-2.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:dbf7c7a88e2bac086f06d14577332760bdeecc42bdec8ac4077f6260557d9326", size = 223240, upload-time = "2026-07-06T21:33:35.57Z" }, - { url = "https://files.pythonhosted.org/packages/0f/6f/ade5ce9863a57992a6ea3d0d10d7e29b8749fc127204b3d493d667b2815f/cffi-2.1.0-cp314-cp314-win32.whl", hash = "sha256:1854b724d00f6654c742097d5387569021be12d3a0f770eae1df8f8acfcc6acd", size = 177723, upload-time = "2026-07-06T21:33:51.626Z" }, - { url = "https://files.pythonhosted.org/packages/41/de/92b9eeed4ae4a21d6fd9b2a2c8505cbed573299902ea73981cc13f7ff62c/cffi-2.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:1b96bfe2c4bd825681b7d311ad6d9b7280a091f43e8f63da5729638083cd3bfb", size = 187937, upload-time = "2026-07-06T21:33:53.403Z" }, - { url = "https://files.pythonhosted.org/packages/2e/1a/cc6ae6c2913a03aab8898eee57963cf1035b8df5872ed8b9115fcc7e2be8/cffi-2.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:7d28dff1db6764108bc30788d85d61c876beff416d9a49cb9dd7c5a9f34f5804", size = 183001, upload-time = "2026-07-06T21:33:54.74Z" }, - { url = "https://files.pythonhosted.org/packages/14/f0/134c00ce0779ec86dea2aa1aac69339c2741a8045072676763512363a2ea/cffi-2.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7ea6b3e2c4250ff1de21c630fe72d0f63eb95c2c32ffbf64a358cf4a8836d714", size = 188538, upload-time = "2026-07-06T21:33:36.792Z" }, - { url = "https://files.pythonhosted.org/packages/50/d8/3b86aba791cb610d24e8a3e1b2cd529e71fa15096b04e4d4e360049d4a4c/cffi-2.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6af371f3767faeffc6ac1ef57cdfd25844403e9d3f476c5537caee499de96376", size = 188230, upload-time = "2026-07-06T21:33:38.011Z" }, - { url = "https://files.pythonhosted.org/packages/14/d0/117dcd9209255ad8571fbc8c92ef32593a1d294dcec91ddc4e4db50606f2/cffi-2.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb4e8997a49aa2c08a3e43c9045d224448b8941d88e7ac163c7d383e560cbf98", size = 223899, upload-time = "2026-07-06T21:33:39.514Z" }, - { url = "https://files.pythonhosted.org/packages/b6/3d/f20f8b886b254e3ad10e15cd4186d3aed49f3e6a35ab37aab9f8f25f7c03/cffi-2.1.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:bf01d8c84cbea96b944c73b22182e6c7c432b3475632b8111dbfdc95ddad6e13", size = 211652, upload-time = "2026-07-06T21:33:40.851Z" }, - { url = "https://files.pythonhosted.org/packages/28/3b/fad54de07260b93ddeef4b96d0131d57ea900675df1d410ae1deee52d7a6/cffi-2.1.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:33eb1ad83ebe8f313e0df035c406227d55a79456704a863fad9842136af5ad7d", size = 210755, upload-time = "2026-07-06T21:33:42.183Z" }, - { url = "https://files.pythonhosted.org/packages/cc/82/3d5c705acb7abbba9bbd7d79b8e62e0f25b6120eb7ae6ac49f1b721722fe/cffi-2.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ac0f1a2d0cfa7eea3f2aaf006ab6e70e8feeb16b75d65b7e5939982ca2f11056", size = 223933, upload-time = "2026-07-06T21:33:43.603Z" }, - { url = "https://files.pythonhosted.org/packages/6c/d0/47e338384ab6b1004241002fa616301020cea4fc95f283506565d252f276/cffi-2.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c16914df9fb7f500e440e6875fa23ff5e0b31db01fa9c06af98d59a91f0dc2e4", size = 226749, upload-time = "2026-07-06T21:33:45.046Z" }, - { url = "https://files.pythonhosted.org/packages/70/25/65bd5b58ea4bfdfc15cde02cb5365f89ef8ab8b2adfb8fe5c4bd4233382f/cffi-2.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5ecbd0499275d57506d397eebe1981cee87b47fcd9ef5c22cab7ed7644a39a94", size = 225703, upload-time = "2026-07-06T21:33:46.374Z" }, - { url = "https://files.pythonhosted.org/packages/dc/78/aa01ac599a8a4322533d45a1f9bc93b338276d2d59dabbe7c6d92a775c81/cffi-2.1.0-cp314-cp314t-win32.whl", hash = "sha256:7d034dcffa09e9a46c93fa3a3be402096cb5354ac6e41ab8e5cc9cd8b642ad76", size = 182857, upload-time = "2026-07-06T21:33:47.696Z" }, - { url = "https://files.pythonhosted.org/packages/b9/26/d00496b22de4d4228f32dde94ad996f350c8aad676d63bcca0743c8dea4d/cffi-2.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0582a58f3051372229ca8e7f5f589f9e5632678208d8636fea3676711fdf7fe5", size = 194065, upload-time = "2026-07-06T21:33:48.953Z" }, - { url = "https://files.pythonhosted.org/packages/d5/dd/0c7dbf815a579ff005008a2d815a55d6bb047c349eef536d9dc53d3f0a8d/cffi-2.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:510aeeeac94811b138077451da1fb18b308a5feab47dd2b603af55804155e1c8", size = 186404, upload-time = "2026-07-06T21:33:50.309Z" }, - { url = "https://files.pythonhosted.org/packages/55/c7/8c8c50cb11c6750051daf12164098a9a6f027ac4356967fd4d800a07f242/cffi-2.1.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:2e9dabb9abcb7ad15938c7196ad5c1718a4e6d33cc79b4c0209bdb64c4a54a5c", size = 194121, upload-time = "2026-07-06T21:33:56.109Z" }, - { url = "https://files.pythonhosted.org/packages/99/e2/67680bf19a6b60d2bb7ff83baefa2a4c3d2d7dc0f3277034b802e1fc504c/cffi-2.1.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:37f525a7e7e50c017fdebe58b787be310ad59357ae43a053943a6e1a6c526001", size = 196820, upload-time = "2026-07-06T21:33:57.288Z" }, - { url = "https://files.pythonhosted.org/packages/ed/da/4bbe583a3b3a5c8c60892124fe17f3fa3656523faf0d3484eae90f091853/cffi-2.1.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:95f2954c2c9473d892eca6e0409f3568b37ab62a8eedb122461f73cc273476e3", size = 184936, upload-time = "2026-07-06T21:33:58.765Z" }, - { url = "https://files.pythonhosted.org/packages/e5/4b/1f4c36ab273980d7aa75bb126ea4f8971f24a96108acad3a0a084028c57b/cffi-2.1.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:cdf2448aab5f661c9315308ec8b93f4e8a1a67a3c733f8631067a2b67d5913dc", size = 185045, upload-time = "2026-07-06T21:34:00.085Z" }, - { url = "https://files.pythonhosted.org/packages/ef/c3/ad299dc38f3583f8d916b299f028af418a9ec98bc695fcbebeae7420691c/cffi-2.1.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:90bec57cf82089383bd06a605b3eb8daebf7e5a668520beaf6e327a83a947699", size = 222342, upload-time = "2026-07-06T21:34:01.814Z" }, - { url = "https://files.pythonhosted.org/packages/eb/d8/df4543cc087245044ed02ef3ad8e0a26619d0075ac7a77a12dc81177851b/cffi-2.1.0-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6274dcb2d15cef48daa73ed1be5a40d501d74dccd0cd6db364776d12cb6ba022", size = 210073, upload-time = "2026-07-06T21:34:03.255Z" }, - { url = "https://files.pythonhosted.org/packages/2c/0e/fac738d73728c6cea2a88a2883dca54892496cbba88a1dc1f2909cb8a6f5/cffi-2.1.0-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:2b71d409cccee78310ab5dec549aed052aaea483346e282c7b02362596e01bb0", size = 208551, upload-time = "2026-07-06T21:34:04.433Z" }, - { url = "https://files.pythonhosted.org/packages/e6/3f/0b04a700dd64f465c93020253a793a82c9b4dff9961f48facd0df945d9b8/cffi-2.1.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d3538f9c0e50670f4deb93dbb696576e60590369cae2faf7de681e597a8a1f1", size = 221649, upload-time = "2026-07-06T21:34:06.157Z" }, - { url = "https://files.pythonhosted.org/packages/5d/7c/b7379a5704c79eda57ce075869ba70a0368d1c850f803b3c0d078d39dcaf/cffi-2.1.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:8f9ec95b8a043d3dfbc74d9abc6f7baf524dd27a8dc160b0a32ff9cdab650c28", size = 225203, upload-time = "2026-07-06T21:34:07.489Z" }, - { url = "https://files.pythonhosted.org/packages/5a/02/d5e6c43ea85c41bda2a184a3418f195fe7cf602967a8d2b94e085b83deef/cffi-2.1.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:af5e2915d41fe6c961694d7bfdc8562942638200f3ce2765dfb8b745cf997629", size = 223263, upload-time = "2026-07-06T21:34:08.712Z" }, - { url = "https://files.pythonhosted.org/packages/2c/d8/772b8259bf75749adffb1c546828978381fb516f60cf701f6c83daf60c85/cffi-2.1.0-cp315-cp315-win32.whl", hash = "sha256:0a42c688d19fca6e095a53c6a6e2295a5b050a8b289f109adab02a9e61a25de6", size = 177696, upload-time = "2026-07-06T21:34:26.355Z" }, - { url = "https://files.pythonhosted.org/packages/2f/dd/afa2191fc6d57fedd26e5844a2fe2fcc0bbfa00961bbaa5a41e4921e7cca/cffi-2.1.0-cp315-cp315-win_amd64.whl", hash = "sha256:bccbbb5ee76a61f9d99b5bf3846a51d7fca4b6a732fe46f89295610edaf41853", size = 187914, upload-time = "2026-07-06T21:34:27.58Z" }, - { url = "https://files.pythonhosted.org/packages/05/ef/6cd4f8c671517162379dc79cfae5aea9106bc38abb89628d5c16adf6a838/cffi-2.1.0-cp315-cp315-win_arm64.whl", hash = "sha256:8d35c139744adb3e727cd51b1a18324bbe44b8bd41bf8322bca4d41289f48eda", size = 183004, upload-time = "2026-07-06T21:34:28.905Z" }, - { url = "https://files.pythonhosted.org/packages/11/b6/12fc55092817a5faa26fb8c40c7f9d662e11a46ee248c137aafc42517d92/cffi-2.1.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:f9912624a0c0b834b7520d7769b3644453aabc0a7e1c839da7359f050750e9bc", size = 188378, upload-time = "2026-07-06T21:34:09.926Z" }, - { url = "https://files.pythonhosted.org/packages/8d/2e/cdac88979f295fde5daa69622c7d2111e56e7ceb94f211357fbe452339e4/cffi-2.1.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:df92f2aba50eb4d96718b68ef76f2e57a57b54f2fa62333496d16c6d585a85ca", size = 188319, upload-time = "2026-07-06T21:34:11.101Z" }, - { url = "https://files.pythonhosted.org/packages/e0/27/1d0b408497e41a74795af122d7b603c418c5fed0171450f899afd04e594f/cffi-2.1.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0520e1f4c35f44e209cbbb421b67eec42e6a157f59444dfb6058874ff3610e5d", size = 223904, upload-time = "2026-07-06T21:34:12.606Z" }, - { url = "https://files.pythonhosted.org/packages/8b/31/e115c985105dd7ffb32444505f18ceb874bb42d992af05d5dced7ecf1980/cffi-2.1.0-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3681e031db29958a7502f5c0c9d6bbc4c36cb20f7b104086fa642d1799631ff8", size = 211554, upload-time = "2026-07-06T21:34:13.987Z" }, - { url = "https://files.pythonhosted.org/packages/5a/67/9e6e09409336d9e515c58367e7cfcf4f89df06ad25252675595a58eb59d5/cffi-2.1.0-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:762f99479dcb369f60ab9017ad4ab97a36a1dd7c1ee5a3b15db0f4b8659120cd", size = 210795, upload-time = "2026-07-06T21:34:15.972Z" }, - { url = "https://files.pythonhosted.org/packages/19/e5/d3cc82a4a0be7902af279c04181ad038449c096734464a5ae1de3e1401bd/cffi-2.1.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0611e7ebf90573a535ebdc33ae9da222d037853983e13359f580fab781ca017f", size = 223843, upload-time = "2026-07-06T21:34:17.509Z" }, - { url = "https://files.pythonhosted.org/packages/b9/65/b434abc97ce7cecc2c640fde160507c0ecc7e21544b483ba3325d2e2ea17/cffi-2.1.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:86cf8755a791f72c85dc287128cc62d4f24d392e3f1e15837245623f4a33cccc", size = 226773, upload-time = "2026-07-06T21:34:19.05Z" }, - { url = "https://files.pythonhosted.org/packages/b5/9f/d4dc66ca651eb1145a133314cda721abf13cfac3d28c4a0402263ae6ad75/cffi-2.1.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:ba00f661f8ba35d075c937174e27c2c421cec3942fd2e0ea3e66996757c0fdd9", size = 225719, upload-time = "2026-07-06T21:34:20.576Z" }, - { url = "https://files.pythonhosted.org/packages/68/5a/e536c528bc8057496c360c0978559a2dc45653f89dd6151078aa7d8fca1a/cffi-2.1.0-cp315-cp315t-win32.whl", hash = "sha256:cb96698e3c7413d906ce83f8ffd245ec1bd94707541f299d0ce4d6b0193e982b", size = 182760, upload-time = "2026-07-06T21:34:22.059Z" }, - { url = "https://files.pythonhosted.org/packages/d3/0b/0ffe8b82d3875bced5fa1e7986a7a46b748262a40ab7f60b475eb9fb1bb3/cffi-2.1.0-cp315-cp315t-win_amd64.whl", hash = "sha256:f146d154428a2523f9cc7936c02353c2459b8f6cf07d3cd1ee1c0a611109c5d5", size = 193769, upload-time = "2026-07-06T21:34:23.589Z" }, - { url = "https://files.pythonhosted.org/packages/a0/17/1073b53b68c9b5ca6914adf5f8bf55aacc2d3be102418c90700160ea8605/cffi-2.1.0-cp315-cp315t-win_arm64.whl", hash = "sha256:cbb7640ce37159548d2147b5b8c241f962143d4c71231431820783f4dc78f210", size = 186405, upload-time = "2026-07-06T21:34:24.857Z" }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.9" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/2a/23f34ec9d04624958e137efdc394888716353190e75f25dd22c7a2c7a8aa/charset_normalizer-3.4.9.tar.gz", hash = "sha256:673611bbd43f0810bec0b0f028ddeaaa501190339cac411f347ac76917c3ae7b", size = 152439, upload-time = "2026-07-07T14:34:58.454Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/e3/85ec501f206fb049259288c1f3506e53876937fb00edb47009348e66756b/charset_normalizer-3.4.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0e94703ec9684807f20cfb5eed95c70f67f2a8f21ad620146d7b5a13677b93e5", size = 317075, upload-time = "2026-07-07T14:32:56.021Z" }, - { url = "https://files.pythonhosted.org/packages/c3/69/2a5385192e67175f7d8bd5ce4f57c24bc956439adeae5c13a99aa28a53d1/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a441ea71902098ffe78c5abe6c494f44160b4af614ed16c3d9a3b1d17fd8ee2", size = 213837, upload-time = "2026-07-07T14:32:57.78Z" }, - { url = "https://files.pythonhosted.org/packages/b3/46/03ddc7da576d814fe0a36dd1f0fd3258e95404b4b2e3c026b7923d7e133f/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:304b13570067b2547562e308af560b3963857b1fa90bd6afd978130130fe2d6a", size = 235503, upload-time = "2026-07-07T14:32:59.205Z" }, - { url = "https://files.pythonhosted.org/packages/4e/6e/de0229a7ef40f6f9d28a837eebf4ec47bdca5dab4e900c84f22919af636a/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4773092f8019072343a7447203308b176e10199920eb02d6195e81bbb3274c29", size = 229944, upload-time = "2026-07-07T14:33:00.803Z" }, - { url = "https://files.pythonhosted.org/packages/a5/34/49b9060e8418b14fb5cba9cf6bfb383111e2538a03a1fb18e66a95aeb3d5/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:04ce310cb89c15df659582aee80a0603788732a5e017d5bd5c81158106ce249c", size = 221276, upload-time = "2026-07-07T14:33:02.199Z" }, - { url = "https://files.pythonhosted.org/packages/44/95/80282cce0fae9c3061203d723ee87da996aed79679e65d8935050ee7ca1f/charset_normalizer-3.4.9-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:c0323c9daef75ef2e5083624b4585018a0c9d5e3b40f607eed81a311270b934b", size = 205260, upload-time = "2026-07-07T14:33:03.698Z" }, - { url = "https://files.pythonhosted.org/packages/0c/74/2f62c8821b969ea3bd67cc2e6976834f48ca5d12664d2559ebcd9bcfbed7/charset_normalizer-3.4.9-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:871ff67ea1aad4dfd91736464934d56b32dac49f9fbe16cddba36198a7b3a0db", size = 217786, upload-time = "2026-07-07T14:33:05.12Z" }, - { url = "https://files.pythonhosted.org/packages/d9/8d/feabb82cb49fcad14515b1d7d1ca4787b0da7fc723a212bf89bc9e0fac52/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:67830fc78e67501f47bb950471b2dcb9b35b140084429318e862895a8e89c993", size = 216798, upload-time = "2026-07-07T14:33:06.629Z" }, - { url = "https://files.pythonhosted.org/packages/a5/ff/c946d63bc3786d5b84d960b0f7ab7e25b828486a946b5aa997625bcaf6a6/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:3d92613ec25e43b05f042302531ec0f00b8445190e43325880cbd6ab7c2581da", size = 206429, upload-time = "2026-07-07T14:33:08.006Z" }, - { url = "https://files.pythonhosted.org/packages/af/ba/5e5007c370702f85d2ef75791fac7943ed41e080364a673b20142e430e3e/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:280081916dc341820640489a66e4696049401ef1cf6dd672f672e70ad915aca3", size = 223066, upload-time = "2026-07-07T14:33:09.783Z" }, - { url = "https://files.pythonhosted.org/packages/83/d5/9096aa3cf532dfad237861544eb47a0f20d5adbf1039760fed8eaae935d9/charset_normalizer-3.4.9-cp311-cp311-win32.whl", hash = "sha256:ac351b3b8014eead140e77e9717e2992c6bbe30b63bc3422422eb84865412e3d", size = 150456, upload-time = "2026-07-07T14:33:11.217Z" }, - { url = "https://files.pythonhosted.org/packages/ed/a1/e29995109e455dc8eff8d0fac6ae509be39561318a7cfeac5d33ad029213/charset_normalizer-3.4.9-cp311-cp311-win_amd64.whl", hash = "sha256:6366a16e1a25018694d6a5d784d09b046edc9eac40ea2b54065c3052672516a1", size = 161410, upload-time = "2026-07-07T14:33:12.743Z" }, - { url = "https://files.pythonhosted.org/packages/4f/8d/1569f4d0032d6ba2a4fe4591c35bf87868c600c41a71eb5c2e1ffa8464c2/charset_normalizer-3.4.9-cp311-cp311-win_arm64.whl", hash = "sha256:1d22856ffbe153a602df38e4a5464f0b748a54002e0d69ac6d2ad0a197cc99ec", size = 152649, upload-time = "2026-07-07T14:33:14.173Z" }, - { url = "https://files.pythonhosted.org/packages/70/4a/ecbd131485c07fcdfad54e28946d513e3da22ef3b4bd854dcafae54ec739/charset_normalizer-3.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:45b0cc4e3556cd875e09102988d1ab8356c998b596c9fced84547c8138b487a0", size = 319300, upload-time = "2026-07-07T14:33:15.666Z" }, - { url = "https://files.pythonhosted.org/packages/ec/96/5d9364e3342d69f3a045e1777bc47c85c383e6e9466d561b33fdb419d1f9/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9b2aff1c7b3884512b9512c3eaadd9bab39fb45042ffaaa1dd08ff2b9f8109d9", size = 215802, upload-time = "2026-07-07T14:33:17.031Z" }, - { url = "https://files.pythonhosted.org/packages/4b/4c/5361f9aa7f2cb58d94f2ab831b3d493f69efb1d239654b4744e3c09527cb/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9104ed0bd76a429d46f9ec0dbc9b08ad1d2dcdf2b00a5a0daa1c145329b35b44", size = 237171, upload-time = "2026-07-07T14:33:18.576Z" }, - { url = "https://files.pythonhosted.org/packages/50/78/ce342ca4ff30b2eb49fe6d9578df85974f90c67d294113e94efdd9664cbd/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7b86a2b16095d250c6f58b3d9b2eee6f4147754344f3dab0922f7c9bf7d226c9", size = 233075, upload-time = "2026-07-07T14:33:20.084Z" }, - { url = "https://files.pythonhosted.org/packages/01/c4/4fa4c8b3097a11f3c5f09a35b72ed6855fb1d332469504962ab7bafcc702/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e226f6218febc71f6c1fc2fafb91c226f75bdc1d8fb12d66823716e891608fd", size = 224256, upload-time = "2026-07-07T14:33:21.747Z" }, - { url = "https://files.pythonhosted.org/packages/87/3a/ad914516df7e358a81aae018caa5e0470ba827fa6d763b1d2e87d920a5f6/charset_normalizer-3.4.9-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:90c44bc373b7687f6948b693cceaea1348ae0975d7474746559494468e3c1d84", size = 208784, upload-time = "2026-07-07T14:33:23.313Z" }, - { url = "https://files.pythonhosted.org/packages/d7/74/3c12f9755717dfe5c5c87da63f35d765fa0c00382ec26bf23f7fae34f2ba/charset_normalizer-3.4.9-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cdef90ae47919cae358d8ab15797a800ed41da7aba5d72419fb510729e2ed4b", size = 219928, upload-time = "2026-07-07T14:33:24.814Z" }, - { url = "https://files.pythonhosted.org/packages/33/9a/895095b83e7907abd6d3d99aad3a38ad0d9686cc186cb0c94c24320fe63e/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:60f44ade2cf573dad7a277e6f8ca9a51a21dda572b13bd7d8539bb3cd5dbedde", size = 218489, upload-time = "2026-07-07T14:33:26.42Z" }, - { url = "https://files.pythonhosted.org/packages/a1/34/ef5c05f412f42520d7709b7d3784d19640839eb7366ded1755511585429f/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:a1786910334ed46ab1dd73222f2cd1e05c2c3bb39f6dddb4f8b36fc382058a39", size = 210267, upload-time = "2026-07-07T14:33:27.952Z" }, - { url = "https://files.pythonhosted.org/packages/83/dc/9b29fa4412b318bf3bfea985c35d67eb55e04b59a7c3f2237168b0e0be6f/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:03d07803992c6c7bbc976327f34b18b6160327fc81cb82c9d504720ac0be3b62", size = 226030, upload-time = "2026-07-07T14:33:29.397Z" }, - { url = "https://files.pythonhosted.org/packages/0e/42/6dbc00b8cd16011691203e33570fa42ed5746599a2e878112d16eab403a3/charset_normalizer-3.4.9-cp312-cp312-win32.whl", hash = "sha256:78841cccf1af7b40f6f716338d50c0902dbe88d9f800b3c973b7a9a0a693a642", size = 151185, upload-time = "2026-07-07T14:33:30.781Z" }, - { url = "https://files.pythonhosted.org/packages/80/cc/f920afd1a23c58ccd53c1d36085a71893a4737ff5e66e0371efab6809850/charset_normalizer-3.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:4b3dac63058cc36820b0dd072f89898604e2d39686fe05321729d00d8ac185a0", size = 162557, upload-time = "2026-07-07T14:33:32.176Z" }, - { url = "https://files.pythonhosted.org/packages/f0/e6/0386d43a261ff4e4b30c5857af7df877254b46bec7b9d1b74b6bf969a90b/charset_normalizer-3.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:78fa18e436a1a0e58dbd7e02fc4473f3f32cceb12df9dfca542d075961c307d2", size = 152665, upload-time = "2026-07-07T14:33:33.711Z" }, - { url = "https://files.pythonhosted.org/packages/b2/06/97ec2aeae780b31d742b6352218b43841a6871e2564578ca522dce4a45c3/charset_normalizer-3.4.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:440eede837960000d74978f0eba527be106b5b9aee0daf779d395276ed0b0614", size = 317688, upload-time = "2026-07-07T14:33:35.408Z" }, - { url = "https://files.pythonhosted.org/packages/d0/39/8ff066c672434225f8d25f8b739f992af250944392173dcc88362681c9bf/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21e764fd1e70b6a3e205a0e46f3051701f98a8cb3fad66eeb80e48bb502f8698", size = 214982, upload-time = "2026-07-07T14:33:36.996Z" }, - { url = "https://files.pythonhosted.org/packages/92/8f/3a47a3667c83c2df9483d91644c6c107de3bf8874aa1793da9d3012eb986/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e4fd89cc178bced6ad29cb3e6dd4aa63fa5017c3524dbd0b25998fb64a87cc8b", size = 236460, upload-time = "2026-07-07T14:33:38.536Z" }, - { url = "https://files.pythonhosted.org/packages/f1/60/b22cdbee7e4013dab8b0d7647fc6181120fbbbc8f7025c226d15bd5a47fc/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bd47ba7fc3ca94896759ea0109775132d3e7ab921fbf54038e1bab2e46c313c9", size = 232003, upload-time = "2026-07-07T14:33:40.059Z" }, - { url = "https://files.pythonhosted.org/packages/ea/f8/72eb13dcabe7257035cea8aefd922caad2f110d252bf9f67c4c2ca763aee/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:84fd18bcc17526fc2b3c1af7d2b9217d32c9c04448c16ec693b9b4f1985c3d33", size = 223149, upload-time = "2026-07-07T14:33:41.631Z" }, - { url = "https://files.pythonhosted.org/packages/b0/3e/faee8f9de92b14ee1198e9163252bb15efee7301b31256a3b6d9ebfdd0dd/charset_normalizer-3.4.9-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:5b10cd92fc5c498b35a8635df6d5a100207f88b63a4dc1de7ef9a548e1e2cd63", size = 207901, upload-time = "2026-07-07T14:33:43.209Z" }, - { url = "https://files.pythonhosted.org/packages/3a/25/45f30093ae27dd7b92a793b61882a38685f993700113ca36e0c9c14965e1/charset_normalizer-3.4.9-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a4fbdde9dd4a9ce5fd52c2b3a347bb50cc89483ef783f1cb00d408c13f7a96c0", size = 219176, upload-time = "2026-07-07T14:33:44.725Z" }, - { url = "https://files.pythonhosted.org/packages/48/18/c8f397329c35e32f6a837e488986f4ae03bd2abebc453b48714991630c2f/charset_normalizer-3.4.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:416c229f77e5ea25b3dfd4b582f8d73d7e43c22320302b9ab128a2d3a0b38efe", size = 217356, upload-time = "2026-07-07T14:33:46.192Z" }, - { url = "https://files.pythonhosted.org/packages/86/7e/5ce0bba863470fd1902d5e5843968951bddf38abe4742fc97116ef4598b3/charset_normalizer-3.4.9-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:75286256590a6320cf106a0d28970d3560aad9ee09aa7b34fb40524792436d35", size = 209614, upload-time = "2026-07-07T14:33:47.705Z" }, - { url = "https://files.pythonhosted.org/packages/6c/ef/2473d3c4d869155be4af1191111d59c4d5c4e0173026f7e85b176e23bf65/charset_normalizer-3.4.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:69b157c5d3292bcd443faca052f3096f637f1e074b98212a933c074ae23dc3b8", size = 224991, upload-time = "2026-07-07T14:33:49.238Z" }, - { url = "https://files.pythonhosted.org/packages/d0/a3/53ddae3db108a088156aa8ddfafd411ebbc1340f48c5573f697b27f69a39/charset_normalizer-3.4.9-cp313-cp313-win32.whl", hash = "sha256:51307f5c71007673a2bf8232ad973483d281e74cb99c8c5a990af1eefa6277d9", size = 150622, upload-time = "2026-07-07T14:33:50.711Z" }, - { url = "https://files.pythonhosted.org/packages/e8/ef/6953a77c7cf2c2ff9998e6f575ab3e380119f100223381565a4f94c1f836/charset_normalizer-3.4.9-cp313-cp313-win_amd64.whl", hash = "sha256:fe2c7201c642b7c308f1675355ad7ff7b66acfe3541625efe5a3ad38f29d6115", size = 161947, upload-time = "2026-07-07T14:33:52.197Z" }, - { url = "https://files.pythonhosted.org/packages/6e/fb/d560d1d1555debbfe7849d9cac6145c1b537709d79576bf22557ed803b82/charset_normalizer-3.4.9-cp313-cp313-win_arm64.whl", hash = "sha256:611057cc5d5c0afc743ba8be6bd828c17e0aaa8643f9d0a9b9bb7dea80eb8012", size = 152594, upload-time = "2026-07-07T14:33:53.486Z" }, - { url = "https://files.pythonhosted.org/packages/7e/8d/496817fa0944239ecae662dd57ea765cfeaec6a735f9f025d4b7b72e7143/charset_normalizer-3.4.9-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0327fcd59a935777d83410750c50600ee9571af2846f71ce40f25b13da1ef380", size = 317253, upload-time = "2026-07-07T14:33:54.994Z" }, - { url = "https://files.pythonhosted.org/packages/2b/f9/ef4a69ea338ad3c0deceea0f5f7d2380ae8b52132b06d652cb0d2cd86706/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a79d9f4d8001473a30c163556b3c3bfebec837495a412dde78b51672f6134f9", size = 215898, upload-time = "2026-07-07T14:33:56.334Z" }, - { url = "https://files.pythonhosted.org/packages/8c/e7/5ddfd76fc061eb52de219658a4aa431cbacadf0a0219c8854f00da50d289/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:33bdcc2a32c0a0e861f60841a512c8acc658c87c2ac59d89e3a46dacf7d866e4", size = 236718, upload-time = "2026-07-07T14:33:57.9Z" }, - { url = "https://files.pythonhosted.org/packages/49/ba/768fa3f36048d81c477a0ce61f813bc1454d80917ccfe550abd9f44f5e24/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f840ed6d8ecba8255df8c42b87fadeda98ddfc6eeec05e2dc66e26d46dd6f58a", size = 232519, upload-time = "2026-07-07T14:33:59.811Z" }, - { url = "https://files.pythonhosted.org/packages/f4/c4/b3e049d2aa3766180c78507110543d9d50894cc97f57de543f1be521dcdc/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c25fe15c70c59eb7c5ce8c06a1f3fa1da0ecc5ea1e7a5922c40fd2fa9b0d5046", size = 223143, upload-time = "2026-07-07T14:34:01.517Z" }, - { url = "https://files.pythonhosted.org/packages/19/79/55c32d06d76ae4feafe053f061f3e3ab70bcf19f4007797ce8c3efda7830/charset_normalizer-3.4.9-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:f7fb7d750cfa0a070d2c24e831fd3481019a60dd317ea2b39acbcebc08b6ed81", size = 206742, upload-time = "2026-07-07T14:34:03.04Z" }, - { url = "https://files.pythonhosted.org/packages/10/e0/47c079dd82d217c807479cd59ffd30af56307ea31c108b75758970459ad3/charset_normalizer-3.4.9-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4d1c96a7a18b9690a4d46df09e3e3382406ae3213727cd1019ebade1c4a81917", size = 219191, upload-time = "2026-07-07T14:34:04.657Z" }, - { url = "https://files.pythonhosted.org/packages/42/ab/b9bc2e77d6b44a7e46ef62ec5cac1c9a6ba7b9135a5d560f002696ec9995/charset_normalizer-3.4.9-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a4cfde78a9f2880208d16a93b795726a3017d5977e08d1e162a7a31322479c41", size = 218328, upload-time = "2026-07-07T14:34:06.115Z" }, - { url = "https://files.pythonhosted.org/packages/f1/78/c9c71d599f5aa2d42bcdd35cbbd46d7f535351a57e40ff7d8e5a7e219401/charset_normalizer-3.4.9-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d4d6fcde76f94f5cb9e43e9e9a61f16dacefd228cbbf6f1a09bd9b219a92f1a1", size = 207406, upload-time = "2026-07-07T14:34:07.554Z" }, - { url = "https://files.pythonhosted.org/packages/f6/39/c914445c321a845097ce4f6ac7de9a18228a77b766272125a1ce00d851eb/charset_normalizer-3.4.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:898f0e9068ca27d37f8e83a5b962821df851532e6c4a7d615c1c033f9da6eedf", size = 225157, upload-time = "2026-07-07T14:34:09.061Z" }, - { url = "https://files.pythonhosted.org/packages/9b/f2/c0d4b8508565a36bc5c624e88ed297f5b0b1095011034d7f5b83a69908b5/charset_normalizer-3.4.9-cp314-cp314-win32.whl", hash = "sha256:c1c948747b03be832dceed96ca815cef7360de9aa19d37c730f8e3f6101aca48", size = 151095, upload-time = "2026-07-07T14:34:10.901Z" }, - { url = "https://files.pythonhosted.org/packages/49/fd/a1d26144398c67486422a72bf5812cda22cb4ccfcd95a290fb41ceb4b8e2/charset_normalizer-3.4.9-cp314-cp314-win_amd64.whl", hash = "sha256:16b65ea0f2465b6fb52aa22de5eca612aa964ddfec00a912e26f4656cbef890b", size = 162796, upload-time = "2026-07-07T14:34:12.47Z" }, - { url = "https://files.pythonhosted.org/packages/20/95/d75e82f8ce9fd323ebf059c16c9aadefb22a1ecde13b7840b35835e4886c/charset_normalizer-3.4.9-cp314-cp314-win_arm64.whl", hash = "sha256:40a126142a56b2dfc0aacbad1de8310cbf60da7656db0e6b16eebd48e3e93519", size = 153334, upload-time = "2026-07-07T14:34:14.044Z" }, - { url = "https://files.pythonhosted.org/packages/00/5e/17398df3a139985ba9d11ed072531986f408c8fca952835ef1ab1820c02b/charset_normalizer-3.4.9-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:609b3ba8fcc0fb5ab7af00719d0fb6ad0cb518e48e7712d12fd68f1327951198", size = 338848, upload-time = "2026-07-07T14:34:15.688Z" }, - { url = "https://files.pythonhosted.org/packages/cd/91/7253a32e86b7e1d1239b1b36ba6dd0f021a21107ab33054b53119cc083b9/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51447e9aa2684679af07ca5021c3db526e0284347ebf4ffcec1154c3350cfe32", size = 223022, upload-time = "2026-07-07T14:34:17.248Z" }, - { url = "https://files.pythonhosted.org/packages/cb/32/2e64bd2be10e89c61e57ebe6a93fd98ae88eb7ebe414b5121f22c96c69eb/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cc1b0fff8ead343dae06305f954eb8468ba0ec1a97881f42489d198e4ce3c632", size = 241590, upload-time = "2026-07-07T14:34:18.813Z" }, - { url = "https://files.pythonhosted.org/packages/3d/ef/d96ec496cfea0c21db43b0ad03891308b02388d054cc902cf0e5a1ad6a88/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fa36ec09ef71d158186bc79e359ff5fdd6e7996fe8ab638f00d6b93139ba4fcf", size = 239584, upload-time = "2026-07-07T14:34:20.52Z" }, - { url = "https://files.pythonhosted.org/packages/d4/ce/9af95f7876194bd7a14e3dfe4a4de2e0bff02666a3910d72beafd06cc297/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:df115d4d83168fdf2cae48ef1ff6d1cb4c466364e30861b37121de0f3bf1b990", size = 230224, upload-time = "2026-07-07T14:34:22.189Z" }, - { url = "https://files.pythonhosted.org/packages/52/94/af74dde74a3996bd959c350709bfe50e297823d70a8c1cbd54b838880863/charset_normalizer-3.4.9-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:f86c6358749bd4fda175388691e3ba8c46e24c5347d0afd20f9b7edfc9faf07d", size = 212667, upload-time = "2026-07-07T14:34:23.857Z" }, - { url = "https://files.pythonhosted.org/packages/ee/f0/f1c4fe746c395922961b5916ed1d7d6e7d4c84851d19ed43cc89980ec953/charset_normalizer-3.4.9-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:32286a2c8d167e897177b673176c1e3e00d4057caf5d2b64eef9a3666b03018e", size = 227179, upload-time = "2026-07-07T14:34:25.586Z" }, - { url = "https://files.pythonhosted.org/packages/e4/56/6c745619ac397e8871e2bcd3cea1eec86b877488f33888b3aef5c3ed506e/charset_normalizer-3.4.9-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:83aed2c10721ddd90f68140685391b50811a880af20654c59af6b6c66c40513c", size = 225372, upload-time = "2026-07-07T14:34:27.212Z" }, - { url = "https://files.pythonhosted.org/packages/78/ad/98aae8630ac71f16711968e38a5acfecce41b778bf2f0312851020f565a8/charset_normalizer-3.4.9-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cd6c3d4b783c556fa00bf540854e42f135e2f256abd29669fcd0da0f2dec79c2", size = 215222, upload-time = "2026-07-07T14:34:28.774Z" }, - { url = "https://files.pythonhosted.org/packages/f7/40/9593d54209765207a7f11073c06494c1721e4ca4a0a426c597679bf7f91e/charset_normalizer-3.4.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ee2f2a527e3c1a6e6411eb4209642e138b544a2d72fe5d0d76daf77b24063534", size = 231958, upload-time = "2026-07-07T14:34:30.345Z" }, - { url = "https://files.pythonhosted.org/packages/b1/27/693ee5e8a18191eb38647360c51cd505013e2bd3b366aa43fd5344c21e3c/charset_normalizer-3.4.9-cp314-cp314t-win32.whl", hash = "sha256:0d861473f743244d349b50f850d10eb87aeb22bbdcc8e64f79273c94af5a8226", size = 155580, upload-time = "2026-07-07T14:34:31.884Z" }, - { url = "https://files.pythonhosted.org/packages/80/3f/bd97d3d9c613013d07cb7733d299385b41df37f0471310f5a73dc359f0b8/charset_normalizer-3.4.9-cp314-cp314t-win_amd64.whl", hash = "sha256:9b8e0f3107e2200b76f6054de99016eac3ee6762713587b36baaa7e4bd2ae177", size = 167620, upload-time = "2026-07-07T14:34:33.438Z" }, - { url = "https://files.pythonhosted.org/packages/3d/c6/eee9dca4439b1061f76373f06ea855678cc4a64c1c3c90b50e479edbb8eb/charset_normalizer-3.4.9-cp314-cp314t-win_arm64.whl", hash = "sha256:19ac87f93086ce37b86e098888555c4b4bc48102279bae3350098c0ed664b501", size = 158037, upload-time = "2026-07-07T14:34:35.018Z" }, - { url = "https://files.pythonhosted.org/packages/98/2b/f97f1c193fb855c345d678f5077d6926034db0722df74c8f057020e05a25/charset_normalizer-3.4.9-py3-none-any.whl", hash = "sha256:68e5f26a1ad57ded6d1cfb85331d1c1a195314756471d97758c48498bb4dcdf5", size = 64538, upload-time = "2026-07-07T14:34:56.993Z" }, -] - -[[package]] -name = "click" -version = "8.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/76/d4/81420972a676e8ffea40450d8c8c92943e7218a78fe9b64359836cc9876b/click-8.4.2.tar.gz", hash = "sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6", size = 338000, upload-time = "2026-06-24T17:45:15.148Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/e2/79c688af8b210d232694e31e59da9f6ec747bae31c3f5946e4e9b98860d5/click-8.4.2-py3-none-any.whl", hash = "sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76", size = 119243, upload-time = "2026-06-24T17:45:13.73Z" }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, -] - -[[package]] -name = "cryptography" -version = "50.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/de/41/6cbdcf9142d00fe82836fbb51e503e58088575cf7a0fe1dbff6695bf0840/cryptography-50.0.0.tar.gz", hash = "sha256:eeac2acb5a20ed25e0ad6d1df9891a520b78b404266b6d11778f25d5d691a6c9", size = 880201, upload-time = "2026-07-31T14:25:10.11Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c5/5c/59086b4aac5e879d38ddbcf74e4be7ade89cebc3eb199a55da998c3bb46a/cryptography-50.0.0-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:031e2d5dd4bb9caa3ca9c82e5a197fd8ae680232cee62603d1a813f3f07e3d03", size = 4001252, upload-time = "2026-07-31T14:23:33.331Z" }, - { url = "https://files.pythonhosted.org/packages/57/ef/8f2df13c7216bcad3e1c74e07f6e193d93e998e114f524a53877c9af27ad/cryptography-50.0.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fd9192b7b70c573d7f214eb1ae35e00d359f6f5e4b27c7e21e30de1fc6204645", size = 4719554, upload-time = "2026-07-31T14:23:35.611Z" }, - { url = "https://files.pythonhosted.org/packages/d9/41/029086c34d91052fc3b88bcc8056f709a7c915c7a23b235a54eb800b1c97/cryptography-50.0.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:06a32a980526a6ab9a4b9bf8f7385800791e2bb960903cb6b530e4817509a3b7", size = 4702130, upload-time = "2026-07-31T14:23:37.635Z" }, - { url = "https://files.pythonhosted.org/packages/7d/ff/b6ce0954962e7f7b969f850a883744197bb3910bdfd7b6da162eab7d9f68/cryptography-50.0.0-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:a1b30560f2acc95aa8b2e06e716a13dbfc97314747b80d9707e307f77b40d6b3", size = 4725244, upload-time = "2026-07-31T14:23:39.471Z" }, - { url = "https://files.pythonhosted.org/packages/06/1e/63a1027cb7fec360a182208e1b7767d5aa1fe57be3d6aa856e69a321edc0/cryptography-50.0.0-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:8d89f3976b10b4ce31118de72329025f70d2c6ead14a8217c5514dd2c6d5a78f", size = 5342265, upload-time = "2026-07-31T14:23:41.286Z" }, - { url = "https://files.pythonhosted.org/packages/6b/72/a1116d683a6d7ece94590013882515de087edf9ef0e6292aae615a44df73/cryptography-50.0.0-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b42a28c1844fd9de8f3f7d540e36b66f3a9c83fceac7170ebc7a6a19edd9dcae", size = 4734609, upload-time = "2026-07-31T14:23:43.139Z" }, - { url = "https://files.pythonhosted.org/packages/15/37/36a9c479bbe49acea2636c7fd3360d20f7b7e079c300352011c44850b181/cryptography-50.0.0-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:900131fafd8aead39ac7dd3a7e833be754c17a95cfd91221636949fe4eb0aa8a", size = 4356517, upload-time = "2026-07-31T14:23:44.939Z" }, - { url = "https://files.pythonhosted.org/packages/32/98/8a151d64367204cbc63ec65d37502f1d9c53cf4bfc6ec3c532614dbec60d/cryptography-50.0.0-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:07949c449a1abcf60d1ee6e88956d89404c7df3c8258f46589e912988e551987", size = 4724529, upload-time = "2026-07-31T14:23:46.93Z" }, - { url = "https://files.pythonhosted.org/packages/22/f6/ec13b470172126464a86bf54d2294a46d29837fc51ba3e45d4047946fb5e/cryptography-50.0.0-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:f89831ef99dd7dd169ab06d63a831adb9e20a87aac6d380266bbda5823349169", size = 5299852, upload-time = "2026-07-31T14:23:48.851Z" }, - { url = "https://files.pythonhosted.org/packages/da/3a/f05e32c99d440c9bb891ea0e36c9091891e36be5a9a87ab2ee6ea20729f6/cryptography-50.0.0-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:82148ec5bddac30b51a5b3c1945075f896fa022cb93f8e4a01e9f6ee95292c5f", size = 4734462, upload-time = "2026-07-31T14:23:50.861Z" }, - { url = "https://files.pythonhosted.org/packages/ca/dc/bd72b26be8953f80625f63151efd38eee71c76ca6cf591c08ff34615a79e/cryptography-50.0.0-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1489e263a8048bb8b6a8bac662eb2d402ea5d2b7b4699b72f385f1e2772db105", size = 4852708, upload-time = "2026-07-31T14:23:52.715Z" }, - { url = "https://files.pythonhosted.org/packages/27/20/c930314a2ab476d15dec966ec87e2e9637bb02b06106b12c0396c57bb603/cryptography-50.0.0-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7cec5b856506da6defb290f30c9ee687d5f5e8cb0bd3f6459dde43b0b4fa40ef", size = 5004179, upload-time = "2026-07-31T14:23:54.887Z" }, - { url = "https://files.pythonhosted.org/packages/32/2e/c9db68a0c4bfa28e310707527c0ee3a2bd254104d2e02e68f368e197aa4c/cryptography-50.0.0-cp311-abi3-win_amd64.whl", hash = "sha256:bd1c592e4d5974f0d08d4888e432157adba757c66da0246918e43677fafa2d30", size = 3840395, upload-time = "2026-07-31T14:23:56.677Z" }, - { url = "https://files.pythonhosted.org/packages/c3/fb/951032a3bf22a5697c83183fb6294a4843772947a70e616c57b3ff5f522e/cryptography-50.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:49e7d93abdbd2990caced757e5fade25302f719c3c8fb6e6fff2dde98999fc41", size = 3989258, upload-time = "2026-07-31T14:23:58.881Z" }, - { url = "https://files.pythonhosted.org/packages/d4/67/91eb047e69c5e845f2f14b8a2e4a1aab0f283cb885531e9e22c8adb176bc/cryptography-50.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:19736989797678c6af1e55cd49055cdbcb55d8f6b5583ac5335f933aba9101dc", size = 4700648, upload-time = "2026-07-31T14:24:00.702Z" }, - { url = "https://files.pythonhosted.org/packages/30/82/85f0f7425c856b9f96459411eb12e74ef72df9caf6f8f15bf23a33ff131f/cryptography-50.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:80b63928fa35083b33966ce1efb70e5b9607181e49dcd1c22c8c005e319f667f", size = 4682442, upload-time = "2026-07-31T14:24:02.538Z" }, - { url = "https://files.pythonhosted.org/packages/1a/28/b555a365adff1cca2fbe7b9e487d68a40de6bc67ff2cb587473eb43de0e7/cryptography-50.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:d58c3db7cd6eed54e6c06744db55456b65ebd7492ddeae9c1e93cfca7aa857d3", size = 4707596, upload-time = "2026-07-31T14:24:04.394Z" }, - { url = "https://files.pythonhosted.org/packages/72/d8/f52538140cc719df62a01cf87d1c7142318d235817109d6f4054d7c352d6/cryptography-50.0.0-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:df2a58a472f332225671c35b0a830208b86d004f82baa8530fa3782c85646533", size = 5314552, upload-time = "2026-07-31T14:24:06.31Z" }, - { url = "https://files.pythonhosted.org/packages/38/14/6120e5bd7c5aa022ad15424ba4d5c5269d0d9448ed4d55e492ea91e3c1c4/cryptography-50.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:11b74db56cdbe3cdee6e3f6982ecb70334fa10dce99ed58bf7894aaaa3b2a037", size = 4717113, upload-time = "2026-07-31T14:24:08.349Z" }, - { url = "https://files.pythonhosted.org/packages/fa/71/190bf38c3ee2e0f8efc9860ae100c9df4169742eef274b91e7aa1cb133b9/cryptography-50.0.0-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:f59e38625469987d7ef6d495323c55e7db6c212eaf6112267e0d3b565a2e9c9f", size = 4338580, upload-time = "2026-07-31T14:24:10.227Z" }, - { url = "https://files.pythonhosted.org/packages/3a/63/504ccfbbe61fd8aa983f7f146399cdf034c72c2fc55f5b2dfdcdcdb20c99/cryptography-50.0.0-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:ecfed7367f965a0328cfbdd70da860f15441f002f613185668c6e6ebf5a0ac11", size = 4707038, upload-time = "2026-07-31T14:24:12.169Z" }, - { url = "https://files.pythonhosted.org/packages/01/77/2cf79bbfc4d12ca106437a6e170d6aaa01a373e93093118aaaef0e801bd4/cryptography-50.0.0-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:9aa87839c383bdbab6ef865787a1fb877af8dd03464c4400322726feaaadfc6d", size = 5273110, upload-time = "2026-07-31T14:24:14.38Z" }, - { url = "https://files.pythonhosted.org/packages/e5/45/8aae2972c520145377ea3559a605a899bebe227bf070b33cdb445929a9b9/cryptography-50.0.0-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:6ba6a53445bd3cfa809ef3ef5f1589aa6ba08784a1d962bf47d0940e871dab1c", size = 4716439, upload-time = "2026-07-31T14:24:16.415Z" }, - { url = "https://files.pythonhosted.org/packages/7b/20/4fe50b619a48c2525cc46e2dbc1ac490708d704be5d467bdaac6dc955682/cryptography-50.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3f5735ffe4996d28b809371756219f5354864902a3b9e7c0b9ee87041209fc9c", size = 4837383, upload-time = "2026-07-31T14:24:18.553Z" }, - { url = "https://files.pythonhosted.org/packages/92/91/3a31366e183343d3703f8995c095f5734676bd6938118047e50fcf279eb4/cryptography-50.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:1b4a266766514614f8aa60416e71f2fc6e575d36e7bdc90f644fadb2f4b75b95", size = 4985772, upload-time = "2026-07-31T14:24:20.385Z" }, - { url = "https://files.pythonhosted.org/packages/74/9a/02ffe35b2853d121689871eb5dce862092562b3a1ed5cc98f1aaed441506/cryptography-50.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:12b9c6996425c76ea6c457ace4f3073e715b8c545add07cd1a8f3a4f90691269", size = 3816291, upload-time = "2026-07-31T14:24:22.125Z" }, - { url = "https://files.pythonhosted.org/packages/03/37/73d005be173aff344af30e9fd2a576575cb2391a7101d9cd3842e1fa8cce/cryptography-50.0.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:ccdc4a71a4dabae05de219404f9f4abc38e3b58422177ff93d0da05967dafa07", size = 4036009, upload-time = "2026-07-31T14:24:24.122Z" }, - { url = "https://files.pythonhosted.org/packages/ff/c6/7a6202a534e32103a285b7834a120869557fe198d51d7cfe59754c8bda9c/cryptography-50.0.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:910e1d2668e7de9648f2bcee30e180db2a6b15c30f887d7c4c93ddf96e3992e3", size = 4745252, upload-time = "2026-07-31T14:24:26.118Z" }, - { url = "https://files.pythonhosted.org/packages/85/4f/0fa8c2f4428198f15d9ff8d63400e27afbf94ce833f6108da1eb3753f945/cryptography-50.0.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a91296cb61e8df6f86d0c19cc4068228da256bf59bf86049fbd821084565327f", size = 4728939, upload-time = "2026-07-31T14:24:27.994Z" }, - { url = "https://files.pythonhosted.org/packages/d1/63/54dd723490ba2dc09b299682c10b38db38f159728bcaae8c591b8af2f22d/cryptography-50.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e722f16708d854fe924790e051061f6704a472c3bac347b6fd88033ea8dd0dc5", size = 4748483, upload-time = "2026-07-31T14:24:30.254Z" }, - { url = "https://files.pythonhosted.org/packages/1d/dd/7c77d26285cc7f6991efce64a0f5b4f9383bfa5dd8c5033003eaf7db4cdb/cryptography-50.0.0-cp39-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:d764dcf130c428ef66786f866dd750f53182bc608813489915e9fc106bb0c82f", size = 5367599, upload-time = "2026-07-31T14:24:32.457Z" }, - { url = "https://files.pythonhosted.org/packages/46/c9/f60aed34c013f317f92817b6c171c2d22a78270fa41109bd4b08af26b194/cryptography-50.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:105110f43a471dbd0060b9c9516cb8a6a79233631a04cc2ba16f28323ac6e025", size = 4762647, upload-time = "2026-07-31T14:24:34.599Z" }, - { url = "https://files.pythonhosted.org/packages/be/f3/f9a0173b139372c3a48ed98154b45cc6b9de17c789d5ab552e621c293609/cryptography-50.0.0-cp39-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:828743d939e9629bc267b8e2d08d8bb67cd4319c771a33d4b18b22dd8fb7440a", size = 4385197, upload-time = "2026-07-31T14:24:36.647Z" }, - { url = "https://files.pythonhosted.org/packages/d8/36/83bb81f6e569bc38e1e4a7bc80f29b46bb9601920bc455fc8e888f5d5742/cryptography-50.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:2a8183b489dc1f7f80f135780fadc1108f14b31b8a40411c7a5b17425f65f28b", size = 4748095, upload-time = "2026-07-31T14:24:39.493Z" }, - { url = "https://files.pythonhosted.org/packages/6b/16/d3008eff98c764979865834c3d386d4fd041b5f52e7f34fc29ac1a5eb515/cryptography-50.0.0-cp39-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:6e7d61120573a7f2cd94cc095f9e81f6967c61ccdf194285aa143ecec8e0b708", size = 5325948, upload-time = "2026-07-31T14:24:41.556Z" }, - { url = "https://files.pythonhosted.org/packages/9c/f8/d97f9603efda3888187bfdb893f26c41be4735c10631d05d284ee6b047c4/cryptography-50.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:37fdb0d0111f1e2ff07139dfb79f1b49531f8e213c46f1163dd7642979b58c47", size = 4762400, upload-time = "2026-07-31T14:24:43.636Z" }, - { url = "https://files.pythonhosted.org/packages/64/a2/4615c8f7d81a00b1d6e6afe19f694e1543582349fb5f4076f6cb5dc36485/cryptography-50.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c87f62a3d3b9888ed0fdde100ec06aa61ca9cd44bad9057d1dff9a516b5f5bb9", size = 4878208, upload-time = "2026-07-31T14:24:45.522Z" }, - { url = "https://files.pythonhosted.org/packages/d2/1a/efcfb02f91407149a0dacffffab791f7e19bf6385f63b3666dc8b5e5c9c8/cryptography-50.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:65c2c3add92b45fd0709db8594536aea39c2a67af0e27ffcf049c498501140b7", size = 5037050, upload-time = "2026-07-31T14:24:47.697Z" }, - { url = "https://files.pythonhosted.org/packages/57/30/4a22984d4f1bdfb8c054f07a92bc176b97a3134cc1d6c4b3bffb1f3688b4/cryptography-50.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:d24fead1d4d076e1bfb006dcec392074a3cd8d7b4fc8a595aa64073b2b7a96ba", size = 3874135, upload-time = "2026-07-31T14:24:50.085Z" }, - { url = "https://files.pythonhosted.org/packages/9d/3e/e54cde8c01631a5a8226ccd617eab9e57fd5cfdad90f1a9e6bb570794631/cryptography-50.0.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:5e34edd123674534acd70147f0ca331eaa2c74e6325fb2028c886aa26ba0b68c", size = 3963170, upload-time = "2026-07-31T14:24:51.968Z" }, - { url = "https://files.pythonhosted.org/packages/01/b6/0b9e125e90f3d2dcf599a218a899cda7326a3158cfa258723f0b398b08f6/cryptography-50.0.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:8eb5e1172eb569ea8a872796576e6a67c276351728b6455d5beb01242b027c6a", size = 4692441, upload-time = "2026-07-31T14:24:53.743Z" }, - { url = "https://files.pythonhosted.org/packages/53/c9/a5151588710785a96d7bc4de27d4cd62f263bbbcb203cfe29df537eb6505/cryptography-50.0.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:910d11e1a385c654bf738bf3e6b8e6ed5de0f5610fcae2be9e5b398d8081d20e", size = 4699810, upload-time = "2026-07-31T14:24:55.746Z" }, - { url = "https://files.pythonhosted.org/packages/c7/1a/15b92b25eb6ce3089cd49377ae990a0f3ad485a510f968aed1f19dbdcdf2/cryptography-50.0.0-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:62598a8a57f815db4c6259a4e97d857dab56697e7de8e8ab02352ab74da1995d", size = 4691924, upload-time = "2026-07-31T14:24:58.082Z" }, - { url = "https://files.pythonhosted.org/packages/62/15/219075012ab13e8905f3cd572204f4acb4b111df787104346b9bc0cea789/cryptography-50.0.0-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:07479a1cb08219ab719147e742e76090c9c773321959bb94946fffdd397a6437", size = 4699593, upload-time = "2026-07-31T14:24:59.951Z" }, - { url = "https://files.pythonhosted.org/packages/8e/b5/c2c5fce26f0ee40d21bafe7f191d29a34b35a65ac4fe8a1191d1983612e9/cryptography-50.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c99c003e088647b8a5b7c145d6f78c335f6348332b62e142d411c4b63d1460b9", size = 3813796, upload-time = "2026-07-31T14:25:02.298Z" }, -] - -[[package]] -name = "distro" -version = "1.9.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, -] - -[[package]] -name = "docstring-parser" -version = "0.18.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e0/4d/f332313098c1de1b2d2ff91cf2674415cc7cddab2ca1b01ae29774bd5fdf/docstring_parser-0.18.0.tar.gz", hash = "sha256:292510982205c12b1248696f44959db3cdd1740237a968ea1e2e7a900eeb2015", size = 29341, upload-time = "2026-04-14T04:09:19.867Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/5f/ed01f9a3cdffbd5a008556fc7b2a08ddb1cc6ace7effa7340604b1d16699/docstring_parser-0.18.0-py3-none-any.whl", hash = "sha256:b3fcbed555c47d8479be0796ef7e19c2670d428d72e96da63f3a40122860374b", size = 22484, upload-time = "2026-04-14T04:09:18.638Z" }, -] - -[[package]] -name = "et-xmlfile" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54", size = 17234, upload-time = "2024-10-25T17:25:40.039Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa", size = 18059, upload-time = "2024-10-25T17:25:39.051Z" }, -] - -[[package]] -name = "fastapi" -version = "0.141.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "annotated-doc" }, - { name = "pydantic" }, - { name = "starlette" }, - { name = "typing-extensions" }, - { name = "typing-inspection" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8a/02/91e3416a8fdd715abb903a952a6bec7cdd8d14eed55d415fc8595524c319/fastapi-0.141.1.tar.gz", hash = "sha256:e8822fc40db1e1858054d7a949a888695bc9bdce70139178e33bd2871a453ca1", size = 425799, upload-time = "2026-07-29T17:18:05.568Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/03/10388a42375ee7e4ac9b94eb2c5c569c8b5795e377e701c9ac3ad63de890/fastapi-0.141.1-py3-none-any.whl", hash = "sha256:bfb91aa2d334c61cb35ba9a116fc123b3d3df31640b801cf57a7a78ec3f603b3", size = 131954, upload-time = "2026-07-29T17:18:04.364Z" }, -] - -[[package]] -name = "h11" -version = "0.16.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, -] - -[[package]] -name = "httpcore" -version = "1.0.9" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "h11" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, -] - -[[package]] -name = "httptools" -version = "0.8.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/e5/d471fcb0e14523fe1c3f4ba58ca52480e7bd70ad7109a3846bc75892f7fb/httptools-0.8.0.tar.gz", hash = "sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999", size = 271342, upload-time = "2026-05-25T22:17:48.841Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f8/d2/c3eedaef57de65c3cc5f8dc244cf12d09c84ad258a479055aad6db23206c/httptools-0.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168", size = 208428, upload-time = "2026-05-25T22:16:59.717Z" }, - { url = "https://files.pythonhosted.org/packages/f1/94/dfe435d90d0ef61ec0f2cc3d480eef78c59727c6c2ce039f433882f6131a/httptools-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d", size = 113366, upload-time = "2026-05-25T22:17:00.795Z" }, - { url = "https://files.pythonhosted.org/packages/cc/d4/13025f1a56e615dcb331e0bbe2d9a1143212b58c263385fc5d2e558f5bac/httptools-0.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376", size = 464676, upload-time = "2026-05-25T22:17:02.014Z" }, - { url = "https://files.pythonhosted.org/packages/bf/95/4c1c26c0b985f8a3331682d802598f14e32dc41bf7509266eb2c04ad4801/httptools-0.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d", size = 464235, upload-time = "2026-05-25T22:17:03.109Z" }, - { url = "https://files.pythonhosted.org/packages/a2/82/6735be2b0ca527718c431cdb8e5f70c3862c0844a687df0f572c51e11497/httptools-0.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085", size = 449809, upload-time = "2026-05-25T22:17:04.443Z" }, - { url = "https://files.pythonhosted.org/packages/b5/f9/5811c74f37a758c8a4aa3dc430375119d335947e883efc4664d8f3559a41/httptools-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124", size = 452174, upload-time = "2026-05-25T22:17:05.476Z" }, - { url = "https://files.pythonhosted.org/packages/cc/94/97b75870dea07b71e3ec535cebe525b08d723152e4c7d13fa887e51f4de2/httptools-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07", size = 90991, upload-time = "2026-05-25T22:17:06.75Z" }, - { url = "https://files.pythonhosted.org/packages/14/88/1d21a36da8f5cb0fa49eafd4b169eba5608d57e75bbcf61845cbc6243216/httptools-0.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d", size = 208247, upload-time = "2026-05-25T22:17:07.843Z" }, - { url = "https://files.pythonhosted.org/packages/a5/42/cc4feea2945cb3051038f090c9b36bd5b8a9d7f5a894a506a8983e33fd1c/httptools-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5", size = 113064, upload-time = "2026-05-25T22:17:09.136Z" }, - { url = "https://files.pythonhosted.org/packages/e3/a6/febbb8b8db0f58b38e44ad6cb946e6a255ae49b55f2e8543408fb7501ccd/httptools-0.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2", size = 523851, upload-time = "2026-05-25T22:17:10.106Z" }, - { url = "https://files.pythonhosted.org/packages/b7/e4/f90a0df0b83beff265b7e3b65f2a4cefd95792d4be0ac3e16049f2acd3c2/httptools-0.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09", size = 518842, upload-time = "2026-05-25T22:17:11.218Z" }, - { url = "https://files.pythonhosted.org/packages/9e/2d/0c9ac76dd2c893841fbf6498d6acec4f2442e1b7067f6e3e316a80e494e8/httptools-0.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a", size = 501238, upload-time = "2026-05-25T22:17:12.728Z" }, - { url = "https://files.pythonhosted.org/packages/ca/42/906adc91ae3a5fa9c59c0a2f21c139725bd7e5b41ae6acd485cd14123ebf/httptools-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745", size = 509567, upload-time = "2026-05-25T22:17:13.842Z" }, - { url = "https://files.pythonhosted.org/packages/05/0b/4240efeb672751ee5b9b380cb0e3fdc050bc05f68adc7a8aefc4fcd9a69a/httptools-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150", size = 90918, upload-time = "2026-05-25T22:17:15.155Z" }, - { url = "https://files.pythonhosted.org/packages/5e/e5/8cfcabc5546e8022f168be28bcdaa128a240a0befdd03b59d558b4f18bd6/httptools-0.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8", size = 205148, upload-time = "2026-05-25T22:17:16.333Z" }, - { url = "https://files.pythonhosted.org/packages/2a/0e/0fb14848c19a686c8062ff9067c1a48793e3224b47bc5b201535b6036fce/httptools-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c", size = 111368, upload-time = "2026-05-25T22:17:17.586Z" }, - { url = "https://files.pythonhosted.org/packages/2e/1b/46f1cecf06b9bbde8e4b8c88034ac7908989e5ff7a3a388ef38392949c1f/httptools-0.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7", size = 486447, upload-time = "2026-05-25T22:17:18.564Z" }, - { url = "https://files.pythonhosted.org/packages/77/00/258bfc0837221f81d9725c45f9b948a6a6b2994a147a4fb66e85100c668f/httptools-0.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d", size = 482448, upload-time = "2026-05-25T22:17:19.912Z" }, - { url = "https://files.pythonhosted.org/packages/04/ab/d1cef3b5523f4d272a70f42a776c3169a2dddfe3a54de4b2ce4a36341528/httptools-0.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681", size = 464460, upload-time = "2026-05-25T22:17:20.882Z" }, - { url = "https://files.pythonhosted.org/packages/ce/48/5d1d072442277bb2b3434e0e60690b8e8c23840ef7de8b6ea54040a536d3/httptools-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683", size = 471312, upload-time = "2026-05-25T22:17:22.085Z" }, - { url = "https://files.pythonhosted.org/packages/0d/66/b96623b27e51a68199ef4efdda0613cced9233fe3062ac74e50749c5ad37/httptools-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1", size = 90117, upload-time = "2026-05-25T22:17:23.074Z" }, - { url = "https://files.pythonhosted.org/packages/1a/12/fa3fbf5f9517b273edea2dc982aa82a8c634091e67c590792b729017bc6f/httptools-0.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6", size = 206183, upload-time = "2026-05-25T22:17:24.004Z" }, - { url = "https://files.pythonhosted.org/packages/30/fc/5e7c4cb443370f2090a3aba0453a07384d29ff66b7435bb90e77e1037599/httptools-0.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b", size = 112079, upload-time = "2026-05-25T22:17:25.216Z" }, - { url = "https://files.pythonhosted.org/packages/ba/53/771bd891eb0f236f32145d6a1775777ec85745f3cc983a1f23d1a3b8ddfe/httptools-0.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0", size = 481596, upload-time = "2026-05-25T22:17:26.186Z" }, - { url = "https://files.pythonhosted.org/packages/62/42/94e15bc68ce3d423243c45d7f1b0c7561f13844f97dc52ae23182fb65628/httptools-0.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e", size = 480865, upload-time = "2026-05-25T22:17:27.542Z" }, - { url = "https://files.pythonhosted.org/packages/1c/7c/fe2980fc03723272e30f135b62360b075f513dfe7cc73aef36c7f04012bd/httptools-0.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b", size = 463189, upload-time = "2026-05-25T22:17:28.546Z" }, - { url = "https://files.pythonhosted.org/packages/15/1b/47fc5fff68acd1bfa20b4734059c9a06cadb88119dcd5258b5b0d21d91c8/httptools-0.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0", size = 466610, upload-time = "2026-05-25T22:17:29.816Z" }, - { url = "https://files.pythonhosted.org/packages/60/bd/07b13c93ffd9bec9546e0d43f8e19378dd696dbd278511406bc07371ef1f/httptools-0.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527", size = 92705, upload-time = "2026-05-25T22:17:31.133Z" }, - { url = "https://files.pythonhosted.org/packages/fd/c4/121648f68ce066d7bd762d6b6d97e620847642d38d54f3d90ff11d947629/httptools-0.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568", size = 215023, upload-time = "2026-05-25T22:17:32.401Z" }, - { url = "https://files.pythonhosted.org/packages/b9/b0/312a062ae741ae3e8baa8c8bf20be81b2e67337b259ab4349bebc7b6142e/httptools-0.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b", size = 117405, upload-time = "2026-05-25T22:17:33.742Z" }, - { url = "https://files.pythonhosted.org/packages/fc/37/fccd705f795386bb05bf413012fecff2a33e5aa8c2f069096de3e9fd8702/httptools-0.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca", size = 558497, upload-time = "2026-05-25T22:17:34.732Z" }, - { url = "https://files.pythonhosted.org/packages/bd/39/f172e8003576de35f5ba77ff417cf0e34429d35dc014deef15afa337a72c/httptools-0.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f", size = 571585, upload-time = "2026-05-25T22:17:35.813Z" }, - { url = "https://files.pythonhosted.org/packages/3e/b9/f5564760af99f3dbbf3f9104dc00e5da27e96cf433c6bdcf77617f70bf3f/httptools-0.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d", size = 543297, upload-time = "2026-05-25T22:17:37.08Z" }, - { url = "https://files.pythonhosted.org/packages/99/67/8d9f2c313618e161b82f3873188e7196126da1d6e29688df40eb3997c77a/httptools-0.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081", size = 539535, upload-time = "2026-05-25T22:17:38.032Z" }, - { url = "https://files.pythonhosted.org/packages/48/63/b906c01e53f50d432c0defe43ce52764a111dc1bdd028bafbeb54dcfd008/httptools-0.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77", size = 108209, upload-time = "2026-05-25T22:17:39.473Z" }, -] - -[[package]] -name = "httpx" -version = "0.28.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "certifi" }, - { name = "httpcore" }, - { name = "idna" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, -] - -[[package]] -name = "idna" -version = "3.18" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cd/63/9496c57188a2ee585e0f1db071d75089a11e98aa86eb99d9d7618fc1edce/idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848", size = 196711, upload-time = "2026-06-02T14:34:07.794Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2", size = 65455, upload-time = "2026-06-02T14:34:06.319Z" }, -] - -[[package]] -name = "iniconfig" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, -] - -[[package]] -name = "jiter" -version = "0.16.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/1f/10936e16d8860c70698a1aa939a46aa0224813b782bce4e000e637da0b2d/jiter-0.16.0.tar.gz", hash = "sha256:7b24c3492c5f4f84a37946ad9cf504910cf6a782d6a4e0689b6673c5894b4a1c", size = 176431, upload-time = "2026-06-29T13:05:13.657Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/3f/fae6cc967d120ec89e31c5418a51176d8278b3087fbb384a9176754f353c/jiter-0.16.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:67fddeda1688f0cce2d2ae83ccf8a80f79936f2d2997d6cc2261f82fdb54a4d3", size = 309289, upload-time = "2026-06-29T13:02:52.301Z" }, - { url = "https://files.pythonhosted.org/packages/c8/e3/97c6c3562c077f6247d6e6ce5c82562500b6316c0d928e97e106b7a1321a/jiter-0.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c90c0f63df322be920eda6ce622e3083d8906ba267f8220fe7873213b8b4430e", size = 315181, upload-time = "2026-06-29T13:02:53.964Z" }, - { url = "https://files.pythonhosted.org/packages/7b/89/d8d073f8aa2667e46c6c0873f86fe4a512bba4293cc730f626a076211a62/jiter-0.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64c0203212098470032aabcde9356fc168f377aade3e43def61dfe17e92f2037", size = 340939, upload-time = "2026-06-29T13:02:55.412Z" }, - { url = "https://files.pythonhosted.org/packages/87/c9/db4fda3ed73fb864139305e935e5b8b38a5a24692a5a9dd356c22f1b9c8d/jiter-0.16.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:12288303c9844e61e1651d02a9a6f6633e47d39f897d6991d1427161ce6b746e", size = 364932, upload-time = "2026-06-29T13:02:57.28Z" }, - { url = "https://files.pythonhosted.org/packages/a2/74/52b5e86241057f52ddd7c9a580f90effb51f9d06239f6fc612279b91a838/jiter-0.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cf109d010b4b05a105afb3d43be36a21322d345ad3111e13d15f680afef0e5b", size = 461132, upload-time = "2026-06-29T13:02:58.994Z" }, - { url = "https://files.pythonhosted.org/packages/a9/87/544a700f7447c1f31c5d7833821a4daa5683165c2d5a094fbf5b5800c3dc/jiter-0.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:62c1b7fe1f77925acf5af68b6140b8810fa87dfd4dc0a9c8568ec2fa2a10429c", size = 374857, upload-time = "2026-06-29T13:03:00.455Z" }, - { url = "https://files.pythonhosted.org/packages/40/cd/0fcc3f7d39183674d5bfa9ec640faaeb506c60be7c8f94625dfba366e37c/jiter-0.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8597d23c87f59294f83bcb6229b9ed1fccee13dbba967b46930d2f1759466fee", size = 347053, upload-time = "2026-06-29T13:03:02.045Z" }, - { url = "https://files.pythonhosted.org/packages/5c/ae/c7e64e7932ad597fa395b61440b249ada6366716e25c6e08dd2afbd021e6/jiter-0.16.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:3126a5dbad56401989ac769aca0cb56005bfb3e2366eea0ca99d1a91c3c1ee03", size = 356153, upload-time = "2026-06-29T13:03:03.706Z" }, - { url = "https://files.pythonhosted.org/packages/d4/1c/1c719044f14da814e1a060191ab19b96f3e99207bc5b4bfc6d6be34b3f80/jiter-0.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c4b4717bdb35ae456f831a6b08d01880fff399887a6bbc526a583a406e484eea", size = 393956, upload-time = "2026-06-29T13:03:05.165Z" }, - { url = "https://files.pythonhosted.org/packages/3b/dc/7b2f303a2847207e265503853a2d964a55354cffd62a5f2936c155486798/jiter-0.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:adff21bc78edfe086c15eb495b900306076de378dc2337c132401fc39bd79c91", size = 521081, upload-time = "2026-06-29T13:03:06.886Z" }, - { url = "https://files.pythonhosted.org/packages/c2/5f/501cf6e1e09caeb420195179ffc6f62aca603f1220ec53fd80d0d70b3e56/jiter-0.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dab907db06fc593645e73109acf4581ba5b548897d28b9348dc41ddc8343b2d3", size = 552085, upload-time = "2026-06-29T13:03:08.339Z" }, - { url = "https://files.pythonhosted.org/packages/79/54/aa5be86520113b79455c3877f3d1f07a348098df4083ba3688e9537e52dd/jiter-0.16.0-cp311-cp311-win32.whl", hash = "sha256:560b2cf3fb03240cd34f27409a238547488708f05b7c3924f571a60422251ec7", size = 206755, upload-time = "2026-06-29T13:03:09.653Z" }, - { url = "https://files.pythonhosted.org/packages/64/ec/2feb893eb330bd69b413866f4d5daada33c3962f1c6f270c91ca2d87fdf9/jiter-0.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:e431cfc9caf44c1d5459ff77d4e64cbf85fddb6a35dad836a15c6a9ec23087c1", size = 199155, upload-time = "2026-06-29T13:03:10.979Z" }, - { url = "https://files.pythonhosted.org/packages/b9/9c/ca040d94415048a3666fc237774df8151c96f8d2b661cbe3b184acc95876/jiter-0.16.0-cp311-cp311-win_arm64.whl", hash = "sha256:2a8e9e39cf083016137aa5cadafe3188adc2ba6ba1fbf1e5d18889ad3e9ad056", size = 194403, upload-time = "2026-06-29T13:03:12.341Z" }, - { url = "https://files.pythonhosted.org/packages/83/2b/52ace16ed031354f0539749a49e4bf33797d82bea5137910835fa4b09793/jiter-0.16.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:67c3bc1760f8c99d805dcab4e644027142a53b1d5d861f18780ebdbd5d40b72a", size = 306943, upload-time = "2026-06-29T13:03:14.035Z" }, - { url = "https://files.pythonhosted.org/packages/94/2e/34957c2c1b661c252ba9bcc60ae0bddc27e0f7202c6073326a13c5390eec/jiter-0.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5af7780e4a26bd7d0d989592bf9ef12ebf806b74ab709223ecca37c749872ea9", size = 307779, upload-time = "2026-06-29T13:03:15.418Z" }, - { url = "https://files.pythonhosted.org/packages/88/6c/59bd309cab4460c54cf1079f3eb7fe7af6a4c895c5c957a53378693bad2b/jiter-0.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5bf78d0e05e45cfdd66558893938d59afe3d1b1a824a202039b20e607d25a72", size = 335826, upload-time = "2026-06-29T13:03:17.11Z" }, - { url = "https://files.pythonhosted.org/packages/3b/8c/f5ef7b65f0df47afa16596969defb281ebb86e96df346d62be6fd853d620/jiter-0.16.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f4444a83f946605990c98f625cdd3d2725bfb818158760c5748c653170a20e0e", size = 362573, upload-time = "2026-06-29T13:03:18.781Z" }, - { url = "https://files.pythonhosted.org/packages/2b/0b/ace4354da061ee38844a0c27dc2c21eecd27aea119e8da324bea987522d0/jiter-0.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a23f0e4f957e1be65752d2dfac9a5a06b1917af8dc85deb639c3b9d02e31290", size = 457979, upload-time = "2026-06-29T13:03:20.293Z" }, - { url = "https://files.pythonhosted.org/packages/55/40/c0253d3772eb9dcd8e6606ee9b2d53ec8e5b814589c47f140aa585f21eaa/jiter-0.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c22a488f7b9218e245a0025a9ba6b100e2e54700831cf4cf16833a27fba3ad01", size = 372302, upload-time = "2026-06-29T13:03:21.739Z" }, - { url = "https://files.pythonhosted.org/packages/a8/d2/4839422241aa12860ce597b20068727094ba0bc480723c74924ca5bad483/jiter-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46add52f4ad47a08bfb1219f3e673da972191489a33016edefdb5ea55bfa8c48", size = 343805, upload-time = "2026-06-29T13:03:23.384Z" }, - { url = "https://files.pythonhosted.org/packages/e2/59/e196888a05befdda7dbe299b722d56f2f6eec65402bc34c0a3306d595feb/jiter-0.16.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:9c8a956fd72c2cf1e730d01ea080341f13aa0a97a4a33b51abebe725b7ae9ca9", size = 351107, upload-time = "2026-06-29T13:03:24.815Z" }, - { url = "https://files.pythonhosted.org/packages/ec/74/4cd9e0fca65232136400354b630fbfcd2de634e22ccbb96567725981b548/jiter-0.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:561926e0573ffe4a32498420a76d64b16c513e1ab413b9d28158a8764ac701e5", size = 388441, upload-time = "2026-06-29T13:03:26.266Z" }, - { url = "https://files.pythonhosted.org/packages/d9/8c/554691e48bc711299c0a293dd8a6179e24b2d66a54dc295421fcf64569c0/jiter-0.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:44d019fa8cdaf89bf29c71b39e3712143fdd0ac76725c6ef954f9957a5ea8730", size = 516354, upload-time = "2026-06-29T13:03:28.02Z" }, - { url = "https://files.pythonhosted.org/packages/a4/cb/01e9d69dc2cc6759d4f91e230b34489c4fdb2518992650633f9e20bece89/jiter-0.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0df91907609837f33341b8e6fe73b95991fdaa57caf1a0fbd343dffe826f386f", size = 547880, upload-time = "2026-06-29T13:03:29.534Z" }, - { url = "https://files.pythonhosted.org/packages/79/70/2953195f1c6ad00f49fa67e13df7e60acb3dd4f387101bc15abccddd905e/jiter-0.16.0-cp312-cp312-win32.whl", hash = "sha256:51d7b836acb0108d7c77df1742332cac2a1fa04a74d6dacec46e7091f0e91274", size = 203473, upload-time = "2026-06-29T13:03:31.025Z" }, - { url = "https://files.pythonhosted.org/packages/2d/05/2909a8b10699a4d560f8c502b6b2c5f3991b682b1922c1eedda242b225bd/jiter-0.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:1878349266f8ee36ecb1375cc5ba2f115f35fd9f0a1a4119e725e379126647f7", size = 196905, upload-time = "2026-06-29T13:03:32.472Z" }, - { url = "https://files.pythonhosted.org/packages/e9/a9/6b82bb1c8d7790d602489b967b982a909e5d092875a6c2ade96444c8dfc5/jiter-0.16.0-cp312-cp312-win_arm64.whl", hash = "sha256:2ed5738ae4af18271a51a528b8811b0cbfa4a1858de9d83359e4169855d6a331", size = 190618, upload-time = "2026-06-29T13:03:34.672Z" }, - { url = "https://files.pythonhosted.org/packages/91/c0/555fc60473d30d66894ba825e63615e3be7524fac23858356afa7a38906c/jiter-0.16.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:41977aa5654023948c2dae2a81cbf9c43343954bef1cd59a154dd15a4d84c195", size = 306203, upload-time = "2026-06-29T13:03:36.243Z" }, - { url = "https://files.pythonhosted.org/packages/d0/2b/c3eaf16f5d7c9bad66ea32f40a95bd169b29a91217fcc7f081375157e99c/jiter-0.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d28bb3c26762358dadf3e5bf0bccd29ae987d65e6988d2e6f49829c76b003c09", size = 306489, upload-time = "2026-06-29T13:03:37.846Z" }, - { url = "https://files.pythonhosted.org/packages/96/3f/02fdfc6705cad96127d883af5c34e4867f554f29ec7705ec1a46156400a9/jiter-0.16.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0542a7189c26920778658fc8fcf2af8bae05bae9924577f71804acef37996536", size = 335453, upload-time = "2026-06-29T13:03:39.221Z" }, - { url = "https://files.pythonhosted.org/packages/b2/a6/e4bda5920d4b0d7c5dfb7174ce4a6b2e4d3e11c9162c452ef0eab4cdbdbd/jiter-0.16.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8fb8de1e23a0cb2a7f53c335049c7b72b6db41aa6227cdcc0972a1de5cb39450", size = 361625, upload-time = "2026-06-29T13:03:40.597Z" }, - { url = "https://files.pythonhosted.org/packages/b7/97/4e6b59b2c6e55cbb3e183595f81ad65dcfb21c915fee5e19e335df21bc55/jiter-0.16.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b72d0b2990ca754a9102779ac98d8597b7cb31678958562214a007f909eab78e", size = 456958, upload-time = "2026-06-29T13:03:42.074Z" }, - { url = "https://files.pythonhosted.org/packages/15/e0/97e9557686d2f94f4b93786eccb7eed28e9228ad132ea8237f44727314a7/jiter-0.16.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5f91b1c27fc22a57993d5a5cb8a627cb8ed4b10502716fac1ffbfe1d19d84e8", size = 372017, upload-time = "2026-06-29T13:03:43.658Z" }, - { url = "https://files.pythonhosted.org/packages/0f/94/db768b6938e0df35c86beeba3dfbbb025c9ee5c19e1aa271f2396e50864d/jiter-0.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c682bea068a90b764577bdb78a60a4c1d1606daf9cd4c893832a37c7cc9d9026", size = 343320, upload-time = "2026-06-29T13:03:45.226Z" }, - { url = "https://files.pythonhosted.org/packages/c1/d6/5a59d938244a30735fe62d9433fd325f9021ea29d89780ea4596ea93bc89/jiter-0.16.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:8d031aabecc4f1b6276adfb42e3aabb77c89d468bf616600e8d3a11328929053", size = 350520, upload-time = "2026-06-29T13:03:46.671Z" }, - { url = "https://files.pythonhosted.org/packages/67/f8/c4a857f49c9af125f6bbcac7e3eee7f7978ed89682833062e2dbf62576b1/jiter-0.16.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:eab2cd170150e70153de16896a1774e3a1dca80154c56b54d7a812c479a7165e", size = 387550, upload-time = "2026-06-29T13:03:48.361Z" }, - { url = "https://files.pythonhosted.org/packages/8b/d6/5fbc2f7d6b67b754caa61a993a2e626e815dec47ffc2f9e35f01adfebec7/jiter-0.16.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:6edb63a46e65a82c26800a868e49b2cac30dd5a4218b88d74bc2c848c8ad60bb", size = 515424, upload-time = "2026-06-29T13:03:49.881Z" }, - { url = "https://files.pythonhosted.org/packages/ed/54/284f0164b64a5fed915fea6ba7e9ba9b3d8d37c67d59cf2e3bb99d45cdfe/jiter-0.16.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:659039cc50b5addcc35fcc87ae2c1833b7c0a8e5326ef631a75e4478447bcf84", size = 546981, upload-time = "2026-06-29T13:03:51.363Z" }, - { url = "https://files.pythonhosted.org/packages/13/c5/2a467585a576594384e1d2c43e1224deaafc085f24e243529cf98beef8e1/jiter-0.16.0-cp313-cp313-win32.whl", hash = "sha256:c9c53be232c2e206ef9cdbad81a48bfa74c3d3f08bcf8124630a8a748aad993e", size = 202853, upload-time = "2026-06-29T13:03:53.015Z" }, - { url = "https://files.pythonhosted.org/packages/88/6a/de61d04b9eec69c71719968d2f716532a3bc121170c44a39e14979c6be81/jiter-0.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:baad945ed47f163ad833314f8e3288c396118934f94e7bbb9e243ce4b341a4fd", size = 196160, upload-time = "2026-06-29T13:03:54.447Z" }, - { url = "https://files.pythonhosted.org/packages/19/4b/b390ed59bafb3f31d008d1218578f10327714484b334439947f7e5b11e7f/jiter-0.16.0-cp313-cp313-win_arm64.whl", hash = "sha256:3c1fd2dbe1b0af19e987f03fe66c5f5bd105a2229c1aff4ab14890b24f41d21a", size = 189862, upload-time = "2026-06-29T13:03:55.754Z" }, - { url = "https://files.pythonhosted.org/packages/a7/89/bc4f1b57d5da938fd344a466396541e586d161320d70bffd929aaafcd8f4/jiter-0.16.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:b2c61484666ad42726029af0c00ef4541f0f3b5cdc550221f56c2343208018ee", size = 308239, upload-time = "2026-06-29T13:03:57.205Z" }, - { url = "https://files.pythonhosted.org/packages/65/7a/c415453e5213001bf3b411ff65dec3d303b0e76a4a2cfea9768cd4960994/jiter-0.16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:63efadc657488f45db1c676d81e704cac2abf3fdb892def1faea61db053127e2", size = 308928, upload-time = "2026-06-29T13:03:58.643Z" }, - { url = "https://files.pythonhosted.org/packages/11/fc/1f4fb7ebf9a724c7741994f4aae18fba1e2f3133df14521a79194952c34a/jiter-0.16.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf0d73f50e7b6935677854f6e8e31d499ca7064dd24734f703e060f5b237d883", size = 336998, upload-time = "2026-06-29T13:04:00.071Z" }, - { url = "https://files.pythonhosted.org/packages/a0/8d/72cadaac05ccfa7cc3a0a2232862e6c72443ca40cf300ba8b57f9f18b69b/jiter-0.16.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf3ea07d9bc8e7d03a9fbc051295462e6dbc295b894fd72457c3136e3e43d898", size = 362112, upload-time = "2026-06-29T13:04:01.52Z" }, - { url = "https://files.pythonhosted.org/packages/58/4a/c4b0d5f651fda90a24ffce9f8d56cde462a2e09d31ae3de3c68cef34c04e/jiter-0.16.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26798522707abb47d767db536e4148ceac1b14446bf028ee85e579a2e043cfe5", size = 459807, upload-time = "2026-06-29T13:04:03.214Z" }, - { url = "https://files.pythonhosted.org/packages/80/58/ef77879ea9aa56b50824edc5a445e226422c7a8d211f3fd2a56bcb9493cf/jiter-0.16.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bc837c1b9631be10abfe0191537fe8009838204cec7e44827401ace390ddb567", size = 373181, upload-time = "2026-06-29T13:04:04.629Z" }, - { url = "https://files.pythonhosted.org/packages/49/2e/ffbc3f254e4d8a66da3062c624a7df4b7c2b2cf9e1fe43cf394b3e104041/jiter-0.16.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49060fd70737fad59d33ba9dcc0d83247dc9e77187de26053a19c16c9f32bd69", size = 344927, upload-time = "2026-06-29T13:04:06.067Z" }, - { url = "https://files.pythonhosted.org/packages/9a/f6/0be5dc6d64a89f80aa8fec984f94dedb2973e251edcae55841d60786d578/jiter-0.16.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:adbb8edeadd431bc4477879d5d371ece7cb1334486584e0f252656dd7ffada29", size = 352754, upload-time = "2026-06-29T13:04:07.477Z" }, - { url = "https://files.pythonhosted.org/packages/da/6e/7d31243b3b91cd261dd19e9d3557fc3251a80883d3d8049c86174e7ab7af/jiter-0.16.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:31aaee5b80f672c1dc21272bcfb9cbdcfc1ea04ff50f00ed5af500b80c44fa93", size = 390553, upload-time = "2026-06-29T13:04:08.92Z" }, - { url = "https://files.pythonhosted.org/packages/25/33/51ae371fde3c88897520f62b4d5f8b27ad7103e2bb10812ff52195609853/jiter-0.16.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:6722bcef4ffc86c835574b1b2fac6b33b9fb4a889c781e67950e891591f3c55a", size = 516900, upload-time = "2026-06-29T13:04:10.407Z" }, - { url = "https://files.pythonhosted.org/packages/a0/45/6449b3d123ea439ba79507c657288f461d55049e7bcbdc2cf8eb8210f491/jiter-0.16.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:5ab4f50ff971b611d656554ea10b75f80097392c827bc32923c6eeb6386c8b00", size = 548754, upload-time = "2026-06-29T13:04:12.046Z" }, - { url = "https://files.pythonhosted.org/packages/9b/e7/fd2fb11ae3e2649333da3aa170d04d7b3000bbdc3b270f6513382fdf4e04/jiter-0.16.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:710cc51d4ebdcd3c1f70b232c1db1ea1344a075770422bbd4bede5708335acbe", size = 122381, upload-time = "2026-06-29T13:04:13.413Z" }, - { url = "https://files.pythonhosted.org/packages/26/80/f0b147a62c315a164ed2168908286ca302310824c218d3aae52b06c0c9a9/jiter-0.16.0-cp314-cp314-win32.whl", hash = "sha256:57b37fc887a32d44798e4d8ebfa7c9683ff3da1d5bf38f08d1bb3573ccb39106", size = 204578, upload-time = "2026-06-29T13:04:14.813Z" }, - { url = "https://files.pythonhosted.org/packages/5e/e6/4758a14304b4523a6f5adb2419340086aa3593bd4327c2b25b5948a90548/jiter-0.16.0-cp314-cp314-win_amd64.whl", hash = "sha256:cbd18dd5e2df96b580487b5745adf57ef64ad89ba2d9662fc3c19386acce7db8", size = 198154, upload-time = "2026-06-29T13:04:16.272Z" }, - { url = "https://files.pythonhosted.org/packages/26/be/41fa54a2e7ea41d6c99f1dc5b1f0fd4cb474680304b5d268dd518e81da3a/jiter-0.16.0-cp314-cp314-win_arm64.whl", hash = "sha256:a32d2027a9fa67f109ff245a3252ece3ccc32cc56703e1deab6cc846a59e0585", size = 191458, upload-time = "2026-06-29T13:04:17.707Z" }, - { url = "https://files.pythonhosted.org/packages/81/6b/59127338b86d9fe4d99418f5a15118bea778103ee0fe9d9dd7e0af174e95/jiter-0.16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2577196f4474ef3fc4779a088a23b0897bbf86f9ea3679c372d45b8383b43207", size = 316739, upload-time = "2026-06-29T13:04:19.663Z" }, - { url = "https://files.pythonhosted.org/packages/2d/95/49461034d5388196d3dabf98748935f017b7785d8f3f5349f834bcc4ed0d/jiter-0.16.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e89e008a93c01104161c75b4988e58716b01d62307ebfe161e52a56d2a818", size = 340911, upload-time = "2026-06-29T13:04:21.257Z" }, - { url = "https://files.pythonhosted.org/packages/cd/97/a4369f2fb82cb3dda13b98622f31249b2e014b223fe64ee534413ad72294/jiter-0.16.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e2e9efbe042210df657bade597f66d6d75723e3d8f45a12ea6d8167ff8bbce3", size = 361747, upload-time = "2026-06-29T13:04:22.677Z" }, - { url = "https://files.pythonhosted.org/packages/28/51/49b6ed456261646e1906016a6760367a28aacd3c24805e4e5fe64116c1db/jiter-0.16.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f4d9e473a5ce7d27fef8b848df4dc16e283893d3f53b4a585e72c9595f3c284", size = 460225, upload-time = "2026-06-29T13:04:24.441Z" }, - { url = "https://files.pythonhosted.org/packages/33/b5/5689aff4f66c5b60be63106e591dbfcba2190df97d2c9c7cf052361ddb98/jiter-0.16.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d30a4a1c87713060c8d1cc59a7b6c8fb6b8ef0a6900368014c76c87922a2929", size = 373169, upload-time = "2026-06-29T13:04:25.884Z" }, - { url = "https://files.pythonhosted.org/packages/a2/96/3ae1b85ee0d6d6cab254fb7f8da018272b932bbf2d69b07e98aa2a96c746/jiter-0.16.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bae96332410f866e5900d809298b1ed82735932986c672495f9701daacd80620", size = 350332, upload-time = "2026-06-29T13:04:27.302Z" }, - { url = "https://files.pythonhosted.org/packages/15/32/c99d7bafd78986556c95bf60ce84c6cc98786eac56066c12d7f828bb6747/jiter-0.16.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:da3d7ec75dc83bb18bca888b5edfae0656a26849056c59e05a7728badd17e7af", size = 353377, upload-time = "2026-06-29T13:04:28.731Z" }, - { url = "https://files.pythonhosted.org/packages/0e/4b/f99a8e571287c3dec766bcc18528bbe8e8fb5365522ab5e6d64c93e87066/jiter-0.16.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ee6162b77d49a9939229df666dfa8af3e656b6701b54c4c84966d740e189264e", size = 387746, upload-time = "2026-06-29T13:04:30.319Z" }, - { url = "https://files.pythonhosted.org/packages/75/69/c78a5b3f71040e34eb5917df26fb7ae9a2174cad1ccbf277512507c53a6e/jiter-0.16.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:63ffdbdae7d4499f4cda14eadc12ddcabef0fc0c081191bdc2247489cb698077", size = 517292, upload-time = "2026-06-29T13:04:31.709Z" }, - { url = "https://files.pythonhosted.org/packages/c2/f7/095b38eda4c70d03651c403f29a5590f16d12ddc5d544aac9f9cddf72277/jiter-0.16.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:a111256a7193bea0759267b10385e5870949c239ed7b6ddbaaf57573edb38734", size = 549259, upload-time = "2026-06-29T13:04:33.721Z" }, - { url = "https://files.pythonhosted.org/packages/2e/c5/6a0207d90e5f656d95af98ebd0934f382d37674416f215aeda2ff8063e51/jiter-0.16.0-cp314-cp314t-win32.whl", hash = "sha256:de5ba8763e56b793561f43bed197c9ea55776daa5e9a6b91eed68a909bc9cdbf", size = 206523, upload-time = "2026-06-29T13:04:35.068Z" }, - { url = "https://files.pythonhosted.org/packages/a5/31/c757d5f30a8980fd945ce7b98be10be9e4ff59c7c42f5fd86804c2e87db8/jiter-0.16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b8a3f9a6008048fe9def7bf465180564a6e458047d2ce499149cfbe73c3ae9db", size = 200366, upload-time = "2026-06-29T13:04:36.61Z" }, - { url = "https://files.pythonhosted.org/packages/7c/a2/d88de6d313d734a544a7901353ad5db67cb38dcfcd91713b7979dafc345d/jiter-0.16.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0fa25b09b13075c46f5bc174f2690525a925a4fc2f7c82969a2bbabff22386ce", size = 190516, upload-time = "2026-06-29T13:04:38.004Z" }, - { url = "https://files.pythonhosted.org/packages/06/d3/8e278946d43eeca2585b4dd0834a887cd71136329b837f3a16ed86a8b4b0/jiter-0.16.0-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:850ccb1d7eedb4200f4014b1c0e8a577de114fc3cd88faad646dcc9bc4bb12ad", size = 304518, upload-time = "2026-06-29T13:05:00.172Z" }, - { url = "https://files.pythonhosted.org/packages/72/43/28d4ef495028bf0506a413d4db3f4eb3e7288a382e0f065f306a17bbeb5e/jiter-0.16.0-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:e34e97bda77eb63242a410243c071e28ac7e0d8c0948c5ee658498690a4b2f2f", size = 310207, upload-time = "2026-06-29T13:05:02.123Z" }, - { url = "https://files.pythonhosted.org/packages/e0/ca/c366b1012da1d640de975d9683acd44e4d150d9068845d0ca2610435253f/jiter-0.16.0-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7dc85ea77d4abbae8bad0d3538678aedee75bceec4e2f6c8dfb1c74772e5aa5", size = 342771, upload-time = "2026-06-29T13:05:03.55Z" }, - { url = "https://files.pythonhosted.org/packages/16/52/50cc4056fc1ae02e7154704e7ecc89df0afb8300222cfe8a52d3f67e4730/jiter-0.16.0-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17ca7fae79f6d99cd9a042b75f917eaada7b895cfc7dd2ee3a16089dcaec7a85", size = 346468, upload-time = "2026-06-29T13:05:05.452Z" }, - { url = "https://files.pythonhosted.org/packages/98/ab/664fd8c4be028b2bedd3d2ff08769c4ede23d0dbc87a77c62384a0515b5d/jiter-0.16.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:f17d61a28b4b3e0e3e2ba98490c70501403b4d196f78732439160e7fd3678127", size = 303106, upload-time = "2026-06-29T13:05:07.118Z" }, - { url = "https://files.pythonhosted.org/packages/1a/07/421f1d5b65493a76e16027b848aba6a7d28073ae75944fa4289cc914d39f/jiter-0.16.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:96e38eea538c8ddf853a35727c7be0741c76c13f04148ac5c116222f50ece3b3", size = 304658, upload-time = "2026-06-29T13:05:08.708Z" }, - { url = "https://files.pythonhosted.org/packages/0a/db/bba1155f01a01c3c37a89425d571da751bbedf5c54247b831a04cb971798/jiter-0.16.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d284fb8d94d5855d60c44fefcab4bf966f1da6fada73992b01f6f0c9bc0c6702", size = 339719, upload-time = "2026-06-29T13:05:10.41Z" }, - { url = "https://files.pythonhosted.org/packages/78/f7/18a1afcd64f35314b68c1f23afcd9994d0bc13e65cc77517afff4e83986d/jiter-0.16.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64d613743df53199b1aa256a7d328340da6d7078aac7705a7db9d7a791e9cfd2", size = 343885, upload-time = "2026-06-29T13:05:12.087Z" }, -] - -[[package]] -name = "neo4j" -version = "6.2.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pytz" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ce/f4/aaa4ac19adae4b01bc742b63afd2672a77e7351566f02721e713e4b863ee/neo4j-6.2.0.tar.gz", hash = "sha256:e1e246b65b572bd8ea97f9e0e721b7d40a5ce53e53d0007c29aef63e4f9124d9", size = 241459, upload-time = "2026-05-04T07:35:41.428Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/cf/1c3795866cefaac6e648d4e98c373cafd97810f6e317c307371007ab4abb/neo4j-6.2.0-py3-none-any.whl", hash = "sha256:b87abdd13a5cc2e3bd51026926c2f20ac38fa3febe98c340520dce19e97388d0", size = 327824, upload-time = "2026-05-04T07:35:39.604Z" }, -] - -[[package]] -name = "numpy" -version = "2.4.6" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.12' and sys_platform == 'win32'", - "python_full_version < '3.12' and sys_platform == 'emscripten'", - "python_full_version < '3.12' and sys_platform != 'emscripten' and sys_platform != 'win32'", -] -sdist = { url = "https://files.pythonhosted.org/packages/d0/ad/fed0499ce6a338d2a03ebae59cd15093910c8875328855781952abf6c2fe/numpy-2.4.6.tar.gz", hash = "sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda", size = 20735807, upload-time = "2026-05-18T23:37:14.07Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/49/ec46835a70be8fa6446c495126ac84fdb28cb2558e1620ffb87a10c8b64c/numpy-2.4.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4", size = 16969194, upload-time = "2026-05-18T23:33:13.503Z" }, - { url = "https://files.pythonhosted.org/packages/0e/0d/f5957185c0ee2f3e12f78715aa9e3b353fd83633316c8532b38faa37e3f6/numpy-2.4.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d", size = 14964111, upload-time = "2026-05-18T23:33:17.795Z" }, - { url = "https://files.pythonhosted.org/packages/ad/40/40a40ee0ddf7ceb782c49af278894b686e586d65d8c1889c8b5da01a3d7d/numpy-2.4.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8", size = 5469159, upload-time = "2026-05-18T23:33:20.654Z" }, - { url = "https://files.pythonhosted.org/packages/63/13/f9a8046535cb21deae82f8d03de9617e08882d274fad2539630761888228/numpy-2.4.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538", size = 6798936, upload-time = "2026-05-18T23:33:22.987Z" }, - { url = "https://files.pythonhosted.org/packages/33/a8/6fa8c1a345a8c85dbb21932c447bee07c30a2c2a3f31e369c0a84b300147/numpy-2.4.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47", size = 15966692, upload-time = "2026-05-18T23:33:26.62Z" }, - { url = "https://files.pythonhosted.org/packages/02/03/74fe2a4cb3817d94d86402f2506554130a2f01414e299b5a843e5a8a957f/numpy-2.4.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93", size = 16918164, upload-time = "2026-05-18T23:33:29.955Z" }, - { url = "https://files.pythonhosted.org/packages/c5/80/3615be3313f7e7696609bc194b9f0101da809df79e859bdb84e0cd043f46/numpy-2.4.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8", size = 17322877, upload-time = "2026-05-18T23:33:34.724Z" }, - { url = "https://files.pythonhosted.org/packages/ca/ac/a691e0fe2675e370d0e08ff905adc49a1c8830e8cae03efe4477e92cd55d/numpy-2.4.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6", size = 18651487, upload-time = "2026-05-18T23:33:38.217Z" }, - { url = "https://files.pythonhosted.org/packages/15/a7/9bc1cd626d7bf6869bfedf27b91b6ab5dd607758bf8e959d6fa80c6a59cb/numpy-2.4.6-cp311-cp311-win32.whl", hash = "sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8", size = 6233945, upload-time = "2026-05-18T23:33:41.331Z" }, - { url = "https://files.pythonhosted.org/packages/c5/31/7fc6239c12bce7e931463251cca4426c465e1876ba3cc785402ef4dd8f4e/numpy-2.4.6-cp311-cp311-win_amd64.whl", hash = "sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147", size = 12608406, upload-time = "2026-05-18T23:33:44.131Z" }, - { url = "https://files.pythonhosted.org/packages/27/83/140f85a466595a16382996a1bf06b2b54bcd597488921b0c9daaeeda72af/numpy-2.4.6-cp311-cp311-win_arm64.whl", hash = "sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577", size = 10479528, upload-time = "2026-05-18T23:33:50.725Z" }, - { url = "https://files.pythonhosted.org/packages/95/2a/3d7b5ac8aac24feaf9ad7ed58f45b0bbc06d37e4338ae84c9f2298b570f9/numpy-2.4.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1", size = 16689119, upload-time = "2026-05-18T23:33:54.065Z" }, - { url = "https://files.pythonhosted.org/packages/ea/12/92c4c131527599e8288d6918e888d88726f84d805d784b771f32408aeaef/numpy-2.4.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb", size = 14699246, upload-time = "2026-05-18T23:33:57.621Z" }, - { url = "https://files.pythonhosted.org/packages/ad/fe/c0a6b7b2ca128a8fb228575147073b660656734b8ebe4d76c8fd748dcc79/numpy-2.4.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41", size = 5204410, upload-time = "2026-05-18T23:34:00.302Z" }, - { url = "https://files.pythonhosted.org/packages/f3/d4/9770d14ba719432bb90a421bfd443872ed0f70f7264b64bec12ea363d5fd/numpy-2.4.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698", size = 6551240, upload-time = "2026-05-18T23:34:02.852Z" }, - { url = "https://files.pythonhosted.org/packages/c9/c6/50a46a6205feba2343f1d6d17438107c5dc491ed1c736e6ea68689fd906b/numpy-2.4.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f", size = 15671012, upload-time = "2026-05-18T23:34:05.485Z" }, - { url = "https://files.pythonhosted.org/packages/99/60/14115e6364fa676c5397c2ad3004e527e9aa487abf5d0706ec81bbd08529/numpy-2.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853", size = 16645538, upload-time = "2026-05-18T23:34:09.265Z" }, - { url = "https://files.pythonhosted.org/packages/ae/c5/693cbe59e57db94d2231fa519ca3978dc9e19da5a8f088588f5c6e947ff2/numpy-2.4.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a", size = 17020706, upload-time = "2026-05-18T23:34:13.053Z" }, - { url = "https://files.pythonhosted.org/packages/ef/fc/85b7c4eff9b4966ade25c2273cf7e7012e92366c032058653934b37de044/numpy-2.4.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2", size = 18368541, upload-time = "2026-05-18T23:34:17.024Z" }, - { url = "https://files.pythonhosted.org/packages/f6/81/e1b27545deedce7f4a0b348618c6b62d74e36a4dc9ccd42f3eb2f85eee32/numpy-2.4.6-cp312-cp312-win32.whl", hash = "sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45", size = 5962825, upload-time = "2026-05-18T23:34:20.3Z" }, - { url = "https://files.pythonhosted.org/packages/ab/ca/feab00bd44aa5fe1ad2c18f08b4d3bb92e26484b0b1d1443897809ed528c/numpy-2.4.6-cp312-cp312-win_amd64.whl", hash = "sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751", size = 12321687, upload-time = "2026-05-18T23:34:23.095Z" }, - { url = "https://files.pythonhosted.org/packages/63/cf/5a6d34850a39d1093558564f77ee8e8e0bee5061151b8f05a55711001ec7/numpy-2.4.6-cp312-cp312-win_arm64.whl", hash = "sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8", size = 10221482, upload-time = "2026-05-18T23:34:25.876Z" }, - { url = "https://files.pythonhosted.org/packages/fb/82/bdab26d7438c6791ca31b7c024ca37c1eab8b726ba236129005cd4a06e45/numpy-2.4.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0", size = 16684648, upload-time = "2026-05-18T23:34:29.41Z" }, - { url = "https://files.pythonhosted.org/packages/1b/30/a80189bcc7f5e4258b3fbc3968d909d1756f54d023299ecc39ad6fdb9ef8/numpy-2.4.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb", size = 14693902, upload-time = "2026-05-18T23:34:33.013Z" }, - { url = "https://files.pythonhosted.org/packages/97/12/70b5d0d7c15e1ebb8a6a84a8caa1d19e181d84fb58bb6d70aca29099dec1/numpy-2.4.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f", size = 5198992, upload-time = "2026-05-18T23:34:36.132Z" }, - { url = "https://files.pythonhosted.org/packages/ba/8c/ebd2a8f8a83541f8d38cc5667e8c2b69cecfd30da6e45693e8158857d44b/numpy-2.4.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3", size = 6546944, upload-time = "2026-05-18T23:34:38.484Z" }, - { url = "https://files.pythonhosted.org/packages/bb/c5/7b863a97a91671a0338f4253bd3b5a3d3852f0692dae91711c9f4a10e787/numpy-2.4.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b", size = 15669392, upload-time = "2026-05-18T23:34:41.257Z" }, - { url = "https://files.pythonhosted.org/packages/a5/9d/3584b9984ca4c047aea75214ce1a4c4c73d849bd71b604264b7f5653f8a8/numpy-2.4.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089", size = 16633220, upload-time = "2026-05-18T23:34:45.075Z" }, - { url = "https://files.pythonhosted.org/packages/05/ae/7c67fba23bd98caec7c99261f3a16072ade14813486b0282cb29846de832/numpy-2.4.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a", size = 17020800, upload-time = "2026-05-18T23:34:49.065Z" }, - { url = "https://files.pythonhosted.org/packages/d9/5d/3b6725cb31d983c5e66916f5d36f6d7e5521129e4c4404d64f918292a5b6/numpy-2.4.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605", size = 18357600, upload-time = "2026-05-18T23:34:52.709Z" }, - { url = "https://files.pythonhosted.org/packages/f7/da/2ccc6c2fe8898dee01d90c75c5f5f914a23daf99e3e0f59516a08760c8b5/numpy-2.4.6-cp313-cp313-win32.whl", hash = "sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91", size = 5961134, upload-time = "2026-05-18T23:34:55.618Z" }, - { url = "https://files.pythonhosted.org/packages/b5/cd/9cc4dc876fb065d5c220aae4d5e14826b2715331bb7618ce1fb07a679d99/numpy-2.4.6-cp313-cp313-win_amd64.whl", hash = "sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359", size = 12318598, upload-time = "2026-05-18T23:34:58.928Z" }, - { url = "https://files.pythonhosted.org/packages/39/1e/c0bcba1f8694116485fe28fd1be698c278fcda4141c5b0e53a2aed8b12a8/numpy-2.4.6-cp313-cp313-win_arm64.whl", hash = "sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778", size = 10222272, upload-time = "2026-05-18T23:35:02.167Z" }, - { url = "https://files.pythonhosted.org/packages/63/6d/cc5619247c8f4204e507f5883528372e4ac4bb189e579fb859a12e480b1f/numpy-2.4.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1", size = 14821197, upload-time = "2026-05-18T23:35:05.468Z" }, - { url = "https://files.pythonhosted.org/packages/00/58/f1c39161c87d9e9bed660f1ed4bafc0e403d5ec9650b6dd77aead07d489b/numpy-2.4.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe", size = 5326287, upload-time = "2026-05-18T23:35:08.693Z" }, - { url = "https://files.pythonhosted.org/packages/af/57/3917ab0fd97f271a8694513581b8a36c655f111c446852c302f04ccdb6fc/numpy-2.4.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997", size = 6646763, upload-time = "2026-05-18T23:35:11.459Z" }, - { url = "https://files.pythonhosted.org/packages/eb/0f/037e64c494b67581ae18193d770adef354c41f3f2c8ebf865602d949bf8f/numpy-2.4.6-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20", size = 15728070, upload-time = "2026-05-18T23:35:14.79Z" }, - { url = "https://files.pythonhosted.org/packages/21/a6/5d2bae9c9542eb4df16dc9c46dc79c186e9bad53805dfa5399a6023c6db0/numpy-2.4.6-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d", size = 16681752, upload-time = "2026-05-18T23:35:18.836Z" }, - { url = "https://files.pythonhosted.org/packages/92/14/23d1dfb410ae362cd59ce53e936b1513d545eb40db3949ced632e19a459e/numpy-2.4.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67", size = 17086024, upload-time = "2026-05-18T23:35:22.52Z" }, - { url = "https://files.pythonhosted.org/packages/4b/6e/23595a2c642cdf3bc567877064bdd7f91c8b0038a4453cf2daf7248eafe9/numpy-2.4.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd", size = 18403398, upload-time = "2026-05-18T23:35:26.398Z" }, - { url = "https://files.pythonhosted.org/packages/8a/90/0ac3bc947217e66dec77e7cbc6a1979d1af70b6461b82f620d3bccd5e4c8/numpy-2.4.6-cp313-cp313t-win32.whl", hash = "sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab", size = 6084971, upload-time = "2026-05-18T23:35:29.387Z" }, - { url = "https://files.pythonhosted.org/packages/77/71/5673e351671a1d2bd6063b91b44f70c0affea7d1516fa7a6572941ba4aa1/numpy-2.4.6-cp313-cp313t-win_amd64.whl", hash = "sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75", size = 12458532, upload-time = "2026-05-18T23:35:32.175Z" }, - { url = "https://files.pythonhosted.org/packages/3f/88/19d3503c5046e688f049274b27a3ef3d771152fa80d3ba3d01a3dff61abe/numpy-2.4.6-cp313-cp313t-win_arm64.whl", hash = "sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd", size = 10291881, upload-time = "2026-05-18T23:35:35.465Z" }, - { url = "https://files.pythonhosted.org/packages/f8/91/3ab2044d05fd16d343c5ac2e69b127f1b2854040dd20b193257c78028bd3/numpy-2.4.6-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079", size = 16683458, upload-time = "2026-05-18T23:35:38.353Z" }, - { url = "https://files.pythonhosted.org/packages/8e/62/764ce66fa4147ae6d73071a3abf804ffe606f174618697c571acdf26a7c9/numpy-2.4.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7", size = 14704559, upload-time = "2026-05-18T23:35:42.14Z" }, - { url = "https://files.pythonhosted.org/packages/60/61/23f27c172f022e04025b7dc2367f4d63c1a398120607ec896228649a6f48/numpy-2.4.6-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5", size = 5209716, upload-time = "2026-05-18T23:35:45.377Z" }, - { url = "https://files.pythonhosted.org/packages/03/71/21cf70dc6ea3e3acb95fc53a265b2fc248b981f0194ceb5b475271b8809d/numpy-2.4.6-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096", size = 6543947, upload-time = "2026-05-18T23:35:47.926Z" }, - { url = "https://files.pythonhosted.org/packages/d5/91/64288395ee1799bd2e0b04a305dce9666da90c961e1f3fe982a05ee1c036/numpy-2.4.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b", size = 15685197, upload-time = "2026-05-18T23:35:50.863Z" }, - { url = "https://files.pythonhosted.org/packages/f3/eb/ebffaa97dc55502df69584a8f0dcf07f69a3e0b3e2323670a2722db9aa39/numpy-2.4.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8", size = 16638245, upload-time = "2026-05-18T23:35:54.752Z" }, - { url = "https://files.pythonhosted.org/packages/b8/0b/54f9da33128d7e350fab89c7455902eeae70349ee52bddb448dc4a576f45/numpy-2.4.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402", size = 17036587, upload-time = "2026-05-18T23:35:58.355Z" }, - { url = "https://files.pythonhosted.org/packages/b6/f0/fdebc1052db1cc37c64beb22072d67cd6d1c71adca1299f53dec2b5e20d3/numpy-2.4.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb", size = 18363226, upload-time = "2026-05-18T23:36:02.845Z" }, - { url = "https://files.pythonhosted.org/packages/aa/b4/298628d98c72b57e57f7165ae6a481a1deaf6f3c28262a6e4c739c275930/numpy-2.4.6-cp314-cp314-win32.whl", hash = "sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1", size = 6010196, upload-time = "2026-05-18T23:36:05.92Z" }, - { url = "https://files.pythonhosted.org/packages/df/ac/46de6dda46478f7942f839e094970be2d4a861e005c4b3bf07c92e291a09/numpy-2.4.6-cp314-cp314-win_amd64.whl", hash = "sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261", size = 12450334, upload-time = "2026-05-18T23:36:09.107Z" }, - { url = "https://files.pythonhosted.org/packages/78/92/b8b798ac784102c0da830d2257d59358e3d3d90d1e2b3f2575dad976c5cf/numpy-2.4.6-cp314-cp314-win_arm64.whl", hash = "sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6", size = 10495678, upload-time = "2026-05-18T23:36:12.766Z" }, - { url = "https://files.pythonhosted.org/packages/30/34/ec28d1aa8115971537c01469ab2011ee96827930f0a124de1000cc2a7ed7/numpy-2.4.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a", size = 14823672, upload-time = "2026-05-18T23:36:16.473Z" }, - { url = "https://files.pythonhosted.org/packages/16/bd/f6d1fede4e54e8042a7ff97bb495510f3c220f94bcd9e8b228e87c92cc0d/numpy-2.4.6-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e", size = 5328731, upload-time = "2026-05-18T23:36:19.767Z" }, - { url = "https://files.pythonhosted.org/packages/f4/f0/e105b9e2fd728a9910103884decd6951d9dd73896b914a98d9a231de02ee/numpy-2.4.6-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e", size = 6649805, upload-time = "2026-05-18T23:36:22.266Z" }, - { url = "https://files.pythonhosted.org/packages/82/dd/1206a7ca6ab15e3f02069707ca96222e202af681bb73756da7527f3cb837/numpy-2.4.6-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43", size = 15730496, upload-time = "2026-05-18T23:36:25.713Z" }, - { url = "https://files.pythonhosted.org/packages/51/e7/38d3ea825dcab85a591734decb2f6c67caa7c8367d374df1a1c3842f9b07/numpy-2.4.6-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e", size = 16679616, upload-time = "2026-05-18T23:36:29.652Z" }, - { url = "https://files.pythonhosted.org/packages/93/b7/caabfdf53edf663e0b4eb74d7d405d83baef09eb5e83bcd32d601d72b93e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895", size = 17085145, upload-time = "2026-05-18T23:36:33.449Z" }, - { url = "https://files.pythonhosted.org/packages/f9/45/68d7c33a6bcf3e5aa3bdbd57a367e6f615286dfd6482f97e8ffeb734306e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4", size = 18403813, upload-time = "2026-05-18T23:36:37.369Z" }, - { url = "https://files.pythonhosted.org/packages/9c/50/0753655aa844c99cd9e018aacf76f130f1bd81d881bb74bc0aef5d73a8ba/numpy-2.4.6-cp314-cp314t-win32.whl", hash = "sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063", size = 6156982, upload-time = "2026-05-18T23:36:40.817Z" }, - { url = "https://files.pythonhosted.org/packages/b2/d4/7c67becf668f973cb490cec3e98dfd799d866f9c989a54d355672cfa0db6/numpy-2.4.6-cp314-cp314t-win_amd64.whl", hash = "sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627", size = 12638908, upload-time = "2026-05-18T23:36:43.996Z" }, - { url = "https://files.pythonhosted.org/packages/43/bb/e1c71a4295b1b1d1393d50dbb4f2a36283c6859d9d3892e84f00ec5a91d5/numpy-2.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66", size = 10565867, upload-time = "2026-05-18T23:36:47.114Z" }, - { url = "https://files.pythonhosted.org/packages/de/12/b422cc84439adc0d00de605bf4a308890ae5c26f2c71fbd73e5d08fbb0dd/numpy-2.4.6-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662", size = 16847511, upload-time = "2026-05-18T23:36:50.673Z" }, - { url = "https://files.pythonhosted.org/packages/44/53/f481bef68011740f8849418d82db07230e825013f31f4eef5ba5b805316a/numpy-2.4.6-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7", size = 14889064, upload-time = "2026-05-18T23:36:53.879Z" }, - { url = "https://files.pythonhosted.org/packages/7f/57/42ed575c10ced8af951d426bc4e1f8aff16fd851db33f067036215a7f860/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f", size = 5394157, upload-time = "2026-05-18T23:36:57.194Z" }, - { url = "https://files.pythonhosted.org/packages/6a/ef/f66cc724fcc36c1e364c67f51ae9146090b8b584f27d58b97fdae3edd737/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c", size = 6708728, upload-time = "2026-05-18T23:36:59.575Z" }, - { url = "https://files.pythonhosted.org/packages/1a/9c/c531f2293b91265d8b48e9b329f54fdd7ffae73cb4134ea10cca4237e9cc/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0", size = 15798374, upload-time = "2026-05-18T23:37:02.674Z" }, - { url = "https://files.pythonhosted.org/packages/1a/b0/413077f6b1153ed3cba361401c6783bbad6114804a000cc22eb71c13e190/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02", size = 16747286, upload-time = "2026-05-18T23:37:06.327Z" }, - { url = "https://files.pythonhosted.org/packages/15/ce/e5ec180bc41812edcd8daeb8639d205622c0e8c02259d8ab25a0201b3c2a/numpy-2.4.6-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73", size = 12504263, upload-time = "2026-05-18T23:37:09.715Z" }, -] - -[[package]] -name = "numpy" -version = "2.5.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", -] -sdist = { url = "https://files.pythonhosted.org/packages/22/fd/89965aa4ac08c74998539fcbf24fa3540f3e15237fbeb6bcf9c908f4aade/numpy-2.5.1.tar.gz", hash = "sha256:a48a113e6afea91f5608793bafa7ef2ad481fefbda87ec5069f483de61cb9fa3", size = 20755553, upload-time = "2026-07-04T17:08:00.933Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/62/7b/14687aa674250e5e546f616f486b0d56d3631cd5b2415739141ce40bdcea/numpy-2.5.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2c889b56fe48b1018f764b0eec8df59ab654e9148aa91faa12596043500de277", size = 16801574, upload-time = "2026-07-04T17:06:12.423Z" }, - { url = "https://files.pythonhosted.org/packages/e1/19/cc5bb2a3f2913d27d6dbb2c78d25921fabaedc6741d4a5a615a11f3c5bf3/numpy-2.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ab451b59c5643c570974c43aef780703ef1d3b4965d2be07afd530615a9358d1", size = 11772250, upload-time = "2026-07-04T17:06:15.726Z" }, - { url = "https://files.pythonhosted.org/packages/42/77/fdf34a71dd30f54979b18603bee915e0aaf825b07afe79acd60b04b691e2/numpy-2.5.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:78798bd5b9ad744056af8efa90e3b9ddaa53272a0848a483084a1cc0a13b2dc0", size = 5331516, upload-time = "2026-07-04T17:06:17.913Z" }, - { url = "https://files.pythonhosted.org/packages/ce/e2/eb7efa015b4cce41e2517bf182a7fce0d7d5b9d9ed76a29bfa0f4fe4505c/numpy-2.5.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:2ae0ca40bcb22d6ba59c1dfd5446f49940b0f2d821fde133f10dda11f816b84e", size = 6664863, upload-time = "2026-07-04T17:06:20.02Z" }, - { url = "https://files.pythonhosted.org/packages/a9/4b/a2b32dd94ee9ffbeecb28152240042a3949db33b1c834d44090b80e1b3b8/numpy-2.5.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:61ac47e772e6b8ea489e1d2f441a34c5c3ac17327e7ce294cbdf535795ad4e75", size = 15167977, upload-time = "2026-07-04T17:06:21.621Z" }, - { url = "https://files.pythonhosted.org/packages/b8/a9/6e73d68500f80773f65f0654ea932019d6694329a0eb0ed0533de38df376/numpy-2.5.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:59fda5e192b570217ec2580c96f00e9a7e12ef6866a900eb089b62c1a32545ca", size = 16672469, upload-time = "2026-07-04T17:06:24.064Z" }, - { url = "https://files.pythonhosted.org/packages/24/7d/ad3e59015135f5261c95fd4cafeff159c955febd83a99a1d9250c4233815/numpy-2.5.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f7119ebff1a9829e9f431a4f9d28e703023bb6b9fe7c8f724467dbfc27c94ab3", size = 16527531, upload-time = "2026-07-04T17:06:26.69Z" }, - { url = "https://files.pythonhosted.org/packages/83/d0/a39b2fbcde9cb17a1dac678f254b33a6336298af9df338824c685425d5e8/numpy-2.5.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e824c2acf8862052246be5a44c15da1777940c60d010dd2aab897824d9c430f9", size = 18431940, upload-time = "2026-07-04T17:06:29.521Z" }, - { url = "https://files.pythonhosted.org/packages/04/12/cff070947791c1ed425ff76413189adbdc2fbe215eba7ce7fa454a03c7f8/numpy-2.5.1-cp312-cp312-win32.whl", hash = "sha256:08d60c810432eb83360958dea0999ac4cfb94531ea8efcbf0b7f277c2068aeb2", size = 6066764, upload-time = "2026-07-04T17:06:32.571Z" }, - { url = "https://files.pythonhosted.org/packages/65/66/53f31807a48a750f9d748da273bc3fcedd12b27ff1f3e373bfec55ef2dc0/numpy-2.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:f7d60026c0bdb1380e83bfa7a0419c4577ee4b9a08880afcb6dadeb74c649fa2", size = 12430966, upload-time = "2026-07-04T17:06:34.926Z" }, - { url = "https://files.pythonhosted.org/packages/2b/2a/d1a88066b1c14186f5d3c0d18c94f17b064511982bab0578d49ee9d43c29/numpy-2.5.1-cp312-cp312-win_arm64.whl", hash = "sha256:17a25e09640602e10bc8de0e6fa2b3fd68eedd84ba6d7842dc8f32f9ab87bd0b", size = 10350488, upload-time = "2026-07-04T17:06:37.785Z" }, - { url = "https://files.pythonhosted.org/packages/eb/07/ec2a3f0c91761581d4b7104a740791800025983f9a4dc4e73f91a99aeac4/numpy-2.5.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0bfebd8695f9863592fe744be833a258120b14a9f39da255e8aa8fade2c0ddd1", size = 16796419, upload-time = "2026-07-04T17:06:40.37Z" }, - { url = "https://files.pythonhosted.org/packages/ab/ab/ddb499fc4f8780354395face5b65c7fd107bcd6e1d667a5f07d046956f6f/numpy-2.5.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:30b44a6b53a7ae63c54c089a8726e5563ed302716c5b7ccc85afade40b0e7ff6", size = 11765832, upload-time = "2026-07-04T17:06:42.768Z" }, - { url = "https://files.pythonhosted.org/packages/88/b3/3c28c558a09fc72100c646dac6d2fce8e834c471b0edca01a29996706117/numpy-2.5.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:6165343f81b56ef8f514f396989e529b61d9dc709b99421b07e9f3e698e2287d", size = 5325143, upload-time = "2026-07-04T17:06:45.466Z" }, - { url = "https://files.pythonhosted.org/packages/5e/0e/ce19b985bb15c596f4f05954e76cccc77c845083b3b8f938a6c68e523128/numpy-2.5.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4939237038ada79308dda3204ac6462df056b5672b2e25db1149cf873668b3e1", size = 6659749, upload-time = "2026-07-04T17:06:47.288Z" }, - { url = "https://files.pythonhosted.org/packages/2e/20/1ee6614d64332a1bba6411f38e68cb79eec1b2459e20a623777c5c5492a2/numpy-2.5.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c6759f538fb912fc46de0a6b1758ccf7b57bc7c7ebebc23974fdac3de8db0cd", size = 15164716, upload-time = "2026-07-04T17:06:49.494Z" }, - { url = "https://files.pythonhosted.org/packages/ed/a7/2bcd3fdbb87804755c35b729bf8709d62025c5f4cfd7d5b2415997097515/numpy-2.5.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9726558e8db4a5bf7929a70ae50f63abda4daf0efe810e3bfbab95976f75fc1a", size = 16661440, upload-time = "2026-07-04T17:06:52.061Z" }, - { url = "https://files.pythonhosted.org/packages/fc/d7/a41e3310c886fe457d36e670bbf24fae411aca8a7b6ad92a32afd924077c/numpy-2.5.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3935f3b419b244a02732676fa5317a9193cc596a4c0646db07e5b421229ac9f7", size = 16526305, upload-time = "2026-07-04T17:06:54.605Z" }, - { url = "https://files.pythonhosted.org/packages/53/75/4333a9a707c1edd3a4e1a0c58eca52c0f31e55089fa80db02b5565b24df7/numpy-2.5.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dc932a65ded7ce9013d120845a2514dcccb1a67bfc8deb8d37633762951904a6", size = 18423008, upload-time = "2026-07-04T17:06:57.54Z" }, - { url = "https://files.pythonhosted.org/packages/ee/90/e314a32b1c11a2ffe818ddad3a57b50b4b6e1b6c487192eb50cdef0415d0/numpy-2.5.1-cp313-cp313-win32.whl", hash = "sha256:4b4ff1608417eb7a59da7b967bbb798cacfe071d2caf526a24281cd562072ed9", size = 6063885, upload-time = "2026-07-04T17:07:00.14Z" }, - { url = "https://files.pythonhosted.org/packages/10/70/800b3fca480af32df9e8ea9f3d4a0c8feb4b32d7f195d174eabbda4829ad/numpy-2.5.1-cp313-cp313-win_amd64.whl", hash = "sha256:6c3fe51bc6a16453d452997053454f309e8e0ed7b42d6b361ce4ac8c32913d74", size = 12425674, upload-time = "2026-07-04T17:07:02.387Z" }, - { url = "https://files.pythonhosted.org/packages/8b/0b/196350c122f50f6ca56846f2d71efd5e0d24b7b2e07355e019b2e2c7a11e/numpy-2.5.1-cp313-cp313-win_arm64.whl", hash = "sha256:f7feb014281029e628ba2d5a007407443b06e418b6fe451d1e2adcbc8eba0107", size = 10350256, upload-time = "2026-07-04T17:07:04.878Z" }, - { url = "https://files.pythonhosted.org/packages/db/f4/731b6085a83faf6ca843394cbd5e217280c214399f7e8b21b9f552af0ae2/numpy-2.5.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:7c786fe9a5bbe360022e584c5a34cf6b54265c71bd7ec8ac3d8fec38968071f8", size = 16795063, upload-time = "2026-07-04T17:07:07.374Z" }, - { url = "https://files.pythonhosted.org/packages/bf/64/0e215f2048dd11a55bb989ed41b3585ef57452404e638d703a211a3e4157/numpy-2.5.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:32985c896d897419ef8da6917872d80b78ad0ea26d85b23245c7366ffde76d75", size = 11776652, upload-time = "2026-07-04T17:07:09.907Z" }, - { url = "https://files.pythonhosted.org/packages/b5/59/2b844c7a6e9deff69b404a66221e1542937734f65d5e6e39411876053862/numpy-2.5.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:efd736408cc97c79b9e6917338dfc8f06013b2274f992e96b1d9a81a71e2a2c2", size = 5335944, upload-time = "2026-07-04T17:07:12.227Z" }, - { url = "https://files.pythonhosted.org/packages/86/51/9bf7cb2cabcebc9e017e4ec7e6322b378317a542c08b4cb68479c1efc716/numpy-2.5.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:ab84dc6b074fa881cae55bea94cc4f68e285181ba7f32497bf7dee6b1496165b", size = 6656266, upload-time = "2026-07-04T17:07:14.368Z" }, - { url = "https://files.pythonhosted.org/packages/83/3e/fb7615b211b82a32f44d5180a6d421b61f84d4fadd578b48ba4ac34e189f/numpy-2.5.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:caf3e317d33d60c37986b452613f4ab51246d0691350c03d0cb4a898627f4a95", size = 15179720, upload-time = "2026-07-04T17:07:16.272Z" }, - { url = "https://files.pythonhosted.org/packages/41/5f/0f992cb24560673496c5d68de61913b57166ce530ffda07c1f280e0cc464/numpy-2.5.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:54ad769f17bc2d833b620851989f62054fb9ab93c969d9e1dc3c8e3d56beea21", size = 16664835, upload-time = "2026-07-04T17:07:19.021Z" }, - { url = "https://files.pythonhosted.org/packages/a2/2f/97d6475ee91afe2587797d09446f9d3e475ad4cb681662d824809327b75a/numpy-2.5.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c12afb53450fa976d4c681c50a7423729a4c51c0465ed9f32b8a9cabbc472373", size = 16539135, upload-time = "2026-07-04T17:07:22.015Z" }, - { url = "https://files.pythonhosted.org/packages/c4/5b/4db81e4ba0be7e2776b1de68c82aa862c7f8ec27e1b4927d4ae075e20678/numpy-2.5.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e8c11c405efc5ff6816d5983c96cdfa215bab3428961243af3ff59b228490438", size = 18426684, upload-time = "2026-07-04T17:07:24.941Z" }, - { url = "https://files.pythonhosted.org/packages/1f/64/c0ba2d90724d450279a7df8f32057241070250a26a7e2b5337d77347f481/numpy-2.5.1-cp314-cp314-win32.whl", hash = "sha256:f2479a47f8d5932d1718168a681ad6e536a9df484c83cfcf9de365e164537ace", size = 6116103, upload-time = "2026-07-04T17:07:27.622Z" }, - { url = "https://files.pythonhosted.org/packages/c1/1a/837f9ed7405adcd7a40538792eb169eddd8fa5630c16a1ef49dae71a30f4/numpy-2.5.1-cp314-cp314-win_amd64.whl", hash = "sha256:24d0eb82c0541d3415a33425db64ae439dffccd7b4dbcb30e7c35120205c506a", size = 12562177, upload-time = "2026-07-04T17:07:29.887Z" }, - { url = "https://files.pythonhosted.org/packages/22/ed/49707938b6dd0a78a9178dd93227dc89e4c11af47f5c798d70366e8d0483/numpy-2.5.1-cp314-cp314-win_arm64.whl", hash = "sha256:5a4c988b38d261deeeaad9954e3deb091ad905c94e8bb6708654ef1d97f286b0", size = 10627739, upload-time = "2026-07-04T17:07:32.568Z" }, - { url = "https://files.pythonhosted.org/packages/a6/c7/bb4b882cfe7f299cbc8b66e42e7dd78cf9d14e40f9469fc5e3db7e15b3bd/numpy-2.5.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a33276be12fa045805f477f22482088b66bb758ffbe89a9d21457de863a32e22", size = 11894709, upload-time = "2026-07-04T17:07:34.941Z" }, - { url = "https://files.pythonhosted.org/packages/40/3f/5af7f4a7f6224aef48017aa82bb6174c7a659d724be0c75017b7e64a55b4/numpy-2.5.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:f089d7b00756190aacf1f5d34bdf38c3c430ac82b4f868f8cede73380460fce7", size = 5453810, upload-time = "2026-07-04T17:07:37.495Z" }, - { url = "https://files.pythonhosted.org/packages/20/c9/3474309bc94d634d3f9c3eddf03250ecb8c22cd948ef16fef69a77cc5d7b/numpy-2.5.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:09e9bfd8d2cf479c7d174804fb3811c53a8e9f20a37444008606b57d6b7a826d", size = 6761189, upload-time = "2026-07-04T17:07:39.563Z" }, - { url = "https://files.pythonhosted.org/packages/90/8a/558ae39fdd55d7e7f7fef9a84a6e964ac6b23edbd2a07e52bb084500507d/numpy-2.5.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e68d8dd1e7eba712948f2053a29ec86917bc70ba1358df869d9f06649ef9cf09", size = 15225039, upload-time = "2026-07-04T17:07:41.682Z" }, - { url = "https://files.pythonhosted.org/packages/63/27/ca7392b2d030277bdf0273e7d23255b3ee57d57a7c170a6f4fb3981e1e5d/numpy-2.5.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:99d5095fa265a0c4152e7bb12759e14381ef5496152f1ce58f44bdf55c44beb4", size = 16701306, upload-time = "2026-07-04T17:07:44.611Z" }, - { url = "https://files.pythonhosted.org/packages/02/42/03d53ae7996c44d4374a8262e9dc41671fd56cbb98f7d47ef85cf5da4c6b/numpy-2.5.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ab87a91b3cc3382b8956095bd8f95e00cf679bb81554339be1a2ba404a1473c1", size = 16589955, upload-time = "2026-07-04T17:07:47.694Z" }, - { url = "https://files.pythonhosted.org/packages/7b/15/6c1784ae469640e65db111e9a34b3d0f14d91e8a38b9ce34810ced370dbb/numpy-2.5.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:224ca51130ef7da85bea2191625181cb4f337f9cb64b471f10c1a12aa8b60077", size = 18464252, upload-time = "2026-07-04T17:07:50.684Z" }, - { url = "https://files.pythonhosted.org/packages/94/a8/f98e50356cf167df656c526c2dfeec2d7dde182f2a3da4b458a5938e2776/numpy-2.5.1-cp314-cp314t-win32.whl", hash = "sha256:6eab239876581b2b3c5a242281b6007bbdbcd1c7085d7709bb57c5929b11e6bf", size = 6263298, upload-time = "2026-07-04T17:07:53.445Z" }, - { url = "https://files.pythonhosted.org/packages/72/ac/96ae880cdecad0b3275d9359fcec72667b49a4863c9f12942e43679dda02/numpy-2.5.1-cp314-cp314t-win_amd64.whl", hash = "sha256:83ce9c80d5b521b0d77ddcbe5447c218d247929b6cc056ca5351342accfff0af", size = 12748623, upload-time = "2026-07-04T17:07:55.384Z" }, - { url = "https://files.pythonhosted.org/packages/a1/5a/4d2b1601df3602dba7a14f3348ba9bfe94a18adb428e693df6154c293831/numpy-2.5.1-cp314-cp314t-win_arm64.whl", hash = "sha256:5a6db61f9aaa57e369905c67d852045d3c4f7126405b29d09b19dec118e9c9cb", size = 10697674, upload-time = "2026-07-04T17:07:58.506Z" }, -] - -[[package]] -name = "openpyxl" -version = "3.1.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "et-xmlfile" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 186464, upload-time = "2024-06-28T14:03:44.161Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size = 250910, upload-time = "2024-06-28T14:03:41.161Z" }, -] - -[[package]] -name = "packaging" -version = "26.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, -] - -[[package]] -name = "pandas" -version = "3.0.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, - { name = "numpy", version = "2.5.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "python-dateutil" }, - { name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/be/4f/5f3422a2afec5ffc46308b79e53291365a93748b498ac2e58bead0197916/pandas-3.0.5.tar.gz", hash = "sha256:dca3734d6ab7c906e6730f0788b0a1dbb9f2467731f9711f77995c8e9d62d712", size = 4658219, upload-time = "2026-07-22T22:19:28.819Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/48/ef/f1fd7431d635bf20015489bf0bd69c17fff1018de773540f651455a3916b/pandas-3.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2946e77e4a53cd248cbde631a12f0e51c8324ce354c3eba4d20147c1ad6f4282", size = 10397178, upload-time = "2026-07-22T22:17:48.274Z" }, - { url = "https://files.pythonhosted.org/packages/31/b4/0eafac990a431561187694126de01f9b12559549b4d86360c0c4bd870fde/pandas-3.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:71ecc8fb7ed1a7aa4392316b5309a6347e8e7f832f38fd897846b3a1457a9298", size = 9990736, upload-time = "2026-07-22T22:17:52.388Z" }, - { url = "https://files.pythonhosted.org/packages/de/21/359880af3ea9b7cb23bea5b51e8e70ef3866c03be09da9a2787e18e330a8/pandas-3.0.5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b173f5951ff6b8b0ec7675e20dff3c97b7e7a57dfcce387c2d7c5afe87cb7899", size = 10814438, upload-time = "2026-07-22T22:17:54.708Z" }, - { url = "https://files.pythonhosted.org/packages/d1/50/d6cc4d7e508bbccf5d6027314a8312bc7ac73d0ec7f195f53838daafab40/pandas-3.0.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2c0cf1dd9b55a22d105fc46c1b489af3bd42264fcba7c66297bf47a9a1d9c78a", size = 11323634, upload-time = "2026-07-22T22:17:56.858Z" }, - { url = "https://files.pythonhosted.org/packages/70/2b/d5f0a8c90dd0ae04e64ba53b871afb796ec026b615086d382ddc2ade729b/pandas-3.0.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0fac0010c75e4efb6b99e249c183a8993ce0dc95c240f9b120a5e67c727b7928", size = 11850860, upload-time = "2026-07-22T22:17:59.1Z" }, - { url = "https://files.pythonhosted.org/packages/5c/30/183aec2e19adf778a98d29b5729a0a68f4cc4ebf9b9c3b70d0297355bcb1/pandas-3.0.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:08d24fe11a17dc33bd6e937dc9c665f9cba08fbdc9f657f405713515febe300d", size = 12411100, upload-time = "2026-07-22T22:18:01.485Z" }, - { url = "https://files.pythonhosted.org/packages/fa/9a/31f4983f191af51ab2a8f2d0c7b33dff3a84da26533f982fff02c2f9e28b/pandas-3.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:b1261758dfb6cf12c3cff8300e21cefad30e7ec709abb4c24ac7318e6a52462a", size = 9968804, upload-time = "2026-07-22T22:18:03.903Z" }, - { url = "https://files.pythonhosted.org/packages/49/97/7886c89a39045c69ad82cbceaf3343810480c8ef49a216319ce8183860a6/pandas-3.0.5-cp311-cp311-win_arm64.whl", hash = "sha256:679f4e85b30ddb1515458ab1e788d3e260eae369b1f78da7a3aa4cac8ebf4a2a", size = 9205447, upload-time = "2026-07-22T22:18:06.134Z" }, - { url = "https://files.pythonhosted.org/packages/1c/54/1dc810ea558d1320b597aa140a514f2fdf1d2ea09c38cf556f13ea712ec9/pandas-3.0.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fa290c16964d4963fbfbc358928239cf3bd755b20e988ce944877def2f44471d", size = 10411717, upload-time = "2026-07-22T22:18:08.307Z" }, - { url = "https://files.pythonhosted.org/packages/68/56/fbe81c09195924d8b7b8d4461a20458fe80a6a5ed6b24f0314da684277e1/pandas-3.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c2e26bb46934b8a2ca0c3de1d3d606fc5f6746584791b2db264d58cf370e08dc", size = 9957095, upload-time = "2026-07-22T22:18:10.6Z" }, - { url = "https://files.pythonhosted.org/packages/e0/51/fac252f4a913ed5eabf3c11b880a9e8d5a6c10f0b2129d0462212d238b4d/pandas-3.0.5-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:73fa87b08a7ef706f8aafda39ddaccf2a99047bea62d8c88a0361bcafb2237bc", size = 10485458, upload-time = "2026-07-22T22:18:12.834Z" }, - { url = "https://files.pythonhosted.org/packages/12/98/e976540c1addf70442be7842a18cf70884a964abbf69442504f4d2939989/pandas-3.0.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d373ce03ffd84010ed9839fa73672a9c8256990532e158440c0085db7d914b34", size = 10998091, upload-time = "2026-07-22T22:18:15.209Z" }, - { url = "https://files.pythonhosted.org/packages/a4/8c/1f29b5be8d3fc47dd7567eb167fabba2085879b31e0287ce7cba6d3d2ff4/pandas-3.0.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2a29c53d85ea98c5e792c59ef82ee9fbe6ca902c0d0adb6b23f45ef894cd7bf6", size = 11499501, upload-time = "2026-07-22T22:18:17.689Z" }, - { url = "https://files.pythonhosted.org/packages/9d/e2/bd9c98ad2df7b38bde002adde4cdf353519da51881634323b126c55997f9/pandas-3.0.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a5ad3b02ed6bc7d7ae9b70804b2c6aa31827489d150f8e623ce82491b82085d7", size = 12060559, upload-time = "2026-07-22T22:18:20.147Z" }, - { url = "https://files.pythonhosted.org/packages/f3/9a/ffbd852d58bd74a617fe2f8ee6a58a96982271ce41cf981eab22190b4a4b/pandas-3.0.5-cp312-cp312-pyemscripten_2024_0_wasm32.whl", hash = "sha256:b2acb4650527eec6822c3dadb2b771277b65e7dae7a267d4bccf65fd1bb3fbce", size = 7197652, upload-time = "2026-07-22T22:18:22.502Z" }, - { url = "https://files.pythonhosted.org/packages/70/b5/d2d3e9ae73362ba4229651b0ee1455cf78073a1ce585f6ff693782ce263e/pandas-3.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:80a611068e8a3ac23f7398c6c14eb46dc974e5cc9997f653e2dcfd1da74edd41", size = 9831691, upload-time = "2026-07-22T22:18:24.534Z" }, - { url = "https://files.pythonhosted.org/packages/52/51/dea1e89d6a6796b9c43f85a09b484ee03edb8a4c4842e73e200a8c11301c/pandas-3.0.5-cp312-cp312-win_arm64.whl", hash = "sha256:25ff585b972a18ef1fe9ffa3ac6544d9950508aa76832e5147640b6022821e49", size = 9105796, upload-time = "2026-07-22T22:18:27.064Z" }, - { url = "https://files.pythonhosted.org/packages/bf/09/7b95c4a0025227d6f118c4039b423412ac6a982db02864166185d812fbc7/pandas-3.0.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c1c05a767fe8e5b4fe9e1c29806829c582052eaedb9120a3da83ba3f69e24a5b", size = 10385742, upload-time = "2026-07-22T22:18:29.346Z" }, - { url = "https://files.pythonhosted.org/packages/8d/0c/dc78fd8c4da477b4b5e8ad37295af352190d21ef63a9ee1bc071753074cc/pandas-3.0.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b86765f268b56f7e665b93bce9d5df69dee7f99e595cf8fb839483ab315942a3", size = 9932067, upload-time = "2026-07-22T22:18:31.833Z" }, - { url = "https://files.pythonhosted.org/packages/3e/71/3592c055cf44df9808550f9368ceda80ff2b224d355ef73fe251dcda1802/pandas-3.0.5-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c597ecf5616b5c420372c1d4d4c00dbbfba7398bea857dcc984347e1ea48417b", size = 10466756, upload-time = "2026-07-22T22:18:34.195Z" }, - { url = "https://files.pythonhosted.org/packages/e3/70/4363150359f95b4cb4bcbb34ca23572bb5495749a621a8f3d5a1ddfd293c/pandas-3.0.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4b11c36e218331d0387cbe3a0a5f75162357a1d92d57b2b08a336ff94b19b2be", size = 10938525, upload-time = "2026-07-22T22:18:36.81Z" }, - { url = "https://files.pythonhosted.org/packages/f7/d0/317e7a0c67c0e69fa905a0161409397a7dc2d46ff611f6ca4803352c042b/pandas-3.0.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cf52e1f61d229496da17dc7ab54acdee627357e7008fd4fecba3d0ba2937fa58", size = 11489303, upload-time = "2026-07-22T22:18:39.287Z" }, - { url = "https://files.pythonhosted.org/packages/f1/8d/36dade89b49e4f9d5cbdbe863772581f98c0c6d78fc39ad4c557f6f2e17e/pandas-3.0.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:db172144bb56422bd157812f3b021eacc255451470b31e2c633c349490a1cfee", size = 11989004, upload-time = "2026-07-22T22:18:42.208Z" }, - { url = "https://files.pythonhosted.org/packages/9c/ba/18c4ec8a746e177da05a9e7a7963781d8ea195780724f854601b6ebd6b78/pandas-3.0.5-cp313-cp313-win_amd64.whl", hash = "sha256:0d298e951f23016ce4699951d044ae6418dbc91bf68cefca0f77666fcbb4e5c6", size = 9826896, upload-time = "2026-07-22T22:18:44.539Z" }, - { url = "https://files.pythonhosted.org/packages/de/ec/28a57266b753799a87b8bc79e7887ac6fd981b8c6d2978a0b7e7b6bd708c/pandas-3.0.5-cp313-cp313-win_arm64.whl", hash = "sha256:66266d3442a5e8b3c90274c2b8b230bee42dd1c286bc822cc2f9f2c7e12b883e", size = 9094790, upload-time = "2026-07-22T22:18:47.468Z" }, - { url = "https://files.pythonhosted.org/packages/51/2f/cf6aae281264f4463f0875bcbb15fd2bb6d291cc535187dad1732475e4a9/pandas-3.0.5-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2f264fc46911cc8131a7322a16199bbf8e353d27c10bb211f5bd0c814324dc36", size = 10390034, upload-time = "2026-07-22T22:18:49.818Z" }, - { url = "https://files.pythonhosted.org/packages/06/ec/5189518c7a7659c4bdcc6b1eb32c46c6f3c86b0661ffd84143d1112c7732/pandas-3.0.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:53730687fcd161883b24e10411c06d6a4c0f2275d2faf3bb2bc25deb4ba8007c", size = 9980065, upload-time = "2026-07-22T22:18:52.249Z" }, - { url = "https://files.pythonhosted.org/packages/ea/f1/598503ce8d7e3c35601e0747ba288c7864baae66380725bc12f13f884dfe/pandas-3.0.5-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:960d3ebcf249f75206899fcd2c6de53f736b7265759ced0d3e559df0b8b709b0", size = 10545532, upload-time = "2026-07-22T22:18:54.813Z" }, - { url = "https://files.pythonhosted.org/packages/fa/de/ceae2adf7034e07e9910299fe412e1819c4f0dd520700a888bcb03625448/pandas-3.0.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e94c2c5ca43bd3ca32bf64d32308887b65e5f9bfd8023ea52755107a999f93b", size = 10963120, upload-time = "2026-07-22T22:18:57.42Z" }, - { url = "https://files.pythonhosted.org/packages/66/25/86e0f4451874eb79e688deeebe3c451fec4557f8952005818d800ee8ac7e/pandas-3.0.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e819dd5f62966b481a8cb649d3299ebd886a1ea91ed5a99bf7ce77c98d18ab94", size = 11563178, upload-time = "2026-07-22T22:18:59.729Z" }, - { url = "https://files.pythonhosted.org/packages/f3/45/8643daa3b4147e433adfcccefdd0380d3aad79d86b15d8999730fe1944d5/pandas-3.0.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3c5ed2e7c06e91d340dfd091d7934f9bc82e4a36b95f647f090b9d1c9ac649da", size = 12028708, upload-time = "2026-07-22T22:19:02.164Z" }, - { url = "https://files.pythonhosted.org/packages/96/58/ad979ae617615576e8aafd569c9d4b62f1191d896e38f51d66ba06f3b89a/pandas-3.0.5-cp314-cp314-win_amd64.whl", hash = "sha256:cd8f7c6dc98527058ee6264219343f5392240a6f1bfa654fc5d79023020d0c92", size = 9951806, upload-time = "2026-07-22T22:19:04.596Z" }, - { url = "https://files.pythonhosted.org/packages/69/32/7ac03886b304049a9d2625ee88f59af760d8a93bd30ed9239bce7b9869a8/pandas-3.0.5-cp314-cp314-win_arm64.whl", hash = "sha256:5183427f5a8156d480f30333777bc978be93650a49a7c01db26adffe95b31e85", size = 9238297, upload-time = "2026-07-22T22:19:06.836Z" }, - { url = "https://files.pythonhosted.org/packages/be/ed/1d1f2ee5547d5167face2376d11c8b2a4c7bfff5a416ee7a9046891fab1e/pandas-3.0.5-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:303da736987d481074ca720ada325f8bd80c64ebc2d45ed79b29df3aaa4a26ca", size = 10849690, upload-time = "2026-07-22T22:19:09.391Z" }, - { url = "https://files.pythonhosted.org/packages/57/55/17e17152e98fbb0c4b1e562bc65387a2f20a80db0f4a86bf8d3a0e4248d4/pandas-3.0.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3b2801bbb049d0136f6c213eae02b5fca969384fc2064dd728d8620552aa49da", size = 10509945, upload-time = "2026-07-22T22:19:11.773Z" }, - { url = "https://files.pythonhosted.org/packages/88/90/817d44dbf83facf9556f33576d9af0a241981e7bb5c00606c0bcb5df8dda/pandas-3.0.5-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cce3a9d11d2b1f82c69a27ec1f4948a170e2c403c4bbfa8cca62e3fdebe2ef3a", size = 10392197, upload-time = "2026-07-22T22:19:14.024Z" }, - { url = "https://files.pythonhosted.org/packages/f1/da/889f00c0a6f5aa1545add70abbf01502dff87ab577adb855bd631c54d2f2/pandas-3.0.5-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ef01af4d8dc6cd2c8d6c7736f149574ef93fe043811eeb5e445f2647154b5040", size = 10862726, upload-time = "2026-07-22T22:19:16.351Z" }, - { url = "https://files.pythonhosted.org/packages/bc/98/f1e934fb3c98fce859c6147c6785816c7b5b9ab7821115c5d8c4de9842b9/pandas-3.0.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e2759e890db96dfcffdbd9b86c3c2cb6afaf58def482820317e06163ec1066cd", size = 11414864, upload-time = "2026-07-22T22:19:18.981Z" }, - { url = "https://files.pythonhosted.org/packages/fe/be/d448af7d657d82e1888dd8551f79c6d6fb161080b5b9752d84d910ec2319/pandas-3.0.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b58b1b39d46a5862e3fb18f50d1a201398619d16a0f9f73f57eea5583cf0e63c", size = 11925105, upload-time = "2026-07-22T22:19:21.515Z" }, - { url = "https://files.pythonhosted.org/packages/29/c1/ccb4238212c8c4f496c584f3044d94e0c030ed8e1d68999db46c91c2242f/pandas-3.0.5-cp314-cp314t-win_amd64.whl", hash = "sha256:1c10461f6eeb35d8f05b6184c65c8b9991663b66c46b1d559b682cb34ae7c6ea", size = 10387612, upload-time = "2026-07-22T22:19:24.257Z" }, - { url = "https://files.pythonhosted.org/packages/d2/cf/6a51b2c38980e04c279fd2fa908a1b0982064e860444acfca4ec2e2c8359/pandas-3.0.5-cp314-cp314t-win_arm64.whl", hash = "sha256:3c5015fd1730fbf883647e88068176c839c102cea883ba1769a6f4593bfc1f8c", size = 9509776, upload-time = "2026-07-22T22:19:26.694Z" }, -] - -[[package]] -name = "pdfminer-six" -version = "20260107" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "charset-normalizer" }, - { name = "cryptography" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/34/a4/5cec1112009f0439a5ca6afa8ace321f0ab2f48da3255b7a1c8953014670/pdfminer_six-20260107.tar.gz", hash = "sha256:96bfd431e3577a55a0efd25676968ca4ce8fd5b53f14565f85716ff363889602", size = 8512094, upload-time = "2026-01-07T13:29:12.937Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/8b/28c4eaec9d6b036a52cb44720408f26b1a143ca9bce76cc19e8f5de00ab4/pdfminer_six-20260107-py3-none-any.whl", hash = "sha256:366585ba97e80dffa8f00cebe303d2f381884d8637af4ce422f1df3ef38111a9", size = 6592252, upload-time = "2026-01-07T13:29:10.742Z" }, -] - -[[package]] -name = "pdfplumber" -version = "0.11.10" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pdfminer-six" }, - { name = "pillow" }, - { name = "pypdfium2" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/05/56/6f450312ba05a27d7713b73857c1a25100dbda04fbc1331b13fb227a607d/pdfplumber-0.11.10.tar.gz", hash = "sha256:b95b2d28c66efb0a794a83b88c6c6aea5987532a445d20a1cbcfa657022e6e57", size = 102892, upload-time = "2026-06-15T03:31:31.035Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/9a/07d658e1e7fad860f1c541ab941348125dbdab773be3a0afaf32361866c7/pdfplumber-0.11.10-py3-none-any.whl", hash = "sha256:7741ea81bf165b474b153e6789d10d18e06b6ddcf3ec84289c3ef2fed6802580", size = 60047, upload-time = "2026-06-15T03:31:29.702Z" }, -] - -[[package]] -name = "pillow" -version = "12.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1c/3d/bb7fca845737cf9d7dbde16ed1843984665ff2e0a518f5db43e77ec540b9/pillow-12.3.0.tar.gz", hash = "sha256:3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce", size = 47025035, upload-time = "2026-07-01T11:56:38.965Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/c8/0a78b0e02d7ac54bc03e5321c9220da52f0c2ea83b21f7c40e7f3169c502/pillow-12.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:00808c5e14ef63ac5161091d242999076604ff74b883423a11e5d7bbb38bf756", size = 5392415, upload-time = "2026-07-01T11:53:47.162Z" }, - { url = "https://files.pythonhosted.org/packages/b2/5b/a02d30018abd97ced9f5a6c63d28597694a00d066516b9c1c6de45859fc9/pillow-12.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37d6d0a00072fd2948eb22bce7e1475f34569d90c87c59f7a2ec59541b77f7a6", size = 4785266, upload-time = "2026-07-01T11:53:49.079Z" }, - { url = "https://files.pythonhosted.org/packages/c8/98/766667a4be768150a202836acd9fad19c06824ca86c4286d3cf6b274964e/pillow-12.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcb46e2f9feff8d06323983bd83ed00c201fdcab3d74973e7072a889b3979fcd", size = 6263814, upload-time = "2026-07-01T11:53:51.32Z" }, - { url = "https://files.pythonhosted.org/packages/3b/2d/ede717bc1144f63886c21fd349bb95860b0d1a21149ff16f2bb362b612b6/pillow-12.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23d27a3e0307ec2244cc51e7287b919aa68d097504ebe19df4e76a98a3eea5bd", size = 6934408, upload-time = "2026-07-01T11:53:53.487Z" }, - { url = "https://files.pythonhosted.org/packages/a3/48/9c58b685e69d49c31af6c8eb9012055fab7e665785165c84796e2c73ce72/pillow-12.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4f883547d4b7f0495ebe7056b0cc2aea76094e7a4abc8e933540f3271df27d9c", size = 6337160, upload-time = "2026-07-01T11:53:55.457Z" }, - { url = "https://files.pythonhosted.org/packages/ff/fa/dc2a5c0ba6df93f67c31d34b808b7ce440b40cdbf96f0b81cde1d1e6fa93/pillow-12.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:236ff70b9312fb68943c703aa842ca6a758abfa45ac187a5e7c1452e96ef72b5", size = 7045172, upload-time = "2026-07-01T11:53:57.736Z" }, - { url = "https://files.pythonhosted.org/packages/86/a5/444817a4d4c4c2417df00513086ca196f388d8f9ef40c2e4ccd1ad1af54b/pillow-12.3.0-cp311-cp311-win32.whl", hash = "sha256:10e41f0fbf1eec8cfd234b8fe17a4caac7c9d0db4c204d3c173a8f9f6ef3232b", size = 6472232, upload-time = "2026-07-01T11:53:59.767Z" }, - { url = "https://files.pythonhosted.org/packages/63/c6/4bad1b18d132a50b27e1365e1ab163616f7a5bb56d330f66f9d1d9d4f9d4/pillow-12.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8e95e1385e4998ae9694eeaa4730ba5457ff61185b3a55e2e7bea0880aef452a", size = 7233653, upload-time = "2026-07-01T11:54:02.066Z" }, - { url = "https://files.pythonhosted.org/packages/fd/16/00f91ab7760dc842f5aad55217e80fc4a7067a0604535249bc8a2d6d9870/pillow-12.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:ebaea975e03d3141d9d3a507df75c9b3ec90fa9d2ffd07567b3a978d9d790b26", size = 2568195, upload-time = "2026-07-01T11:54:04.622Z" }, - { url = "https://files.pythonhosted.org/packages/37/bf/fb3ebff8ddcb76aac5a01389251bbbb9519922a9b520d8247c1ca864a25d/pillow-12.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ba09209fbe443b4acccebe845d8a138b89a8f4fbaeedd44953490b5315d5e965", size = 5345969, upload-time = "2026-07-01T11:54:06.397Z" }, - { url = "https://files.pythonhosted.org/packages/d8/66/9a386a92561f402389a4fc70c18838bf6d35eb5eb5c6850b4b2dc64f5048/pillow-12.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffd0c5368496f41b0944be820fcb7a838aa6e623d250b01acf2643939c3f99d7", size = 4780323, upload-time = "2026-07-01T11:54:09.351Z" }, - { url = "https://files.pythonhosted.org/packages/25/27/ac8f99618ffd3dde21db0f4d4b1d2ab00c0880595bfd17df103f7f39fd0c/pillow-12.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9c7f76c0673154f044e9d78c8655fb4213f6ca31a836df48b40fe5d187717b9", size = 6266838, upload-time = "2026-07-01T11:54:11.71Z" }, - { url = "https://files.pythonhosted.org/packages/84/21/a35af28dcc61f37ed850a2d64c65c701321dfbf25085e469d5559360cbbf/pillow-12.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:78cb2c6865a35ab8ff8b75fd122f6033b92a62c82801110e48ddd6c936a45d91", size = 6940830, upload-time = "2026-07-01T11:54:13.732Z" }, - { url = "https://files.pythonhosted.org/packages/eb/51/8b08617af3ad95e33ce6d7dd2c99ed6c8298f7fb131636303956be022e25/pillow-12.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e491916b378fba47242221bb9ead245211b70d504f495d105d17b14a24b4907c", size = 6344383, upload-time = "2026-07-01T11:54:15.756Z" }, - { url = "https://files.pythonhosted.org/packages/1d/72/cf78ac9780bb93c28328f408973845a309d4d145041665f734572ced1b52/pillow-12.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0dd2064cbc55aaec028ef5fbb60fa47bb6c3e7918e07ff17935284b227a9d2df", size = 7052934, upload-time = "2026-07-01T11:54:17.721Z" }, - { url = "https://files.pythonhosted.org/packages/20/20/25e0f4dc178a6bc0696793720055519a0de89e7661dae886992decbd2f81/pillow-12.3.0-cp312-cp312-win32.whl", hash = "sha256:dbce0b29841537a2fa4a214c2bbf14de3587c9680caa9b4e217568472490b28f", size = 6472684, upload-time = "2026-07-01T11:54:19.839Z" }, - { url = "https://files.pythonhosted.org/packages/45/89/da2f7971a317f83d807fdd4065c0af40208e59e692cc43d315a71a0e96d1/pillow-12.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a2b55dd6b2a4c4b7d87ffa56bdb33fdc5fdb9a462173861a7bc097f17d91cb09", size = 7227137, upload-time = "2026-07-01T11:54:22.025Z" }, - { url = "https://files.pythonhosted.org/packages/de/47/4845a0a6c0dbf1db8456bd9fc791f13c5ced7ced20606d08a0aacfd25b49/pillow-12.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:331b624368d4f1d069149002f25f44bc61c8919ce8ddb3c45bdad8f6e2d89510", size = 2568267, upload-time = "2026-07-01T11:54:24.051Z" }, - { url = "https://files.pythonhosted.org/packages/9d/ac/31fb64e1e7efb5a4b50cd3d92049ba89ac6e4d8d3bb6a74e15048ca3353e/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:21900ce7ba264168cd50defae43cd75d25c833ad4ad6e73ffc5596d12e25ac89", size = 4161684, upload-time = "2026-07-01T11:54:25.934Z" }, - { url = "https://files.pythonhosted.org/packages/87/b4/9805e23d2b4d77842b468513841fda254ee42f0289d25088340e4ff46e2d/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:4e8c2a84d977f50b9daed6eeaf3baef67d00d5d74d932288f02cb94518ee3ace", size = 4255487, upload-time = "2026-07-01T11:54:27.935Z" }, - { url = "https://files.pythonhosted.org/packages/df/39/ecf519435a200c693fe053a6ee4d835b41cf963a4dfc2551c4e637cb2a71/pillow-12.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:ae26d61dfa7a47befdc7572b521024e8745f3d809bd95ca9505a7bba9ef849ec", size = 3696433, upload-time = "2026-07-01T11:54:29.813Z" }, - { url = "https://files.pythonhosted.org/packages/42/92/2fc3ffad878ae8dd5469ec1bc8eb83b71f48e13efdf68f02709003982a32/pillow-12.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a743ff716f746fc19a9557f60dab1600d4613255f8a7aeb3cdde4db7eb15a66", size = 5345889, upload-time = "2026-07-01T11:54:31.97Z" }, - { url = "https://files.pythonhosted.org/packages/10/76/8803c13605b763d33d156c4678fc77f8443389c0c51c8aef707bb02015f4/pillow-12.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d69141514cc30b774ceea5e3ed3a6635c8d8a96edf664689b890f4089111fb35", size = 4780109, upload-time = "2026-07-01T11:54:34.026Z" }, - { url = "https://files.pythonhosted.org/packages/1f/01/e18aff37cb0b4aac47ac90f016d347a49aca667ef97f190b06ac2aabc928/pillow-12.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f7401aebd7f581d7f83a439d87d474999317ee099218e5ad25d125290990ba65", size = 6263736, upload-time = "2026-07-01T11:54:36.131Z" }, - { url = "https://files.pythonhosted.org/packages/f7/62/de5bdd77d935331f4f802edc11e4d82950f642caad6cb2f949837b8560e2/pillow-12.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0847a763afefb695bc912d7c131e7e0632d4edc1d8698f58ddabec8e46b8b6d3", size = 6937129, upload-time = "2026-07-01T11:54:38.216Z" }, - { url = "https://files.pythonhosted.org/packages/70/4d/105627a13300c5e0df1d174230b32fd1273062c96f7745fd552b945d1e1d/pillow-12.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:571b9fcb07b97ef3a492028fb3d2dc0993ca23a06138b0315286566d29ef718a", size = 6339562, upload-time = "2026-07-01T11:54:40.354Z" }, - { url = "https://files.pythonhosted.org/packages/6b/1d/f13de01a553988ab895ba1c722e06cf3144d4f57656fd5b81b6d881f1179/pillow-12.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:756c768d0c9c2955feb7a56c37ea24aea2e369f8d36a88da270b6a9f19e62b5e", size = 7049439, upload-time = "2026-07-01T11:54:42.489Z" }, - { url = "https://files.pythonhosted.org/packages/c9/f9/066794cca041b969964f779ee5fa66a9498bbf34248ac39c5d7954e4198f/pillow-12.3.0-cp313-cp313-win32.whl", hash = "sha256:a876864214e136f0eb367788dbd7df045f4806801518e2cfe9e13229cfe06d8f", size = 6473287, upload-time = "2026-07-01T11:54:44.9Z" }, - { url = "https://files.pythonhosted.org/packages/a6/9b/7a58e61d62be561da3a356fe2384d4059a6345fc130e23ef1c36a5b81d24/pillow-12.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:1cca606cd25738df4ed873d5ad46bbdb3d83b5cbca291f6b4ff13a4df6b0bbe8", size = 7239691, upload-time = "2026-07-01T11:54:47.141Z" }, - { url = "https://files.pythonhosted.org/packages/aa/b0/c4ed4f0ef8f8fa5ee8351537db6650bb8189f7e118842978dd6589065692/pillow-12.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:b629de27fda84b42cde7edef0d85f13b958b47f6e9bbcbba9b673c562a89bd8b", size = 2568185, upload-time = "2026-07-01T11:54:49.137Z" }, - { url = "https://files.pythonhosted.org/packages/dc/01/001f65b68192f0228cc1dbbc8d2530ab5d58b61037ba0587f946fea607cd/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:9cf95fe4d0f84c82d282745d9bb08ad9f926efa00be4697e767b814ce40d4330", size = 4161736, upload-time = "2026-07-01T11:54:51.156Z" }, - { url = "https://files.pythonhosted.org/packages/1a/d2/0219746d0fd16fc8a84498e79452375be3797d3ce4044596ce565164b84f/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:8728f216dcdb6e6d555cf971cb34076139ad74b31fc2c14da4fafc741c5f6217", size = 4255435, upload-time = "2026-07-01T11:54:53.414Z" }, - { url = "https://files.pythonhosted.org/packages/c8/02/8d0bc62ef0302318c46ff2a512822d2610e81c7aa46c9b3abe6cbaca5ad0/pillow-12.3.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:a45650e8ce7fafffd731db8550230db6b0d306d181a90b67d3e6bca2f1990930", size = 3696262, upload-time = "2026-07-01T11:54:55.739Z" }, - { url = "https://files.pythonhosted.org/packages/85/e2/73c77d218410b14f5f2d565e8a998d5317b7b9c75368d29985139f7a46f0/pillow-12.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ba54cfebe86920a559a7c4d6b9050791c20513650a1952ebe3368c7dc70306f8", size = 5350344, upload-time = "2026-07-01T11:54:57.657Z" }, - { url = "https://files.pythonhosted.org/packages/c7/da/32c752228ae345f489e3a42499d817b6c3996da7e8a3bc7a04fc806b243b/pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e158cb00350dc278f3b91551101aa7d12415a66ebf2c91d8d5ac14e56ddd3ad0", size = 4780131, upload-time = "2026-07-01T11:54:59.713Z" }, - { url = "https://files.pythonhosted.org/packages/b1/9d/8b2c807dbef61a5197c047afe99823787eb66f63daf9fb2432f91d6f0462/pillow-12.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9aeb04d6aef139de265b29683e119b638208f88cf73cdd1658aa07221165321", size = 6263757, upload-time = "2026-07-01T11:55:01.778Z" }, - { url = "https://files.pythonhosted.org/packages/5c/44/c85361f65dbe00eea8576ee467c768d25129989efb76e94f205e9ca9bb46/pillow-12.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:251bf95b67017e27b13d82f5b326234ca62d70f9cf4c2b9032de2358a3b12c7b", size = 6936962, upload-time = "2026-07-01T11:55:03.93Z" }, - { url = "https://files.pythonhosted.org/packages/18/7e/e483414b35800b86b6f08dbbc7803fb5cd52c4d6f897f47d53ea2c7e6f65/pillow-12.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fe3cca2e4e8a592be0f269a1ca4835c25199d9f3ce815c8491048f785b0a0198", size = 6339171, upload-time = "2026-07-01T11:55:05.989Z" }, - { url = "https://files.pythonhosted.org/packages/f0/f4/68c491844841ede6bed70189546b3ee9731cf9f2cbad396faff5e1ccba45/pillow-12.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:23aceaa007d6172b02c277f0cd359c79492bbb14f7072b4ede9fbcaf20648130", size = 7048116, upload-time = "2026-07-01T11:55:08.131Z" }, - { url = "https://files.pythonhosted.org/packages/a3/34/77f3f793fed8efc7d243f21b33c5a3f0d1c97ee70346d3db855587e155ff/pillow-12.3.0-cp314-cp314-win32.whl", hash = "sha256:af8d94b0db561cf68b88a267c5c44b49e134f525d0dc2cb7ed413a66bc23559a", size = 6467209, upload-time = "2026-07-01T11:55:10.408Z" }, - { url = "https://files.pythonhosted.org/packages/f1/e0/492879f69d94f91f60fc8cd05ba03650e9520afebb2fb7aa12777d7c7f38/pillow-12.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:fdafc9cce40277e0f7a0feabce0ee50dd2fa1800f3b38015e51296b5e814048d", size = 7237707, upload-time = "2026-07-01T11:55:12.745Z" }, - { url = "https://files.pythonhosted.org/packages/c9/ac/6b11f2875f1c2ac040d84e1bbf9cf22a88038f901ca1037898b280b38365/pillow-12.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:e91206ee562682b51b98ef4b26a6ef48fd84e15fd4c4bc5ec768eb641d206838", size = 2565995, upload-time = "2026-07-01T11:55:14.736Z" }, - { url = "https://files.pythonhosted.org/packages/52/69/c2208e56af9bfc1913afb24020297a691eb1d4ef688474c8a04913f65e04/pillow-12.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:164b31cd1a0490ab6efae01aa5df49da7061be0af1b30e035b6e9a1bfe34ee6e", size = 5352503, upload-time = "2026-07-01T11:55:17.076Z" }, - { url = "https://files.pythonhosted.org/packages/07/70/e5686d753e898a45d778ff1718dba8516ead6ab6b95d85fc8c4b70650cf2/pillow-12.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5afb51d599ea772b8365ae807ae557f18bccfe46ab261fd1c2a9ed700fc6eb17", size = 4782956, upload-time = "2026-07-01T11:55:19.448Z" }, - { url = "https://files.pythonhosted.org/packages/d5/37/25c6692f06927ee973ff18c8d9ee98ad0b4d84ee67a09610c2dd1447958e/pillow-12.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3edce1d53195db527e0191f84b71d02022de0540bf43a16ed734ed7537b07385", size = 6322855, upload-time = "2026-07-01T11:55:21.613Z" }, - { url = "https://files.pythonhosted.org/packages/cc/91/420637fcb8f1bc11029e403b4538e6694744428d8246118e45719f944556/pillow-12.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf16ba1b4d0b6b7c8e534936632270cf70eb00dbe09005bc345b2677b726855c", size = 6989642, upload-time = "2026-07-01T11:55:24.006Z" }, - { url = "https://files.pythonhosted.org/packages/10/08/b94d7811281ccf0d143a1cf768d1c49e1e54af63e7b708ab2ee3eb87face/pillow-12.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:24870b09b224f7ae3c39ed07d10e819d06f8720bc551847b1d623832b5b0e28d", size = 6391281, upload-time = "2026-07-01T11:55:26.252Z" }, - { url = "https://files.pythonhosted.org/packages/d2/87/24233f785f55474dc02ce3e739c5528a77e3a862e9333d1dd7a25cc31f70/pillow-12.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:30f2aa603c41533cc25c05acd0da21636e84a315768feb631c937177db558931", size = 7096716, upload-time = "2026-07-01T11:55:28.318Z" }, - { url = "https://files.pythonhosted.org/packages/23/26/fcb2f6e37175b04f53570b59937867e2b80ee1685e744023153028fc14f9/pillow-12.3.0-cp314-cp314t-win32.whl", hash = "sha256:4b0a7fe987b14c31ebda6083f74f22b561fd3739bc0ac51e019622e3d72668c7", size = 6474125, upload-time = "2026-07-01T11:55:30.956Z" }, - { url = "https://files.pythonhosted.org/packages/90/de/3634abee5f1c9e13c56787b7d5517b0ba8d6de51700b95578cf338349c9f/pillow-12.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:962864dc93511324d51ddbb5b9f8731bf71675b93ca612a07441896f4688fb8c", size = 7242939, upload-time = "2026-07-01T11:55:34.044Z" }, - { url = "https://files.pythonhosted.org/packages/ce/2a/fd13f8eb24de5714a6eb444a3d67e2842c6c576e159a43793adf23051351/pillow-12.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0740a512dc522224c77d9aa5a8d70d8b7d73fb91f2c21125d8d025d3b8990e45", size = 2567506, upload-time = "2026-07-01T11:55:35.988Z" }, - { url = "https://files.pythonhosted.org/packages/5d/dc/8fdce34ec725a33c81c6ba122b904d6b9024e50ea9ac7bede62fab54506c/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0feb2e9d6ad6c9e3c06effe9d00f3f1e618a6643273576b016f591e9315a7139", size = 4162063, upload-time = "2026-07-01T11:55:37.941Z" }, - { url = "https://files.pythonhosted.org/packages/76/66/2044b9a63d3b84ff048228dfcb7cd9bf0df983e8470971bf7d4c57b693de/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:9e881fca225083806662a5c43d627d215f258ff43c890f831966c7d7ba9c7402", size = 4255549, upload-time = "2026-07-01T11:55:40.022Z" }, - { url = "https://files.pythonhosted.org/packages/52/7e/1f67e6f4ece6b582ee4b539decbcc9f848dc245a93ed8cd7338bafef72f1/pillow-12.3.0-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:4998562bf62a445225f22e07c896bb04b35b1b1f2eb6d760584c9c51d7a5f78c", size = 3696331, upload-time = "2026-07-01T11:55:41.98Z" }, - { url = "https://files.pythonhosted.org/packages/12/40/d306fc2c8e4d45d7f175c77edca7063be7b86fe7fe6e68f4353bf71d808c/pillow-12.3.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:dc624f6bc473dacdf7ef7eb8678d0d08edf15cd94fad6ae5c7d6cc67a4e4902f", size = 5350370, upload-time = "2026-07-01T11:55:44.028Z" }, - { url = "https://files.pythonhosted.org/packages/dd/44/668fb1437e8ce420f62d6106eb66e44a5971602a4d794615bdf79315d82d/pillow-12.3.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:71d6097b330eea8fd15097780c8e89cb1a8ce7838669f48c5bacd6f663dd4701", size = 4780147, upload-time = "2026-07-01T11:55:46.073Z" }, - { url = "https://files.pythonhosted.org/packages/0c/08/93fa2e70e30a2d81547e481b6ee2bb9522117221fb1e0ce4b5df70967677/pillow-12.3.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:28ce87c5ab450a9dd970b52e5aca5fe63ed432d18a2eaddd1979a00a1ba24ace", size = 6273659, upload-time = "2026-07-01T11:55:48.264Z" }, - { url = "https://files.pythonhosted.org/packages/f8/6d/043e96ff814fc31a33077e4cba86082167db520c93632afdf2042febbb0c/pillow-12.3.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b02afb9b97f65fbca5f31db6a2a3ba21aa93030225f150fa3f249717e938fb4", size = 6947439, upload-time = "2026-07-01T11:55:50.503Z" }, - { url = "https://files.pythonhosted.org/packages/af/92/ba71d2ee2ac0edf3fa33bd9d5ee9ee080da70b1766f3ca3934f9938ddac9/pillow-12.3.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:1182d52bc2d5e5d7d0949503aa7e36d12f42205dc287e4883f407b1988820d39", size = 6353577, upload-time = "2026-07-01T11:55:52.697Z" }, - { url = "https://files.pythonhosted.org/packages/0f/ce/e63064e2122923ff687c8ad792d0d736a7b3920a56a46982e81a7fdd25d6/pillow-12.3.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e795b7eb908249c4e43c7c99fac7c2c75dab0c43566e37db472a355f63693d71", size = 7060394, upload-time = "2026-07-01T11:55:55.149Z" }, - { url = "https://files.pythonhosted.org/packages/54/76/a09cc3ccc8d773a7283d34c38bec1708f9e3cc932093cbc4c5e71ac4060b/pillow-12.3.0-cp315-cp315-win32.whl", hash = "sha256:57b3d78c95ba9059768b10e28b813002261d3f3dfc55cc48b0c988f625175827", size = 6467375, upload-time = "2026-07-01T11:55:57.769Z" }, - { url = "https://files.pythonhosted.org/packages/3e/03/1846c49ba3b1d5550392a4bbd06d6fb4578e1cd91a803198b5c90f5f7d53/pillow-12.3.0-cp315-cp315-win_amd64.whl", hash = "sha256:fa4ecea169a355be7a3ade2c783e2ed12f0e40d2c5621cda8b3297faf7fbb9f5", size = 7237048, upload-time = "2026-07-01T11:55:59.975Z" }, - { url = "https://files.pythonhosted.org/packages/fb/bb/89f35dcc79610423f9f195504d7def7f0d1416a711541b42867e25fe3412/pillow-12.3.0-cp315-cp315-win_arm64.whl", hash = "sha256:877c3f311ff35410f690861c4409e7ccbf0cd2f878e50628a28e5a0bb689e658", size = 2566006, upload-time = "2026-07-01T11:56:02.143Z" }, - { url = "https://files.pythonhosted.org/packages/30/88/707027ba09942dfa2c28759b5c222d769290a41c6d20ea60ec250801941f/pillow-12.3.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:e9871b1ffbfa9656b60aeee92ed5136a5742696006fa322b29ea3d8da0ecc9cf", size = 5352509, upload-time = "2026-07-01T11:56:04.2Z" }, - { url = "https://files.pythonhosted.org/packages/b0/6d/00352fa25332c2569cd387851f568cc5a4b75a9adbfb37ac4fbce4c02eec/pillow-12.3.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:53aa02d20d10c3d814d536aa4e5ac9b84ca0ff5a88377963b085ad6822f93e64", size = 4783167, upload-time = "2026-07-01T11:56:06.631Z" }, - { url = "https://files.pythonhosted.org/packages/13/4f/9e049dfa21af7c22427275720e2490267ba8138120add5c4c574deb69782/pillow-12.3.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:446c34dcc4324b084a53b705127dc15717b22c5e140ae0a3c38349d4efec071e", size = 6329237, upload-time = "2026-07-01T11:56:08.868Z" }, - { url = "https://files.pythonhosted.org/packages/36/16/cf6eeaae8d0fce8dd390a33437cf68c5d5bd73834a2bc6e2f14efda0ab45/pillow-12.3.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf1845d02ad822a369a49f2bb9345b1614744267682e7a03527dc3bf6eea1777", size = 6997047, upload-time = "2026-07-01T11:56:11.379Z" }, - { url = "https://files.pythonhosted.org/packages/1e/69/dbf769bdd55f48bf5733cac28edc6364ffaa072ec9ba336266e4fe66be55/pillow-12.3.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:186941b6aef820ad110fb01fb06eb925374dc3a21b17e37ec9a53b250c6fe2d1", size = 6400440, upload-time = "2026-07-01T11:56:13.908Z" }, - { url = "https://files.pythonhosted.org/packages/a0/e1/ffc9cfc2eea0d178da8018e18e959301ad9d6bc9f3edb7181e748a474b97/pillow-12.3.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:f13c32a3abd6079a66d9526e18dad9b6d280384d49d7c54040cd57b6424041d9", size = 7105895, upload-time = "2026-07-01T11:56:16.575Z" }, - { url = "https://files.pythonhosted.org/packages/18/f0/a5595c1e8c3ae44b9828cb2f0fa8155e5095ef04d6327b8f61cf44a3df85/pillow-12.3.0-cp315-cp315t-win32.whl", hash = "sha256:1657923d2d45afb66526e5b933e5b3052e6bdea196c90d3abb2424e18c77dae8", size = 6474384, upload-time = "2026-07-01T11:56:18.855Z" }, - { url = "https://files.pythonhosted.org/packages/e4/04/62bcd9f844984c5938d3b05264a61d797a29d3e0812341a8204af70bbdee/pillow-12.3.0-cp315-cp315t-win_amd64.whl", hash = "sha256:8cd2f7bdda092d99c9fc2fb7391354f306d01443d22785d0cbfafa2e2c8bb418", size = 7243537, upload-time = "2026-07-01T11:56:21.214Z" }, - { url = "https://files.pythonhosted.org/packages/3d/68/1f3066acedf37673694a7141381d8f811ae97f30d34413d236abe7d489f1/pillow-12.3.0-cp315-cp315t-win_arm64.whl", hash = "sha256:06ff022112bc9cbf83b60f8e028d94ad87b60621706487e65f673de61610ab59", size = 2567491, upload-time = "2026-07-01T11:56:23.506Z" }, - { url = "https://files.pythonhosted.org/packages/75/18/2e8b40223153ccbc60df07f9e8928dc0c76202aa4e55ae9f53962b6510d6/pillow-12.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b3c777e849237620b022f7f297dd67705f9f5cf1685f09f02e46f93e92725468", size = 5302510, upload-time = "2026-07-01T11:56:25.736Z" }, - { url = "https://files.pythonhosted.org/packages/46/3e/51fabf59d5ab801ceab709453d3ab6b180083496579549de4c45ced6528a/pillow-12.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:b343699e8308bdc51978310e1c959c584e7869cc8c40780058c87da7781a1e94", size = 4736058, upload-time = "2026-07-01T11:56:28.041Z" }, - { url = "https://files.pythonhosted.org/packages/bf/20/22fe9384b7949e25fb1293bcfc84fb82590ff4ea6b37c95b24d26d793d86/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbd139c8447d25dd750ab79ee274cc5e1fe80fc56340ab10b18a195e1b6eca3e", size = 5237776, upload-time = "2026-07-01T11:56:30.263Z" }, - { url = "https://files.pythonhosted.org/packages/08/14/f6ba68107680ffa74b39985f3f30884e41318fbc4250caa423c79b4788bb/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e7e480451b9fa137494bccd3a7d69adbe8ac65a87d97be61e11f1b1050a5bac3", size = 5860358, upload-time = "2026-07-01T11:56:32.68Z" }, - { url = "https://files.pythonhosted.org/packages/36/54/0169bc772ec491108b62f644f8ecf1fe5d8ae5ebafde2ee2142210166903/pillow-12.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:04f01d28a6aaff387bf842a13be313df23ba0597a44f1a976c9feb3c6ff4711a", size = 7231786, upload-time = "2026-07-01T11:56:35.046Z" }, -] - -[[package]] -name = "pluggy" -version = "1.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, -] - -[[package]] -name = "pycparser" -version = "3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, -] - -[[package]] -name = "pydantic" -version = "2.13.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "annotated-types" }, - { name = "pydantic-core" }, - { name = "typing-extensions" }, - { name = "typing-inspection" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size = 844775, upload-time = "2026-05-06T13:43:05.343Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size = 472262, upload-time = "2026-05-06T13:43:02.641Z" }, -] - -[[package]] -name = "pydantic-core" -version = "2.46.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size = 471464, upload-time = "2026-05-06T13:37:06.98Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/fa/6d7708d2cfc1a832acb6aeb0cd16e801902df8a0f583bb3b4b527fde022e/pydantic_core-2.46.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594", size = 2111872, upload-time = "2026-05-06T13:40:27.596Z" }, - { url = "https://files.pythonhosted.org/packages/ae/6f/aa064a3e74b5745afbdf250594f38e7ead05e2d651bcb35994b9417a0d4d/pydantic_core-2.46.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c", size = 1948255, upload-time = "2026-05-06T13:39:12.574Z" }, - { url = "https://files.pythonhosted.org/packages/43/3a/41114a9f7569b84b4d84e7a018c57c56347dac30c0d4a872946ec4e36c46/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826", size = 1972827, upload-time = "2026-05-06T13:38:19.841Z" }, - { url = "https://files.pythonhosted.org/packages/ef/25/1ab42e8048fe551934d9884e8d64daa7e990ad386f310a15981aeb6a5b08/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04", size = 2041051, upload-time = "2026-05-06T13:38:10.447Z" }, - { url = "https://files.pythonhosted.org/packages/94/c2/1a934597ddf08da410385b3b7aae91956a5a76c635effef456074fad7e88/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e", size = 2221314, upload-time = "2026-05-06T13:40:13.089Z" }, - { url = "https://files.pythonhosted.org/packages/02/6d/9e8ad178c9c4df27ad3c8f25d1fe2a7ab0d2ba0559fad4aee5d3d1f16771/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3", size = 2285146, upload-time = "2026-05-06T13:38:59.224Z" }, - { url = "https://files.pythonhosted.org/packages/80/50/540cd3aeefc041beb111125c4bff779831a2111fc6b15a9138cda277d32c/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4", size = 2089685, upload-time = "2026-05-06T13:38:17.762Z" }, - { url = "https://files.pythonhosted.org/packages/6b/a4/b440ad35f05f6a38f89fa0f149accb3f0e02be94ca5e15f3c449a61b4bc9/pydantic_core-2.46.4-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398", size = 2115420, upload-time = "2026-05-06T13:37:58.195Z" }, - { url = "https://files.pythonhosted.org/packages/99/61/de4f55db8dfd57bfdfa9a12ec90fe1b57c4f41062f7ca86f08586b3e0ac0/pydantic_core-2.46.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3", size = 2165122, upload-time = "2026-05-06T13:37:01.167Z" }, - { url = "https://files.pythonhosted.org/packages/f7/52/7c529d7bdb2d1068bd52f51fe32572c8301f9a4febf1948f10639f1436f5/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848", size = 2182573, upload-time = "2026-05-06T13:38:45.04Z" }, - { url = "https://files.pythonhosted.org/packages/37/b3/7c40325848ba78247f2812dcf9c7274e38cd801820ca6dd9fe63bcfb0eb4/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3", size = 2317139, upload-time = "2026-05-06T13:37:15.539Z" }, - { url = "https://files.pythonhosted.org/packages/d9/37/f913f81a657c865b75da6c0dbed79876073c2a43b5bd9edbe8da785e4d49/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109", size = 2360433, upload-time = "2026-05-06T13:37:30.099Z" }, - { url = "https://files.pythonhosted.org/packages/c4/67/6acaa1be2567f9256b056d8477158cac7240813956ce86e49deae8e173b4/pydantic_core-2.46.4-cp311-cp311-win32.whl", hash = "sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda", size = 1985513, upload-time = "2026-05-06T13:38:15.669Z" }, - { url = "https://files.pythonhosted.org/packages/aa/e6/c505f83dfeda9a2e5c995cfd872949e4d05e12f7feb3dca72f633daefa94/pydantic_core-2.46.4-cp311-cp311-win_amd64.whl", hash = "sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33", size = 2071114, upload-time = "2026-05-06T13:40:35.416Z" }, - { url = "https://files.pythonhosted.org/packages/0f/da/7a263a96d965d9d0df5e8de8a475f33495451117035b09acb110288c381f/pydantic_core-2.46.4-cp311-cp311-win_arm64.whl", hash = "sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d", size = 2044298, upload-time = "2026-05-06T13:38:29.754Z" }, - { url = "https://files.pythonhosted.org/packages/ce/8c/af022f0af448d7747c5154288d46b5f2bc5f17366eaa0e23e9aa04d59f3b/pydantic_core-2.46.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2", size = 2106158, upload-time = "2026-05-06T13:38:57.215Z" }, - { url = "https://files.pythonhosted.org/packages/19/95/6195171e385007300f0f5574592e467c568becce2d937a0b6804f218bc49/pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f", size = 1951724, upload-time = "2026-05-06T13:37:02.697Z" }, - { url = "https://files.pythonhosted.org/packages/8e/bc/f47d1ff9cbb1620e1b5b697eef06010035735f07820180e74178226b27b3/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7", size = 1975742, upload-time = "2026-05-06T13:37:09.448Z" }, - { url = "https://files.pythonhosted.org/packages/5b/11/9b9a5b0306345664a2da6410877af6e8082481b5884b3ddd78d47c6013ce/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7", size = 2052418, upload-time = "2026-05-06T13:37:38.234Z" }, - { url = "https://files.pythonhosted.org/packages/f1/b7/a65fec226f5d78fc39f4a13c4cc0c768c22b113438f60c14adc9d2865038/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712", size = 2232274, upload-time = "2026-05-06T13:38:27.753Z" }, - { url = "https://files.pythonhosted.org/packages/68/f0/92039db98b907ef49269a8271f67db9cb78ae2fc68062ef7e4e77adb5f61/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4", size = 2309940, upload-time = "2026-05-06T13:38:05.353Z" }, - { url = "https://files.pythonhosted.org/packages/5f/97/2aab507d3d00ca626e8e57c1eac6a79e4e5fbcc63eb99733ff55d1717f65/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce", size = 2094516, upload-time = "2026-05-06T13:39:10.577Z" }, - { url = "https://files.pythonhosted.org/packages/22/37/a8aca44d40d737dde2bc05b3c6c07dff0de07ce6f82e9f3167aeaf4d5dea/pydantic_core-2.46.4-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987", size = 2136854, upload-time = "2026-05-06T13:40:22.59Z" }, - { url = "https://files.pythonhosted.org/packages/24/99/fcef1b79238c06a8cbec70819ac722ba76e02bc8ada9b0fd66eba40da01b/pydantic_core-2.46.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b", size = 2180306, upload-time = "2026-05-06T13:40:10.666Z" }, - { url = "https://files.pythonhosted.org/packages/ae/6c/fc44000918855b42779d007ae63b0532794739027b2f417321cddbc44f6a/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458", size = 2190044, upload-time = "2026-05-06T13:40:43.231Z" }, - { url = "https://files.pythonhosted.org/packages/6b/65/d9cadc9f1920d7a127ad2edba16c1db7916e59719285cd6c94600b0080ba/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b", size = 2329133, upload-time = "2026-05-06T13:39:57.365Z" }, - { url = "https://files.pythonhosted.org/packages/d0/cf/c873d91679f3a30bcf5e7ac280ce5573483e72295307685120d0d5ad3416/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c", size = 2374464, upload-time = "2026-05-06T13:38:06.976Z" }, - { url = "https://files.pythonhosted.org/packages/47/bd/6f2fc8188f31bf10590f1e98e7b306336161fac930a8c514cd7bd828c7dc/pydantic_core-2.46.4-cp312-cp312-win32.whl", hash = "sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894", size = 1974823, upload-time = "2026-05-06T13:40:47.985Z" }, - { url = "https://files.pythonhosted.org/packages/40/8c/985c1d41ea1107c2534abd9870e4ed5c8e7669b5c308297835c001e7a1c4/pydantic_core-2.46.4-cp312-cp312-win_amd64.whl", hash = "sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89", size = 2072919, upload-time = "2026-05-06T13:39:21.153Z" }, - { url = "https://files.pythonhosted.org/packages/c4/ba/f463d006e0c47373ca7ec5e1a261c59dc01ef4d62b2657af925fb0deee3a/pydantic_core-2.46.4-cp312-cp312-win_arm64.whl", hash = "sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a", size = 2027604, upload-time = "2026-05-06T13:39:03.753Z" }, - { url = "https://files.pythonhosted.org/packages/51/a2/5d30b469c5267a17b39dec53208222f76a8d351dfac4af661888c5aee77d/pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008", size = 2106306, upload-time = "2026-05-06T13:37:48.029Z" }, - { url = "https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4", size = 1951906, upload-time = "2026-05-06T13:37:17.012Z" }, - { url = "https://files.pythonhosted.org/packages/03/d5/fd02da45b659668b05923b17ba3a0100a0a3d5541e3bd8fcc4ecb711309e/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76", size = 1976802, upload-time = "2026-05-06T13:37:35.113Z" }, - { url = "https://files.pythonhosted.org/packages/21/f2/95727e1368be3d3ed485eaab7adbd7dda408f33f7a36e8b48e0144002b91/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3", size = 2052446, upload-time = "2026-05-06T13:37:12.313Z" }, - { url = "https://files.pythonhosted.org/packages/9c/86/5d99feea3f77c7234b8718075b23db11532773c1a0dbd9b9490215dc2eeb/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76", size = 2232757, upload-time = "2026-05-06T13:39:01.149Z" }, - { url = "https://files.pythonhosted.org/packages/d2/3a/508ac615935ef7588cf6d9e9b91309fdc2da751af865e02a9098de88258c/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4", size = 2309275, upload-time = "2026-05-06T13:37:41.406Z" }, - { url = "https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a", size = 2094467, upload-time = "2026-05-06T13:39:18.847Z" }, - { url = "https://files.pythonhosted.org/packages/2c/e2/f35033184cb11d0052daf4416e8e10a502ea2ac006fc4f459aee872727d1/pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262", size = 2134417, upload-time = "2026-05-06T13:40:17.944Z" }, - { url = "https://files.pythonhosted.org/packages/7e/7b/6ceeb1cc90e193862f444ebe373d8fdf613f0a82572dde03fb10734c6c71/pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e", size = 2179782, upload-time = "2026-05-06T13:40:32.618Z" }, - { url = "https://files.pythonhosted.org/packages/5a/f2/c8d7773ede6af08036423a00ae0ceffce266c3c52a096c435d68c896083f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd", size = 2188782, upload-time = "2026-05-06T13:36:51.018Z" }, - { url = "https://files.pythonhosted.org/packages/59/31/0c864784e31f09f05cdd87606f08923b9c9e7f6e51dd27f20f62f975ce9f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be", size = 2328334, upload-time = "2026-05-06T13:40:37.764Z" }, - { url = "https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d", size = 2372986, upload-time = "2026-05-06T13:39:34.152Z" }, - { url = "https://files.pythonhosted.org/packages/5b/24/b375a480d53113860c299764bfe9f349a3dc9108b3adc0d7f0d786492ebf/pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb", size = 1973693, upload-time = "2026-05-06T13:37:55.072Z" }, - { url = "https://files.pythonhosted.org/packages/7e/e8/cff247591966f2d22ec8c003cd7587e27b7ba7b81ab2fb888e3ab75dc285/pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292", size = 2071819, upload-time = "2026-05-06T13:38:49.139Z" }, - { url = "https://files.pythonhosted.org/packages/c6/1a/f4aee670d5670e9e148e0c82c7db98d780be566c6e6a97ee8035528ca0b3/pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d", size = 2027411, upload-time = "2026-05-06T13:40:45.796Z" }, - { url = "https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb", size = 2102079, upload-time = "2026-05-06T13:38:41.019Z" }, - { url = "https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462", size = 1952179, upload-time = "2026-05-06T13:36:59.812Z" }, - { url = "https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9", size = 1978926, upload-time = "2026-05-06T13:37:39.933Z" }, - { url = "https://files.pythonhosted.org/packages/57/e9/689668733b1eb67adeef047db3c2e8788fcf65a7fd9c9e2b46b7744fe245/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4", size = 2046785, upload-time = "2026-05-06T13:38:01.995Z" }, - { url = "https://files.pythonhosted.org/packages/60/d9/6715260422ff50a2109878fd24d948a6c3446bb2664f34ee78cd972b3acd/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914", size = 2228733, upload-time = "2026-05-06T13:40:50.371Z" }, - { url = "https://files.pythonhosted.org/packages/18/ae/fdb2f64316afca925640f8e70bb1a564b0ec2721c1389e25b8eb4bf9a299/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28", size = 2307534, upload-time = "2026-05-06T13:37:21.531Z" }, - { url = "https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b", size = 2099732, upload-time = "2026-05-06T13:39:31.942Z" }, - { url = "https://files.pythonhosted.org/packages/06/d5/ee5a3366637fee41dee51a1fc91562dcf12ddbc68fda34e6b253da2324bb/pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c", size = 2129627, upload-time = "2026-05-06T13:37:25.033Z" }, - { url = "https://files.pythonhosted.org/packages/94/33/2414be571d2c6a6c4d08be21f9292b6d3fdb08949a97b6dfe985017821db/pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb", size = 2179141, upload-time = "2026-05-06T13:37:14.046Z" }, - { url = "https://files.pythonhosted.org/packages/7b/79/7daa95be995be0eecc4cf75064cb33f9bbbfe3fe0158caf2f0d4a996a5c7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898", size = 2184325, upload-time = "2026-05-06T13:36:53.615Z" }, - { url = "https://files.pythonhosted.org/packages/9f/cb/d0a382f5c0de8a222dc61c65348e0ce831b1f68e0a018450d31c2cace3a5/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e", size = 2323990, upload-time = "2026-05-06T13:40:29.971Z" }, - { url = "https://files.pythonhosted.org/packages/05/db/d9ba624cc4a5aced1598e88c04fdbd8310c8a69b9d38b9a3d39ce3a61ed7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519", size = 2369978, upload-time = "2026-05-06T13:37:23.027Z" }, - { url = "https://files.pythonhosted.org/packages/f2/20/d15df15ba918c423461905802bfd2981c3af0bfa0e40d05e13edbfa48bc3/pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4", size = 1966354, upload-time = "2026-05-06T13:38:03.499Z" }, - { url = "https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac", size = 2072238, upload-time = "2026-05-06T13:39:40.807Z" }, - { url = "https://files.pythonhosted.org/packages/32/36/51eb763beec1f4cf59b1db243a7dcc39cbb41230f050a09b9d69faaf0a48/pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a", size = 2018251, upload-time = "2026-05-06T13:37:26.72Z" }, - { url = "https://files.pythonhosted.org/packages/e8/91/855af51d625b23aa987116a19e231d2aaef9c4a415273ddc189b79a45fee/pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0", size = 2099593, upload-time = "2026-05-06T13:39:47.682Z" }, - { url = "https://files.pythonhosted.org/packages/fb/1b/8784a54c65edb5f49f0a14d6977cf1b209bba85a4c77445b255c2de58ab3/pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d", size = 1935226, upload-time = "2026-05-06T13:40:40.428Z" }, - { url = "https://files.pythonhosted.org/packages/e8/e7/1955d28d1afc56dd4b3ad7cc0cf39df1b9852964cf16e5d13912756d6d6b/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b", size = 1974605, upload-time = "2026-05-06T13:37:32.029Z" }, - { url = "https://files.pythonhosted.org/packages/93/e2/3fedbf0ba7a22850e6e9fd78117f1c0f10f950182344d8a6c535d468fdd8/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000", size = 2030777, upload-time = "2026-05-06T13:38:55.239Z" }, - { url = "https://files.pythonhosted.org/packages/f8/61/46be275fcaaba0b4f5b9669dd852267ce1ff616592dccf7a7845588df091/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e", size = 2236641, upload-time = "2026-05-06T13:37:08.096Z" }, - { url = "https://files.pythonhosted.org/packages/60/db/12e93e46a8bac9988be3c016860f83293daea8c716c029c9ace279036f2f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd", size = 2286404, upload-time = "2026-05-06T13:40:20.221Z" }, - { url = "https://files.pythonhosted.org/packages/e2/4a/4d8b19008f38d31c53b8219cfedc2e3d5de5fe99d90076b7e767de29274f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3", size = 2109219, upload-time = "2026-05-06T13:38:12.153Z" }, - { url = "https://files.pythonhosted.org/packages/88/70/3cbc40978fefb7bb09c6708d40d4ad1a5d70fd7213c3d17f971de868ec1f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7", size = 2110594, upload-time = "2026-05-06T13:40:02.971Z" }, - { url = "https://files.pythonhosted.org/packages/9d/20/b8d36736216e29491125531685b2f9e61aa5b4b2599893f8268551da3338/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff", size = 2159542, upload-time = "2026-05-06T13:39:27.506Z" }, - { url = "https://files.pythonhosted.org/packages/1d/a2/367df868eb584dacf6bf82a389272406d7178e301c4ac82545ab98bc2dd9/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424", size = 2168146, upload-time = "2026-05-06T13:38:31.93Z" }, - { url = "https://files.pythonhosted.org/packages/c1/b8/4460f77f7e201893f649a29ab355dddd3beee8a97bcb1a320db414f9a06e/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6", size = 2306309, upload-time = "2026-05-06T13:37:44.717Z" }, - { url = "https://files.pythonhosted.org/packages/64/c4/be2639293acd87dc8ddbcec41a73cee9b2ebf996fe6d892a1a74e88ad3f7/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565", size = 2369736, upload-time = "2026-05-06T13:37:05.645Z" }, - { url = "https://files.pythonhosted.org/packages/30/a6/9f9f380dbb301f67023bf8f707aaa75daadf84f7152d95c410fd7e81d994/pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02", size = 1955575, upload-time = "2026-05-06T13:38:51.116Z" }, - { url = "https://files.pythonhosted.org/packages/40/1f/f1eb9eb350e795d1af8586289746f5c5677d16043040d63710e22abc43c9/pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5", size = 2051624, upload-time = "2026-05-06T13:38:21.672Z" }, - { url = "https://files.pythonhosted.org/packages/f6/d2/42dd53d0a85c27606f316d3aa5d2869c4e8470a5ed6dec30e4a1abe19192/pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596", size = 2017325, upload-time = "2026-05-06T13:40:52.723Z" }, - { url = "https://files.pythonhosted.org/packages/ee/a4/73995fd4ebbb46ba0ee51e6fa049b8f02c40daebb762208feda8a6b7894d/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c", size = 2111589, upload-time = "2026-05-06T13:37:10.817Z" }, - { url = "https://files.pythonhosted.org/packages/fb/7f/f37d3a5e8bfcc2e403f5c57a730f2d815693fb42119e8ea48b3789335af1/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b", size = 1944552, upload-time = "2026-05-06T13:36:56.717Z" }, - { url = "https://files.pythonhosted.org/packages/15/3c/d7eb777b3ff43e8433a4efb39a17aa8fd98a4ee8561a24a67ef5db07b2d6/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b", size = 1982984, upload-time = "2026-05-06T13:39:06.207Z" }, - { url = "https://files.pythonhosted.org/packages/63/87/70b9f40170a81afd55ca26c9b2acb25c20d64bcfbf888fafecb3ba077d4c/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea", size = 2138417, upload-time = "2026-05-06T13:39:45.476Z" }, - { url = "https://files.pythonhosted.org/packages/9d/1d/8987ad40f65ae1432753072f214fb5c74fe47ffbd0698bb9cbbb585664f8/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7", size = 2095527, upload-time = "2026-05-06T13:39:52.283Z" }, - { url = "https://files.pythonhosted.org/packages/64/d3/84c282a7eee1d3ac4c0377546ef5a1ea436ce26840d9ac3b7ed54a377507/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df", size = 1936024, upload-time = "2026-05-06T13:40:15.671Z" }, - { url = "https://files.pythonhosted.org/packages/d7/ca/eac61596cdeb4d7e174d3dc0bd8a6238f14f75f97a24e7b7db4c7e7340a0/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526", size = 1990696, upload-time = "2026-05-06T13:38:34.717Z" }, - { url = "https://files.pythonhosted.org/packages/fa/c3/7c8b240552251faf6b3a957db200fcfbbcec36763c050428b601e0c9b83b/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0", size = 2147590, upload-time = "2026-05-06T13:39:29.883Z" }, - { url = "https://files.pythonhosted.org/packages/11/cb/428de0385b6c8d44b716feba566abfacfbd23ee3c4439faa789a1456242f/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0", size = 2112782, upload-time = "2026-05-06T13:37:04.016Z" }, - { url = "https://files.pythonhosted.org/packages/0b/b5/6a17bdadd0fc1f170adfd05a20d37c832f52b117b4d9131da1f41bb097ce/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7", size = 1952146, upload-time = "2026-05-06T13:39:43.092Z" }, - { url = "https://files.pythonhosted.org/packages/2a/dc/03734d80e362cd43ef65428e9de77c730ce7f2f11c60d2b1e1b39f0fbf99/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2", size = 2134492, upload-time = "2026-05-06T13:36:58.124Z" }, - { url = "https://files.pythonhosted.org/packages/de/df/5e5ffc085ed07cc22d298134d3d911c63e91f6a0eb91fe646750a3209910/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9", size = 2156604, upload-time = "2026-05-06T13:37:49.88Z" }, - { url = "https://files.pythonhosted.org/packages/81/44/6e112a4253e56f5705467cbab7ab5e91ee7398ba3d56d358635958893d3e/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf", size = 2183828, upload-time = "2026-05-06T13:37:43.053Z" }, - { url = "https://files.pythonhosted.org/packages/ac/ad/5565071e937d8e752842ac241463944c9eb14c87e2d269f2658a5bd05e98/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30", size = 2310000, upload-time = "2026-05-06T13:37:56.694Z" }, - { url = "https://files.pythonhosted.org/packages/4f/c3/66883a5cec183e7fba4d024b4cbbe61851a63750ef606b0afecc46d1f2bf/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc", size = 2361286, upload-time = "2026-05-06T13:40:05.667Z" }, - { url = "https://files.pythonhosted.org/packages/4b/2d/69abac8f838090bbecd5df894befb2c2619e7996a98ddb949db9f3b93225/pydantic_core-2.46.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983", size = 2193071, upload-time = "2026-05-06T13:38:08.682Z" }, -] - -[[package]] -name = "pydantic-settings" -version = "2.14.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pydantic" }, - { name = "python-dotenv" }, - { name = "typing-inspection" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5c/b5/8f48e906c3e0205276e8bd8cb7512217a87b2685304d64be27cad5b3019f/pydantic_settings-2.14.2.tar.gz", hash = "sha256:c19dd64b19097f1de80184f0cc7b0272a13ae6e170cbf240a3e27e381ed14a5f", size = 237700, upload-time = "2026-06-19T13:44:56.324Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/77/c1/6e422f34e569cf8e18df68d1939c81c099d2b61e4f7d9621c8a77560799c/pydantic_settings-2.14.2-py3-none-any.whl", hash = "sha256:a20c97b37910b6550d5ea50fbcc2d4187defe58cd57070b73863d069419c9440", size = 61715, upload-time = "2026-06-19T13:44:55.02Z" }, -] - -[[package]] -name = "pygments" -version = "2.20.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, -] - -[[package]] -name = "pypdfium2" -version = "5.12.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/db/42/0b51bdf50ccf13f3deb3209ca996179a49761dc191748469cf0de55b0055/pypdfium2-5.12.1.tar.gz", hash = "sha256:d0e0648fb2e28f50efcd1ec0a5a18ced9f4d66b2c227fae9b603f0a883b2d13f", size = 274428, upload-time = "2026-07-17T10:01:22.713Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/09/7e/bd8df53b1131c582f6646372047b49162032bd01628d49b9a60cd94d2181/pypdfium2-5.12.1-py3-none-android_23_arm64_v8a.whl", hash = "sha256:05bab9b1ba2de7fc299ae2af25cb9c8a0543bc8bb893e879fe8c9ba8310e9ce4", size = 3392276, upload-time = "2026-07-17T10:00:47.376Z" }, - { url = "https://files.pythonhosted.org/packages/b2/13/a2b71e17b0439d2af78c817a381e3557371c6c56098581da8485aef65ea6/pypdfium2-5.12.1-py3-none-android_23_armeabi_v7a.whl", hash = "sha256:d4ee061e566a6422b660cdddaaa799a2d1cbf2f016921bcaf24d61426d01d942", size = 2848776, upload-time = "2026-07-17T10:00:49.09Z" }, - { url = "https://files.pythonhosted.org/packages/e2/a8/d7a61700db3022792b28bce5264be90a7d2e7104998362af6b93766f50b2/pypdfium2-5.12.1-py3-none-macosx_13_0_arm64.whl", hash = "sha256:66a9ed40d70a5d728cd42148fecb9d7a0917c6161d6bb67c844093a4ed1df089", size = 3480243, upload-time = "2026-07-17T10:00:50.674Z" }, - { url = "https://files.pythonhosted.org/packages/01/2c/d7a38fad74b6da0947cf8763aee0f8e6c9d3c12fc8e137aa615f7f8ae76c/pypdfium2-5.12.1-py3-none-macosx_13_0_x86_64.whl", hash = "sha256:847378a5ab41332998b2621b21bab2e96dc8c3eff36a08bce26695b964163983", size = 3643490, upload-time = "2026-07-17T10:00:52.236Z" }, - { url = "https://files.pythonhosted.org/packages/8f/29/aca739676323558595fcf8cdc8d7939d2b25aaaa6f538e829f1fee938cdd/pypdfium2-5.12.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6eabf028ad8e7bc7811c9acf3a72718c180569b624b844d2c6cc974609784275", size = 3649734, upload-time = "2026-07-17T10:00:53.776Z" }, - { url = "https://files.pythonhosted.org/packages/a4/e0/e4ecc05f4f1a11d11c8d684a24b2fc8be8207f341be985dac301caa4f6aa/pypdfium2-5.12.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7857cfa6642ec5a09db12ff8f5cf6b6494585b5e3a605399fddc4fb862837b63", size = 3380828, upload-time = "2026-07-17T10:00:55.377Z" }, - { url = "https://files.pythonhosted.org/packages/17/1b/c94c9d486791276e736350917a11fe2cf3acba2c6c7f03f9ac0d51f8952a/pypdfium2-5.12.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05bfa20a08a96584253bbe38b60e13f81a037eac31c5579e607ec1480ad25dbf", size = 3777202, upload-time = "2026-07-17T10:00:57.212Z" }, - { url = "https://files.pythonhosted.org/packages/14/aa/7f81f0c035fc32850dfab9daf78530814f215be226dad7491e3caa0a3e8c/pypdfium2-5.12.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9f059f7bdbdf4352eb83691071096940d769d6ae5930b8734237fdb1bd78fbc2", size = 4186083, upload-time = "2026-07-17T10:00:59.022Z" }, - { url = "https://files.pythonhosted.org/packages/23/16/21420a6f2bc5f981299c336817dd5d72709dad5fda30ac38cbd5f0f7b372/pypdfium2-5.12.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e10cbf41b21233ec5e20adfc170cf60edd77abead86a97dc708fff55a8a886c7", size = 3701734, upload-time = "2026-07-17T10:01:00.952Z" }, - { url = "https://files.pythonhosted.org/packages/36/a1/bb89f49e2b3ea3e945b67859d2ec6e73e722a83c006099c675692641e51d/pypdfium2-5.12.1-py3-none-manylinux_2_27_s390x.manylinux_2_28_s390x.whl", hash = "sha256:07eeebb2784f4cd38d386b924235df43217a397442796673296bb6efbdaad1d0", size = 4030403, upload-time = "2026-07-17T10:01:02.568Z" }, - { url = "https://files.pythonhosted.org/packages/80/a7/cea5eb0c39e9c6fdf9853a3008bf021d08f962228073af90354b60c5ccdc/pypdfium2-5.12.1-py3-none-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5c3e6cbe43581af79526184643920ab03a9401a0c79f2226bea9d4d1e3d34008", size = 3994411, upload-time = "2026-07-17T10:01:04.25Z" }, - { url = "https://files.pythonhosted.org/packages/fc/43/5e470213b27c13b0d94d03d97fc3740507edadea1d1e2ce2049bfbec4aa0/pypdfium2-5.12.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4648f0905441bcb141687ca2263bbf38a1aa056b943eef06019f91cff3e1da4a", size = 4993687, upload-time = "2026-07-17T10:01:05.811Z" }, - { url = "https://files.pythonhosted.org/packages/db/da/af7972ca72f24ed720db6501333fd67bc66aa6aa5a5ec698551bd30ae62e/pypdfium2-5.12.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:bdff622181fab64f32328591c9c8287cdc745c9a1f2afc26ca3feba39e3e6645", size = 4534560, upload-time = "2026-07-17T10:01:07.291Z" }, - { url = "https://files.pythonhosted.org/packages/a9/63/06a7f2cd691f7e336cbc53fd65453fee516042c8ddb016bc50d1cd2bed45/pypdfium2-5.12.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:236dbdc88aa54f14b27937ccb2ebe3dcf08c10dbb8652f432ea982dc9af39732", size = 5237681, upload-time = "2026-07-17T10:01:08.997Z" }, - { url = "https://files.pythonhosted.org/packages/2b/f5/937b080671758ab0b3d3d69b2657006682e4c6a0134b36774be4ed1afcfb/pypdfium2-5.12.1-py3-none-musllinux_1_2_ppc64le.whl", hash = "sha256:9c8856ce7dd77a7827476c7d75afe1197d6cd505f5cb4167b6aacf661f3f8ea5", size = 5143027, upload-time = "2026-07-17T10:01:10.69Z" }, - { url = "https://files.pythonhosted.org/packages/32/02/094632700c24728fa443dc89d9d1c6e4fc05bb00778b22e8482fdb133da0/pypdfium2-5.12.1-py3-none-musllinux_1_2_riscv64.whl", hash = "sha256:5f257bb40fa44ce9ba18d2c919777dbd3f16bf22548b1d68fd56c7c92f1de530", size = 4647048, upload-time = "2026-07-17T10:01:12.559Z" }, - { url = "https://files.pythonhosted.org/packages/fe/d0/12d84bf55a4fcf2c0ed242afc94168933194f672067e1d162aa60a8e4426/pypdfium2-5.12.1-py3-none-musllinux_1_2_s390x.whl", hash = "sha256:974082344172da76a5c3c0782eaedfe6069dbe88db77d8c671ef36b61e9b14e2", size = 5088747, upload-time = "2026-07-17T10:01:14.42Z" }, - { url = "https://files.pythonhosted.org/packages/92/9c/92a460bac1f6cfd6f96251802b3098a804fb251dfe0b5eb004ede958ae0e/pypdfium2-5.12.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:715ae16b34ea1d64884d58800155179ba700e9ea65a2f583b020666acd2bfb12", size = 5049695, upload-time = "2026-07-17T10:01:15.961Z" }, - { url = "https://files.pythonhosted.org/packages/f7/67/53c61d366222550220b42a9212131407f49d3dbcf050178c620bf80fa899/pypdfium2-5.12.1-py3-none-win32.whl", hash = "sha256:e5358d2ce4ebc5c899aab1df9ca5d215357244e9168aa443225d3c1e649c7eac", size = 3725466, upload-time = "2026-07-17T10:01:17.773Z" }, - { url = "https://files.pythonhosted.org/packages/a9/c3/08b62718faf2f6b6aa49207626e3113ff3ec1b3cd076c0ef8fd852f0e57c/pypdfium2-5.12.1-py3-none-win_amd64.whl", hash = "sha256:9609be73a6701a68f29dffe0335f7a2e4b3ba581542ed65d35d49f761a4600ca", size = 3859845, upload-time = "2026-07-17T10:01:19.417Z" }, - { url = "https://files.pythonhosted.org/packages/6c/d5/ad551e55790134c8bc87ea16e0866a3721def0620fbfa19112c8ad4a25a6/pypdfium2-5.12.1-py3-none-win_arm64.whl", hash = "sha256:afc0b7e0c975a429abc75875209ce17b66d749f6ac5cbe8ba72470e83901e304", size = 3674605, upload-time = "2026-07-17T10:01:21.008Z" }, -] - -[[package]] -name = "pytest" -version = "9.1.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "iniconfig" }, - { name = "packaging" }, - { name = "pluggy" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" }, -] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, -] - -[[package]] -name = "python-dotenv" -version = "1.2.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload-time = "2026-03-01T16:00:26.196Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, -] - -[[package]] -name = "python-multipart" -version = "0.0.32" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5b/42/55c32bb9b12693c092ad250a0e82edb5b31ddeda6eb772de5f308b3804ad/python_multipart-0.0.32.tar.gz", hash = "sha256:be54b7f3fa167bb83e4fcd936b887b708f4e57fe75911c02aebf53efaf8d938e", size = 46881, upload-time = "2026-06-04T16:18:58.647Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/04/e8135ebd1ad02c56ec633277529b2602ff99ff634be76cdba5744cf554fd/python_multipart-0.0.32-py3-none-any.whl", hash = "sha256:ff6d3f776f16878c894e52e107296ffc890e913c611b1a4ec6c44e2821fe2e23", size = 30042, upload-time = "2026-06-04T16:18:57.319Z" }, -] - -[[package]] -name = "pytz" -version = "2026.3.post1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fb/48/fb042503b6ca6cd271261dc559fd6432f7d8c713153e9ec5c591af4dfc1c/pytz-2026.3.post1.tar.gz", hash = "sha256:2211d3fcf9a797d3405cac96ac7f61d80e6a644f72a3309607282fe8a2010c5d", size = 319745, upload-time = "2026-07-25T15:12:07.385Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0f/7b/39c34ca613b0b198cb866466651b26b045e2009864c5183c979a3b83f383/pytz-2026.3.post1-py2.py3-none-any.whl", hash = "sha256:dd95840dd199baea12d9cc096a1d452caa6596a1c1e4b5f3dbd1541855d5e815", size = 508283, upload-time = "2026-07-25T15:12:05.782Z" }, -] - -[[package]] -name = "pyyaml" -version = "6.0.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, - { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, - { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, - { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, - { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, - { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, - { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, - { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, - { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, - { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, - { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, - { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, - { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, - { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, - { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, - { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, - { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, - { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, - { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, - { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, - { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, - { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, - { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, - { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, - { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, - { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, - { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, - { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, - { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, - { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, - { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, - { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, - { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, - { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, - { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, - { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, - { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, - { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, - { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, - { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, - { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, - { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, - { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, - { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, - { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, - { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, - { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, -] - -[[package]] -name = "ruff" -version = "0.16.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/70/25/7113f6d5498888c5fb7db34081cba7d5971c4cb1bfb26819966eee68f003/ruff-0.16.1.tar.gz", hash = "sha256:fedad7c801dabd3fb9741d76aca39246e6ddd9ca446a015875207bf19f1e6bc7", size = 4877500, upload-time = "2026-07-30T19:37:01.379Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/bd/694da69368e0973de65df2ddc73ab18d43c469d5963d9b150911de6bc513/ruff-0.16.1-py3-none-linux_armv6l.whl", hash = "sha256:58edb313b88f0c5460a26adf5f39a37a3be789494a15e3e411e35fa78b89f9a0", size = 10839126, upload-time = "2026-07-30T19:36:13.697Z" }, - { url = "https://files.pythonhosted.org/packages/3f/f0/b626e5d5bd0dd9576263658ef12885e2288afd1029a48e26ffed65ec1ac1/ruff-0.16.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:fde5a99e2f97479af66edd6622c6d5a2a7592c77cf4153d9e4428f5eeb55b60c", size = 11070253, upload-time = "2026-07-30T19:36:17.14Z" }, - { url = "https://files.pythonhosted.org/packages/83/63/f40acfb6b35b88623e71684942b552c3edd96035f5d98f313815f7b277de/ruff-0.16.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e0d4c20532fca4f7fa609369161d968dd28f65d83dabbd61d8e9c7edbf7001f6", size = 10561425, upload-time = "2026-07-30T19:36:20.04Z" }, - { url = "https://files.pythonhosted.org/packages/aa/dd/14ec0e9c2b4d315547dd38765004b4863e354e1b52cb308272215d9f6f6d/ruff-0.16.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30affbcedf59ad5703d9c91f82266e02b47739f797e1a7b6e158e5526a6dae38", size = 10948879, upload-time = "2026-07-30T19:36:22.476Z" }, - { url = "https://files.pythonhosted.org/packages/33/e9/9d870cbae575030fdef595f04b4b97573c525b5497cce4f4498cf2f85446/ruff-0.16.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:24e9c631573cbca9d20f1283f8f479b2afa4a8503504822bd71a293889f16743", size = 10643691, upload-time = "2026-07-30T19:36:24.914Z" }, - { url = "https://files.pythonhosted.org/packages/c4/09/12743d544e2173f53ecd27217c65f90d2bc0f8424a66a60339e56bbc0457/ruff-0.16.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b41bdd48fb420987a9b5212e4957c26ad4abce401fa9ea9d4d85843727945f4f", size = 11435354, upload-time = "2026-07-30T19:36:28.447Z" }, - { url = "https://files.pythonhosted.org/packages/7f/89/a1652b2daee52083c9554a6333b678a8b01d0400f976827bb87857f9449a/ruff-0.16.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b0d1e1393b7648079e13669de1c1f4fde06d4583e84d8fd5c1551e0a77a2aa75", size = 12259033, upload-time = "2026-07-30T19:36:31.326Z" }, - { url = "https://files.pythonhosted.org/packages/16/96/ecdcb8c54ee7b123b487f807eb014e6e019155a0b81dfb669acd52f28ce3/ruff-0.16.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07bf434b1c95f4e093be4532068ef4fcf00924eb2ade8796075980902d6fd54a", size = 11667981, upload-time = "2026-07-30T19:36:34.394Z" }, - { url = "https://files.pythonhosted.org/packages/cd/90/c52e12e0d862e9572f2a33aa227409143520abe53111e9a6babbac7b4af8/ruff-0.16.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39897739f112253ee4fdd2e8aa9a4f9ded99fb2be367d5f31dfa4ded6025584c", size = 11468183, upload-time = "2026-07-30T19:36:37.339Z" }, - { url = "https://files.pythonhosted.org/packages/2c/6b/4ffb7ad1d83eb16cf8cbb3c8815d3f11c88460fd162d4b372a2059be1c2a/ruff-0.16.1-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:82ae3c0c0d74daf17b968a10b7b3bb3ef297ab7de0c1f749646b25e690ccb150", size = 11470071, upload-time = "2026-07-30T19:36:39.91Z" }, - { url = "https://files.pythonhosted.org/packages/9c/72/32ae7db4c0b5e32ab611787caa19d1546800676d79f7483b7100a3561bf4/ruff-0.16.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4d5f2ed10f8242d83fc08d521301089364e3375375705356f20c0e31606ef3ef", size = 10919503, upload-time = "2026-07-30T19:36:42.65Z" }, - { url = "https://files.pythonhosted.org/packages/f7/ca/3d901ba6ad6fc38da39c3448fc6c59ac945679293a17c3ceb6d6c1cba13e/ruff-0.16.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a4665b309891f83f3e3c25447935f1213e9abbd4b5640af7a1f2def9f8d413c1", size = 10649861, upload-time = "2026-07-30T19:36:45.18Z" }, - { url = "https://files.pythonhosted.org/packages/92/79/894ef1ced26552d5f8c9cf6d85b0687840e1128c55aeab7b9c2d54a0d880/ruff-0.16.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:26e9ca5c9bc3971f20d3cf18a957f52ffd6a5f6564ff15c4912a144dcac22494", size = 11148137, upload-time = "2026-07-30T19:36:47.936Z" }, - { url = "https://files.pythonhosted.org/packages/2d/69/3609a09fa1cb46cc28b762363e440a354204e5dff01bd0c8d7437874d6b9/ruff-0.16.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:67e1e1e3fa4f0c82f0e36d4cd61e661f6e7a6196cb1aa92fe0828fa7b8f257cd", size = 11559211, upload-time = "2026-07-30T19:36:50.448Z" }, - { url = "https://files.pythonhosted.org/packages/fc/8a/fb22af2fd78a736e241fabf67e30ce1799a64244026377a49e133af90762/ruff-0.16.1-py3-none-win32.whl", hash = "sha256:d31765e131295b8445caf301e3e8a85b34d1b9b211b4109b7ba457888b051806", size = 10838258, upload-time = "2026-07-30T19:36:53.298Z" }, - { url = "https://files.pythonhosted.org/packages/d4/35/e57fd9fb5d423961df087a00b12d42c0a830288dc2f3b45ecca299158b4f/ruff-0.16.1-py3-none-win_amd64.whl", hash = "sha256:09b05e8b90c2cb06ad63464350e7a45e8e44a2dfe52072ebfba6666ca8d3f596", size = 11961111, upload-time = "2026-07-30T19:36:56.107Z" }, - { url = "https://files.pythonhosted.org/packages/cb/46/240ea004bf6dc4feb40e9832f2205a476a47dd5b8a3f8211a5fc5f95e20e/ruff-0.16.1-py3-none-win_arm64.whl", hash = "sha256:dbaadaac38c70239f056d306b7476f246b0bf000fa6b3876402acbf5b227eaf8", size = 11309414, upload-time = "2026-07-30T19:36:58.79Z" }, -] - -[[package]] -name = "scipy" -version = "1.17.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.12' and sys_platform == 'win32'", - "python_full_version < '3.12' and sys_platform == 'emscripten'", - "python_full_version < '3.12' and sys_platform != 'emscripten' and sys_platform != 'win32'", -] -dependencies = [ - { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7a/97/5a3609c4f8d58b039179648e62dd220f89864f56f7357f5d4f45c29eb2cc/scipy-1.17.1.tar.gz", hash = "sha256:95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0", size = 30573822, upload-time = "2026-02-23T00:26:24.851Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/df/75/b4ce781849931fef6fd529afa6b63711d5a733065722d0c3e2724af9e40a/scipy-1.17.1-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:1f95b894f13729334fb990162e911c9e5dc1ab390c58aa6cbecb389c5b5e28ec", size = 31613675, upload-time = "2026-02-23T00:16:00.13Z" }, - { url = "https://files.pythonhosted.org/packages/f7/58/bccc2861b305abdd1b8663d6130c0b3d7cc22e8d86663edbc8401bfd40d4/scipy-1.17.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:e18f12c6b0bc5a592ed23d3f7b891f68fd7f8241d69b7883769eb5d5dfb52696", size = 28162057, upload-time = "2026-02-23T00:16:09.456Z" }, - { url = "https://files.pythonhosted.org/packages/6d/ee/18146b7757ed4976276b9c9819108adbc73c5aad636e5353e20746b73069/scipy-1.17.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a3472cfbca0a54177d0faa68f697d8ba4c80bbdc19908c3465556d9f7efce9ee", size = 20334032, upload-time = "2026-02-23T00:16:17.358Z" }, - { url = "https://files.pythonhosted.org/packages/ec/e6/cef1cf3557f0c54954198554a10016b6a03b2ec9e22a4e1df734936bd99c/scipy-1.17.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:766e0dc5a616d026a3a1cffa379af959671729083882f50307e18175797b3dfd", size = 22709533, upload-time = "2026-02-23T00:16:25.791Z" }, - { url = "https://files.pythonhosted.org/packages/4d/60/8804678875fc59362b0fb759ab3ecce1f09c10a735680318ac30da8cd76b/scipy-1.17.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:744b2bf3640d907b79f3fd7874efe432d1cf171ee721243e350f55234b4cec4c", size = 33062057, upload-time = "2026-02-23T00:16:36.931Z" }, - { url = "https://files.pythonhosted.org/packages/09/7d/af933f0f6e0767995b4e2d705a0665e454d1c19402aa7e895de3951ebb04/scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43af8d1f3bea642559019edfe64e9b11192a8978efbd1539d7bc2aaa23d92de4", size = 35349300, upload-time = "2026-02-23T00:16:49.108Z" }, - { url = "https://files.pythonhosted.org/packages/b4/3d/7ccbbdcbb54c8fdc20d3b6930137c782a163fa626f0aef920349873421ba/scipy-1.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd96a1898c0a47be4520327e01f874acfd61fb48a9420f8aa9f6483412ffa444", size = 35127333, upload-time = "2026-02-23T00:17:01.293Z" }, - { url = "https://files.pythonhosted.org/packages/e8/19/f926cb11c42b15ba08e3a71e376d816ac08614f769b4f47e06c3580c836a/scipy-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4eb6c25dd62ee8d5edf68a8e1c171dd71c292fdae95d8aeb3dd7d7de4c364082", size = 37741314, upload-time = "2026-02-23T00:17:12.576Z" }, - { url = "https://files.pythonhosted.org/packages/95/da/0d1df507cf574b3f224ccc3d45244c9a1d732c81dcb26b1e8a766ae271a8/scipy-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:d30e57c72013c2a4fe441c2fcb8e77b14e152ad48b5464858e07e2ad9fbfceff", size = 36607512, upload-time = "2026-02-23T00:17:23.424Z" }, - { url = "https://files.pythonhosted.org/packages/68/7f/bdd79ceaad24b671543ffe0ef61ed8e659440eb683b66f033454dcee90eb/scipy-1.17.1-cp311-cp311-win_arm64.whl", hash = "sha256:9ecb4efb1cd6e8c4afea0daa91a87fbddbce1b99d2895d151596716c0b2e859d", size = 24599248, upload-time = "2026-02-23T00:17:34.561Z" }, - { url = "https://files.pythonhosted.org/packages/35/48/b992b488d6f299dbe3f11a20b24d3dda3d46f1a635ede1c46b5b17a7b163/scipy-1.17.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:35c3a56d2ef83efc372eaec584314bd0ef2e2f0d2adb21c55e6ad5b344c0dcb8", size = 31610954, upload-time = "2026-02-23T00:17:49.855Z" }, - { url = "https://files.pythonhosted.org/packages/b2/02/cf107b01494c19dc100f1d0b7ac3cc08666e96ba2d64db7626066cee895e/scipy-1.17.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:fcb310ddb270a06114bb64bbe53c94926b943f5b7f0842194d585c65eb4edd76", size = 28172662, upload-time = "2026-02-23T00:18:01.64Z" }, - { url = "https://files.pythonhosted.org/packages/cf/a9/599c28631bad314d219cf9ffd40e985b24d603fc8a2f4ccc5ae8419a535b/scipy-1.17.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:cc90d2e9c7e5c7f1a482c9875007c095c3194b1cfedca3c2f3291cdc2bc7c086", size = 20344366, upload-time = "2026-02-23T00:18:12.015Z" }, - { url = "https://files.pythonhosted.org/packages/35/f5/906eda513271c8deb5af284e5ef0206d17a96239af79f9fa0aebfe0e36b4/scipy-1.17.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:c80be5ede8f3f8eded4eff73cc99a25c388ce98e555b17d31da05287015ffa5b", size = 22704017, upload-time = "2026-02-23T00:18:21.502Z" }, - { url = "https://files.pythonhosted.org/packages/da/34/16f10e3042d2f1d6b66e0428308ab52224b6a23049cb2f5c1756f713815f/scipy-1.17.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e19ebea31758fac5893a2ac360fedd00116cbb7628e650842a6691ba7ca28a21", size = 32927842, upload-time = "2026-02-23T00:18:35.367Z" }, - { url = "https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02ae3b274fde71c5e92ac4d54bc06c42d80e399fec704383dcd99b301df37458", size = 35235890, upload-time = "2026-02-23T00:18:49.188Z" }, - { url = "https://files.pythonhosted.org/packages/c5/5c/9d7f4c88bea6e0d5a4f1bc0506a53a00e9fcb198de372bfe4d3652cef482/scipy-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a604bae87c6195d8b1045eddece0514d041604b14f2727bbc2b3020172045eb", size = 35003557, upload-time = "2026-02-23T00:18:54.74Z" }, - { url = "https://files.pythonhosted.org/packages/65/94/7698add8f276dbab7a9de9fb6b0e02fc13ee61d51c7c3f85ac28b65e1239/scipy-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f590cd684941912d10becc07325a3eeb77886fe981415660d9265c4c418d0bea", size = 37625856, upload-time = "2026-02-23T00:19:00.307Z" }, - { url = "https://files.pythonhosted.org/packages/a2/84/dc08d77fbf3d87d3ee27f6a0c6dcce1de5829a64f2eae85a0ecc1f0daa73/scipy-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:41b71f4a3a4cab9d366cd9065b288efc4d4f3c0b37a91a8e0947fb5bd7f31d87", size = 36549682, upload-time = "2026-02-23T00:19:07.67Z" }, - { url = "https://files.pythonhosted.org/packages/bc/98/fe9ae9ffb3b54b62559f52dedaebe204b408db8109a8c66fdd04869e6424/scipy-1.17.1-cp312-cp312-win_arm64.whl", hash = "sha256:f4115102802df98b2b0db3cce5cb9b92572633a1197c77b7553e5203f284a5b3", size = 24547340, upload-time = "2026-02-23T00:19:12.024Z" }, - { url = "https://files.pythonhosted.org/packages/76/27/07ee1b57b65e92645f219b37148a7e7928b82e2b5dbeccecb4dff7c64f0b/scipy-1.17.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:5e3c5c011904115f88a39308379c17f91546f77c1667cea98739fe0fccea804c", size = 31590199, upload-time = "2026-02-23T00:19:17.192Z" }, - { url = "https://files.pythonhosted.org/packages/ec/ae/db19f8ab842e9b724bf5dbb7db29302a91f1e55bc4d04b1025d6d605a2c5/scipy-1.17.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:6fac755ca3d2c3edcb22f479fceaa241704111414831ddd3bc6056e18516892f", size = 28154001, upload-time = "2026-02-23T00:19:22.241Z" }, - { url = "https://files.pythonhosted.org/packages/5b/58/3ce96251560107b381cbd6e8413c483bbb1228a6b919fa8652b0d4090e7f/scipy-1.17.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:7ff200bf9d24f2e4d5dc6ee8c3ac64d739d3a89e2326ba68aaf6c4a2b838fd7d", size = 20325719, upload-time = "2026-02-23T00:19:26.329Z" }, - { url = "https://files.pythonhosted.org/packages/b2/83/15087d945e0e4d48ce2377498abf5ad171ae013232ae31d06f336e64c999/scipy-1.17.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4b400bdc6f79fa02a4d86640310dde87a21fba0c979efff5248908c6f15fad1b", size = 22683595, upload-time = "2026-02-23T00:19:30.304Z" }, - { url = "https://files.pythonhosted.org/packages/b4/e0/e58fbde4a1a594c8be8114eb4aac1a55bcd6587047efc18a61eb1f5c0d30/scipy-1.17.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b64ca7d4aee0102a97f3ba22124052b4bd2152522355073580bf4845e2550b6", size = 32896429, upload-time = "2026-02-23T00:19:35.536Z" }, - { url = "https://files.pythonhosted.org/packages/f5/5f/f17563f28ff03c7b6799c50d01d5d856a1d55f2676f537ca8d28c7f627cd/scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:581b2264fc0aa555f3f435a5944da7504ea3a065d7029ad60e7c3d1ae09c5464", size = 35203952, upload-time = "2026-02-23T00:19:42.259Z" }, - { url = "https://files.pythonhosted.org/packages/8d/a5/9afd17de24f657fdfe4df9a3f1ea049b39aef7c06000c13db1530d81ccca/scipy-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:beeda3d4ae615106d7094f7e7cef6218392e4465cc95d25f900bebabfded0950", size = 34979063, upload-time = "2026-02-23T00:19:47.547Z" }, - { url = "https://files.pythonhosted.org/packages/8b/13/88b1d2384b424bf7c924f2038c1c409f8d88bb2a8d49d097861dd64a57b2/scipy-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6609bc224e9568f65064cfa72edc0f24ee6655b47575954ec6339534b2798369", size = 37598449, upload-time = "2026-02-23T00:19:53.238Z" }, - { url = "https://files.pythonhosted.org/packages/35/e5/d6d0e51fc888f692a35134336866341c08655d92614f492c6860dc45bb2c/scipy-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:37425bc9175607b0268f493d79a292c39f9d001a357bebb6b88fdfaff13f6448", size = 36510943, upload-time = "2026-02-23T00:20:50.89Z" }, - { url = "https://files.pythonhosted.org/packages/2a/fd/3be73c564e2a01e690e19cc618811540ba5354c67c8680dce3281123fb79/scipy-1.17.1-cp313-cp313-win_arm64.whl", hash = "sha256:5cf36e801231b6a2059bf354720274b7558746f3b1a4efb43fcf557ccd484a87", size = 24545621, upload-time = "2026-02-23T00:20:55.871Z" }, - { url = "https://files.pythonhosted.org/packages/6f/6b/17787db8b8114933a66f9dcc479a8272e4b4da75fe03b0c282f7b0ade8cd/scipy-1.17.1-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:d59c30000a16d8edc7e64152e30220bfbd724c9bbb08368c054e24c651314f0a", size = 31936708, upload-time = "2026-02-23T00:19:58.694Z" }, - { url = "https://files.pythonhosted.org/packages/38/2e/524405c2b6392765ab1e2b722a41d5da33dc5c7b7278184a8ad29b6cb206/scipy-1.17.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:010f4333c96c9bb1a4516269e33cb5917b08ef2166d5556ca2fd9f082a9e6ea0", size = 28570135, upload-time = "2026-02-23T00:20:03.934Z" }, - { url = "https://files.pythonhosted.org/packages/fd/c3/5bd7199f4ea8556c0c8e39f04ccb014ac37d1468e6cfa6a95c6b3562b76e/scipy-1.17.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:2ceb2d3e01c5f1d83c4189737a42d9cb2fc38a6eeed225e7515eef71ad301dce", size = 20741977, upload-time = "2026-02-23T00:20:07.935Z" }, - { url = "https://files.pythonhosted.org/packages/d9/b8/8ccd9b766ad14c78386599708eb745f6b44f08400a5fd0ade7cf89b6fc93/scipy-1.17.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:844e165636711ef41f80b4103ed234181646b98a53c8f05da12ca5ca289134f6", size = 23029601, upload-time = "2026-02-23T00:20:12.161Z" }, - { url = "https://files.pythonhosted.org/packages/6d/a0/3cb6f4d2fb3e17428ad2880333cac878909ad1a89f678527b5328b93c1d4/scipy-1.17.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:158dd96d2207e21c966063e1635b1063cd7787b627b6f07305315dd73d9c679e", size = 33019667, upload-time = "2026-02-23T00:20:17.208Z" }, - { url = "https://files.pythonhosted.org/packages/f3/c3/2d834a5ac7bf3a0c806ad1508efc02dda3c8c61472a56132d7894c312dea/scipy-1.17.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74cbb80d93260fe2ffa334efa24cb8f2f0f622a9b9febf8b483c0b865bfb3475", size = 35264159, upload-time = "2026-02-23T00:20:23.087Z" }, - { url = "https://files.pythonhosted.org/packages/4d/77/d3ed4becfdbd217c52062fafe35a72388d1bd82c2d0ba5ca19d6fcc93e11/scipy-1.17.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dbc12c9f3d185f5c737d801da555fb74b3dcfa1a50b66a1a93e09190f41fab50", size = 35102771, upload-time = "2026-02-23T00:20:28.636Z" }, - { url = "https://files.pythonhosted.org/packages/bd/12/d19da97efde68ca1ee5538bb261d5d2c062f0c055575128f11a2730e3ac1/scipy-1.17.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94055a11dfebe37c656e70317e1996dc197e1a15bbcc351bcdd4610e128fe1ca", size = 37665910, upload-time = "2026-02-23T00:20:34.743Z" }, - { url = "https://files.pythonhosted.org/packages/06/1c/1172a88d507a4baaf72c5a09bb6c018fe2ae0ab622e5830b703a46cc9e44/scipy-1.17.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e30bdeaa5deed6bc27b4cc490823cd0347d7dae09119b8803ae576ea0ce52e4c", size = 36562980, upload-time = "2026-02-23T00:20:40.575Z" }, - { url = "https://files.pythonhosted.org/packages/70/b0/eb757336e5a76dfa7911f63252e3b7d1de00935d7705cf772db5b45ec238/scipy-1.17.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a720477885a9d2411f94a93d16f9d89bad0f28ca23c3f8daa521e2dcc3f44d49", size = 24856543, upload-time = "2026-02-23T00:20:45.313Z" }, - { url = "https://files.pythonhosted.org/packages/cf/83/333afb452af6f0fd70414dc04f898647ee1423979ce02efa75c3b0f2c28e/scipy-1.17.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:a48a72c77a310327f6a3a920092fa2b8fd03d7deaa60f093038f22d98e096717", size = 31584510, upload-time = "2026-02-23T00:21:01.015Z" }, - { url = "https://files.pythonhosted.org/packages/ed/a6/d05a85fd51daeb2e4ea71d102f15b34fedca8e931af02594193ae4fd25f7/scipy-1.17.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:45abad819184f07240d8a696117a7aacd39787af9e0b719d00285549ed19a1e9", size = 28170131, upload-time = "2026-02-23T00:21:05.888Z" }, - { url = "https://files.pythonhosted.org/packages/db/7b/8624a203326675d7746a254083a187398090a179335b2e4a20e2ddc46e83/scipy-1.17.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:3fd1fcdab3ea951b610dc4cef356d416d5802991e7e32b5254828d342f7b7e0b", size = 20342032, upload-time = "2026-02-23T00:21:09.904Z" }, - { url = "https://files.pythonhosted.org/packages/c9/35/2c342897c00775d688d8ff3987aced3426858fd89d5a0e26e020b660b301/scipy-1.17.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:7bdf2da170b67fdf10bca777614b1c7d96ae3ca5794fd9587dce41eb2966e866", size = 22678766, upload-time = "2026-02-23T00:21:14.313Z" }, - { url = "https://files.pythonhosted.org/packages/ef/f2/7cdb8eb308a1a6ae1e19f945913c82c23c0c442a462a46480ce487fdc0ac/scipy-1.17.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:adb2642e060a6549c343603a3851ba76ef0b74cc8c079a9a58121c7ec9fe2350", size = 32957007, upload-time = "2026-02-23T00:21:19.663Z" }, - { url = "https://files.pythonhosted.org/packages/0b/2e/7eea398450457ecb54e18e9d10110993fa65561c4f3add5e8eccd2b9cd41/scipy-1.17.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eee2cfda04c00a857206a4330f0c5e3e56535494e30ca445eb19ec624ae75118", size = 35221333, upload-time = "2026-02-23T00:21:25.278Z" }, - { url = "https://files.pythonhosted.org/packages/d9/77/5b8509d03b77f093a0d52e606d3c4f79e8b06d1d38c441dacb1e26cacf46/scipy-1.17.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d2650c1fb97e184d12d8ba010493ee7b322864f7d3d00d3f9bb97d9c21de4068", size = 35042066, upload-time = "2026-02-23T00:21:31.358Z" }, - { url = "https://files.pythonhosted.org/packages/f9/df/18f80fb99df40b4070328d5ae5c596f2f00fffb50167e31439e932f29e7d/scipy-1.17.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:08b900519463543aa604a06bec02461558a6e1cef8fdbb8098f77a48a83c8118", size = 37612763, upload-time = "2026-02-23T00:21:37.247Z" }, - { url = "https://files.pythonhosted.org/packages/4b/39/f0e8ea762a764a9dc52aa7dabcfad51a354819de1f0d4652b6a1122424d6/scipy-1.17.1-cp314-cp314-win_amd64.whl", hash = "sha256:3877ac408e14da24a6196de0ddcace62092bfc12a83823e92e49e40747e52c19", size = 37290984, upload-time = "2026-02-23T00:22:35.023Z" }, - { url = "https://files.pythonhosted.org/packages/7c/56/fe201e3b0f93d1a8bcf75d3379affd228a63d7e2d80ab45467a74b494947/scipy-1.17.1-cp314-cp314-win_arm64.whl", hash = "sha256:f8885db0bc2bffa59d5c1b72fad7a6a92d3e80e7257f967dd81abb553a90d293", size = 25192877, upload-time = "2026-02-23T00:22:39.798Z" }, - { url = "https://files.pythonhosted.org/packages/96/ad/f8c414e121f82e02d76f310f16db9899c4fcde36710329502a6b2a3c0392/scipy-1.17.1-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:1cc682cea2ae55524432f3cdff9e9a3be743d52a7443d0cba9017c23c87ae2f6", size = 31949750, upload-time = "2026-02-23T00:21:42.289Z" }, - { url = "https://files.pythonhosted.org/packages/7c/b0/c741e8865d61b67c81e255f4f0a832846c064e426636cd7de84e74d209be/scipy-1.17.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:2040ad4d1795a0ae89bfc7e8429677f365d45aa9fd5e4587cf1ea737f927b4a1", size = 28585858, upload-time = "2026-02-23T00:21:47.706Z" }, - { url = "https://files.pythonhosted.org/packages/ed/1b/3985219c6177866628fa7c2595bfd23f193ceebbe472c98a08824b9466ff/scipy-1.17.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:131f5aaea57602008f9822e2115029b55d4b5f7c070287699fe45c661d051e39", size = 20757723, upload-time = "2026-02-23T00:21:52.039Z" }, - { url = "https://files.pythonhosted.org/packages/c0/19/2a04aa25050d656d6f7b9e7b685cc83d6957fb101665bfd9369ca6534563/scipy-1.17.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9cdc1a2fcfd5c52cfb3045feb399f7b3ce822abdde3a193a6b9a60b3cb5854ca", size = 23043098, upload-time = "2026-02-23T00:21:56.185Z" }, - { url = "https://files.pythonhosted.org/packages/86/f1/3383beb9b5d0dbddd030335bf8a8b32d4317185efe495374f134d8be6cce/scipy-1.17.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e3dcd57ab780c741fde8dc68619de988b966db759a3c3152e8e9142c26295ad", size = 33030397, upload-time = "2026-02-23T00:22:01.404Z" }, - { url = "https://files.pythonhosted.org/packages/41/68/8f21e8a65a5a03f25a79165ec9d2b28c00e66dc80546cf5eb803aeeff35b/scipy-1.17.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9956e4d4f4a301ebf6cde39850333a6b6110799d470dbbb1e25326ac447f52a", size = 35281163, upload-time = "2026-02-23T00:22:07.024Z" }, - { url = "https://files.pythonhosted.org/packages/84/8d/c8a5e19479554007a5632ed7529e665c315ae7492b4f946b0deb39870e39/scipy-1.17.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a4328d245944d09fd639771de275701ccadf5f781ba0ff092ad141e017eccda4", size = 35116291, upload-time = "2026-02-23T00:22:12.585Z" }, - { url = "https://files.pythonhosted.org/packages/52/52/e57eceff0e342a1f50e274264ed47497b59e6a4e3118808ee58ddda7b74a/scipy-1.17.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a77cbd07b940d326d39a1d1b37817e2ee4d79cb30e7338f3d0cddffae70fcaa2", size = 37682317, upload-time = "2026-02-23T00:22:18.513Z" }, - { url = "https://files.pythonhosted.org/packages/11/2f/b29eafe4a3fbc3d6de9662b36e028d5f039e72d345e05c250e121a230dd4/scipy-1.17.1-cp314-cp314t-win_amd64.whl", hash = "sha256:eb092099205ef62cd1782b006658db09e2fed75bffcae7cc0d44052d8aa0f484", size = 37345327, upload-time = "2026-02-23T00:22:24.442Z" }, - { url = "https://files.pythonhosted.org/packages/07/39/338d9219c4e87f3e708f18857ecd24d22a0c3094752393319553096b98af/scipy-1.17.1-cp314-cp314t-win_arm64.whl", hash = "sha256:200e1050faffacc162be6a486a984a0497866ec54149a01270adc8a59b7c7d21", size = 25489165, upload-time = "2026-02-23T00:22:29.563Z" }, -] - -[[package]] -name = "scipy" -version = "1.18.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", -] -dependencies = [ - { name = "numpy", version = "2.5.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a7/25/c2700dfaf6442b4effaa91af24ebce5dc9d31bb4a69706313aae70d72cd0/scipy-1.18.0.tar.gz", hash = "sha256:67b2ad2ad54c72ca6d04975a9b2df8c3638c34ddd5b28738e94fc2b57929d378", size = 30774447, upload-time = "2026-06-19T15:01:43.456Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/19/ca10ead60b0acc80b2b833c2c4a4f2ff753d0f58b811f70d911c7e94a25c/scipy-1.18.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:7bd21faaf5a1a3b2eff922d02db5f191b99a6518db9078a8fb23169f6d22259a", size = 31056519, upload-time = "2026-06-19T14:59:45.203Z" }, - { url = "https://files.pythonhosted.org/packages/96/72/1e6442a00cd2924d361aa1b642ab6373ec35c6fabf311a760be9f76e0f13/scipy-1.18.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:265915e79107de9f946b855e50d7470d5893ec3f54b342e1aa6201cbdcd8bb6b", size = 28681889, upload-time = "2026-06-19T14:59:48.103Z" }, - { url = "https://files.pythonhosted.org/packages/9b/2d/11dd93d21e147a73ba22bd75c0b9208d3a2e0ec76d53170ce7d9029b1015/scipy-1.18.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9ab7b758be6940954a713ee466e2043e9f6e2ed965c1fce5c91039f4be3d90a9", size = 20423580, upload-time = "2026-06-19T14:59:50.665Z" }, - { url = "https://files.pythonhosted.org/packages/9c/01/93552f75e0d2a7dd115a45e59209c51e8d514daff02fc887d2623be06fe1/scipy-1.18.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:97b6cddaaee0a779ef6b5ca83c9604b27cc16b2b8fc22c142652df8793319fb8", size = 23054441, upload-time = "2026-06-19T14:59:53.564Z" }, - { url = "https://files.pythonhosted.org/packages/3c/23/21f5e703643d66f21faa6b4c73195bfcad70c55efcb4f1ab327cd7c4101a/scipy-1.18.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:52a96e21517c7292375c0e27dd796a811f03fcea5fd4d108fdfea8145dcf17ab", size = 33968720, upload-time = "2026-06-19T14:59:56.415Z" }, - { url = "https://files.pythonhosted.org/packages/dd/aa/1b939f6c67ed68635bb538e6752d3dacc02f66535182e939a89581a44e9c/scipy-1.18.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f55797419e16e7f30cf88ffb3113ce0467f00cfe3f70d5c281730b21769bfc2", size = 35287115, upload-time = "2026-06-19T14:59:59.411Z" }, - { url = "https://files.pythonhosted.org/packages/b6/ff/eec46be7e9234208f801062b53e1983085eddebd693f6c9bfb03b459830d/scipy-1.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ad033410e2e0672ffdc1042110cef20e1c46f8fd0616cee1d44d8d58fad8fc11", size = 35577989, upload-time = "2026-06-19T15:00:02.235Z" }, - { url = "https://files.pythonhosted.org/packages/84/ca/210d4759c7210bb7d269437421959b39a33434e2776b60c5cb8a763bb30a/scipy-1.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4a55985d54c769c872e64b7f4c8a81cc30ef700cc04296abbbf3705439c126de", size = 37421717, upload-time = "2026-06-19T15:00:05.102Z" }, - { url = "https://files.pythonhosted.org/packages/2b/54/9a9edb45345bd6744da5ddfb6628e5d5185920494c6a67ec45b6381004cb/scipy-1.18.0-cp312-cp312-win_amd64.whl", hash = "sha256:71ccc8faa2dd16ac310233203474a8b5cb67f10dedd54a3116d34943f4b19132", size = 36597428, upload-time = "2026-06-19T15:00:08.112Z" }, - { url = "https://files.pythonhosted.org/packages/99/0e/33f32a2a58987e26aec0f7df252cbbad1e90ae77bdbc76f40dd4ed0cf0ea/scipy-1.18.0-cp312-cp312-win_arm64.whl", hash = "sha256:d88363fd9d8fbd3511bd273f1a49efb2a540773ddf92a91d57498ce7dd7f3e76", size = 24351481, upload-time = "2026-06-19T15:00:11.103Z" }, - { url = "https://files.pythonhosted.org/packages/05/52/9c0136c2de7ae0779b7b366447766cec6d9f0702c56bb8ffeb04c8fd3af4/scipy-1.18.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:09143f676d157d9f546d663504ef9c1becb819824f1afc018814176411942446", size = 31036107, upload-time = "2026-06-19T15:00:14.03Z" }, - { url = "https://files.pythonhosted.org/packages/02/73/0291a64843270f4efb86cdcf2ee0f2048631b65ec6b405398b2b4dbf11bf/scipy-1.18.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:5efe260f69417b97ddae455bfb5a95e8359f7f66ad7fa9522a60feb66f169520", size = 28663303, upload-time = "2026-06-19T15:00:16.819Z" }, - { url = "https://files.pythonhosted.org/packages/d3/0f/10ffa0b697a572f4e0d48b92a88895d366422f019f723e7e14a84c050dac/scipy-1.18.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:68363b7eaacd8b5dd426df56d782cc156468ac79a127a1b87ca597d6e2e82197", size = 20404960, upload-time = "2026-06-19T15:00:19.635Z" }, - { url = "https://files.pythonhosted.org/packages/7e/d2/e896cea21ba8edd6c81d4c55b1ffcc717e79698dcbebf9641b4cfb4c6622/scipy-1.18.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:c5557d8be5da8e41353fcd4d21491fdbab83b062fc579e94dc09a7c8ab4f669b", size = 23034074, upload-time = "2026-06-19T15:00:22.107Z" }, - { url = "https://files.pythonhosted.org/packages/ea/b2/e83ea34279a52c03374477c74006256ec78df65fc877baa4617d6de1d202/scipy-1.18.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0d13bca67c096d89fb95ced0d8921807300fce0275643aef9533cc63a0773468", size = 33942038, upload-time = "2026-06-19T15:00:24.964Z" }, - { url = "https://files.pythonhosted.org/packages/f6/af/e8fe5fb136f51e2b01678b92cb4106d10d8cd68ec147ead2e7cb0ac75398/scipy-1.18.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a46f9273dbd0eb1cefba61c9b8648b4dfe3cbc14a080176f9a73e44b8336dc7f", size = 35266390, upload-time = "2026-06-19T15:00:28.059Z" }, - { url = "https://files.pythonhosted.org/packages/3a/49/2c5cbb907b56695fc67517811d1db234dfd83381a84814ec220aded2794d/scipy-1.18.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5aba46108853ddfc77906b6557aac839d2b52e900c1d72a1180adaaab58d265f", size = 35551324, upload-time = "2026-06-19T15:00:31.014Z" }, - { url = "https://files.pythonhosted.org/packages/bb/73/eda39f7a2d306ff0ffc574afd13c0bbb6d10a603d9a413998ee269487a80/scipy-1.18.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b6f758e35f12757b5d95c00bc6de2438e229c2664b7a92e96f205959d9f2dfa4", size = 37404785, upload-time = "2026-06-19T15:00:34.072Z" }, - { url = "https://files.pythonhosted.org/packages/b7/d2/ae881ee28d014f38e0ccbfd974a06a919ba9af34f1f74bf42b5301891d63/scipy-1.18.0-cp313-cp313-win_amd64.whl", hash = "sha256:1afac4a847207c7ff8efd321734a50b06d0280b3b2a2c0fc2f413101747ad7c7", size = 36554943, upload-time = "2026-06-19T15:00:36.903Z" }, - { url = "https://files.pythonhosted.org/packages/70/3a/21154e2d54eb3639c6bf4dbae2e531c68356bfe95990daa30df33b30d556/scipy-1.18.0-cp313-cp313-win_arm64.whl", hash = "sha256:c5dbddf60e58c2312316d097271a8e73d40eaf2eabfa4d95ed7d3695bbf2ce7b", size = 24350911, upload-time = "2026-06-19T15:00:40.062Z" }, - { url = "https://files.pythonhosted.org/packages/78/b5/915a19b3de2f7430062b509653563db1633ddbb6f021b06731521115d4e2/scipy-1.18.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:4c256ee70c0d1a8a2ace807e199ccd4e3f57037433842abb3fb36bc17eaa9578", size = 31036253, upload-time = "2026-06-19T15:00:43.216Z" }, - { url = "https://files.pythonhosted.org/packages/d7/88/b72def7262e150d16be13fca37a96481138d624e700340bc3362a7588929/scipy-1.18.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:2ef3abc54a4ffc53765374b0d5728532dfdd2585ed23f6b11c206a1f0b1b9af8", size = 28673758, upload-time = "2026-06-19T15:00:46.663Z" }, - { url = "https://files.pythonhosted.org/packages/91/02/2e636a61a525632c373cf6a9c24442a3ffb79e364d38e98b32042964ac32/scipy-1.18.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:f2a6af57bd9e4a75d70e4117e78a1bbee84f79ae3fbb6d0111005d6ebcc4cb8d", size = 20415514, upload-time = "2026-06-19T15:00:49.399Z" }, - { url = "https://files.pythonhosted.org/packages/c9/b6/2135974442f6aba159d9d39d774a1c8cb19947016725d69fecc685df45bf/scipy-1.18.0-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:3f1ac564d3bf6c03d861d2cd87a1bea0da2887136f7fb1bf519c05a8971452d6", size = 23034398, upload-time = "2026-06-19T15:00:51.941Z" }, - { url = "https://files.pythonhosted.org/packages/f6/e6/ba89ec5abf6ee9257c0d1ec985573f3ae32742c24bc03e016388a40b1b15/scipy-1.18.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40395a5fcd1abee49a5c7aaa98c29db393eedc835138560a588c47ec16156690", size = 33998032, upload-time = "2026-06-19T15:00:54.838Z" }, - { url = "https://files.pythonhosted.org/packages/7f/c4/bc41eb19b0fd0db868f4132920879019318d80cc522ad8f2bca4611af808/scipy-1.18.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8ca01e8ae69f1b18e9a58d91afead31be3cef0dd905a10249dac559ee15460a0", size = 35283333, upload-time = "2026-06-19T15:00:58.152Z" }, - { url = "https://files.pythonhosted.org/packages/53/a4/cbdeef6eb3830a8462a9d4ada814de5fc984345cc9ecf17cbec51a036f1e/scipy-1.18.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7a7f3b01647384dbc3a711e8c6778e0aabbe93959249fef5c7393396bcac0867", size = 35610216, upload-time = "2026-06-19T15:01:01.155Z" }, - { url = "https://files.pythonhosted.org/packages/80/4d/b2b82502b65f661d1b789c1665dcdf315d5f12194e06fc0b37946294ebae/scipy-1.18.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6aa94e78ec192a30063a5e72e561c28af769dc311190b24fe91774eff1969709", size = 37418960, upload-time = "2026-06-19T15:01:04.155Z" }, - { url = "https://files.pythonhosted.org/packages/93/3e/902d836831474b0ab5a37d16404f7bc5fafd9efba632890e271ba952635f/scipy-1.18.0-cp314-cp314-win_amd64.whl", hash = "sha256:2d8bbdc6c817f5b4006a54d799d4f5bab6f910193cbb9a1ff310833d4d270f61", size = 37288845, upload-time = "2026-06-19T15:01:07.822Z" }, - { url = "https://files.pythonhosted.org/packages/b6/43/8d73b337a3bdb14daa0314f0434210747c02d79d729ce1777574a817dcf6/scipy-1.18.0-cp314-cp314-win_arm64.whl", hash = "sha256:18e9575f1569b2c54174e6159d32942e03731177f63dce7975f0a0c88d102f5b", size = 24988971, upload-time = "2026-06-19T15:01:11.076Z" }, - { url = "https://files.pythonhosted.org/packages/b4/b4/f11918b0508a2787031a0499a03fbe3546f3bb5ca05d01038c45b278c09a/scipy-1.18.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:f351e0dd702687d12a402b867a1b4146a256923e1c38317cbc472f6372b94707", size = 31399325, upload-time = "2026-06-19T15:01:13.723Z" }, - { url = "https://files.pythonhosted.org/packages/7b/d1/1f287b57c0ff0ee5185dff3946d92c8017d39b0e431f0ae79a3ff1859512/scipy-1.18.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7c7a51b33ce387193c97f228320cf8e87361daa1bba750638677729598b3e677", size = 29092110, upload-time = "2026-06-19T15:01:16.908Z" }, - { url = "https://files.pythonhosted.org/packages/ff/1a/7b74eb6c392fdcb27d414c0e7558a6d0231eb3b6d73571f479bb81ea8794/scipy-1.18.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:84031d7b052a54fae2f8632e0ec802073d385476eb9a63079bce6e23ef9283d4", size = 20833811, upload-time = "2026-06-19T15:01:20.488Z" }, - { url = "https://files.pythonhosted.org/packages/7c/ad/f3941716320a7b9cb4d68734a903b45fe16eff5fb7da7e16f2e619304979/scipy-1.18.0-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:56abf29a7c067dde59be8b9a22d606a4ea1b2f2a4b756d9d903c62818f5dacce", size = 23396644, upload-time = "2026-06-19T15:01:23.364Z" }, - { url = "https://files.pythonhosted.org/packages/22/22/1446b62ffe07f9719b7d9b1b6a4e05a772833ae8f441fe4c22c34c9b250f/scipy-1.18.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ad44305cfa24b1ba5803cbbebf033590ccbac1aa5d612d727b785325ab408b0", size = 34079318, upload-time = "2026-06-19T15:01:26.002Z" }, - { url = "https://files.pythonhosted.org/packages/56/3b/b87da667098bb470fa30c7011b0ba351ee976dd395c78798c66e941665a3/scipy-1.18.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:945c1761b93f38d7f99ae81ae80c63e621471608c7eeead563f6df025585cd58", size = 35324320, upload-time = "2026-06-19T15:01:28.881Z" }, - { url = "https://files.pythonhosted.org/packages/f8/a1/c7932f91909759b0267f75fdea34e91309f96b895757534b76a90b6b4344/scipy-1.18.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1a4441f15d620578772a49e5ab48c0ee1f7a0220e387110283062729136b2553", size = 35699541, upload-time = "2026-06-19T15:01:31.968Z" }, - { url = "https://files.pythonhosted.org/packages/f7/86/5185061a1fcc41d18c5dc2463969b3a3964b31d9ac67b2fb05d4c7ff7670/scipy-1.18.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9aac6192fac56bf2ca534389d24623f07b39ff83317d58287285e7fbd622ff76", size = 37472480, upload-time = "2026-06-19T15:01:35.136Z" }, - { url = "https://files.pythonhosted.org/packages/31/8e/f04c68e39919a010d34f2ee1367fd705b0a25a02f609d755f0bfbc0a15fc/scipy-1.18.0-cp314-cp314t-win_amd64.whl", hash = "sha256:e40baea28ae7f5475c779741e2d90b1247c78531207b49c7030e698ff81cee3f", size = 37365390, upload-time = "2026-06-19T15:01:38.091Z" }, - { url = "https://files.pythonhosted.org/packages/d5/19/969dc072906c84dd0a3b05dcf57ea750936087d7873549e408b35cfc3f97/scipy-1.18.0-cp314-cp314t-win_arm64.whl", hash = "sha256:368e0a705903c466aa5f08eefb39e6b1b6b2d659e7352a31fd9e2438365be0f8", size = 25279661, upload-time = "2026-06-19T15:01:40.817Z" }, -] - -[[package]] -name = "six" -version = "1.17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, -] - -[[package]] -name = "sniffio" -version = "1.3.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, -] - -[[package]] -name = "starlette" -version = "1.3.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/eb/e3/7c1dc7381d9f8ab7d854328ebfa884e62cb3f3d8549ddfd37c7814f42afa/starlette-1.3.1.tar.gz", hash = "sha256:05d0213193f2fbaae60e2ecb593b4add4262ad4e46536b54abe36f11a71724e0", size = 2703240, upload-time = "2026-06-12T09:23:11.602Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/bb/2799cc2ede3ed41131f8975621e7213dfc7ef4acbbaadfa440f32500c370/starlette-1.3.1-py3-none-any.whl", hash = "sha256:c7372aae11c3c3f26a42df7bd626cec2f47d03483d261d369516a615a53714c6", size = 73632, upload-time = "2026-06-12T09:23:10.017Z" }, -] - -[[package]] -name = "tqdm" -version = "4.70.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/21/3b/6c24bec5be5e743ffd99576daa5cc077722fc7d5bbc00bd133fa0c698dc6/tqdm-4.70.0.tar.gz", hash = "sha256:55b0b0dbd97462d06ebee91e4dac24ed4d4702be82b24f07e6c1d27e08cea220", size = 795438, upload-time = "2026-07-27T11:33:15.271Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/1c/01bfd571a64e7f270e6bab5e33777debe0edc56759233ce84f27dec92d14/tqdm-4.70.0-py3-none-any.whl", hash = "sha256:7f585706bfddbdebf89daac705b2dfcc16890130727d3197ca62c732b4310953", size = 80184, upload-time = "2026-07-27T11:33:13.167Z" }, -] - -[[package]] -name = "travel-plan-validator" -version = "1.0.0" -source = { editable = "." } -dependencies = [ - { name = "anthropic" }, - { name = "fastapi" }, - { name = "httpx" }, - { name = "neo4j" }, - { name = "openpyxl" }, - { name = "pandas" }, - { name = "pdfplumber" }, - { name = "pydantic" }, - { name = "pydantic-settings" }, - { name = "python-dotenv" }, - { name = "python-multipart" }, - { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, - { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, - { name = "tqdm" }, - { name = "uvicorn", extra = ["standard"] }, -] - -[package.optional-dependencies] -dev = [ - { name = "pytest" }, - { name = "ruff" }, -] - -[package.metadata] -requires-dist = [ - { name = "anthropic", specifier = ">=0.39" }, - { name = "fastapi", specifier = ">=0.115" }, - { name = "httpx", specifier = ">=0.27" }, - { name = "neo4j", specifier = ">=5.26" }, - { name = "openpyxl", specifier = ">=3.1" }, - { name = "pandas", specifier = ">=2.2" }, - { name = "pdfplumber", specifier = ">=0.11" }, - { name = "pydantic", specifier = ">=2.9" }, - { name = "pydantic-settings", specifier = ">=2.6" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.3" }, - { name = "python-dotenv", specifier = ">=1.0" }, - { name = "python-multipart", specifier = ">=0.0.32" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "scipy", specifier = ">=1.13" }, - { name = "tqdm", specifier = ">=4.66" }, - { name = "uvicorn", extras = ["standard"], specifier = ">=0.30" }, -] -provides-extras = ["dev"] - -[[package]] -name = "typing-extensions" -version = "4.16.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", size = 113555, upload-time = "2026-07-02T08:40:05.92Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", size = 45571, upload-time = "2026-07-02T08:40:04.659Z" }, -] - -[[package]] -name = "typing-inspection" -version = "0.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, -] - -[[package]] -name = "tzdata" -version = "2026.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/92/ff/5a28bdfd8c3ebec42564ac7d0e54ca3db65044a9314a97f9564fa7a1e926/tzdata-2026.3.tar.gz", hash = "sha256:4a1518b8993086a7982523e071643f3c0e5f213e75b21318e78bcabfff9d1415", size = 198674, upload-time = "2026-07-10T08:50:37.887Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/6d/b53b99a9f2766d095985947a5782f1702cabb129a34f7a802d7197af832f/tzdata-2026.3-py2.py3-none-any.whl", hash = "sha256:dc096730c87af6cab1b171c9d532be840741ff5d459015e7f6947bd7d7e54931", size = 348168, upload-time = "2026-07-10T08:50:36.46Z" }, -] - -[[package]] -name = "uvicorn" -version = "0.52.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "click" }, - { name = "h11" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/05/c8/2d307868453a4bca6e64fa3581d122ae0748a0869c53f159339def179c7c/uvicorn-0.52.0.tar.gz", hash = "sha256:ca8876ad6c1983f394157c168b39d52f6dd56dabf5602fa0982751cffc2293ae", size = 97504, upload-time = "2026-07-29T08:45:34.065Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/39/e6/b5c0630ace9757232aec07112be8146b812787db52141ff9d50674aa7634/uvicorn-0.52.0-py3-none-any.whl", hash = "sha256:3d887809810b89ed33501bcf0a9aba469b06ecd608158efce04bd6b48d8c9b08", size = 79058, upload-time = "2026-07-29T08:45:32.492Z" }, -] - -[package.optional-dependencies] -standard = [ - { name = "httptools" }, - { name = "python-dotenv" }, - { name = "pyyaml" }, - { name = "uvloop", marker = "platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'" }, - { name = "watchfiles" }, - { name = "websockets" }, -] - -[[package]] -name = "uvloop" -version = "0.22.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/06/f0/18d39dbd1971d6d62c4629cc7fa67f74821b0dc1f5a77af43719de7936a7/uvloop-0.22.1.tar.gz", hash = "sha256:6c84bae345b9147082b17371e3dd5d42775bddce91f885499017f4607fdaf39f", size = 2443250, upload-time = "2025-10-16T22:17:19.342Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/d5/69900f7883235562f1f50d8184bb7dd84a2fb61e9ec63f3782546fdbd057/uvloop-0.22.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c60ebcd36f7b240b30788554b6f0782454826a0ed765d8430652621b5de674b9", size = 1352420, upload-time = "2025-10-16T22:16:21.187Z" }, - { url = "https://files.pythonhosted.org/packages/a8/73/c4e271b3bce59724e291465cc936c37758886a4868787da0278b3b56b905/uvloop-0.22.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b7f102bf3cb1995cfeaee9321105e8f5da76fdb104cdad8986f85461a1b7b77", size = 748677, upload-time = "2025-10-16T22:16:22.558Z" }, - { url = "https://files.pythonhosted.org/packages/86/94/9fb7fad2f824d25f8ecac0d70b94d0d48107ad5ece03769a9c543444f78a/uvloop-0.22.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53c85520781d84a4b8b230e24a5af5b0778efdb39142b424990ff1ef7c48ba21", size = 3753819, upload-time = "2025-10-16T22:16:23.903Z" }, - { url = "https://files.pythonhosted.org/packages/74/4f/256aca690709e9b008b7108bc85fba619a2bc37c6d80743d18abad16ee09/uvloop-0.22.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56a2d1fae65fd82197cb8c53c367310b3eabe1bbb9fb5a04d28e3e3520e4f702", size = 3804529, upload-time = "2025-10-16T22:16:25.246Z" }, - { url = "https://files.pythonhosted.org/packages/7f/74/03c05ae4737e871923d21a76fe28b6aad57f5c03b6e6bfcfa5ad616013e4/uvloop-0.22.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40631b049d5972c6755b06d0bfe8233b1bd9a8a6392d9d1c45c10b6f9e9b2733", size = 3621267, upload-time = "2025-10-16T22:16:26.819Z" }, - { url = "https://files.pythonhosted.org/packages/75/be/f8e590fe61d18b4a92070905497aec4c0e64ae1761498cad09023f3f4b3e/uvloop-0.22.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:535cc37b3a04f6cd2c1ef65fa1d370c9a35b6695df735fcff5427323f2cd5473", size = 3723105, upload-time = "2025-10-16T22:16:28.252Z" }, - { url = "https://files.pythonhosted.org/packages/3d/ff/7f72e8170be527b4977b033239a83a68d5c881cc4775fca255c677f7ac5d/uvloop-0.22.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42", size = 1359936, upload-time = "2025-10-16T22:16:29.436Z" }, - { url = "https://files.pythonhosted.org/packages/c3/c6/e5d433f88fd54d81ef4be58b2b7b0cea13c442454a1db703a1eea0db1a59/uvloop-0.22.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:51eb9bd88391483410daad430813d982010f9c9c89512321f5b60e2cddbdddd6", size = 752769, upload-time = "2025-10-16T22:16:30.493Z" }, - { url = "https://files.pythonhosted.org/packages/24/68/a6ac446820273e71aa762fa21cdcc09861edd3536ff47c5cd3b7afb10eeb/uvloop-0.22.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:700e674a166ca5778255e0e1dc4e9d79ab2acc57b9171b79e65feba7184b3370", size = 4317413, upload-time = "2025-10-16T22:16:31.644Z" }, - { url = "https://files.pythonhosted.org/packages/5f/6f/e62b4dfc7ad6518e7eff2516f680d02a0f6eb62c0c212e152ca708a0085e/uvloop-0.22.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b5b1ac819a3f946d3b2ee07f09149578ae76066d70b44df3fa990add49a82e4", size = 4426307, upload-time = "2025-10-16T22:16:32.917Z" }, - { url = "https://files.pythonhosted.org/packages/90/60/97362554ac21e20e81bcef1150cb2a7e4ffdaf8ea1e5b2e8bf7a053caa18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e047cc068570bac9866237739607d1313b9253c3051ad84738cbb095be0537b2", size = 4131970, upload-time = "2025-10-16T22:16:34.015Z" }, - { url = "https://files.pythonhosted.org/packages/99/39/6b3f7d234ba3964c428a6e40006340f53ba37993f46ed6e111c6e9141d18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:512fec6815e2dd45161054592441ef76c830eddaad55c8aa30952e6fe1ed07c0", size = 4296343, upload-time = "2025-10-16T22:16:35.149Z" }, - { url = "https://files.pythonhosted.org/packages/89/8c/182a2a593195bfd39842ea68ebc084e20c850806117213f5a299dfc513d9/uvloop-0.22.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:561577354eb94200d75aca23fbde86ee11be36b00e52a4eaf8f50fb0c86b7705", size = 1358611, upload-time = "2025-10-16T22:16:36.833Z" }, - { url = "https://files.pythonhosted.org/packages/d2/14/e301ee96a6dc95224b6f1162cd3312f6d1217be3907b79173b06785f2fe7/uvloop-0.22.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cdf5192ab3e674ca26da2eada35b288d2fa49fdd0f357a19f0e7c4e7d5077c8", size = 751811, upload-time = "2025-10-16T22:16:38.275Z" }, - { url = "https://files.pythonhosted.org/packages/b7/02/654426ce265ac19e2980bfd9ea6590ca96a56f10c76e63801a2df01c0486/uvloop-0.22.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e2ea3d6190a2968f4a14a23019d3b16870dd2190cd69c8180f7c632d21de68d", size = 4288562, upload-time = "2025-10-16T22:16:39.375Z" }, - { url = "https://files.pythonhosted.org/packages/15/c0/0be24758891ef825f2065cd5db8741aaddabe3e248ee6acc5e8a80f04005/uvloop-0.22.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0530a5fbad9c9e4ee3f2b33b148c6a64d47bbad8000ea63704fa8260f4cf728e", size = 4366890, upload-time = "2025-10-16T22:16:40.547Z" }, - { url = "https://files.pythonhosted.org/packages/d2/53/8369e5219a5855869bcee5f4d317f6da0e2c669aecf0ef7d371e3d084449/uvloop-0.22.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bc5ef13bbc10b5335792360623cc378d52d7e62c2de64660616478c32cd0598e", size = 4119472, upload-time = "2025-10-16T22:16:41.694Z" }, - { url = "https://files.pythonhosted.org/packages/f8/ba/d69adbe699b768f6b29a5eec7b47dd610bd17a69de51b251126a801369ea/uvloop-0.22.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1f38ec5e3f18c8a10ded09742f7fb8de0108796eb673f30ce7762ce1b8550cad", size = 4239051, upload-time = "2025-10-16T22:16:43.224Z" }, - { url = "https://files.pythonhosted.org/packages/90/cd/b62bdeaa429758aee8de8b00ac0dd26593a9de93d302bff3d21439e9791d/uvloop-0.22.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3879b88423ec7e97cd4eba2a443aa26ed4e59b45e6b76aabf13fe2f27023a142", size = 1362067, upload-time = "2025-10-16T22:16:44.503Z" }, - { url = "https://files.pythonhosted.org/packages/0d/f8/a132124dfda0777e489ca86732e85e69afcd1ff7686647000050ba670689/uvloop-0.22.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:4baa86acedf1d62115c1dc6ad1e17134476688f08c6efd8a2ab076e815665c74", size = 752423, upload-time = "2025-10-16T22:16:45.968Z" }, - { url = "https://files.pythonhosted.org/packages/a3/94/94af78c156f88da4b3a733773ad5ba0b164393e357cc4bd0ab2e2677a7d6/uvloop-0.22.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:297c27d8003520596236bdb2335e6b3f649480bd09e00d1e3a99144b691d2a35", size = 4272437, upload-time = "2025-10-16T22:16:47.451Z" }, - { url = "https://files.pythonhosted.org/packages/b5/35/60249e9fd07b32c665192cec7af29e06c7cd96fa1d08b84f012a56a0b38e/uvloop-0.22.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c1955d5a1dd43198244d47664a5858082a3239766a839b2102a269aaff7a4e25", size = 4292101, upload-time = "2025-10-16T22:16:49.318Z" }, - { url = "https://files.pythonhosted.org/packages/02/62/67d382dfcb25d0a98ce73c11ed1a6fba5037a1a1d533dcbb7cab033a2636/uvloop-0.22.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b31dc2fccbd42adc73bc4e7cdbae4fc5086cf378979e53ca5d0301838c5682c6", size = 4114158, upload-time = "2025-10-16T22:16:50.517Z" }, - { url = "https://files.pythonhosted.org/packages/f0/7a/f1171b4a882a5d13c8b7576f348acfe6074d72eaf52cccef752f748d4a9f/uvloop-0.22.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:93f617675b2d03af4e72a5333ef89450dfaa5321303ede6e67ba9c9d26878079", size = 4177360, upload-time = "2025-10-16T22:16:52.646Z" }, - { url = "https://files.pythonhosted.org/packages/79/7b/b01414f31546caf0919da80ad57cbfe24c56b151d12af68cee1b04922ca8/uvloop-0.22.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:37554f70528f60cad66945b885eb01f1bb514f132d92b6eeed1c90fd54ed6289", size = 1454790, upload-time = "2025-10-16T22:16:54.355Z" }, - { url = "https://files.pythonhosted.org/packages/d4/31/0bb232318dd838cad3fa8fb0c68c8b40e1145b32025581975e18b11fab40/uvloop-0.22.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b76324e2dc033a0b2f435f33eb88ff9913c156ef78e153fb210e03c13da746b3", size = 796783, upload-time = "2025-10-16T22:16:55.906Z" }, - { url = "https://files.pythonhosted.org/packages/42/38/c9b09f3271a7a723a5de69f8e237ab8e7803183131bc57c890db0b6bb872/uvloop-0.22.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:badb4d8e58ee08dad957002027830d5c3b06aea446a6a3744483c2b3b745345c", size = 4647548, upload-time = "2025-10-16T22:16:57.008Z" }, - { url = "https://files.pythonhosted.org/packages/c1/37/945b4ca0ac27e3dc4952642d4c900edd030b3da6c9634875af6e13ae80e5/uvloop-0.22.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b91328c72635f6f9e0282e4a57da7470c7350ab1c9f48546c0f2866205349d21", size = 4467065, upload-time = "2025-10-16T22:16:58.206Z" }, - { url = "https://files.pythonhosted.org/packages/97/cc/48d232f33d60e2e2e0b42f4e73455b146b76ebe216487e862700457fbf3c/uvloop-0.22.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:daf620c2995d193449393d6c62131b3fbd40a63bf7b307a1527856ace637fe88", size = 4328384, upload-time = "2025-10-16T22:16:59.36Z" }, - { url = "https://files.pythonhosted.org/packages/e4/16/c1fd27e9549f3c4baf1dc9c20c456cd2f822dbf8de9f463824b0c0357e06/uvloop-0.22.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6cde23eeda1a25c75b2e07d39970f3374105d5eafbaab2a4482be82f272d5a5e", size = 4296730, upload-time = "2025-10-16T22:17:00.744Z" }, -] - -[[package]] -name = "watchfiles" -version = "1.2.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cd/41/5e1a4bb12aac5f1493fa1bdc11154eca3b258ca4eba65d39c473fe19d8e9/watchfiles-1.2.0.tar.gz", hash = "sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838", size = 108252, upload-time = "2026-05-18T04:32:04.251Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/3d/8024c801df84d1587740d0359e7fdd80afeae3d159011f3d5376dd82f18e/watchfiles-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201", size = 400242, upload-time = "2026-05-18T04:31:19.014Z" }, - { url = "https://files.pythonhosted.org/packages/87/5b/f4dfd45323e949984a3a7f9dc31d1cbb049921e7d98253488dda72ccdaa9/watchfiles-1.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5", size = 394562, upload-time = "2026-05-18T04:30:08.46Z" }, - { url = "https://files.pythonhosted.org/packages/98/d8/19483ef075d601c409bce8bcbb5c0f81a10876fff870400568f08ce484a1/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a", size = 456611, upload-time = "2026-05-18T04:30:45.723Z" }, - { url = "https://files.pythonhosted.org/packages/b1/6a/cc81fbe7ee42f2f22e661a6e12def7807e01b14b2f39e0ff83fd373fd307/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1", size = 461379, upload-time = "2026-05-18T04:31:29.292Z" }, - { url = "https://files.pythonhosted.org/packages/b1/57/7e669002082c0a0f4fb5113bb70125f7110124b846b0a11bc5ae8e90eac1/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717", size = 493556, upload-time = "2026-05-18T04:30:05.44Z" }, - { url = "https://files.pythonhosted.org/packages/45/7d/f60a2b19807b21fe8281f3a8da4f59eef0d5f96825ac4680ba2d4f2ebf91/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b", size = 575255, upload-time = "2026-05-18T04:30:40.568Z" }, - { url = "https://files.pythonhosted.org/packages/bd/49/77f5b5e6efbcd57482f74948ebb1b97e5c0046d6b61475042d830c84b3ff/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5", size = 467052, upload-time = "2026-05-18T04:31:17.942Z" }, - { url = "https://files.pythonhosted.org/packages/ee/5a/73e2959af1b97fd5d556f9a8bdba017be23ceeef731869d5eaa0a753d5a3/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e", size = 456858, upload-time = "2026-05-18T04:30:30.182Z" }, - { url = "https://files.pythonhosted.org/packages/50/57/1bc8c27fad7e6c19bddee15d276dbb6ab72480ec01c127afff1673aee417/watchfiles-1.2.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165", size = 467579, upload-time = "2026-05-18T04:32:15.897Z" }, - { url = "https://files.pythonhosted.org/packages/09/6c/3c2e44edba3553c5e3c3b8c8a2a6dee6b9e12ae2cf4bd2378bebf9dc3038/watchfiles-1.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6", size = 633253, upload-time = "2026-05-18T04:31:37.123Z" }, - { url = "https://files.pythonhosted.org/packages/30/c2/d8c84a882ab39bbefcc4915ab3e91830b7a7e990c5570b0b69075aba3faf/watchfiles-1.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5", size = 660713, upload-time = "2026-05-18T04:31:24.62Z" }, - { url = "https://files.pythonhosted.org/packages/a9/07/f97736a5fc605364fe67b25e9fa4a6965dfd4840d50c406ada507e9d735f/watchfiles-1.2.0-cp311-cp311-win32.whl", hash = "sha256:9342472aff9b093c5acd4f6d8f70ae0937964ab56542502bcf5579782da69ae8", size = 277222, upload-time = "2026-05-18T04:31:21.131Z" }, - { url = "https://files.pythonhosted.org/packages/cf/99/2b04981977fc2608afd60360d928c6aecf6b950292ca221d98f4005f6694/watchfiles-1.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:dbd6c97045dad81227c8d040173da044c1de08de64a5ea8b555da4aee1d5fa22", size = 290274, upload-time = "2026-05-18T04:31:45.966Z" }, - { url = "https://files.pythonhosted.org/packages/3c/74/f7f58a7075ee9cf612b0cfcddb78b8cd8234f0742d6f0075cf0da2dde1c6/watchfiles-1.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:57a2d9fa4fb4c2ecae57b13dfff2c7ab53e21a2ba674fe9f05506680fcdcc0d7", size = 283460, upload-time = "2026-05-18T04:31:39.126Z" }, - { url = "https://files.pythonhosted.org/packages/b8/2f/e42c992d2afda3108ea1c02acecc991b9f31d05c14adc2a7cee9ee211fc4/watchfiles-1.2.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26", size = 400115, upload-time = "2026-05-18T04:32:02.06Z" }, - { url = "https://files.pythonhosted.org/packages/5f/8f/6af2ea19065c91d8b0ea3516fdfc8c0d349f407e8e9fbf4e5a17360de8ad/watchfiles-1.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c", size = 393659, upload-time = "2026-05-18T04:30:50.951Z" }, - { url = "https://files.pythonhosted.org/packages/13/01/b32a967c56fb3e3e5be3db52c3d3b87fa4513aa367d8ed1ad96d42952e5f/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc", size = 453207, upload-time = "2026-05-18T04:31:04.231Z" }, - { url = "https://files.pythonhosted.org/packages/04/98/97557a812180338cb1abd32e1cffcc4588f59b5f23e0cb006b2ba95ba64a/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0", size = 459273, upload-time = "2026-05-18T04:31:50.377Z" }, - { url = "https://files.pythonhosted.org/packages/e8/a8/b4b08dcb7653b8087c6586f7ce649505900e866bbcfe40dc9587af02e686/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c", size = 489927, upload-time = "2026-05-18T04:31:42.485Z" }, - { url = "https://files.pythonhosted.org/packages/50/94/3dceea03545d2e5ddfd839f0ddd5e1cecbf1697b5a428d5ba11cef6af95d/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01", size = 570476, upload-time = "2026-05-18T04:31:03.071Z" }, - { url = "https://files.pythonhosted.org/packages/cc/f2/d39a5450c3532092b91f81d274360e613c2371bc874a89c7a1a3c5e8d138/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8", size = 465650, upload-time = "2026-05-18T04:30:12.701Z" }, - { url = "https://files.pythonhosted.org/packages/22/24/ed72f68cbc1333ca9b9f2200aa048bb6658ae41709bc1caad4310f4bdffd/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5", size = 456398, upload-time = "2026-05-18T04:30:13.784Z" }, - { url = "https://files.pythonhosted.org/packages/0d/64/982ef4a4e5bab5b6e5b6becc8cd5e732f6130a78b855f0abec6439a9a135/watchfiles-1.2.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d", size = 465140, upload-time = "2026-05-18T04:31:52.111Z" }, - { url = "https://files.pythonhosted.org/packages/a0/0c/95282abf4ed680b6096010bcfc30c5fa7a041fc5aa5a2ad17a2cc6c75bba/watchfiles-1.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c", size = 630259, upload-time = "2026-05-18T04:31:25.676Z" }, - { url = "https://files.pythonhosted.org/packages/30/45/607c1de1530c4bdcf2cf1d1ecc2505ddba5d96bd43ba9f2b0e79876f850f/watchfiles-1.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906", size = 659859, upload-time = "2026-05-18T04:30:24.333Z" }, - { url = "https://files.pythonhosted.org/packages/fa/08/d9e2e0f9e8e6791d33aefc694ad7eefa7f901f63caff84a81ded38692f9c/watchfiles-1.2.0-cp312-cp312-win32.whl", hash = "sha256:7a2cffd17d27d2ecbb310c2b1d8174f222a5495b1a721894afa88ec11e25b898", size = 275480, upload-time = "2026-05-18T04:30:31.307Z" }, - { url = "https://files.pythonhosted.org/packages/1c/e6/9d42569c0102645cc8cea5d8c7d8a1e9d4ada2cb7f05f75e554b8aa2202a/watchfiles-1.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:f155b3a1b2a5fc89cdc70d47ee5d54e3b75e88efa34982028a35daef9ba00379", size = 288718, upload-time = "2026-05-18T04:32:10.745Z" }, - { url = "https://files.pythonhosted.org/packages/0a/26/88e0dc6ee3898169d7fa22bb6a69cabf2502d2ee25cb8c876d1262d204f8/watchfiles-1.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:8fa585ede612ee9f9e91b18bebf9ba11b9ae29a4e3a0d0cf6fca3e382133f0d5", size = 281026, upload-time = "2026-05-18T04:30:22.23Z" }, - { url = "https://files.pythonhosted.org/packages/d1/4d/70a7feced9f87e2ff26dba42667290f41694fc64646c67261fbb8cab5d5c/watchfiles-1.2.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98", size = 399730, upload-time = "2026-05-18T04:31:38.162Z" }, - { url = "https://files.pythonhosted.org/packages/31/3a/0da302f2307aee316922806ebd5726c542cbd787c938271cf14a074c7daf/watchfiles-1.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44", size = 392842, upload-time = "2026-05-18T04:30:27.051Z" }, - { url = "https://files.pythonhosted.org/packages/db/ef/d5bdb705c224dbc256aa0c1ec47bf4e61ec52558f2afb44a71a1fe4d7015/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658", size = 452989, upload-time = "2026-05-18T04:31:11.945Z" }, - { url = "https://files.pythonhosted.org/packages/71/29/5495f2c1661949ef7a35e4d71111d129cfe7606414a26887a919d0a55406/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb", size = 458978, upload-time = "2026-05-18T04:30:52.606Z" }, - { url = "https://files.pythonhosted.org/packages/d5/8c/7f9c07c433811c2fffd93e13fdfb7135de9aab5f2ae41be08960fa0047dc/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f", size = 490248, upload-time = "2026-05-18T04:31:36.003Z" }, - { url = "https://files.pythonhosted.org/packages/3c/11/d93632febc52fbc21be90231bb7c17fd5387f46c9076fd40a5f9c2ae6910/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0", size = 571847, upload-time = "2026-05-18T04:31:10.862Z" }, - { url = "https://files.pythonhosted.org/packages/55/b4/383173e73aabb07ad1d9c7aa859d95437ac46a6d6a1e11005facda0c9d19/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5", size = 465974, upload-time = "2026-05-18T04:30:17.006Z" }, - { url = "https://files.pythonhosted.org/packages/a7/6c/89b1a230a78f57c52dd8893adb1f92f94411721b6ec12596c56d98c74356/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71", size = 454782, upload-time = "2026-05-18T04:30:35.656Z" }, - { url = "https://files.pythonhosted.org/packages/24/62/1732118367cfff0a9fce3bf62ff4bfded09ef5df21d9d446b858b3f70a96/watchfiles-1.2.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3", size = 465182, upload-time = "2026-05-18T04:30:20.846Z" }, - { url = "https://files.pythonhosted.org/packages/28/96/716f7e5f51339bf22963f3345f9f27d7f3b30e2eadc597e257c881dd3c53/watchfiles-1.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0", size = 629841, upload-time = "2026-05-18T04:31:05.397Z" }, - { url = "https://files.pythonhosted.org/packages/4c/fe/c40783950fd771ccf66ab3ec2722d188a9af1c7f96c6e811f36e40c6e03f/watchfiles-1.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427", size = 658028, upload-time = "2026-05-18T04:31:48.22Z" }, - { url = "https://files.pythonhosted.org/packages/71/72/4508db1856d1d87fcbb3b63f4839bab1b5682cb0e8d224d122263c09654a/watchfiles-1.2.0-cp313-cp313-win32.whl", hash = "sha256:eb283ee99e21ad6443c8cdb06ac5b34b1308c329cbdf03fa02b445363714c799", size = 275183, upload-time = "2026-05-18T04:30:59.57Z" }, - { url = "https://files.pythonhosted.org/packages/f9/36/14b76ca57652e5cc5fd1c11f32a261292c08a0d19a00351013c2549cbfb2/watchfiles-1.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:a0f27f01bee51861392bb6b7c4fdb290b27d1eb194e9e28788d68102a0e898d9", size = 288059, upload-time = "2026-05-18T04:32:07.937Z" }, - { url = "https://files.pythonhosted.org/packages/1b/8d/0a85e395398d8d20fadfe5c5d32c726eee17a519e78fb356f2cf7531bffe/watchfiles-1.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:3651aa7058595e9cfb75d35dd5ada2bf9f48a5b8a0f3562821d3e210c507e077", size = 280186, upload-time = "2026-05-18T04:31:54.484Z" }, - { url = "https://files.pythonhosted.org/packages/37/68/36db056f1fdcc5f07302f56e631774d6835bcd6fa3ace402304621d5f9e5/watchfiles-1.2.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08", size = 399031, upload-time = "2026-05-18T04:30:44.576Z" }, - { url = "https://files.pythonhosted.org/packages/c1/64/01a9d6f66a82a5c101ce939274106cc72759d62427e153f01edd2b9f87c2/watchfiles-1.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9", size = 391205, upload-time = "2026-05-18T04:30:25.413Z" }, - { url = "https://files.pythonhosted.org/packages/84/2c/0a44fe058cb4bb7b8ede6b6670698bbb7c0400740e378d00022189b7b31d/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4", size = 451892, upload-time = "2026-05-18T04:32:14.005Z" }, - { url = "https://files.pythonhosted.org/packages/67/a1/351e0d56cd35e6488b5c8b4fb11a809a5bc923e8fe8fed9faf8920be0c89/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55", size = 458867, upload-time = "2026-05-18T04:31:22.279Z" }, - { url = "https://files.pythonhosted.org/packages/d5/7d/9d09605187f1b838998624049fcf8bf47b73c1a3b76901fcac1782f62277/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925", size = 490217, upload-time = "2026-05-18T04:31:43.657Z" }, - { url = "https://files.pythonhosted.org/packages/60/5d/a17a16eccb182f04188cd308ec24b1a71a9b5c4e7098269cf35d9fa56d02/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4", size = 571458, upload-time = "2026-05-18T04:32:11.875Z" }, - { url = "https://files.pythonhosted.org/packages/d3/3d/4dd457062083ab1938e5dfd45032eb425cee2ac817287ca8ff4356183e5d/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2", size = 464707, upload-time = "2026-05-18T04:30:43.492Z" }, - { url = "https://files.pythonhosted.org/packages/c6/71/ea8c57b128f5383de74d0c7d2d9c57ad7c9a65a930c451bd25d524b295b7/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9", size = 454663, upload-time = "2026-05-18T04:30:16.061Z" }, - { url = "https://files.pythonhosted.org/packages/53/fd/2e812bf938406d7db351f0703ddd3fc6c061cf30d96153a77bc79a943a44/watchfiles-1.2.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa", size = 463537, upload-time = "2026-05-18T04:31:44.9Z" }, - { url = "https://files.pythonhosted.org/packages/86/56/d17a7f1dd1bc3035f1072694a551301272f1739c2d8e319c927cb9e29b38/watchfiles-1.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44", size = 629194, upload-time = "2026-05-18T04:31:14.141Z" }, - { url = "https://files.pythonhosted.org/packages/be/06/f1ff66bf5cae50aa4062779a0ecd0bbaf15e466195719074078947d9a17d/watchfiles-1.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72", size = 656194, upload-time = "2026-05-18T04:31:47.14Z" }, - { url = "https://files.pythonhosted.org/packages/e7/54/a9c7ea9a82a4ac65e7004c0a03920b5cdd2f9c3b678757d9cd425aa51d53/watchfiles-1.2.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4", size = 400205, upload-time = "2026-05-18T04:32:05.153Z" }, - { url = "https://files.pythonhosted.org/packages/aa/5d/c9ab3534374a4a67450696905d6ef16a04405448b8dc52bd752ae50423d4/watchfiles-1.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281", size = 392508, upload-time = "2026-05-18T04:30:54.849Z" }, - { url = "https://files.pythonhosted.org/packages/26/ca/1ad30103535cf0cecd7b993e8d50edc5351b1820e38f2d22e3df58962feb/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d", size = 452448, upload-time = "2026-05-18T04:30:53.727Z" }, - { url = "https://files.pythonhosted.org/packages/37/a1/ceee2cdf2afbd715fa07758d39c9859513eae411b23196f7fd039e5feedd/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e", size = 459605, upload-time = "2026-05-18T04:30:23.312Z" }, - { url = "https://files.pythonhosted.org/packages/e8/f6/421e30fd1cb3907a84ed92ab3f1983e37ba2dca015e9a894a048418417a2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242", size = 490757, upload-time = "2026-05-18T04:30:47.358Z" }, - { url = "https://files.pythonhosted.org/packages/41/b0/55ed1b97ed08be7bba6f9a541cac15f2a858e1d74d2b07b6da70a82aab00/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add", size = 568672, upload-time = "2026-05-18T04:30:38.915Z" }, - { url = "https://files.pythonhosted.org/packages/d1/cf/d8ae8a80dd7bafab395ea7681c10237311bbf34d37704a8c744e7cf31fc7/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f", size = 464197, upload-time = "2026-05-18T04:30:09.914Z" }, - { url = "https://files.pythonhosted.org/packages/7c/8a/3076c496ca8dafe0e8cd03fcebdfc47be4b1174b4e5b24ff6e396e6b3af2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7", size = 453181, upload-time = "2026-05-18T04:30:14.829Z" }, - { url = "https://files.pythonhosted.org/packages/e5/10/9745e17c98e7b8a86454df0a3c7b5686bd650383f1e9f26e4ebcbd6cc0c0/watchfiles-1.2.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e", size = 465109, upload-time = "2026-05-18T04:30:28.123Z" }, - { url = "https://files.pythonhosted.org/packages/8f/95/8ef4a95481d3e0cb52d62a06fa6e972e81424be2d9698b91a2fecca9904c/watchfiles-1.2.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06", size = 630653, upload-time = "2026-05-18T04:31:49.304Z" }, - { url = "https://files.pythonhosted.org/packages/fd/e4/3b3bf36b0f829b50c6ebcb8d031583863c59f923d6a6af3d485e470d0fac/watchfiles-1.2.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba", size = 657838, upload-time = "2026-05-18T04:31:06.497Z" }, - { url = "https://files.pythonhosted.org/packages/21/b1/6cbbb50c1f3002ab568777d44aa21206dfb8807a840990c4037523b51812/watchfiles-1.2.0-cp314-cp314-win32.whl", hash = "sha256:c0db965c5f79aa49fe672d297cf1febc5ad149b658594944f49a54a2b96270a7", size = 275108, upload-time = "2026-05-18T04:30:06.891Z" }, - { url = "https://files.pythonhosted.org/packages/92/45/190ce6db8dcb4536682cf75d3889ff1a27182a58cb519d343cb6d9ea63d8/watchfiles-1.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:71283b39fd17e5408eb123bd37aeecfd9d54c81fc184421943208aadb879d103", size = 288441, upload-time = "2026-05-18T04:32:12.901Z" }, - { url = "https://files.pythonhosted.org/packages/74/0d/3eae1c2313ab08378431d907c3f8095ecca00f3eda33111cf4f0f2591799/watchfiles-1.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:c5c19526f4e54a00f2666a6c0e9e40d582c09e865055ea7378bf0009aab857b3", size = 280684, upload-time = "2026-05-18T04:31:26.902Z" }, - { url = "https://files.pythonhosted.org/packages/b1/75/fb64e6c25d6b5ca636d03df34ffb1c6e9873303e76d27967e045f8df088f/watchfiles-1.2.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2", size = 398857, upload-time = "2026-05-18T04:32:17.108Z" }, - { url = "https://files.pythonhosted.org/packages/73/4e/9f7adf01754cbf81843722ccfec169d8f26c69778281a302855cecd2ee08/watchfiles-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28", size = 392413, upload-time = "2026-05-18T04:31:07.911Z" }, - { url = "https://files.pythonhosted.org/packages/47/c8/bec626bcc2d69f44b9acb24ce7d60ed7b16b73628eea747fcbd169d8edda/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831", size = 452409, upload-time = "2026-05-18T04:31:20.142Z" }, - { url = "https://files.pythonhosted.org/packages/00/b7/b6362068e81e7c556d155a34c35d40ac3ef42d747b06d7f6e5bf58e359c2/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33", size = 458827, upload-time = "2026-05-18T04:32:06.219Z" }, - { url = "https://files.pythonhosted.org/packages/67/f8/9a813fa42afb1e0b4625e75f0479826644d3ee8dc287e093799bc01f390c/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4", size = 490104, upload-time = "2026-05-18T04:31:56.034Z" }, - { url = "https://files.pythonhosted.org/packages/2f/bf/27dfb6094ca4c9aad21298b5525b6c53cb36121ee454331d05161e58d130/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b", size = 571360, upload-time = "2026-05-18T04:31:57.133Z" }, - { url = "https://files.pythonhosted.org/packages/fb/39/44a096d67270ea93df91d33877dbe91fbda3aa4f8ec2edf799d93eda8736/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666", size = 464644, upload-time = "2026-05-18T04:30:57.33Z" }, - { url = "https://files.pythonhosted.org/packages/0e/80/c7472203bad6268e3ef1ad260739704847898938ad7ea8b63a5131f46b50/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925", size = 454771, upload-time = "2026-05-18T04:30:48.736Z" }, - { url = "https://files.pythonhosted.org/packages/51/cf/3b10b268b4b7f0fc26e9debb5eef1998b515887840f444cd3ec80c688755/watchfiles-1.2.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b", size = 463494, upload-time = "2026-05-18T04:31:33.826Z" }, - { url = "https://files.pythonhosted.org/packages/3d/3e/a4302545cd589262a0dc7d140e86f7688eba3f9c72776c27f7e23b8864c4/watchfiles-1.2.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30", size = 629383, upload-time = "2026-05-18T04:31:15.596Z" }, - { url = "https://files.pythonhosted.org/packages/db/99/d5649df0a9a410d45b7c882304d0b790903ac9b6e8f2cfd12114e0c6b9f2/watchfiles-1.2.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5", size = 656093, upload-time = "2026-05-18T04:31:58.707Z" }, - { url = "https://files.pythonhosted.org/packages/92/b9/362702539275019a54dd2e94511b31a9b89c5f9e6a21966de7eb692549fc/watchfiles-1.2.0-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374", size = 400109, upload-time = "2026-05-18T04:31:16.879Z" }, - { url = "https://files.pythonhosted.org/packages/8f/75/71d5ba62db781e5587bded1d944c675374bc4aa37ff33d5018d98e8b6538/watchfiles-1.2.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65", size = 392167, upload-time = "2026-05-18T04:31:28.058Z" }, - { url = "https://files.pythonhosted.org/packages/3c/01/c66dd95d0423fe30d31820e2d1d5bda773764131bbb6ac0cb1cf303ac328/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69", size = 452372, upload-time = "2026-05-18T04:31:00.836Z" }, - { url = "https://files.pythonhosted.org/packages/91/15/2fe99557e72f85627c6a8eed50d889e8d101623e060a22ad75b875cb932d/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579", size = 459596, upload-time = "2026-05-18T04:31:34.96Z" }, - { url = "https://files.pythonhosted.org/packages/ed/23/d4acfa0023367428ed48351b3b9b267893037b6cadae55620c61c24bcfd4/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7", size = 490869, upload-time = "2026-05-18T04:31:59.923Z" }, - { url = "https://files.pythonhosted.org/packages/a4/5f/3164cbdce06c9fb95c4f7b9e2f9760b5e2797af43a9ecc317ef42a23a278/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2", size = 571641, upload-time = "2026-05-18T04:32:00.948Z" }, - { url = "https://files.pythonhosted.org/packages/41/e6/85d3731c55e65cd7690f3f803d24c139588aaf863e4bf2148fe7a7fa1a19/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6", size = 464444, upload-time = "2026-05-18T04:30:34.298Z" }, - { url = "https://files.pythonhosted.org/packages/f4/7d/562641012b8b09872742c3b8adf9629ec479fd78f8d68ae4a0c13da8add6/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4", size = 453593, upload-time = "2026-05-18T04:31:23.464Z" }, - { url = "https://files.pythonhosted.org/packages/56/fe/cb8ef3d6f929d14158fdaaad9925985b7310abc9384dcd4d82dd0016fb59/watchfiles-1.2.0-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488", size = 465096, upload-time = "2026-05-18T04:31:30.384Z" }, - { url = "https://files.pythonhosted.org/packages/25/91/80908e835e100527a9267147b08c0eee1fa6ab0ffec15edc04d1d44885f7/watchfiles-1.2.0-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb", size = 630638, upload-time = "2026-05-18T04:30:49.89Z" }, - { url = "https://files.pythonhosted.org/packages/46/4b/95ab2f256bb4af3cb2eb23b9317bda984ee6e0f11733a5c004a6c95b06e3/watchfiles-1.2.0-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377", size = 657684, upload-time = "2026-05-18T04:31:32.027Z" }, - { url = "https://files.pythonhosted.org/packages/23/f4/7513ef1e85fc4c6331b59479d6d72661fc391fbe543678052ac72c8b6c19/watchfiles-1.2.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2", size = 403050, upload-time = "2026-05-18T04:30:36.753Z" }, - { url = "https://files.pythonhosted.org/packages/27/0b/a54103cfd732bb703c7a749222011a0483ef3705948dae3b203158601119/watchfiles-1.2.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db", size = 396629, upload-time = "2026-05-18T04:32:03.268Z" }, - { url = "https://files.pythonhosted.org/packages/5e/2c/73f31a3b893886206c3f54d73e8ad8dee58cdb2f69ad2622e0a8a9e07f4e/watchfiles-1.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7", size = 457318, upload-time = "2026-05-18T04:31:01.932Z" }, - { url = "https://files.pythonhosted.org/packages/e9/f9/45d021e4a5cc7b9dd567f7cbb06d3b75f751a690063fb6cc7ec60f4e46b7/watchfiles-1.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0", size = 457771, upload-time = "2026-05-18T04:30:56.331Z" }, -] - -[[package]] -name = "websockets" -version = "17.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f7/96/e01084f83a64bcb3a27994bd0cb0db68ff29d9c6707fae37ec19b18ba990/websockets-17.0.1.tar.gz", hash = "sha256:5baa9bc0dfbae8c507e51c8cf1b6d4628086f7a87bbd3a9952bd5f035451f1cc", size = 183298, upload-time = "2026-07-31T11:31:27.665Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/54/b2bce5b754b91b727b852e78af6d7193d4fe985e420dc54e6c2abe161c1c/websockets-17.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c38515cb54902f7e97d0239e81ef46c4444f9475f4807fb9bbdb789b4089abcf", size = 212573, upload-time = "2026-07-31T11:29:04.803Z" }, - { url = "https://files.pythonhosted.org/packages/78/1b/eaefeb695b217d8c735fc377ab53c6b00bc9ed64a01a3f6f797096ac0ee8/websockets-17.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:70d438268e49f1a4bd096b6b6f7010f3ab48b5db2574dbf7d8c864c46ce7a06a", size = 210262, upload-time = "2026-07-31T11:29:06.298Z" }, - { url = "https://files.pythonhosted.org/packages/87/2d/68439a174c74969fb51619bbe9af9496826610883b828a2edd2f022c94fc/websockets-17.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0b52c76b8a870b141b7ca0705289452183ce7a523101954ccfe29a25986a673f", size = 210535, upload-time = "2026-07-31T11:29:07.553Z" }, - { url = "https://files.pythonhosted.org/packages/a4/ab/13a856b488dbac7fd3c5473e38098897cda0baa04e3ca3b34ec6c8a32b46/websockets-17.0.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:b98860aefbd3d9bc8e3c7f0eefb83b11142b16110739c68cd33d3b4d6e84e536", size = 219602, upload-time = "2026-07-31T11:29:09.227Z" }, - { url = "https://files.pythonhosted.org/packages/45/a1/2b100e71aa1fe283ec8fb73f8b74a8576d855486a49117903b100dd3b78d/websockets-17.0.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d41e9845514754a42d1d83b2fca9d27fee2ca7b3b0bee6843ba5a9bb2b6e25ac", size = 219873, upload-time = "2026-07-31T11:29:10.362Z" }, - { url = "https://files.pythonhosted.org/packages/3b/71/92e6146d3588d145136c0e0e16d106bbb855bb5047e13ec3fdee39cce770/websockets-17.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9aac6081513f02eac3f8caace800dbfc5c608b69e4a7bef69e414eabfc95aa1", size = 221108, upload-time = "2026-07-31T11:29:11.708Z" }, - { url = "https://files.pythonhosted.org/packages/09/8d/357afa2ffd29686536109e7e3cb2a94f2d09e535df4cf3989393dc506a40/websockets-17.0.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b85b960a4507b0714c0a1246d031be9118d908ee974dc085257297a955205f1d", size = 224401, upload-time = "2026-07-31T11:29:12.959Z" }, - { url = "https://files.pythonhosted.org/packages/01/27/9efba1e7a8df48e405d017e67513c6b2a8f0b59c8500b820c47cd5f3dea9/websockets-17.0.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c356dbddab0a529ed7574f78f559d75a223735c321c28f6f587fbf02b11ed301", size = 221670, upload-time = "2026-07-31T11:29:14.199Z" }, - { url = "https://files.pythonhosted.org/packages/01/85/ab27d62103e8a150f3657e043e5fc711ad3e018c8cd8a715093e93d7640c/websockets-17.0.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5661f868ef191d33dfc6a0cc7c5b3d495f0cc8bb3f8b30d87bda8755c61c95f5", size = 220442, upload-time = "2026-07-31T11:29:15.417Z" }, - { url = "https://files.pythonhosted.org/packages/6d/04/289e00b8001b622b0c397a6901fcc4aa8f34a6d2ed42be17f2704f2faae1/websockets-17.0.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2fa2cb465a131c347ba6717a78c887746e73edb1c131d01c982d6ef0d68b82e0", size = 217760, upload-time = "2026-07-31T11:29:16.772Z" }, - { url = "https://files.pythonhosted.org/packages/2f/70/0fe58cdac988dfc0066786cc07b09dfd72b48b0c01e5de667721192b2e6e/websockets-17.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:55383d8177b3c99fd873ee5db0e0193f4c1dd4a3feaccf1a4a03c1b7cf539cac", size = 220597, upload-time = "2026-07-31T11:29:18.075Z" }, - { url = "https://files.pythonhosted.org/packages/d5/76/d3eaf120710d1a791d1c7a4963f0b50a589df8ba675394fd2a97dfea3746/websockets-17.0.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:038cfad5d5417f8bb09295abe986029a26d22f34bda622ccc79b670efd4dab56", size = 219187, upload-time = "2026-07-31T11:29:19.468Z" }, - { url = "https://files.pythonhosted.org/packages/e6/00/4e9ae886bdb1647537176ca33fca66d79dddb3773d213ac98ddc6bba9ab4/websockets-17.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:15920057a6b723f84734f0641403bca163a4b176e5af809ee4f0c4a1e75e9fed", size = 219955, upload-time = "2026-07-31T11:29:20.641Z" }, - { url = "https://files.pythonhosted.org/packages/7c/67/cd7cc6849a86cf8c9979c0c570b6b6ccee75d2872854238d8d54e77be6ec/websockets-17.0.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:5508f38c98ac29def9e747b87543b008a58b075df6da70b2cf2e0b47073d33bb", size = 221002, upload-time = "2026-07-31T11:29:21.753Z" }, - { url = "https://files.pythonhosted.org/packages/de/5c/4d14eaf7b2f1448d1af24c1641f04eb74c1632a5802952aac4b7e068b8e7/websockets-17.0.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:a68e604c6d1b0338e46652e2688cbce8096ad9c03548b075fda9e2ea19a9b7dd", size = 218579, upload-time = "2026-07-31T11:29:22.888Z" }, - { url = "https://files.pythonhosted.org/packages/15/67/ff8bc4b8a6ec235ed8985de12fecc59ad2cd68cc8fc79b97deaa42e412ac/websockets-17.0.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a8af570fc29cd998a921c7131c8ac81d9434466d6d25300cb12a690fb56a8a08", size = 219612, upload-time = "2026-07-31T11:29:24.052Z" }, - { url = "https://files.pythonhosted.org/packages/91/eb/103d81d655bab3ffd5c7d5d4b08f92c374499decd1d4be6035ce715b385b/websockets-17.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:246927ae9ae06ca0d42a483a4bdb80d4862e1ee5b4cab37c354a5e1ad8356448", size = 219846, upload-time = "2026-07-31T11:29:25.421Z" }, - { url = "https://files.pythonhosted.org/packages/b8/1e/3495161b1827941258545604fdf72e3e053d03f25bb61752228a784c26a1/websockets-17.0.1-cp311-cp311-win32.whl", hash = "sha256:1d4cf7e8e5b8b1fa40758ac7524843a00237b124ab217e227542cafcfeb7a946", size = 213046, upload-time = "2026-07-31T11:29:27.094Z" }, - { url = "https://files.pythonhosted.org/packages/7b/b1/ba0ce59681db38c320a6d485f95a497ddea20356d9a9e8e70615ddd867b9/websockets-17.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:02f0b037a737d0cb0c33866c97bcd1a0b73170dfbf42d69d8fb86f51002fd5ae", size = 213344, upload-time = "2026-07-31T11:29:28.28Z" }, - { url = "https://files.pythonhosted.org/packages/83/9e/abfdde9cbd57f0b5867a70e3426ac63341e1a21557b273c39bb6d2ccf8b9/websockets-17.0.1-cp311-cp311-win_arm64.whl", hash = "sha256:1bdd8c4be420905dd732e00dcd669852d8128cc723efa585a0c0e51adb00a28a", size = 213277, upload-time = "2026-07-31T11:29:29.504Z" }, - { url = "https://files.pythonhosted.org/packages/50/ff/6199a52d864215750af8668d84b0274775011a90052081f5a9495807a92b/websockets-17.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:10f461191125c63902ea7394ae9e752b1b5785641850c1d365bb30b0f88bc53f", size = 212603, upload-time = "2026-07-31T11:29:30.771Z" }, - { url = "https://files.pythonhosted.org/packages/54/7e/439a962bcada88dcf586da77a1b2385f91e2d2910e9359540934c827156b/websockets-17.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cffc84ddec6da7f447677266fee2a3c40ecc78172f00752aa1150b8a8d65df1d", size = 210286, upload-time = "2026-07-31T11:29:32.157Z" }, - { url = "https://files.pythonhosted.org/packages/d9/82/123660edc759c225626b3b91952c7625f85c77a8362acbc35a4623120f7d/websockets-17.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c23e532c8a2325a1e7486de8763a60dc43e83f01bcaeca07e3ba79652c156db1", size = 210549, upload-time = "2026-07-31T11:29:33.388Z" }, - { url = "https://files.pythonhosted.org/packages/cd/2f/2940e57080cf56f28190287516400126d5a76b52b9a61dc10ba6f6400dbe/websockets-17.0.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c09e097d0e46e3c289bedab9a475ae344b70c30ff5646e46af22b4e6fdc97b21", size = 219874, upload-time = "2026-07-31T11:29:34.608Z" }, - { url = "https://files.pythonhosted.org/packages/42/28/9ec976c16d63cc51c28dfec74b66854048c0b8b6579946e902f91b69e8bf/websockets-17.0.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f47b0815af3948ec6a440b3afa02f05b18cc0939549e91b5c677b5d9c2c8472a", size = 220150, upload-time = "2026-07-31T11:29:35.831Z" }, - { url = "https://files.pythonhosted.org/packages/f4/a4/850c699a16bbc451723856360c59bd997bec075e637154f3fa96e80d5760/websockets-17.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8848c207049ad49d318e5f64a3d4d7bb189f8328d0d98e65647788f2a085785c", size = 221389, upload-time = "2026-07-31T11:29:37.189Z" }, - { url = "https://files.pythonhosted.org/packages/47/e1/f60a891c1a4b3420d5052333a84eb7241e1fb4a71866dec1562f5fa30027/websockets-17.0.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2604de7228506b13a44a256a9d223943340c0e725af5d367dc068e192b027761", size = 224169, upload-time = "2026-07-31T11:29:38.61Z" }, - { url = "https://files.pythonhosted.org/packages/26/fb/e2a893be6fae4fddfe50ddc3035a331d3f381103d5467b7900026bdb3a64/websockets-17.0.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:07abc3bd196a48af476a82fd47f3f79a6a3f70937a9f930cef703cfa0c9d83b6", size = 222025, upload-time = "2026-07-31T11:29:39.897Z" }, - { url = "https://files.pythonhosted.org/packages/d9/72/e3144b2d79276fab9798ed7d4aea2f0847434f186800b6f56a1eddcb3114/websockets-17.0.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:769ce7e2acfd9a89f2bed3a9c0da229459516bbc00bd4c9e2ca492c613ae4861", size = 220779, upload-time = "2026-07-31T11:29:41.084Z" }, - { url = "https://files.pythonhosted.org/packages/c0/5e/69c02174fbcf1c40c6adc45d3c316a401558392fe7bab8969ef8c46f1689/websockets-17.0.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:07d78a509c3333f5908c83d7f78144ea68a6c9ec28110f5c54d81d8fcdc262c4", size = 218053, upload-time = "2026-07-31T11:29:42.322Z" }, - { url = "https://files.pythonhosted.org/packages/b3/09/7574778b095b99cfa0856583462f56568df784f9b41485145169b2ec9c64/websockets-17.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ffad64ce7ad3703d652a3fd9af26238377d24ce52c6ad8ff35d26d82f61f493f", size = 220825, upload-time = "2026-07-31T11:29:43.553Z" }, - { url = "https://files.pythonhosted.org/packages/c5/e6/f46571f38765dbc4cbc0d0b47de8db65768006dbbd4340e6f5f51bc1d895/websockets-17.0.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e95e321d0d763f2b6633512605f6112ebd70d5746f3ce05c941909d4a25233f2", size = 219427, upload-time = "2026-07-31T11:29:44.731Z" }, - { url = "https://files.pythonhosted.org/packages/9d/31/6ff1fee057bd7e9dd5237fc064a749615378d003aa045b5bfc2d12b2f4f7/websockets-17.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cd526c8228e759c1006c4b7c9ac71dc4e925ced1a6a6a5a8e94643709738f63e", size = 220198, upload-time = "2026-07-31T11:29:45.997Z" }, - { url = "https://files.pythonhosted.org/packages/7a/4f/d41847227a44b9ad87c3d5a9fddbfad8b7c4d6032878d8460d9d37c2d44f/websockets-17.0.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8cd3369e42c0246afaf9d669cfc19797e3a49e8c0a639544459c57597108b966", size = 221304, upload-time = "2026-07-31T11:29:47.314Z" }, - { url = "https://files.pythonhosted.org/packages/63/30/21a7e326c6ad2eb526cd5b816383d59cdeb28b8805b65a543c3cfbd8e8ce/websockets-17.0.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:b580794e926cab7ff42ee4371ef14e0b22cb2bb722a607f77769136468f49a3f", size = 218858, upload-time = "2026-07-31T11:29:48.587Z" }, - { url = "https://files.pythonhosted.org/packages/2d/48/55b0331cd5bec9ce29748f79edc00075805450a47011d0c8e3b1c61dbf04/websockets-17.0.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5033ffe6804dd53afafa7d08e8c3eef2d2431f34d58ca30507a8442dd04a033a", size = 219840, upload-time = "2026-07-31T11:29:49.791Z" }, - { url = "https://files.pythonhosted.org/packages/78/6e/2e8bc06e546f49b32a58a2bc2957902d1809ecc37552d3d7ccd6639a126e/websockets-17.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6db9e5bf3649ab506c6ae8a3ac85a00fb1ae3816d75962771b2df8adbc5d40d2", size = 220116, upload-time = "2026-07-31T11:29:51.026Z" }, - { url = "https://files.pythonhosted.org/packages/b0/ad/4bac01fa41aca54307157b9c9f68b066a6bb51fb18716ba618078a67b283/websockets-17.0.1-cp312-cp312-win32.whl", hash = "sha256:bc0bca48ba24c6c866847fd20478a51dd547fa0ad258dab9615c414ec534bbc0", size = 213050, upload-time = "2026-07-31T11:29:52.328Z" }, - { url = "https://files.pythonhosted.org/packages/82/d8/c3a78cccc74a554780e9e76e323d5cde891048627025f0f82623e22dc3df/websockets-17.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:2b3f3020171202b135ca078e20434977c6b2b02af647130d6980c9e39b9462e3", size = 213348, upload-time = "2026-07-31T11:29:53.891Z" }, - { url = "https://files.pythonhosted.org/packages/7b/25/e1b8824bd632c8a5a62d504b61e9e35e470b67e4be0206f5c28f90c7f86d/websockets-17.0.1-cp312-cp312-win_arm64.whl", hash = "sha256:41d6aa06b5ab832aee72fedf47a149535b121ac900b6bb4d3fe14712afac9a79", size = 213276, upload-time = "2026-07-31T11:29:55.299Z" }, - { url = "https://files.pythonhosted.org/packages/ba/a8/79c577bc2f874ee22f6f5ccdab97ba9ce6b96806be3fcc3a6d8490f88a21/websockets-17.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:55b12e47dcee83673a40d07686cfb6f9d6dfc285976ade9463f61d2bef3fad22", size = 212593, upload-time = "2026-07-31T11:29:56.518Z" }, - { url = "https://files.pythonhosted.org/packages/db/99/e1cfaf419bb3b2fcfd6792a846f1d936293132b0b9a56530ced016c83c7b/websockets-17.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c1c118a6b0e25bfc9a6802075d748fa6321714ffbdf3c88d29d9a0e3c7386c75", size = 210280, upload-time = "2026-07-31T11:29:57.768Z" }, - { url = "https://files.pythonhosted.org/packages/a2/ef/cc994494bf7d97e41833f6ff55c24f535e4d527a10370b9631737e9c2f00/websockets-17.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:734d20364dc2cfe03674883cafcf580b6e431c5ce42b476312b9285310230cf9", size = 210538, upload-time = "2026-07-31T11:29:59.021Z" }, - { url = "https://files.pythonhosted.org/packages/87/32/fbf2d132f63ba3e67f675bccf333469786a24e0418969ce1d8e6ff9e6f02/websockets-17.0.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9493314a99e599163c854fb5900ad7f7ea38c5cb9d9103aa30b3c6b8181c01fa", size = 219925, upload-time = "2026-07-31T11:30:00.298Z" }, - { url = "https://files.pythonhosted.org/packages/16/50/64eee3d25a47fe744a9490e0627cc373dca096755db740f91c28bd61cd35/websockets-17.0.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:18ded646ce98cdd3c0235825b3252f1df55765ba49b616bb10282f758667b4d0", size = 220206, upload-time = "2026-07-31T11:30:01.52Z" }, - { url = "https://files.pythonhosted.org/packages/15/56/10ed4bc4dd75f204e3c62bd4898e44a8742a27773c80b188cfa7888aad2d/websockets-17.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c1bec5d6a19f5fbe87e4940739cfc65e7bb53d8b353e1029b8037a1653b321bc", size = 221445, upload-time = "2026-07-31T11:30:02.788Z" }, - { url = "https://files.pythonhosted.org/packages/bf/be/bb14328614c068ab09569962fbf218fc00413ce3febc6d2684c764b6f37e/websockets-17.0.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:872273e629ca7e3d35f16a2dc6ede84e1d5c831e616b8277de6e4f83114e7c58", size = 222887, upload-time = "2026-07-31T11:30:03.943Z" }, - { url = "https://files.pythonhosted.org/packages/32/1b/4cb0eec2fee310007104687493175af190019f705940c864f9c523fe9f6f/websockets-17.0.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1df81d174c1561292de9e40b141cafc04f69077272f6c352afe1d743e20810df", size = 222072, upload-time = "2026-07-31T11:30:05.258Z" }, - { url = "https://files.pythonhosted.org/packages/6c/9c/14e6391de777ddb39c439c450deb551406d445e25a5877d6fa25c49d4544/websockets-17.0.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:759adeb5b0c5775b563254ec63b5b79089fc0045b479143a0b1b8c0ebaae1253", size = 220826, upload-time = "2026-07-31T11:30:06.53Z" }, - { url = "https://files.pythonhosted.org/packages/cb/57/96e94e384442247bbed5d3ab67381c7257355c2d66b62c3ad33a17f5d385/websockets-17.0.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4d1d99db29b5444e3982f1ce2ba8a833508ad44b2f1fbd0bd99e81d825c0b461", size = 218107, upload-time = "2026-07-31T11:30:07.766Z" }, - { url = "https://files.pythonhosted.org/packages/c0/8c/9c9dedd14c3919435df9b35cdee7111268c751252b87652f3a6a4f56e760/websockets-17.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:02ed63bf26dda9fa27df730a41f6664586c4ee05972c8fb667ce1725b3fd13d3", size = 220889, upload-time = "2026-07-31T11:30:09.035Z" }, - { url = "https://files.pythonhosted.org/packages/94/4d/ca73c2ac82c00f50c529784bacb323e42da4816333211bc1543d90c9cf11/websockets-17.0.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:eab6de8a98b9a7772cf686d00b4de439fc7efb8ab05ae106ef227291d06f87c5", size = 219486, upload-time = "2026-07-31T11:30:10.289Z" }, - { url = "https://files.pythonhosted.org/packages/5b/da/fb37ac09dcd7c69dd73bac979ed393df35f78a3c232e293d1ff3bd586d24/websockets-17.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2a855b6dfe21c4d3420be265ae031829ba8ba0be0ea350d9f7c3ef30ae63ebe2", size = 220258, upload-time = "2026-07-31T11:30:11.605Z" }, - { url = "https://files.pythonhosted.org/packages/fc/04/9693f191d968a93f37326a17301a101d49580889c688f466699f89ecdee1/websockets-17.0.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7002d5f9e1c3ddd991cdfdbfee18cc8c8b196b2445022892badacd6cb338bbbc", size = 221358, upload-time = "2026-07-31T11:30:12.858Z" }, - { url = "https://files.pythonhosted.org/packages/cf/29/ad0d85c01db5dcf22898d51648bd2c25af0dd0a4a41c550b11acddeeeba7/websockets-17.0.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c395bda8e7d8f51a02e80261fb57127979e5c472675d9a96b2860619ad47da48", size = 218921, upload-time = "2026-07-31T11:30:14.064Z" }, - { url = "https://files.pythonhosted.org/packages/18/3b/bf8e855e495dcca63f2b8aa019cf2ada3160e1fa66d833c7417f3b1f7f38/websockets-17.0.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aadc298969ad229d8e3029fc5cc751fdad286696230f9cf014e90ff9cd8e6ea0", size = 219871, upload-time = "2026-07-31T11:30:15.358Z" }, - { url = "https://files.pythonhosted.org/packages/3b/db/c7abd6639a93a40279cd1ddc57e09e1c4f8381c4cfccdb775aa5aac9770a/websockets-17.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f11a398d8170b7ac5000baf7f258dcda579ef3ea744e0cc6a165e0dfbc0d3198", size = 220154, upload-time = "2026-07-31T11:30:16.96Z" }, - { url = "https://files.pythonhosted.org/packages/f6/2a/25a9f8f2e5a6ef34e911d2f55d9f756bdeb92b4c28cfb77b8430bbc73cb1/websockets-17.0.1-cp313-cp313-win32.whl", hash = "sha256:846a4a8b0833e3cad57523d9e3bd50ec8ea05ab9d06c582f82a1340ba096af5f", size = 213038, upload-time = "2026-07-31T11:30:18.434Z" }, - { url = "https://files.pythonhosted.org/packages/81/2f/ea1380f72bb11b64fc5bc7ae0d42de5bbf3e6dc13b965706b2a1d4e17cdf/websockets-17.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:409d93efcaa14f7a99592c5baaef5ec6ca94fba0f5aec1a86f693977c69c9c1c", size = 213348, upload-time = "2026-07-31T11:30:19.693Z" }, - { url = "https://files.pythonhosted.org/packages/e6/c7/b956ed9151c3c74530ebc62d716fbfdbde7507a6acc6423a64f9ecfb6b8a/websockets-17.0.1-cp313-cp313-win_arm64.whl", hash = "sha256:90246fa9e6cb192a778ce6ce024057ec54317a894db7899c922dcdc1f4cbf6a5", size = 213282, upload-time = "2026-07-31T11:30:21.045Z" }, - { url = "https://files.pythonhosted.org/packages/98/dc/cadab608924ac605647031472fb1f8792d7d4ea07565ba1899ec42028e0d/websockets-17.0.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:53b90c00bc6201ab6695c7ff51a04d0e425514c37515e9eeecd2c1b978ac6c0e", size = 212640, upload-time = "2026-07-31T11:30:22.436Z" }, - { url = "https://files.pythonhosted.org/packages/16/7a/b034d13ca181211bbd58bb50835cb196a7784cd505b5a2079d4d03374f9f/websockets-17.0.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:5f33a649bfcb8312524173cc4bbafa7dbb236e18eee9aa31a1d324ca0ddda28c", size = 210332, upload-time = "2026-07-31T11:30:23.608Z" }, - { url = "https://files.pythonhosted.org/packages/2f/4d/943ede39b53744768edf1ed84a3f9401527388228a3d6c1249c02c3d6bd7/websockets-17.0.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cddc675ec31bca65473321f9a9794e488b43b3b8de5d02c8ef4810c5d5792163", size = 210546, upload-time = "2026-07-31T11:30:24.932Z" }, - { url = "https://files.pythonhosted.org/packages/cf/e3/88dc159d2ae66743c669443246243f28d873b0c5e58271b8cc1ca0440334/websockets-17.0.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:b3ff0ad440ad52dda64138f16895f66403f40192365e39b1010e889f289746b0", size = 219928, upload-time = "2026-07-31T11:30:26.221Z" }, - { url = "https://files.pythonhosted.org/packages/fe/f2/ff27eaefa15851a5cf7f004ab827a022bf2d6632cb520f89cb100db7e84b/websockets-17.0.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:72d7f2a5aeb4e82daa4ee18f125b4277f427033359be5c745ad709608446cc2c", size = 220279, upload-time = "2026-07-31T11:30:27.49Z" }, - { url = "https://files.pythonhosted.org/packages/19/2e/a5166149f363d2449c1cb2dde6486a245521979509d53b87a09f3e79662b/websockets-17.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6fd88365da261c53d3e943fb37e0d0721b9cde119f6b2e3fc84369b6ab234d63", size = 221525, upload-time = "2026-07-31T11:30:28.872Z" }, - { url = "https://files.pythonhosted.org/packages/9b/b5/f46931269b3ff3bde65d27c65ddb22f9bb8ce92ac2c6c4df0910128f6219/websockets-17.0.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ab9f962a5b64a5c3c845d556b7dc4e6fb683f7b67179f8205e814bb2e0213ffe", size = 222897, upload-time = "2026-07-31T11:30:30.164Z" }, - { url = "https://files.pythonhosted.org/packages/42/f4/deccf3439f35df953ec35e13fe07986821c5f1ab5785d69614283bdb9034/websockets-17.0.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8c07f145d0b9e90cbd96035f31fb79199aef4da1872854e36ebeb258e3d57594", size = 222129, upload-time = "2026-07-31T11:30:31.489Z" }, - { url = "https://files.pythonhosted.org/packages/35/a5/e1b57a59da92ade37fd021567a17b518ea8267b28e5530075844cdb525fe/websockets-17.0.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9f7747d3daa41a11f25f7cca5dc988fc51da97b311bed4c9d843860f79779283", size = 220875, upload-time = "2026-07-31T11:30:32.805Z" }, - { url = "https://files.pythonhosted.org/packages/f0/30/e7d0889c790a854156de424575fd67af79ddbaed9ff3157ae863dfd1c1dc/websockets-17.0.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2abb1ba0a5133b7d2ef3c1c9f4b0c1e8a101012dce0b594ab2b2888d9a64820e", size = 218160, upload-time = "2026-07-31T11:30:34.512Z" }, - { url = "https://files.pythonhosted.org/packages/09/2e/43db785d6ed9ae7594fae7b62bbc9cb4dfee2b015e06a1005f1e5ce283b6/websockets-17.0.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f3fd9a1f87f8f0f3f8e9f9bd0195f7516562d13f5b178db8c5784d1f60b60bed", size = 220951, upload-time = "2026-07-31T11:30:35.806Z" }, - { url = "https://files.pythonhosted.org/packages/eb/f5/4ac3cab3d5e8a830657a822f64a8910e3803229c6783e59c3fd9a3487427/websockets-17.0.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2bc14b481e05e331811108daa1aeb41a5e237a5564ef2f02ec5a356a0f102f78", size = 219460, upload-time = "2026-07-31T11:30:37.273Z" }, - { url = "https://files.pythonhosted.org/packages/03/0e/c3a4020673ffc17c82cf1a467835038a196a555d3b4f2a50f0f063cf8ccc/websockets-17.0.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:57d2ee9b24b404ce75f3814f92073c0ed88106c950148d2427fe8d25ca254d1f", size = 220248, upload-time = "2026-07-31T11:30:38.527Z" }, - { url = "https://files.pythonhosted.org/packages/7d/87/e47a6a278cc1dfade38444c893ce18322943c25d4b780a74450d9d164be1/websockets-17.0.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:1b363bfd72a52c0658a3154a4cff219f15a474b35a235057d38853bf151acce7", size = 221421, upload-time = "2026-07-31T11:30:39.879Z" }, - { url = "https://files.pythonhosted.org/packages/da/8f/473d5fc4e3836e375b0233c6ef26777e6e5e3f7bfc84ccd524eae4090ed5/websockets-17.0.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:10b1587c599fa0f2c89154587c80e0fda98ade6c9fa8c0260a2823fb1800b685", size = 218975, upload-time = "2026-07-31T11:30:41.192Z" }, - { url = "https://files.pythonhosted.org/packages/d4/b9/819ec2dcdf69031d7e9cab11247f3a6ff9bbc8c7c53ada1dbcb9055b227b/websockets-17.0.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d7d72843691f50b91127c50688df10cb72ec6f4c4b1d7e2c11ab33b16acf8e51", size = 219925, upload-time = "2026-07-31T11:30:42.524Z" }, - { url = "https://files.pythonhosted.org/packages/85/b9/6c0da301f6118502e079cf92f4e864adf28e56b3f8c0f6085076ced7b876/websockets-17.0.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:90973a3a00f23afdfd1c9b06fb84289bf0220f247ef8a62501a1967c7af54f7b", size = 220218, upload-time = "2026-07-31T11:30:44.04Z" }, - { url = "https://files.pythonhosted.org/packages/55/f9/cba32dc9dd856565263d6272f594255bd0e2781deb8cd982c026a54760ad/websockets-17.0.1-cp314-cp314-win32.whl", hash = "sha256:599b03beb77633bffc095334338fad79cafc2b01fbd58953838130a9ae967d7b", size = 212626, upload-time = "2026-07-31T11:30:45.579Z" }, - { url = "https://files.pythonhosted.org/packages/fa/95/91cdd8c192287d7ea741f37cf7d64fdc1a14410f06f73805e428a1a590af/websockets-17.0.1-cp314-cp314-win_amd64.whl", hash = "sha256:81ce19c6046ace11da7001781be7317bb1dc389f399af4b2ed962190f76f9add", size = 212969, upload-time = "2026-07-31T11:30:46.983Z" }, - { url = "https://files.pythonhosted.org/packages/8e/fd/8c98a1e431960661c5769ab1a4dd66494e87ab02d791cc79e51e0d9a289f/websockets-17.0.1-cp314-cp314-win_arm64.whl", hash = "sha256:efe0ae052a8d023b87198921e8a7ce1dc7768816bcd2fbc20df171ac73a04891", size = 212850, upload-time = "2026-07-31T11:30:48.304Z" }, - { url = "https://files.pythonhosted.org/packages/13/c1/142f5186ee7dc3beee0426b998a79e223e067b7689afcaa95890d64aa800/websockets-17.0.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ab56439c9f74c52770690c7b2f616b3bf775cb3920453ee355ac765c032d8bbf", size = 212967, upload-time = "2026-07-31T11:30:49.688Z" }, - { url = "https://files.pythonhosted.org/packages/02/de/4b03ed316c9dee180365286c298219809ff247be39beeaaf9958b21167ab/websockets-17.0.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:20a92f78ac8250984ed459faa9ca48c285adbfc0038ddc3fdac6046990a9c9ed", size = 210504, upload-time = "2026-07-31T11:30:50.987Z" }, - { url = "https://files.pythonhosted.org/packages/cd/d8/ad2b3e8f867e1e8cac3077e2f33ffb60b71bd763d6cfc71bd916f113c3bf/websockets-17.0.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6a434e59962a4fb9016bea327e1d14d6cd67670ecfb8942b4f4a0c24036634ce", size = 210702, upload-time = "2026-07-31T11:30:52.261Z" }, - { url = "https://files.pythonhosted.org/packages/48/18/7a77a82ce9d6f831c07b176da3942f7e71acd0f115f3ecdb1d00a040eb01/websockets-17.0.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2503c7e2a5049a12d5dac917a46d5d52591283a766165b8176bb167560421b38", size = 220290, upload-time = "2026-07-31T11:30:53.582Z" }, - { url = "https://files.pythonhosted.org/packages/f5/af/43c3e3c3ea7ba4693c2181743f3221957df28bededadcbd9fc8a0661bde0/websockets-17.0.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:28012a54510fe8301bb893ef143cec30a2780a2d3bc20b7bbdf4379d7a63945d", size = 220573, upload-time = "2026-07-31T11:30:54.966Z" }, - { url = "https://files.pythonhosted.org/packages/1f/bd/ed48eca15725743ee7e2dc172e15c61de29e85ec98dace7b14257f366836/websockets-17.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22bd00f8bae2bccdb5dbe41e20f58ba44ca9fff0b4b561aaf39099c35da762ed", size = 221747, upload-time = "2026-07-31T11:30:56.762Z" }, - { url = "https://files.pythonhosted.org/packages/99/50/838deb7937a8225c4925dd4a977eafea473fabf444178a99de0bc7e92bb0/websockets-17.0.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e98ec9ec61cce5bc4b8b218322ad090b0994eb060bb04da704c62ef0a3d864e6", size = 223891, upload-time = "2026-07-31T11:30:58.127Z" }, - { url = "https://files.pythonhosted.org/packages/f8/e9/657fb70c6eb6bcd01adfa5d2b06496e9911e1c1a8813d353b8c00f7591cd/websockets-17.0.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8e387adb0c692c6b5571bdeafc8ac9d1901ea30f10309134780b16ecd35e6605", size = 222317, upload-time = "2026-07-31T11:30:59.416Z" }, - { url = "https://files.pythonhosted.org/packages/07/4c/82cb722afa5428fed981331210c4c07600570db01bb1620579f655b5adaf/websockets-17.0.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bd1470d2c53fe53269bf5619da7725d30dd9b9693f1689f7a85eab8dea734442", size = 221047, upload-time = "2026-07-31T11:31:00.757Z" }, - { url = "https://files.pythonhosted.org/packages/90/84/bd6d67d6bc65f0de0cb50de55dab42f256a9876a351c4736522eb168fda0/websockets-17.0.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:884af729b8ab50486acd94d9768c2b60914bf39b579ebba0a5cb73bfdfd61fd2", size = 218626, upload-time = "2026-07-31T11:31:02.48Z" }, - { url = "https://files.pythonhosted.org/packages/96/cb/6a372c8553976f0d8f97f5115826ed47e34b3be6b8bf0d0249af249a7416/websockets-17.0.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a60fa1a25cca1bcc2bf87b8d6be37a741f0a3239fb5e9cfb7a37173b68ffcf87", size = 221299, upload-time = "2026-07-31T11:31:03.795Z" }, - { url = "https://files.pythonhosted.org/packages/bc/31/f966e8472337974f74d788b3ef6c6f3b8b9a5f201efd16a843c91d269fa5/websockets-17.0.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:e8208f2729cba030ff872a92064c97584eeb9502f53d32a05a0f05d5a17ca6c6", size = 219789, upload-time = "2026-07-31T11:31:05.08Z" }, - { url = "https://files.pythonhosted.org/packages/57/34/404e83a6cc7b0efcac810b7041bffd72ff76900e6fd0aa45a26c92fb2ffe/websockets-17.0.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:54cdcaa56f5d3eafd57058f0fa4a3de93a310b43a3c4699f06efc4c0bd054a5a", size = 220678, upload-time = "2026-07-31T11:31:06.635Z" }, - { url = "https://files.pythonhosted.org/packages/e5/70/8946188c2a68d67251859b589a3634918cf7867bf0b891347a5ecaa43d30/websockets-17.0.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:4d41c0a1d47a478bc432b3b9068097bee1ce0c5b19327ea6f75c2ab34ab1f2fb", size = 221697, upload-time = "2026-07-31T11:31:08.023Z" }, - { url = "https://files.pythonhosted.org/packages/04/16/ee73fc2083a2938ac6209f4ec804960496835b20a0068dbcfe8424957c04/websockets-17.0.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f991247276797d0c61ab7770bc9791eadc16f683b4d83517f624932adc1a8bab", size = 219390, upload-time = "2026-07-31T11:31:09.378Z" }, - { url = "https://files.pythonhosted.org/packages/94/6a/d5f88033c69932af6cdaa72da62516ade47c257e3bf69f4c0ba5f40e12a2/websockets-17.0.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:733e3cc7171fa1b899edbe725ef9382d0e960657dc1fd933f3281ae910c01dab", size = 220161, upload-time = "2026-07-31T11:31:10.915Z" }, - { url = "https://files.pythonhosted.org/packages/e1/2e/6183dd2c0370287ecf4afe0bb33aca364208e5e7b0e1a286adcaecc0c78b/websockets-17.0.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:810cb3fb5fa6e447216f4e82d9a85cb8aed0929ae3538153ddfe8a6e3121a58d", size = 220591, upload-time = "2026-07-31T11:31:12.289Z" }, - { url = "https://files.pythonhosted.org/packages/26/93/70f6516d85b9744f7eac224c4b1b9ef4e84133f80b53be02080cb1c3e663/websockets-17.0.1-cp314-cp314t-win32.whl", hash = "sha256:17ac37716c0244e82c9e384c41653c090b1864c6610224ca3857e7f7b58fce10", size = 212755, upload-time = "2026-07-31T11:31:13.883Z" }, - { url = "https://files.pythonhosted.org/packages/f1/2c/9d9c1da5a7ea9af307b386d25f64d1dead4729644198d2b92e36db5dfd41/websockets-17.0.1-cp314-cp314t-win_amd64.whl", hash = "sha256:bb31f42ea095ea826463c770829aa188a86c9a5c976b1467cbbf583c811de833", size = 213094, upload-time = "2026-07-31T11:31:15.367Z" }, - { url = "https://files.pythonhosted.org/packages/5b/24/a585e7573e128070605d003b5544729bcd58d9756c7e99d550818ca4b916/websockets-17.0.1-cp314-cp314t-win_arm64.whl", hash = "sha256:dbfae8e75b342e31fc6fd1a8bbb393b7cbb91d6cfd581650300a94381e7b7e2b", size = 213009, upload-time = "2026-07-31T11:31:16.776Z" }, - { url = "https://files.pythonhosted.org/packages/51/77/63b4abd29f15107d856f010de6f35434faa7c49ef89151e051d2807a9c40/websockets-17.0.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:49266e4488309b38783257293a38298942b9a03aa106fcb45195377a77c0c1e2", size = 210194, upload-time = "2026-07-31T11:31:18.046Z" }, - { url = "https://files.pythonhosted.org/packages/ef/ab/6160542ee644f72b865af13ddfff23740c95595b237e16312262cafdb641/websockets-17.0.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d69fd559f9f0e8a52d2fce6f04ee143f86e70df0a189cd95164eddac599e810f", size = 210465, upload-time = "2026-07-31T11:31:19.333Z" }, - { url = "https://files.pythonhosted.org/packages/53/1a/d4437d3cb0691eeac2c6064e21c83a9eeda04f6ef0261abfc0dde708590d/websockets-17.0.1-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a39ce3a7b0e6059be093213d637963101380157bcbad355916738fafb490698d", size = 211417, upload-time = "2026-07-31T11:31:20.687Z" }, - { url = "https://files.pythonhosted.org/packages/88/28/2d671e23a20359a1cc142848384659813b49028d46cb0acdc28e81ac59b5/websockets-17.0.1-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2437d4ca208cc0f246d3a2297ae7474b4ba18261aaf5b9c79c84c031ecf348e1", size = 211309, upload-time = "2026-07-31T11:31:21.969Z" }, - { url = "https://files.pythonhosted.org/packages/02/52/b85a676b161991e5c0d884252376435f60510789e7740e3da73489d22a6e/websockets-17.0.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6740be6d1bab69f08ab52cb15b08f76c143b6fe61c580ba62bd929f3ab7a1d42", size = 212203, upload-time = "2026-07-31T11:31:23.38Z" }, - { url = "https://files.pythonhosted.org/packages/bf/e3/91e297e41381d9131f3142a9c1a50389fd96b98125ce9b81526fa4e14b9f/websockets-17.0.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:afbce6e3f0fac32dc87c2a0d84869d1a706460d64f39f3889386413e6e4d3d26", size = 213434, upload-time = "2026-07-31T11:31:24.707Z" }, - { url = "https://files.pythonhosted.org/packages/09/ce/3929538b2b9918f5eee623fbf3346893973191f6df93f19bbda097bd7bb7/websockets-17.0.1-py3-none-any.whl", hash = "sha256:c6be9cba65c65cc76dfa3d4619e359ff02a4476c74e179b215236c11a0b32345", size = 206718, upload-time = "2026-07-31T11:31:26.037Z" }, -]