[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "binky" description = "Give every git worktree its own isolated local world — ports, env, database, URLs — so a swarm of agents runs in parallel without collisions." readme = "README.md" requires-python = ">=3.11" license = "Apache-2.0" license-files = ["LICENSE", "NOTICE"] authors = [{ name = "Andrei Silva" }] keywords = ["worktree", "dev-environment", "agents", "isolation", "ports", "parallel"] classifiers = [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "Operating System :: POSIX :: Linux", "Operating System :: Microsoft :: Windows", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Build Tools", ] dynamic = ["version"] dependencies = [ "typer>=0.12", "pydantic>=2", "psutil>=5.9", "textual>=0.50", # `binky init` reads docker-compose.yml. It is the first command a new user # runs, so it cannot sit behind an extra — and compose files in the wild use # anchors and flow collections that a hand-rolled subset parser would # mis-read silently, which is the one failure mode a generator must not have. "PyYAML>=6", ] [project.optional-dependencies] dev = [ "pytest>=8", "ruff>=0.6", ] mcp = [ "mcp>=1.2", # FastMCP(instructions=...) lands in 1.2 ] # One extra per adapter — installing Binky for Redis should not pull boto3. # `all-adapters` is the convenience roll-up for "I want the whole matrix". postgres = ["psycopg[binary]>=3"] redis = ["redis>=5"] mysql = ["PyMySQL>=1.1"] mongodb = ["pymongo>=4.6"] s3 = ["boto3>=1.34"] kafka = ["kafka-python>=2.1"] # rabbitmq and qdrant drive plain REST management APIs — no driver needed. all-adapters = [ "psycopg[binary]>=3", "redis>=5", "PyMySQL>=1.1", "pymongo>=4.6", "boto3>=1.34", "kafka-python>=2.1", ] [project.scripts] binky = "binky.cli:app" [project.urls] Homepage = "https://github.com/andreisilva1/binky" Repository = "https://github.com/andreisilva1/binky" Issues = "https://github.com/andreisilva1/binky/issues" [tool.hatch.version] path = "src/binky/__init__.py" [tool.hatch.build.targets.wheel] packages = ["src/binky"] [tool.ruff] line-length = 100 target-version = "py311" src = ["src", "tests"] [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM", "RUF"] [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-q"