DTO pakages for hj3415
Project description
contracts-hj3415 배포 가이드
contracts-hj3415는 프로젝트 간 데이터 교환에 사용하는 DTO/타입 계약 패키지입니다.
현재 pyproject.toml 기준 빌드 백엔드는 flit_core, 최소 Python 버전은 3.11, 현재 버전은 0.5.3입니다.
1. 프로젝트 구조 (사용자 빠른 이해용)
이 패키지는 “데이터를 어떻게 주고받을지”를 고정하는 계약 레이어입니다. 실제 수집/저장/분석 로직은 없고, envelope/payload 타입과 생성 함수에 집중되어 있습니다.
contracts-hj3415/
├─ pyproject.toml # 패키지 메타/버전/빌드 설정(flit_core)
└─ src/contracts_hj3415/
├─ common/
│ ├─ types.py # 공통 타입(Topic, Endpoint 등)
│ ├─ payload.py # 공통 payload 검증
│ └─ envelope.py # 핵심: Envelope DTO + make_*_envelope
├─ nfs/
│ ├─ c101.py ~ c108.py # 엔드포인트별 contents 타입
│ ├─ types.py # labels 등 NFS 전용 타입
│ └─ payloads.py # NfsPayloadDTO, build_nfs_payload_dto
├─ universe/
│ ├─ krx300.py # 유니버스 contents 타입
│ └─ payloads.py # UniversePayloadDTO
├─ analysis/
│ ├─ features.py, red.py # 분석 결과 contents 타입
│ └─ payloads.py # AnalysisPayloadDTO
└─ dart/
├─ types.py
└─ payloads.py
데이터 흐름은 아래 3가지 envelope로 통일됩니다.
NfsEnvelopeDTO: 스크래핑 계열 데이터UniverseEnvelopeDTO: 유니버스(종목군) 데이터AnalysisEnvelopeDTO: 분석 결과 데이터
대표 진입점(common/envelope.py)의 생성 함수:
make_nfs_envelope(...)make_universe_envelope(...)make_analysis_envelope(...)
간단 사용 예시:
from datetime import datetime, UTC
from contracts_hj3415.common.envelope import make_nfs_envelope
env = make_nfs_envelope(
code="005930",
asof=datetime.now(UTC),
endpoint="c101",
labels={},
contents={"summary_cmp": {"market_cap": 100}},
)
2. 요구사항
- Python
>=3.11 - 배포 도구:
build,twine,flit - PyPI 토큰(또는 사내 인덱스 계정)
python -m pip install -U pip build twine flit
3. 로컬 설치
소스 기준 설치:
cd packages/contracts-hj3415
python -m pip install .
개발 모드 설치:
cd packages/contracts-hj3415
python -m pip install -e .
4. 배포 아티팩트 빌드
기존 빌드 산출물 정리 후 재빌드:
cd packages/contracts-hj3415
rm -rf dist build *.egg-info
python -m build
생성 결과:
dist/contracts_hj3415-<version>-py3-none-any.whldist/contracts_hj3415-<version>.tar.gz
5. 업로드 (PyPI)
토큰 환경 변수 설정:
export TWINE_USERNAME=__token__
export TWINE_PASSWORD=<PYPI_API_TOKEN>
업로드 실행:
cd packages/contracts-hj3415
python -m twine check dist/*
python -m twine upload dist/*
테스트 저장소(TestPyPI) 업로드:
python -m twine upload --repository testpypi dist/*
6. 배포 버전 갱신 절차
pyproject.toml의[project].version을 새 버전으로 변경python -m build로 아티팩트 재생성twine check통과 확인twine upload로 배포
버전은 재업로드가 불가하므로, 이미 업로드한 버전이면 반드시 새 버전으로 올려야 합니다.
7. 배포 후 검증
깨끗한 가상환경에서 설치 확인:
python -m pip install contracts-hj3415==0.5.3
python -c "import contracts_hj3415; print('ok')"
로컬 wheel 검증:
python -m pip install dist/contracts_hj3415-0.5.3-py3-none-any.whl
python -c "from contracts_hj3415.common.envelope import make_nfs_envelope; print('ok')"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file contracts_hj3415-0.5.4.tar.gz.
File metadata
- Download URL: contracts_hj3415-0.5.4.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b08d05c468c35d7ee165e180dc4afcf4fa3a63a41b2cb9f342698628648d45aa
|
|
| MD5 |
e0e63d1d443ef47965977c21e5766248
|
|
| BLAKE2b-256 |
c04b924954c025bf755146ed586ad0d1204938bf99ba472e49afde694213e5ad
|
File details
Details for the file contracts_hj3415-0.5.4-py3-none-any.whl.
File metadata
- Download URL: contracts_hj3415-0.5.4-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9804529b37ad342e6449c9ede3b7257978fa52c4711f24b7da1ec99a3c0e21d2
|
|
| MD5 |
53fada0e1c758f3cdad3669c6fd4362e
|
|
| BLAKE2b-256 |
b7ee5e39fe90d64f2a3c1c2a43520026cf24d88312bc62b60af0302bd8510555
|