[tool.black]
line-length = 88
target-version = ['py38', 'py39', 'py310', 'py311', 'py312']
include = '\.pyi?$'
extend-exclude = '''
/(
  # directories
  \.eggs
  | \.git
  | \.hg
  | \.mypy_cache
  | \.tox
  | \.venv
  | build
  | dist
  | setup
)/
'''

[tool.isort]
profile = "black"
force_single_line = true
line_length = 88
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true
skip_glob = ["*/__init__.py"]
known_odoo = ["odoo"]
known_odoo_addons = ["odoo.addons"]
sections = ["FUTURE", "STDLIB", "THIRDPARTY", "ODOO", "ODOO_ADDONS", "FIRSTPARTY", "LOCALFOLDER"]
default_section = "THIRDPARTY"

[tool.mypy]
# Excluir carpetas de migraciones y archivos de post-migrate.py que usan guiones
# (evita errores de "Duplicate module" en mypy cuando múltiples addons contienen
# archivos con el mismo nombre como `post-migrate.py`). Usamos una expresión
# regular que coincide con cualquier ruta que contenga `/migrations/`.
exclude = "(?i).*/migrations/.*"
