[build-system] requires = [ "setuptools", "setuptools-scm", "wheel" ] build-backend = "setuptools.build_meta" [project] name = "control" description = "Python Control Systems Library" authors = [{name = "Python Control Developers", email = "python-control-developers@lists.sourceforge.net"}] license = "BSD-3-Clause" readme = "README.rst" classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "Intended Audience :: Developers", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Software Development", "Topic :: Scientific/Engineering", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix", "Operating System :: MacOS", ] requires-python = ">=3.10" dependencies = [ "numpy>=1.23", "scipy>=1.8", "matplotlib>=3.6", ] dynamic = ["version"] [tool.setuptools] packages = ["control"] [project.optional-dependencies] test = ["pytest", "pytest-timeout", "ruff", "numpydoc"] slycot = [ "slycot>=0.4.0" ] cvxopt = [ "cvxopt>=1.2.0" ] [project.urls] homepage = "https://python-control.org" source = "https://github.com/python-control/python-control" [tool.setuptools_scm] write_to = "control/_version.py" [tool.pytest.ini_options] addopts = "-ra --strict-markers" filterwarnings = [ "error:.*matrix subclass:PendingDeprecationWarning", ] markers = [ "slycot: tests needing slycot", "noslycot: test needing slycot absent", "cvxopt: tests needing cvxopt", "pandas: tests needing pandas", ] [tool.ruff] # TODO: expand to cover all code include = ['control/**.py', 'benchmarks/*.py', 'examples/*.py'] [tool.ruff.lint] select = [ 'F', # pyflakes # todo: add more as needed ]