[project]
name = 'stub project'
version = '0.1.0'
description = 'Stub project'
authors = [{ name = 'github.com/cybergrind' }]
license = { text = 'Apache-2.0' }
requires-python = '>=3.13'
dependencies = [
  'ipython',
]

# installed with: uv sync
[dependency-groups]
dev = ['ruff', 'pre-commit>=4.1.0', 'uv>=0.6.1']

[tool.ruff]
line-length = 120
target-version = 'py313'
indent-width = 4
exclude = ['.venv', '.git']

[tool.ruff.format]
quote-style = 'single'

[tool.ruff.lint.isort]
combine-as-imports = true
known-first-party = ['snapshot_manager']
lines-after-imports = 2

[tool.ruff.lint]
ignore = [
  'T201',  # print
  'G004',  # logging format
  'Q000',  # quotes
  'Q001',  # quotes
  'Q003',  # quotes
]
fixable = ['ALL']
select = [
  'E',     # pycodestyle
  'F',     # pyflakes
  'I',     # isort
  'G',     # flake8-logging-format
  'ASYNC', # flake8-async
  'PIE',   # flake8-pie
  'T20',   # flake8-print
  'PT',    # flake8-pytest-style
  'Q',     # flake8-quotes
  'RUF',
]
exclude = ['alembic/*']

[tool.ruff.lint.flake8-quotes]
docstring-quotes = 'double'
inline-quotes = 'single'
multiline-quotes = 'single'

# safe to delete if you're not using black/isort for formatting
[tool.black]
line-length = 100
skip-string-normalization = true
skip-magic-trailing-comma = true
target-version = ['py38']
include = '\.pyi?$'
exclude = '''
/(
    \.git
  | \.hg
  | \.mypy_cache
  | \.tox
  | venv
  | _build
  | buck-out
  | build
  | dist
)/
'''

[tool.isort]
combine_as_imports = true
default_section = 'THIRDPARTY'
force_alphabetical_sort_within_sections = true
force_grid_wrap = 0
include_trailing_comma = true
line_length = 100
lines_after_imports = 2
multi_line_output = 3
sections = ['FUTURE', 'STDLIB', 'THIRDPARTY', 'OWN', 'FIRSTPARTY', 'LOCALFOLDER']

known_first_party = ''
known_own = ['pytest_tipsi_testing', 'pytest_tipsi_django', 'fan_tools']

#end of black/isort section
