[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "winpodx" version = "0.9.0" description = "Windows app integration for Linux desktop" readme = "README.md" license = "MIT" requires-python = ">=3.9" authors = [ { name = "Kim DaeHyun", email = "kernalix7@kodenet.io" }, ] keywords = ["windows", "linux", "desktop-integration", "rdp", "winapps"] classifiers = [ "Development Status :: 2 - Pre-Alpha", "Environment :: X11 Applications :: Qt", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Topic :: Desktop Environment", ] dependencies = [ # tomllib is stdlib on Python 3.11+; pull in the pure-Python tomli fallback # for 3.9/3.10 so RHEL 9 (python3 == 3.9) can install winpodx without the # python3.11 AppStream module. "tomli>=1.1.0; python_version < '3.11'", ] [project.optional-dependencies] gui = [ "PySide6>=6.5,<7.0", ] docker = [ "docker>=7.0,<8.0", ] # Reverse-open (#48) icon conversion. Pillow handles raster (PNG/XPM) # → multi-resolution ICO; cairosvg handles SVG → PNG; pyxdg drives the # freedesktop icon-theme lookup. Without this extra installed, the # discovery layer still works but ICO conversion falls back to a # logged warning + no file written. reverse-open = [ "Pillow>=10.0,<12.0", "cairosvg>=2.7,<3.0", "pyxdg>=0.27,<1.0", ] dev = [ "pytest>=7.0,<9.0", "ruff>=0.4,<1.0", "pip-audit>=2.7", "Pillow>=10.0,<12.0", ] all = [ "winpodx[gui,docker,reverse-open,dev]", ] [project.scripts] winpodx = "winpodx.cli.main:cli" [project.urls] Homepage = "https://github.com/kernalix7/winpodx" Repository = "https://github.com/kernalix7/winpodx" Issues = "https://github.com/kernalix7/winpodx/issues" Funding = "https://ko-fi.com/kernalix7" "Funding (KR)" = "https://fairy.hada.io/@kernalix7" [tool.hatch.build.targets.wheel] packages = ["src/winpodx"] # Keep Cargo build artifacts out of the wheel. The shim is checked in # pre-built under shim/bin/; everything under target/ is regenerable # and would otherwise inflate the wheel by ~5 MB per accidental build. exclude = [ "config/oem/reverse-open/shim/target", "config/oem/reverse-open/shim/target/**", "config/oem/reverse-open/shim/Cargo.lock", ] [tool.hatch.build.targets.wheel.shared-data] "data" = "share/winpodx/data" "config" = "share/winpodx/config" "scripts" = "share/winpodx/scripts" "uninstall.sh" = "share/winpodx/uninstall.sh" "LICENSE" = "share/winpodx/LICENSE" "README.md" = "share/winpodx/README.md" "THIRD_PARTY_LICENSES.md" = "share/winpodx/THIRD_PARTY_LICENSES.md" [tool.ruff] target-version = "py39" line-length = 100 [tool.ruff.lint] select = ["E", "F", "I", "W"] [tool.pytest.ini_options] testpaths = ["tests"] filterwarnings = [ "error::DeprecationWarning:winpodx.*", ] markers = [ "hypothesis: property-based tests using the Hypothesis library (skipped if hypothesis is not installed)", ]