Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PEP 621를 적용할 의향이 있으신가요 #225

Open
phi-friday opened this issue Aug 13, 2024 · 7 comments · May be fixed by #228
Open

PEP 621를 적용할 의향이 있으신가요 #225

phi-friday opened this issue Aug 13, 2024 · 7 comments · May be fixed by #228

Comments

@phi-friday
Copy link
Contributor

이 라이브러리는 PEP 621을 만족하지 못하고 있습니다.
현재 PEP 621을 만족하고 있는 PDM, rye 등을 사용하여, 프로젝트 관리와 패키징 작업을 간소화 할 수 있습니다.
필요하시다면 기여할 의향이 있습니다.
확인 부탁드립니다.

@FinanceData
Copy link
Owner

참여와 제안 너무나 감사합니다.

해당 PEP를 살펴보았고, 중장기적으로 적용하는 것이 좋겠다는 생각입니다.
참여를 부탁 드리기 위해 다음 내용을 공유 드리면 될까요?

setup.py , setup.cfg , MANIFEST.in , requirements.txt

@phi-friday
Copy link
Contributor Author

phi-friday commented Aug 16, 2024

참여와 제안 너무나 감사합니다.

해당 PEP를 살펴보았고, 중장기적으로 적용하는 것이 좋겠다는 생각입니다. 참여를 부탁 드리기 위해 다음 내용을 공유 드리면 될까요?

setup.py , setup.cfg , MANIFEST.in , requirements.txt

네. 말씀주신 파일 공유해주시면 pr 작성하여 요청드리겠습니다.
그리고 앞으로 사용하실 프로그램을 말씀주시면, 해당 프로그램 사용하여 작성하겠습니다.

제가 사용해봤던 도구 중 PEP621을 만족하는 도구의 장점은 다음과 같습니다.

도구 장점
PDM 간단한 CLI, 빠른 성능, 자동 가상 환경 관리, 기존 도구와 호환성
Hatch 멀티 환경 지원, 플러그인 기반 확장성, 복잡한 프로젝트 관리에 적합
Rye 올인원 도구, 빠르고 경량, 간편한 CLI, 자동 설정 관리

poetry도 좋은 도구지만, 아직 PEP621을 지원하지 않습니다.
2.0에서 지원 예정으로 알려져있지만, 2.0출시가 언제가 될 지 모르기에 제외했습니다.

제가 사용해봤을 때, rye가 가장 편했습니다. 하지만 출시된지 얼마 되지 않아서 선뜻 권유하기 어려운 도구인 것도 맞습니다.
(장기적으로 uv통합 될 예정인 것으로 보입니다.
실제로 최신 버전의 uv에는 rye의 명령어 일부가 실험적으로 포함되어 있습니다.)
이 외에도 제가 사용해본적 없지만 PEP621을 지원하는 다른 도구가 많으므로,
확인 후 말씀주시면 감사하겠습니다.

pr 초안을 #228 에 작성하였으니, 참고부탁드립니다.

@phi-friday phi-friday linked a pull request Aug 16, 2024 that will close this issue
4 tasks
@FinanceData
Copy link
Owner

관련 파일들을 참고로 공유 드립니다.

setup.py

from setuptools import setup, find_packages

NAME = 'finance-datareader'

INSTALL_REQUIRES = (
    ['pandas>=0.19.2', 'requests>=2.3.0', 'requests-file', 'lxml', 'tqdm']
)

setup(
    name = 'finance-datareader',
    version = '0.9.50',
    description = 'Financial data reader (price, stock list of markets)',
    author = 'FinanceData.KR',
    author_email = 'plusjune@financedata.kr',
    url = 'https://github.com/financedata/financedatareader',
    install_requires = INSTALL_REQUIRES,
    packages = find_packages(exclude=['*.pyc']),
    license='MIT License',
    python_requires  = '>=3',
    classifiers      = [
        'Operating System :: OS Independent',
        'Programming Language :: Cython',
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.2',
        'Programming Language :: Python :: 3.3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6'
    ],
    keywords = ['data', 'finance'],
    zip_safe=False,
)

setup.cfg

[metadata]
description_file = README.md

MANIFEST.in

# Include the README
include *.md

# Include the license file
include LICENSE.txt

# Include the FinanceDataReader files
recursive-include FinanceDataReader *

requirements.txt

# 사용하고 있지 않습니다

참고가 되시길 바랍니다.

@FinanceData
Copy link
Owner

도구는 검토와 추천 감사합니다.
도구로는 추천해주신 Rye가 좋아 보입니다.

감사합니다.

@phi-friday
Copy link
Contributor Author

도구는 검토와 추천 감사합니다. 도구로는 추천해주신 Rye가 좋아 보입니다.

감사합니다.

@FinanceData
rye 선택시 개발환경은 3.7이상만 지원하므로 참고부탁드립니다.
(amd64의 경우 3.7, arm의 경우 3.8)
<3.7에 대해서도 tox등으로 테스트 환경을 구축하는 것은 가능합니다.

@phi-friday
Copy link
Contributor Author

phi-friday commented Aug 23, 2024

@FinanceData
uv>=0.3.0 출시와 함께, 패키지 의존성 관리 기능이 향상됐습니다.
이로 인해 rye에서 uv로 마이그레이션을 유도하는 것이 사실상 확정 된 것 같습니다.
(현재 사용자의 의견을 취합하고 있습니다.
rye에는 있는데 uv에서는 어떻게 할 수 있는지 등
astral-sh/rye#1342)

아쉽게도 당장 buildpublish를 지원하지는 않으므로, 당장 uv를 사용하는 것은 좋지 않아 보입니다.
하지만 이 문제는 단기 로드맵에 명시된 문제고, 계속 추적중이므로, 얼마 지나지 않아 추가 될 기능으로 보입니다.
(https://docs.astral.sh/uv/guides/publish/,
astral-sh/uv#6278,
astral-sh/uv#1510)

제가 판단하기에, rye에서 uv로 마이그레이션하는 것은 큰 문제가 없고,
build, publish 명령어 기능만 정상적으로 추가된다면, 바로 넘어가도 될 것 같습니다.

pr #228 이 병합되기 전까지 해당 기능이 추가된다면, uv로 변경하는 것이 어떠신지 궁금합니다.
물론 병합 된 이후에도 필요하시다면 신규 pr로 기여하겠습니다.

@FinanceData
Copy link
Owner

이미 많이 살펴보셨을 것 같은데요.
uv에 대한 호평이 꽤 많으네요. "최종적으로 Rye는 uv로 대체"라는 의견도 있구요. https://news.hada.io/topic?id=16425
말씀주신 바와 같이 uv로 바로 넘어가는 가는 것이 더 좋을 듯 합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants