dvpl-engine 0.1.0

DVPL file format engine for World of Tanks Blitz
Documentation
[build-system]
requires = ["maturin>=1.0,<2.0"]
build-backend = "maturin"

[project]
name = "dvpl-converter"
version = "0.1.0"
description = "Convert DVPL files (World of Tanks Blitz), written in Rust."
readme = "README.md"
requires-python = ">=3.10"
license = "MIT"
license-files = ["LICENSE"]
authors = [
    { name = "MihaiStreames", email = "72852703+MihaiStreames@users.noreply.github.com" },
]
keywords = ["dvpl", "wotb", "lz4", "compression", "world-of-tanks"]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3 :: Only",
    "Programming Language :: Rust",
    "Topic :: Games/Entertainment",
    "Topic :: System :: Archiving :: Compression",
]
dependencies = []

[project.scripts]
dvpl-converter = "dvpl_converter:main"

[project.urls]
Repository = "https://github.com/MihaiStreames/dvpl-converter"

[project.optional-dependencies]
dev = [
    "mypy>=1.20.1",
    "ruff>=0.15.10",
]

[tool.ruff]
line-length = 100
target-version = "py310"

[tool.ruff.lint]
select = [
    "E",
    "W",    # pycodestyle
    "F",    # pyflakes
    "I",    # isort
    "N",    # pep8-naming
    "UP",   # pyupgrade
    "B",    # bugbear
    "C4",   # comprehensions
    "SIM",  # simplify
    "ARG",  # unused arguments
    "PTH",  # use pathlib
    "RET",  # return
    "PL",   # pylint
    "PERF", # perflint
]
ignore = [
    "E501",    # line too long (formatter handles this)
    "PLR0913", # too many arguments
    "PLR2004", # magic value comparison
    "SIM108",  # ternary operator (sometimes less readable)
]

[tool.ruff.format]
quote-style = "double"
indent-style = "space"
line-ending = "lf"
docstring-code-format = true
docstring-code-line-length = 80

[tool.ruff.lint.isort]
force-single-line = true
force-sort-within-sections = true
lines-after-imports = 2
section-order = [
    "future",
    "standard-library",
    "third-party",
    "first-party",
    "local-folder",
]

[tool.ruff.lint.pydocstyle]
convention = "numpy"

[tool.mypy]
python_version = "3.10"
files = ["python/dvpl_converter"]
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
strict_equality = true

[[tool.mypy.overrides]]
module = ["dvpl_engine.*"]
ignore_missing_imports = true

[tool.maturin]
features = ["python"]
python-source = "python"
module-name = "dvpl_engine"
strip = true