[tool.ruff]
# Python version target
target-version = "py38"

# Line length to match common Python style guides
line-length = 100

[tool.ruff.lint]
# Enable common linting rules
select = [
    "E",   # pycodestyle errors
    "W",   # pycodestyle warnings
    "F",   # pyflakes
    "I",   # isort (import sorting)
    "N",   # pep8-naming
    "UP",  # pyupgrade
    "B",   # flake8-bugbear
    "C4",  # flake8-comprehensions
    "SIM", # flake8-simplify
    "TCH", # flake8-type-checking
]

# Ignore specific rules if needed
ignore = []

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

[tool.ruff.lint.isort]
# Sort imports alphabetically within each section
force-sort-within-sections = true
