[project] name = "dzgui" description = "DayZ server browser and mod manager for Linux" authors = [ {name = "aclist"} ] version = "7.0.0b21" license = "GPL-3.0-or-later" license-files = ["LICENSE"] readme = "README.md" classifiers = [ "Development Status :: 4 - Beta", "Environment :: X11 Applications :: GTK", "Intended Audience :: End Users/Desktop", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.13", "Topic :: Games/Entertainment", "Typing :: Typed", ] requires-python = ">=3.13, <3.14" dependencies = [ "PyGObject==3.52.3", "dayzquery", "packaging==25.0", "psutil==7.1.3", "python-a2s", "requests==2.32.5", "vdf==3.4" ] [project.scripts] dzgui = "dzgui.main:main" [project.urls] Homepage = "https://aclist.github.io/dzgui" Repository = "https://github.com/aclist/dzgui" Issues = "https://github.com/aclist/dzgui/issues" Changelog = "https://github.com/aclist/dzgui/blob/main/CHANGELOG.md" [project.optional-dependencies] docs = [ "sphinx==9.0.4", "sphinx-rtd_theme==3.1.0", "sphinx-copybutton==0.5.2" ] test = [ "black==25.1.0", "pre-commit==4.4.0", "pytest==8.4.2", "pytest-cov==7.0.0", ] lint = [ "mypy==1.17.0", "mypy_extensions==1.1.0", "ruff==0.11.13", "PyGObject-stubs==2.13.0", "types-requests>=2.32.4", "types-psutil==7.2.2.20260508", ] build = [ "pre-commit==4.4.0", "build==1.5.0", ] dev = [ "dzgui[docs,test,lint,build]" ] [build-system] requires = ["setuptools", "setuptools_scm"] build-backend = "setuptools.build_meta" [tool.ruff] line-length = 88 indent-width = 4 extend-exclude = ["*lib/a2s"] lint.unfixable = ["F401", "I001"] [tool.ruff.format] quote-style = "double" indent-style = "space" [tool.black] line-length = 88 [tool.mypy] python_version = "3.13" disallow_untyped_defs = true warn_return_any = true exclude = ["lib/*"] [[tool.mypy.overrides]] module = [ "a2s", "dayzquery" ] ignore_missing_imports = true [tool.uv.sources] python-a2s = { path = "./dzgui/lib/a2s", editable = true } dayzquery = { path = "./dzgui/lib/dayzquery", editable = true } [tool.uv] config-settings-package = { pygobject-stubs = { config = "Gtk3,Gdk3,Soup2" } } [tool.pytest.ini_options] markers = [ "apitest: checks remote endpoints", "config: config file keys/values", "realconfig: depends on actual generated local config file", "mods: tests mod metadata/link creation", "pefile: validate PE files", "post_install: requires a completed installation", "redact: log redaction mechanisms", "slow: long-running tests", "webtest: depends on remote endpoint", ]