[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "trcc-linux" version = "9.4.7" description = "Linux implementation of Thermalright LCD Control Center" readme = "README.md" license = "GPL-3.0-or-later" requires-python = ">=3.10" authors = [ { name = "TRCC Linux Contributors" } ] keywords = ["thermalright", "lcd", "cooling", "hardware", "monitor"] classifiers = [ "Development Status :: 4 - Beta", "Environment :: X11 Applications", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: System :: Hardware", "Topic :: System :: Monitoring", ] dependencies = [ "PySide6>=6.5.0", "numpy>=1.24.0", "psutil>=5.9.0", "pyusb>=1.2.0", "click>=7.0", "typer>=0.9.0", "fastapi>=0.100", "tzdata>=2024.1; sys_platform == 'win32'", "uvicorn[standard]>=0.20", "python-multipart>=0.0.6", "prompt_toolkit>=3.0.0", "sounddevice>=0.4.6", "wmi>=1.5.1; sys_platform == 'win32'", "certifi>=2023.7.22", ] [project.optional-dependencies] nvidia = [ "nvidia-ml-py>=11.0.0", ] wayland = [ "dbus-python>=1.3.0", "PyGObject>=3.42.0", ] windows = [ "wmi>=1.5.1; sys_platform == 'win32'", ] hid = [ "hidapi>=0.14.0", ] remote = [ "qrcode>=7.0", ] dev = [ "pytest>=7.0.0", "pytest-cov>=4.0.0", "ruff>=0.4.0", "httpx>=0.24.0", "types-qrcode>=7.0", ] all = [ "trcc-linux[nvidia,wayland,hid,remote,dev]", ] [project.urls] Homepage = "https://github.com/Lexonight1/thermalright-trcc-linux" Documentation = "https://github.com/Lexonight1/thermalright-trcc-linux#readme" Repository = "https://github.com/Lexonight1/thermalright-trcc-linux" Issues = "https://github.com/Lexonight1/thermalright-trcc-linux/issues" [project.scripts] trcc = "trcc.ui.cli:main" trcc-gui = "trcc.ui.cli:gui" trcc-detect = "trcc.ui.cli:detect" trcc-test = "trcc.ui.cli:test_display" # Experimental clean-slate architecture (opt-in, unsupported). # Also reachable via: TRCC_NEXT=1 trcc trcc-next = "trcc.next.ui.cli.main:main" [project.gui-scripts] trcc-lcd = "trcc.ui.cli:gui" [tool.hatch.build.targets.sdist] include = [ "/src", "/tests", "/README.md", "/LICENSE", ] exclude = [ "**/*.7z", "**/web_cache/**", ] [tool.hatch.build.targets.wheel] packages = ["src/trcc"] exclude = [ "**/*.7z", "**/web_cache/**", # Theme/web data is downloaded on first run — never ship in wheel. "**/data/Theme*/**", "**/data/Web/**", ] artifacts = [ # Only GUI assets — never data/ (themes are downloaded on first run). "**/assets/**/*.png", "**/assets/**/*.gif", "**/assets/**/*.ttf", "**/assets/**/*.otf", "**/assets/**/*.TTC", "**/assets/**/*.desktop", "**/assets/**/*.service", "**/assets/**/*.policy", "**/assets/**/*.svg", ] [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["src", "tests"] python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] addopts = "-v --tb=short -n auto" # pyusb 1.3.1 uses _pack_ in ctypes — deprecated in Python 3.14 (pyusb#535) # Remove once pyusb releases a fix with _layout_ = 'ms' filterwarnings = [ "ignore::DeprecationWarning:usb.*", ] [tool.ruff] line-length = 100 target-version = "py310" [tool.ruff.lint] select = ["E", "F", "W", "I"] ignore = ["E501"] [tool.coverage.run] source = ["trcc"] branch = true concurrency = ["multiprocessing", "thread"] parallel = true [tool.coverage.report] show_missing = true skip_empty = true exclude_lines = [ "pragma: no cover", "if __name__ == .__main__.", "if TYPE_CHECKING:", "raise NotImplementedError", ] [tool.pyright] pythonVersion = "3.10" pythonPlatform = "Linux" include = ["src"] typeCheckingMode = "basic" reportMissingTypeStubs = false reportMissingImports = "warning" reportOptionalMemberAccess = "error" reportAttributeAccessIssue = "error" reportArgumentType = "error" reportCallIssue = "error" reportOptionalIterable = "error" reportOptionalOperand = "error"