Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
9e11b40
refactor: 패키지 구조 변경
hyuntroll Jul 24, 2026
c274211
feat: model resource 추가
hyuntroll Jul 24, 2026
fa21800
feat: http transport 생성
hyuntroll Jul 24, 2026
b19b968
feat: resource 공통 베이스 생성
hyuntroll Jul 24, 2026
892e093
refactor: 불필요한 __init__ 코드 삭제
hyuntroll Jul 24, 2026
26fba30
test: transport stub을 이용한 arrival resource 유닛 테스트
hyuntroll Jul 24, 2026
55fb20c
chore: 패키지 메타데이터 정리
hyuntroll Jul 22, 2026
cd0cdc6
docs: 서비스 키 기반 클라이언트 생성 예제 갱신
hyuntroll Jul 24, 2026
fbd3f26
refactor: 모델 및 TAGO resource 구조 개선
hyuntroll Jul 28, 2026
eb946ca
refactor: remove legacy cache and BaseList infrastructure
hyuntroll Jul 29, 2026
f25ba04
feat: add city code resource
hyuntroll Jul 29, 2026
348deca
refactor: deprecate legacy client methods and normalize errors
hyuntroll Jul 29, 2026
cbda80b
chore: adopt semantic versioning at 0.13.0
hyuntroll Jul 29, 2026
0a74a98
docs: align public API guide with resource models
hyuntroll Jul 29, 2026
9339087
test: add opt-in live TAGO smoke flow
hyuntroll Jul 29, 2026
6f94bbf
ci: validate supported Python builds and distributions
hyuntroll Jul 29, 2026
cb985c1
chore: prepare 0.13.0 release
hyuntroll Jul 29, 2026
719d1c3
build: migrate packaging to pyproject for 0.14.0
hyuntroll Jul 29, 2026
bd4aa9d
feat: add bundled offline station catalog
hyuntroll Jul 29, 2026
0671539
ci: enforce package type checking
hyuntroll Jul 29, 2026
f8d3374
refactor: remove deferred model lazy loading
hyuntroll Jul 29, 2026
dc33fdf
test: remove obsolete manual API scripts
hyuntroll Jul 29, 2026
88e861b
refactor: remove legacy raw resource request path
hyuntroll Jul 29, 2026
a811bca
refactor: simplify bundled station catalog loading
hyuntroll Jul 29, 2026
f655ca0
refactor: inline transport response flow
hyuntroll Jul 29, 2026
a88193b
refactor: remove unused client transport shim
hyuntroll Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 41 additions & 31 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,43 +2,53 @@ name: Python package

on:
push:
branches: [ "main" ]
branches: ["main"]
pull_request:
branches: [ "main" ]
branches: ["main"]

jobs:
build:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install flake8 pytest
python -m pip install requests
python -m pip install pandas
python -m pip install xmltodict
python -m pip install dotenv
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi

- name: Lint with flake8
run: |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics

- name: Set PYTHONPATH
run: echo "PYTHONPATH=$(pwd)" >> $GITHUB_ENV

- name: Test with pytest
run: pytest
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install package and test dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"

- name: Check for fatal lint errors
run: flake8 src tests --count --select=E9,F63,F7,F82 --show-source --statistics

- name: Check package types
run: python -m mypy

- name: Run unit tests
run: python -m pytest -m "not integration"

package:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.14"

- name: Build and validate distributions
run: |
python -m pip install --upgrade pip
python -m pip install build twine
python -m build
python -m twine check dist/*
7 changes: 1 addition & 6 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,7 @@ jobs:
# For more information, see: https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-protection-rules
environment:
name: pypi
# OPTIONAL: uncomment and update to include your PyPI project URL in the deployment status:
# url: https://pypi.org/p/YOURPROJECT
#
# ALTERNATIVE: if your GitHub Release name is the PyPI project version string
# ALTERNATIVE: exactly, uncomment the following line instead:
# url: https://pypi.org/project/YOURPROJECT/${{ github.event.release.name }}
url: https://pypi.org/project/UnOffical-TAGO-API/

steps:
- name: Retrieve release distributions
Expand Down
6 changes: 2 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ tagopi/__pycache__
tests/__pycache__
.pytest_cache
.env
caches/cache.pkl
.vscodeoutput.json
.tagoapi


tagoapi/caches/station.pkl
.idea/
*.egg-info/
39 changes: 39 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Changelog

이 프로젝트는 `MAJOR.MINOR.PATCH` 버전 형식을 사용합니다.

## 0.14.0 - Unreleased

### Added

- 공식 정류소 데이터 기반 오프라인 `StationCatalog`
- `StationCatalogError`

### Changed

- 패키지 빌드 설정을 `pyproject.toml`로 전환

### Removed

- 구현되지 않은 `utils.get_station` 메모 모듈
- Resource와 연결되지 않던 실험적 model lazy-loading 기능

## 0.13.0 - 2026-07-29

### Added

- 서비스별 Route, Station, Arrival, Vehicle Resource
- `CityCode` 모델과 `CityResource`
- `TagoPage` 기반 페이지 응답

### Changed

- 모델과 Resource의 책임 분리
- 공공데이터포털 및 제공기관 예외 계층 정리
- 구형 Client 메서드를 deprecated API로 전환

### Removed

- `BaseList`
- pickle cache와 구형 converter/decorator
- requests 기반 구형 HTTP helper
1 change: 0 additions & 1 deletion MANIFEST.in

This file was deleted.

Loading
Loading