Files
clide/pyproject.toml
T
Jeroen SchweitzerandClaude 2d2e5f5648 chore: bump version to 1.0.0 and add CHANGELOG.md
Release version 1.0.0 with comprehensive changelog documenting
all features added since initial development including skill
installer, TileList component, file watcher, and theme system.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-01 21:27:17 +01:00

134 lines
3.3 KiB
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "clide"
version = "1.0.0"
description = "A TUI CLI IDE for Claude Code CLI"
readme = "README.md"
requires-python = ">=3.12"
license = "MIT"
authors = [
{ name = "Jeroen Schweitzer", email = "you@example.com" }
]
classifiers = [
"Development Status :: 3 - Alpha",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development :: User Interfaces",
]
dependencies = [
"textual>=0.50.0",
"pyte>=0.8.0",
"typer>=0.12.0",
"pydantic>=2.0.0",
"pydantic-settings>=2.0.0",
"pluggy>=1.4.0",
"rich>=13.0.0",
"watchdog>=4.0.0",
"wcwidth>=0.2.0", # Required by vendored pyte
# Tree-sitter for syntax highlighting
"tree-sitter>=0.21.0",
"tree-sitter-python>=0.21.0",
"tree-sitter-javascript>=0.21.0",
"tree-sitter-typescript>=0.21.0",
"tree-sitter-html>=0.21.0",
"tree-sitter-css>=0.21.0",
"tree-sitter-json>=0.21.0",
"tree-sitter-yaml>=0.5.0",
"tree-sitter-toml>=0.5.0",
"tree-sitter-markdown>=0.2.0",
"tree-sitter-rust>=0.21.0",
"tree-sitter-go>=0.21.0",
"tree-sitter-java>=0.21.0",
"tree-sitter-bash>=0.21.0",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0.0",
"pytest-asyncio>=0.23.0",
"pytest-textual-snapshot>=0.4.0",
"pytest-cov>=4.0.0",
"mypy>=1.8.0",
"ruff>=0.3.0",
"pre-commit>=3.0.0",
]
build = [
"pyinstaller>=6.0.0",
]
[project.scripts]
clide = "clide.cli:app"
[project.entry-points."clide.extensions"]
# Built-in extensions registered here
# example = "clide.extensions.builtin.example:ExampleExtension"
[tool.hatch.build.targets.wheel]
packages = ["clide"]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
addopts = [
"-v",
"--tb=short",
]
[tool.mypy]
python_version = "3.12"
strict = true
warn_return_any = true
warn_unused_configs = true
exclude = ["tests", "dist", "build"]
[tool.ruff]
target-version = "py312"
line-length = 100
src = ["clide", "tests"]
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # Pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
"ARG", # flake8-unused-arguments
"SIM", # flake8-simplify
"TCH", # flake8-type-checking
"PTH", # flake8-use-pathlib
"ASYNC", # flake8-async
]
ignore = [
"E501", # line too long (handled by formatter)
"ARG002", # unused method argument (Textual event handlers require these)
"SIM102", # nested if (sometimes clearer)
"SIM105", # contextlib.suppress (try-except-pass is clearer in context)
"SIM115", # context handler for files (sometimes not applicable)
"PTH123", # Path.open() vs open() (not always cleaner)
]
[tool.ruff.lint.isort]
known-first-party = ["clide"]
[tool.coverage.run]
source = ["clide"]
branch = true
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"if TYPE_CHECKING:",
"raise NotImplementedError",
]