Skip to main content

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.whl
  • dist/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. 배포 버전 갱신 절차

  1. pyproject.toml[project].version을 새 버전으로 변경
  2. python -m build로 아티팩트 재생성
  3. twine check 통과 확인
  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

contracts_hj3415-0.5.4.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

contracts_hj3415-0.5.4-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

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

Hashes for contracts_hj3415-0.5.4.tar.gz
Algorithm Hash digest
SHA256 b08d05c468c35d7ee165e180dc4afcf4fa3a63a41b2cb9f342698628648d45aa
MD5 e0e63d1d443ef47965977c21e5766248
BLAKE2b-256 c04b924954c025bf755146ed586ad0d1204938bf99ba472e49afde694213e5ad

See more details on using hashes here.

File details

Details for the file contracts_hj3415-0.5.4-py3-none-any.whl.

File metadata

File hashes

Hashes for contracts_hj3415-0.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9804529b37ad342e6449c9ede3b7257978fa52c4711f24b7da1ec99a3c0e21d2
MD5 53fada0e1c758f3cdad3669c6fd4362e
BLAKE2b-256 b7ee5e39fe90d64f2a3c1c2a43520026cf24d88312bc62b60af0302bd8510555

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page