이 프로젝트는 Python 프로젝트를 시작할 때 사용할 수 있는 템플릿입니다. C++ 바인딩을 포함한 Python 패키지 개발을 위한 모든 기본 설정이 포함되어 있습니다.
- 📦 패키지 관리: uv를 사용한 빠르고 효율적인 패키지 관리
- 🎯 코드 품질 관리:
- 🔗 C++ 바인딩: pybind11을 사용한 C++ 코드 바인딩
- 🚀 CI/CD: GitHub Actions를 통한 자동화된 테스트 및 배포
- 자동 테스트 실행
- 릴리즈 자동화
- pre-commit 검사
-
이 저장소를 템플릿으로 사용하여 새 저장소를 생성합니다.
-
프로젝트를 클론합니다:
git clone https://github.com/hyperaccel/python-project-template.git <project-name> cd <project-name>
-
개인화 스크립트를 실행합니다:
# uv 설치 curl -LsSf https://astral.sh/uv/install.sh | sh uv sync --group setup --no-install-project python scripts/personalize.py
- GitHub 조직/사용자 이름
- 저장소 이름
- 패키지 이름 을 입력하여 프로젝트를 개인화합니다.
-
Python 3.10 이상 설치
-
uv 설치:
curl -LsSf https://astral.sh/uv/install.sh | sh -
의존성 설치 및 활성화:
apt install -y build-essential cmake pybind11-dev uv sync source .venv/bin/activate -
의존성 추가:
uv add <package-name>
-
코드 작성
src/디렉토리에 Python 코드 작성csrc/디렉토리에 C++ 코드 작성tests/디렉토리에 테스트 코드 작성
-
코드 품질 관리
# 린팅
ruff check .
# 포맷팅
ruff format .
# 타입 체크
mypy .
# pre-commit 설치
pre-commit install
# pre-commit 실행
pre-commit run --all-files-
테스트 실행
pytest
.
├── my_project/ # Python 패키지 소스 코드
├── csrc/ # C++ 소스 코드
├── include/ # C++ 헤더 파일
├── tests/ # 테스트 코드
├── scripts/ # 유틸리티 스크립트
├── examples/ # 예제 코드
├── .github/workflows/ # GitHub Actions 워크플로우
├── pyproject.toml # 프로젝트 설정
├── setup.py # 빌드 설정
└── CMakeLists.txt # C++ 빌드 설정CI-test.yaml: 테스트 자동화pre-commit.yaml: pre-commit 검사prepare-release.yaml: 릴리즈 준비release.yaml: 릴리즈 배포