mirror of
https://github.com/pyapp-kit/superqt.git
synced 2025-09-04 16:50:10 +02:00
* fix: fix throttled inspection * build: change typing-ext deps * fix: use inspect.signature * use get_max_args * fix: fix typing
184 lines
4.9 KiB
TOML
184 lines
4.9 KiB
TOML
# https://peps.python.org/pep-0517/
|
|
[build-system]
|
|
requires = ["hatchling", "hatch-vcs"]
|
|
build-backend = "hatchling.build"
|
|
|
|
# https://peps.python.org/pep-0621/
|
|
[project]
|
|
name = "superqt"
|
|
description = "Missing widgets and components for PyQt/PySide"
|
|
readme = "README.md"
|
|
requires-python = ">=3.8"
|
|
license = { text = "BSD 3-Clause License" }
|
|
authors = [{ email = "talley.lambert@gmail.com", name = "Talley Lambert" }]
|
|
keywords = [
|
|
"qt",
|
|
"pyqt",
|
|
"pyside",
|
|
"widgets",
|
|
"range slider",
|
|
"components",
|
|
"gui",
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Environment :: X11 Applications :: Qt",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: BSD License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Topic :: Desktop Environment",
|
|
"Topic :: Software Development :: User Interfaces",
|
|
"Topic :: Software Development :: Widget Sets",
|
|
]
|
|
dynamic = ["version"]
|
|
dependencies = [
|
|
"packaging",
|
|
"pygments>=2.4.0",
|
|
"qtpy>=1.1.0",
|
|
"typing-extensions >=3.7.4.3,!=3.10.0.0",
|
|
]
|
|
|
|
# extras
|
|
# https://peps.python.org/pep-0621/#dependencies-optional-dependencies
|
|
[project.optional-dependencies]
|
|
test = ["pint", "pytest", "pytest-cov", "pytest-qt"]
|
|
dev = [
|
|
"black",
|
|
"ipython",
|
|
"ruff",
|
|
"mypy",
|
|
"pdbpp",
|
|
"pre-commit",
|
|
"pydocstyle",
|
|
"rich",
|
|
"types-Pygments",
|
|
]
|
|
docs = ["mkdocs-macros-plugin", "mkdocs-material", "mkdocstrings[python]"]
|
|
quantity = ["pint"]
|
|
pyside2 = ["pyside2"]
|
|
# see issues surrounding usage of Generics in pyside6.5.x
|
|
# https://github.com/pyapp-kit/superqt/pull/177
|
|
# https://github.com/pyapp-kit/superqt/pull/164
|
|
pyside6 = ["pyside6 !=6.5.0,!=6.5.1"]
|
|
pyqt5 = ["pyqt5"]
|
|
pyqt6 = ["pyqt6"]
|
|
font-fa5 = ["fonticon-fontawesome5"]
|
|
font-fa6 = ["fonticon-fontawesome6"]
|
|
font-mi6 = ["fonticon-materialdesignicons6"]
|
|
font-mi7 = ["fonticon-materialdesignicons7"]
|
|
|
|
[project.urls]
|
|
Source = "https://github.com/pyapp-kit/superqt"
|
|
Tracker = "https://github.com/pyapp-kit/superqt/issues"
|
|
Changelog = "https://github.com/pyapp-kit/superqt/blob/main/CHANGELOG.md"
|
|
|
|
[tool.hatch.version]
|
|
source = "vcs"
|
|
|
|
[tool.hatch.build.targets.sdist]
|
|
include = ["src", "tests", "CHANGELOG.md"]
|
|
|
|
# https://pycqa.github.io/isort/docs/configuration/options.html
|
|
[tool.isort]
|
|
profile = "black"
|
|
src_paths = ["src/superqt", "tests"]
|
|
|
|
# https://github.com/charliermarsh/ruff
|
|
[tool.ruff]
|
|
line-length = 88
|
|
target-version = "py38"
|
|
src = ["src", "tests"]
|
|
select = [
|
|
"E", # style errors
|
|
"F", # flakes
|
|
"W", # flakes
|
|
"D", # pydocstyle
|
|
"I", # isort
|
|
"UP", # pyupgrade
|
|
"S", # bandit
|
|
"C4", # flake8-comprehensions
|
|
"B", # flake8-bugbear
|
|
"A001", # flake8-builtins
|
|
"RUF", # ruff-specific rules
|
|
"TID", # tidy imports
|
|
]
|
|
ignore = [
|
|
"D100", # Missing docstring in public module
|
|
"D101", # Missing docstring in public class
|
|
"D104", # Missing docstring in public package
|
|
"D107", # Missing docstring in __init__
|
|
"D203", # 1 blank line required before class docstring
|
|
"D212", # Multi-line docstring summary should start at the first line
|
|
"D213", # Multi-line docstring summary should start at the second line
|
|
"D401", # First line should be in imperative mood
|
|
"D413", # Missing blank line after last section
|
|
"D416", # Section name should end with a colon
|
|
]
|
|
|
|
|
|
[tool.ruff.per-file-ignores]
|
|
"tests/*.py" = ["D", "S101"]
|
|
"examples/demo_widget.py" = ["E501"]
|
|
"examples/*.py" = ["B", "D"]
|
|
|
|
# https://docs.pytest.org/en/6.2.x/customize.html
|
|
[tool.pytest.ini_options]
|
|
minversion = "6.0"
|
|
testpaths = ["tests"]
|
|
filterwarnings = [
|
|
"error",
|
|
"ignore:QPixmapCache.find:DeprecationWarning:",
|
|
"ignore:SelectableGroups dict interface:DeprecationWarning",
|
|
"ignore:The distutils package is deprecated:DeprecationWarning",
|
|
]
|
|
|
|
# https://mypy.readthedocs.io/en/stable/config_file.html
|
|
[tool.mypy]
|
|
files = "src/**/*.py"
|
|
strict = true
|
|
disallow_untyped_defs = false
|
|
disallow_untyped_calls = false
|
|
disallow_any_generics = false
|
|
disallow_subclassing_any = false
|
|
show_error_codes = true
|
|
pretty = true
|
|
exclude = ['tests/**/*']
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = ["superqt.qtcompat.*"]
|
|
ignore_missing_imports = true
|
|
warn_unused_ignores = false
|
|
allow_redefinition = true
|
|
|
|
# https://coverage.readthedocs.io/en/6.4/config.html
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"if TYPE_CHECKING:",
|
|
"@overload",
|
|
"except ImportError",
|
|
]
|
|
|
|
# https://github.com/mgedmin/check-manifest#configuration
|
|
[tool.check-manifest]
|
|
ignore = [
|
|
".github_changelog_generator",
|
|
".pre-commit-config.yaml",
|
|
"tests/**/*",
|
|
"src/superqt/_version.py",
|
|
"mkdocs.yml",
|
|
"docs/**/*",
|
|
"examples/**/*",
|
|
"CHANGELOG.md",
|
|
"CONTRIBUTING.md",
|
|
"codecov.yml",
|
|
".ruff_cache/**/*",
|
|
]
|