pyproject.toml•1.4 kB
[project]
name = "obsidian-index"
version = "0.1.0"
description = "An MCP server that provides a semantic search over an Obsidian vault"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"click>=8.1.7",
"duckdb>=1.1.3",
"mcp>=1.0.0",
"python-json-logger>=2.0.7",
"sentence-transformers>=3.3.1",
"watchdog>=6.0.0",
]
[[project.authors]]
name = "Tom Savage"
email = "tcsavage@gmail.com"
[build-system]
requires = [ "hatchling",]
build-backend = "hatchling.build"
[dependency-groups]
dev = [
"ruff>=0.8.1",
]
[project.scripts]
obsidian-index = "obsidian_index.main:main"
[tool.ruff]
lint.select = [
"A",
"B",
"BLE",
"COM812",
"COM818",
"DTZ",
"E",
"F",
"I",
"INP",
"ICN001",
"PT",
"RUF",
"UP",
]
lint.extend-ignore = [
# line length violations
"E501",
# pytest broad exceptions
"PT011",
# `pytest.raises(Exception)` should be considered evil
"B017",
# Do not catch blind exception: `Exception`
"BLE001",
# ruff format conflicting rules
"W191",
"E111",
"E114",
"E117",
"D206",
"D300",
"Q000",
"Q001",
"Q002",
"Q003",
"COM812",
"COM819",
"ISC001",
"ISC002",
"UP007", # Perfer Optional[T] over T | None for clarity of intent
"UP015", # Permit open(..., "r") for clarity
]
line-length = 100
target-version = "py312"