mirror of
https://github.com/pyapp-kit/superqt.git
synced 2025-09-04 16:50:10 +02:00
* refactor: reorg repo * fix: include pyi in manifest * remove extra * changes * why no trigger * fix needs * include python 3.11 * remove cache * add back license * bump versions * fix py37 * fix napari test * remove timeout * fix py37 test * test: fix py311 tests * change windows test
176 lines
4.8 KiB
TOML
176 lines
4.8 KiB
TOML
# https://peps.python.org/pep-0517/
|
|
[build-system]
|
|
requires = ["setuptools>=45", "wheel", "setuptools-scm[toml]>=6.2"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
# https://peps.python.org/pep-0621/
|
|
[project]
|
|
name = "superqt"
|
|
description = "Missing widgets and components for PyQt/PySide"
|
|
readme = "README.md"
|
|
requires-python = ">=3.7"
|
|
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.7",
|
|
"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",
|
|
]
|
|
|
|
# extras
|
|
# https://peps.python.org/pep-0621/#dependencies-optional-dependencies
|
|
[project.optional-dependencies]
|
|
test = ["pint", "pytest", "pytest-cov", "pytest-qt", "tox", "tox-conda"]
|
|
dev = [
|
|
"black",
|
|
"flake8-bugbear",
|
|
"flake8-docstrings",
|
|
"flake8-pyprojecttoml",
|
|
"flake8-typing-imports",
|
|
"flake8",
|
|
"ipython",
|
|
"isort",
|
|
"jedi<0.18.0",
|
|
"mypy",
|
|
"pdbpp",
|
|
"pre-commit",
|
|
"pydocstyle",
|
|
"pyside2",
|
|
"pytest-cov",
|
|
"pytest-qt",
|
|
"pytest",
|
|
"rich",
|
|
"tox-conda",
|
|
"tox",
|
|
]
|
|
docs = ["mkdocs-macros-plugin", "mkdocs-material", "mkdocstrings[python]"]
|
|
quantity = ["pint"]
|
|
pyside2 = ["pyside2"]
|
|
pyside6 = ["pyside6"]
|
|
pyqt5 = ["pyqt5"]
|
|
pyqt6 = ["pyqt6"]
|
|
font-fa5 = ["fonticon-fontawesome5"]
|
|
font-fa6 = ["fonticon-fontawesome6"]
|
|
font-mi5 = ["fonticon-materialdesignicons5"]
|
|
|
|
[project.urls]
|
|
Source = "https://github.com/napari/superqt"
|
|
Tracker = "https://github.com/napari/superqt/issues"
|
|
Changelog = "https://github.com/napari/superqt/blob/main/CHANGELOG.md"
|
|
|
|
|
|
# https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
|
|
[tool.setuptools]
|
|
zip-safe = false
|
|
include-package-data = true
|
|
packages = { find = { where = ["src"], exclude = [] } }
|
|
|
|
[tool.setuptools.package-data]
|
|
"*" = ["py.typed", "*.pyi"]
|
|
|
|
|
|
# https://github.com/pypa/setuptools_scm/#pyprojecttoml-usage
|
|
[tool.setuptools_scm]
|
|
write_to = "src/superqt/_version.py"
|
|
|
|
# https://pycqa.github.io/isort/docs/configuration/options.html
|
|
[tool.isort]
|
|
profile = "black"
|
|
src_paths = ["src/superqt", "tests"]
|
|
|
|
# https://flake8.pycqa.org/en/latest/user/options.html
|
|
# https://gitlab.com/durko/flake8-pyprojecttoml
|
|
[tool.flake8]
|
|
exclude = "docs,.eggs,examples,_version.py"
|
|
max-line-length = 88
|
|
min-python-version = "3.8.0"
|
|
docstring-convention = "all" # use numpy convention, while allowing D417
|
|
extend-ignore = """
|
|
E203 # whitespace before ':'
|
|
D107,D203,D212,D213,D402,D413,D415,D416 # numpy
|
|
D100 # missing docstring in public module
|
|
D401 # imperative mood
|
|
W503 # line break before binary operator
|
|
E302,E704 # black will handle these when we want them
|
|
"""
|
|
per-file-ignores = ["tests/*:D"]
|
|
|
|
# http://www.pydocstyle.org/en/stable/usage.html
|
|
[tool.pydocstyle]
|
|
match_dir = "src/superqt"
|
|
convention = "numpy"
|
|
add_select = "D402,D415,D417"
|
|
ignore = "D100,D213,D401,D413,D107"
|
|
|
|
# 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/**/"
|
|
strict = true
|
|
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/**/*",
|
|
"tox.ini",
|
|
"src/superqt/_version.py",
|
|
"mkdocs.yml",
|
|
"docs/**/*",
|
|
"examples/**/*",
|
|
"CHANGELOG.md",
|
|
"CONTRIBUTING.md",
|
|
"codecov.yml",
|
|
]
|