stvnksslr/dataslate-parser

View on GitHub
pyproject.toml

Summary

Maintainability
Test Coverage
[tool.poetry]
name = "dataslate-parser"
version = "1.3.0"
description = "a module for parsing battlescribe rosters and allowing them to be printed or displayed cleanly"
authors = ["Steven Kessler <stvnksslr@gmail.com>"]
license = "MIT"
package-mode = false

[tool.poetry.dependencies]
python = "^3.11"
beautifulsoup4 = "^4.12.3"
lxml = "^5.2.2"
fastapi = "^0.111.0"
aiofiles = "^24.1.0"
jinja2 = "^3.1.4"
jinja2-fragments = "^1.4.0"
python-multipart = "^0.0.9"
loguru = "^0.7.2"
uvicorn = { extras = ["standard"], version = "^0.30.1" }
httpx = "^0.27.0"
pydantic = "^2.8.0"

[tool.poetry.group.dev.dependencies]
pytest = "^8.2.2"
pytest-cov = "^5.0.0"
pytest-sugar = "^1.0.0"
pytest-asyncio = "^0.23.7"
pytest-clarity = "^1.0.1"
pytest-random-order = "^1.1.1"

[tool.poetry.group.code-quality.dependencies]
ruff = "^0.5.0"
mypy = "^1.11.1"
pre-commit = "^3.8.0"

[tool.poetry.group.types.dependencies]
types-beautifulsoup4 = "^4.12.0.20240511"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

[tool.pytest.ini_options]
asyncio_mode = "auto"
addopts = "-vv --random-order"

[tool.pyright]
ignore = ["src/tests"]

[tool.coverage.run]
omit = [
    '*/.local/*',
    '__init__.py',
    'tests/*',
    '*/tests/*',
    '.venv/*',
    '*/migrations/*',
    '*_test.py',
    "src/utils/logger_manager.py",
]

[tool.ruff]
line-length = 120
exclude = [
    ".eggs",
    ".git",
    ".pytype",
    ".ruff_cache",
    ".venv",
    "__pypackages__",
    ".venv",
]
lint.ignore = [
    "B008",    # function-call-in-default-argument (B008)
    "S101",    # Use of `assert` detected
    "RET504",  # Unnecessary variable assignment before `return` statement
    "PLR2004", # Magic value used in comparison, consider replacing {value} with a constant variable
    "ARG001",  # Unused function argument: `{name}`
    "S311",    # Standard pseudo-random generators are not suitable for cryptographic purposes
    "ISC001",  # Checks for implicitly concatenated strings on a single line
]
lint.select = [
    "A",   # flake8-builtins
    "B",   # flake8-bugbear
    "E",   # pycodestyle
    "F",   # Pyflakes
    "N",   # pep8-naming
    "RET", # flake8-return
    "S",   # flake8-bandit
    "W",   # pycodestyle
    "Q",   # flake8-quotes
    "C90", # mccabe
    "I",   # isort
    "UP",  # pyupgrade
    "BLE", # flake8-blind-except
    "C4",  # flake8-comprehensions
    "ISC", # flake8-implicit-str-concat
    "ICN", # flake8-import-conventions
    "PT",  # flake8-pytest-style
    "PIE", # flake8-pie
    "T20", # flake8-print
    "SIM", # flake8-simplify
    "TCH", # flake8-type-checking
    "ARG", # flake8-unused-arguments
    "PTH", # flake8-use-pathlib
    "ERA", # eradicate
    "PL",  # Pylint
    "NPY", # NumPy-specific rules
    "PLE", # Pylint
    "PLR", # Pylint
    "PLW", # Pylint
    "RUF", # Ruff-specific rules
    "PD",  # pandas-vet
]