Skip to content

Dev dependencies incorrectly included in install_requires #146

@jeffdarmawan

Description

@jeffdarmawan

Hi, thanks for maintaining the project.

While reviewing python-okx==0.4.1, I noticed that several development and tooling dependencies are included in install_requires, causing them to be installed as runtime requirements.

Specifically, these packages appear under Requires-Dist and are being treated as production dependencies:

  • pytest
  • pytest-asyncio
  • pytest-cov
  • ruff
  • build
  • twine

These are development, testing, or packaging tools and should not be part of runtime dependencies.

Issue

Including these in install_requires causes:

  • unnecessary dependencies in production environments
  • increased install time and dependency bloat
  • mixing of runtime and development concerns
  • potential version conflicts for downstream users

Suggested fix (setup.py)

Please move development and tooling dependencies from install_requires into extras_require.

install_requires=[
    "httpx[http2]>=0.24.0",
    "requests>=2.25.0",
    "websockets>=10.0",
    "certifi>=2021.0.0",
    "loguru>=0.7.0",
    "python-dotenv>=1.0.0",
],

extras_require={
    "dev": [
        "pytest>=7.0.0",
        "pytest-asyncio>=0.21.0",
        "pytest-cov>=4.0.0",
        "ruff>=0.1.0",
        "build>=1.0.0",
        "twine>=4.0.0",
    ]
}

Expected behavior after fix

  • pip install python-okx installs only runtime dependencies
  • pip install python-okx[dev] installs development tooling

Summary

This aligns with standard Python packaging practices (setuptools / PyPA guidance) where install_requires should only include runtime dependencies, while testing and build tools belong in optional extras.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions