[project]
name = "pyqt-liquidglass"
version = "0.1.0"
description = "macOS Liquid Glass effects for PySide6 and PyQt6"
readme = "README.md"
authors = [
    { name = "h", email = "h@kotikot.com" }
]
requires-python = ">=3.12"
dependencies = [
    "pyobjc-framework-cocoa>=12.1",
    "pyobjc-framework-quartz>=12.1",
]
license = { file = "LICENSE.md" }
classifiers = [
    "Intended Audience :: Developers",
    "Topic :: Desktop Environment",
    "Topic :: Software Development :: Libraries :: Python Modules",
    "Topic :: Software Development :: User Interfaces",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Operating System :: MacOS",
    "Typing :: Typed",
]
keywords = [
    "pyqt",
    "pyside",
    "qt",
    "macos",
    "liquid glass",
    "blur",
    "vibrancy",
    "nsvisualeffectview",
]

[project.urls]
Homepage = "https://git.kotikot.com/lib/pyqt-liquidglass"
Repository = "https://github.com/kotikotprojects/pyqt-liquidglass"

[build-system]
requires = ["uv_build>=0.9.13,<0.10.0"]
build-backend = "uv_build"

[dependency-groups]
dev = [
    "pyside6-essentials>=6.10.1",
    "pyside6-stubs>=6.7.3.0",
]

[tool.ruff]
target-version = "py313"

[tool.ruff.lint]
select = ["ALL"]
ignore = ["CPY", "D1", "D203", "D212", "COM812", "RUF001", "RUF002", "RUF003"]
unfixable = ["F401"]

[tool.ruff.lint.per-file-ignores]
"*.lock" = ["ALL"]
"docs/*" = ["ALL"]

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

[tool.ruff.format]
docstring-code-format = true
skip-magic-trailing-comma = true

[tool.ruff.lint.isort]
split-on-trailing-comma = false
