[project]
name = "dungeon-masters-vault"
version = "0.1.0"
description = "RAG application to help you with your DnD Notes."
readme = "README.md"
requires-python = ">=3.14"
dependencies = [
    "dspy>=3.1.2",
    "faiss-cpu>=1.13.2",
    "langchain>=1.2.7",
    "langchain-community>=0.4.1",
    "langchain-text-splitters>=1.1.0",
    "python-dotenv>=1.2.1",
    "pyturso>=0.4.3",
    "sentence-transformers>=5.2.2",
]

[tool.ruff]
# Latest PEP standards configuration
target-version = "py314"
line-length = 100
indent-width = 4

[tool.ruff.lint]
# Enable latest PEP rules
select = [
    "E",    # pycodestyle errors
    "W",    # pycodestyle warnings
    "F",    # Pyflakes
    "UP",   # pyupgrade (PEP 585, 604, etc.)
    "B",    # flake8-bugbear
    "SIM",  # flake8-simplify
    "I",    # isort
    "N",    # pep8-naming
    "D",    # pydocstring
    "C90",  # mccabe complexity
]
ignore = [
    "D100", # Missing docstring in public module
    "D104", # Missing docstring in public package
    "D203", # 1 blank line required before class docstring
    "D213", # Multi-line docstring summary should start at the second line
]

[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]  # Allow unused imports in __init__.py files

[tool.ruff.lint.mccabe]
max-complexity = 10

[tool.ruff.format]
# Use double quotes for strings
quote-style = "double"
# Use 4 spaces for indentation
indent-style = "space"
# Skip magic trailing commas
skip-magic-trailing-comma = false
# Automatically detect line ending
line-ending = "auto"
