Files
Aislo/requirements.txt
T
eomsangdonandClaude Fable 5 50e5626a95 feat(B05): 구조물 타입 레지스트리·정본 CRUD 백엔드 추가
임도 구조물 전체(구조물군 B~G)를 수동 배치할 수 있도록 백엔드 기반을 만든다.
타입 정의를 코드가 아닌 데이터(JSON 레지스트리)로 두어, 구조물 목록이 바뀌어도
코드를 고치지 않고 화면 폼까지 따라오게 했다.

- B05_Profile_Structure_Types.json: 타입 레지스트리 정본 (B~G 32종 + 호환 4종).
  배치형태(point/interval/site)·옵션 스키마·마크 스타일·drawing_views 메타 포함.
- B05_Profile_Structures_Schema.py: 타입·인스턴스 Pydantic 모델.
  배치형태별 위치 필드 배타 검증, side·offset_m·placement_source·status·revision.
- B05_Profile_Structures_Repository.py: structures.json 단일 정본 읽기·쓰기.
  atomic_write_json 재사용, base_revision 불일치 시 충돌 예외,
  설계 영향 변경만 후속 단계를 무효화하도록 판정하는 지문 비교.
- B05_Profile_Structures_Migration.py: 기존 비정규 측점 이관.
  배관은 pipe_points.json 정본이라 제외, 기성막이→기슭막이, 대피로→대피소 통합,
  나머지는 이름을 살려 기타. 같은 입력이면 같은 결과.
- B05_Profile_Structures_Router.py: GET /structure-types, 구조물 목록 조회·저장.
  판번호 충돌 409, 미등록·타 정본 관리 타입 400, 저장 후 B06 이후 STALE 전파.

테스트 45건(tmp/tests) 통과. 기존 배관·배수유역·종단 편집 코드는 건드리지 않았다.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 22:19:00 +09:00

60 lines
977 B
Plaintext

affine==2.4.0
aiomysql==0.2.0
annotated-types==0.7.0
anyio==3.7.1
attrs==26.1.0
certifi==2026.6.17
click==8.4.2
click-plugins==1.1.1.2
cligj==0.7.2
colorama==0.4.6
et_xmlfile==2.0.0
fastapi==0.104.1
bcrypt>=4.1,<5
email-validator>=2.1,<3
fiona==1.10.1
geopandas==1.1.4
h11==0.16.0
idna==3.18
ImageIO==2.37.3
Jinja2==3.1.2
laspy==2.7.0
mapbox-vector-tile>=2.0.1
lazy-loader==0.5
MarkupSafe==3.0.3
networkx==3.6.1
numpy==2.5.0
openpyxl==3.1.2
packaging==26.2
pandas==3.0.3
pillow==12.3.0
psutil>=6.1,<7
pydantic==2.5.0
pydantic_core==2.14.1
PyMySQL==1.2.0
pyparsing==3.3.2
pyproj==3.7.2
pyogrio==0.13.0
python-dateutil==2.9.0.post0
python-dotenv==1.0.0
python-multipart==0.0.6
rasterio==1.5.0
ruff>=0.12,<1
scikit-image==0.26.0
scipy==1.18.0
setuptools==83.0.0
shapely==2.1.2
six==1.17.0
sniffio==1.3.1
snuggs==1.4.7
starlette==0.27.0
tifffile==2024.8.28
trimesh==4.12.2
typing_extensions==4.16.0
tzdata==2026.2
uvicorn==0.24.0
wheel==0.47.0
whitebox==2.3.6
pytest>=8
httpx<0.28