Ctrl K
ComunidadGuías…

pyproject.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[project]
name = "opencompany-cli"
version = "0.3.1"
description = "OpenCompany project supervisor CLI (company)."
requires-python = ">=3.12"
dependencies = [
    "typer>=0.12",
    "rich>=13",
    "anyio>=4",
    "psutil>=6",
    # OS-native user data / cache / config / log dirs. Soft dependency
    # in the CLI (``cli/platform_.py`` imports it inside a try/except
    # and falls back to a stdlib implementation if the wheel isn't
    # available) so ``company clean`` / ``company build`` still work
    # immediately after a wipe, before ``pip install`` has had a
    # chance to materialise it.
    "platformdirs>=4.0",
    # Required on Windows for the supervisor's Job Object (cli/tree.py).
    # Without it, child processes survive abnormal supervisor exit
    # (SIGKILL, BSOD, console close) and accumulate as orphans across
    # dev restarts. Floor 308 is the first release shipping prebuilt
    # wheels for Python 3.13.
    "pywin32>=308; platform_system == 'Windows'",
]

[project.scripts]
company = "cli.cli:app"
# Deprecated compatibility alias. New documentation and installs use
# ``company``; keep this entry point so existing automation keeps working.
machina = "cli.cli:app"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["cli"]

# The CLI runs under the user's global / pipx-managed Python — it is
# NOT a uv-managed project. ``managed = false`` tells ``uv`` to leave
# this project alone: ``uv sync`` at the repo root is a no-op, no
# ``<repo>/.venv/`` is created, ``python`` on PATH resolves to the
# user's global interpreter instead of being shadowed by a workspace
# venv. The server is the only uv-managed project (``server/.venv``).
[tool.uv]
managed = false

[dependency-groups]
dev = []

# ``opencompany-cli`` is a standalone Python CLI package -- installable
# via ``pipx install .`` / ``pip install .`` against any Python >=3.12
# without involving uv. It depends on nothing from ``server/``. The
# server has its own uv-managed venv at ``server/.venv``; the CLI
# invokes server-side commands by shelling out via ``cli.run.uv_run``
# (which runs ``uv run --no-sync ...`` with ``cwd=server/`` so uv
# discovers ``server/pyproject.toml`` and activates ``server/.venv``).
# Keeping the CLI independent of the uv workspace means contributors
# can install / run / debug ``company`` on whatever interpreter is on
# PATH -- no per-checkout venv activation required.