# plotpy setup configuration file [build-system] requires = [ "setuptools", "wheel", "cython ~= 0.29.0", "numpy >= 1.17; python_version == '3.8'", "numpy >= 2.0.0; python_version > '3.8'", ] build-backend = "setuptools.build_meta" [project] name = "PlotPy" authors = [{ name = "Codra", email = "p.raybaut@codra.fr" }] description = "Curve and image plotting tools for Python/Qt applications" readme = "README.md" license = { file = "LICENSE" } classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows :: Windows 7", "Operating System :: Microsoft :: Windows :: Windows 8", "Operating System :: Microsoft :: Windows :: Windows 10", "Operating System :: Microsoft :: Windows :: Windows 11", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Image Processing", "Topic :: Scientific/Engineering :: Human Machine Interfaces", "Topic :: Scientific/Engineering :: Visualization", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: User Interfaces", "Topic :: Software Development :: Widget Sets", "Topic :: Utilities", ] requires-python = ">=3.8, <4" dependencies = [ "guidata>=3.6.2", "PythonQwt>=0.12.1", "NumPy>=1.17", "SciPy>=1.3", "scikit-image >= 0.18", "Pillow", "tifffile", ] dynamic = ["version"] [project.urls] Homepage = "https://github.com/PlotPyStack/plotpy/" Documentation = "https://plotpy.readthedocs.io/en/latest/" [project.gui-scripts] plotpy-tests = "plotpy.tests:run" plotpy-benchmarks = "plotpy.tests.benchmarks:run" [project.optional-dependencies] dev = ["ruff", "pylint", "Coverage", "Cython"] doc = [ "PyQt5", "sphinx", "myst_parser", "sphinx-copybutton", "sphinx_qt_documentation", "python-docs-theme", ] test = ["pytest", "pytest-xvfb"] [tool.setuptools.packages.find] include = ["plotpy*"] [tool.setuptools.package-data] "*" = ["*.png", "*.svg", "*.mo", "*.cfg", "*.toml", "*.dcm", "*.ui", "*.json"] [tool.setuptools.dynamic] version = { attr = "plotpy.__version__" } [tool.pytest.ini_options] addopts = "plotpy" [tool.ruff] exclude = [".git", ".vscode", "build", "dist"] line-length = 88 # Same as Black. indent-width = 4 # Same as Black. target-version = "py38" # Assume Python 3.8 [tool.ruff.lint] # all rules can be found here: https://beta.ruff.rs/docs/rules/ select = ["E", "F", "W", "I", "NPY201"] ignore = [ "E203", # space before : (needed for how black formats slicing) ] [tool.ruff.format] quote-style = "double" # Like Black, use double quotes for strings. indent-style = "space" # Like Black, indent with spaces, rather than tabs. skip-magic-trailing-comma = false # Like Black, respect magic trailing commas. line-ending = "auto" # Like Black, automatically detect the appropriate line ending. [tool.ruff.lint.per-file-ignores] "doc/*" = ["E402"] [tool.cibuildwheel] build = ["cp38-*", "cp39-*", "cp310-*", "cp311-*", "cp312-*"] skip = ["*-manylinux_i686", "*-musllinux*"]