[project] name = "workspaces" version = "0.1.0" description = "A command-line tool for working with project workspaces using git worktrees." readme = "README.md" license = "MIT" authors = [ { name = "Waylon S. Walker", email = "waylon@waylonwalker.com" } ] requires-python = ">=3.12" keywords = [ "cli", "typer", "rich", "tmux", "git", "git-worktree", "workspace-manager", "project-manager", "developer-tools", "developer-workflow", "productivity", ] dependencies = [ "iterfzf>=1.8.0.62.0", "pydantic>=2.12.5", "pydantic-settings>=2.12.0", "rich>=14.2.0", "typer>=0.20.0", ] [project.urls] Documentation = "https://git.wayl.one/waylon/workspaces#readme" Issues = "https://git.wayl.one/waylon/workspaces/issues" Source = "https://git.wayl.one/waylon/workspaces" Changelog = "https://git.wayl.one/waylon/workspaces/blob/main/CHANGELOG.md" [project.scripts] workspaces = "workspaces:main" [build-system] requires = ["uv_build>=0.9.7,<0.10.0"] build-backend = "uv_build" [dependency-groups] dev = [ "ipython>=9.7.0", "pyinstrument>=5.1.1", "ruff>=0.14.6", "ty>=0.0.1a28", ] [tool.ruff.lint.isort] force-single-line = true [tool.ruff] target-version = "py312" [tool.ruff.lint] ignore = [ "E501", "COM812", # flake8-commas ] select = [ "F", # Pyflakes "E", # Error "W", # Warning # "C90", # mccabe "I", # isort "N", # pep8-naming # "D", # pydocstyle "UP", # pyupgrade "YTT", # flake8-2020 # "ANN", # flake8-annotations # "S", # flake8-bandit # "BLE", # flake8-blind-except # "FBT", # flake8-boolean-trap "B", # flake8-bugbear "A", # flake8-builtins "COM", # flake8-commas "C4", # flake8-comprehensions "DTZ", # flake8-datetimez "T10", # flake8-debugger "DJ", # flake8-django "EM", # flake8-errmsg "EXE", # flake8-executable "ISC", # flake8-implicit-str-concat "ICN", # flake8-import-conventions "G", # flake8-logging-format "INP", # flake8-no-pep420 "PIE", # flake8-pie "T20", # flake8-print "PYI", # flake8-pyi "PT", # flake8-pytest-style "Q", # flake8-quotes "RSE", # flake8-raise "RET", # flake8-return "SLF", # flake8-self "SIM", # flake8-simplify "TID", # flake8-tidy-imports "TCH", # flake8-type-checking "INT", # flake8-gettext "ARG", # flake8-unused-arguments "PTH", # flake8-use-pathlib "ERA", # eradicate "PD", # pandas-vet "PGH", # pygrep-hooks # "PL", # Pylint "PLC", # Convention "PLE", # Error # "PLR", # Refactor "PLW", # Warning "TRY", # tryceratops "NPY", # NumPy-specific rules "RUF", # Ruff-specific rules ]