Files
nova/pyproject.toml
Stephen Finucane dc31f9fd61 Run mypy from tox
This avoids the need to duplicate our dependency list in multiple places
and allows us to take advantage of tox's dependency management
infrastructure, to ensure we always get the latest and greatest version
of a package allowed by upper-constraints. It also removes the slowest
pre-commit hook (by some distance), making pre-commit faster.

Change-Id: Ie241768231f180d5a672bf9f8fdc6a1eb8d7dfdb
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2026-01-20 18:03:04 +00:00

153 lines
4.8 KiB
TOML

[build-system]
requires = ["pbr>=6.1.1"]
build-backend = "pbr.build"
[project]
name = "nova"
description = "Cloud computing fabric controller"
authors = [
{name = "OpenStack", email = "openstack-discuss@lists.openstack.org"},
]
readme = {file = "README.rst", content-type = "text/x-rst"}
license = {text = "Apache-2.0"}
dynamic = ["version", "dependencies"]
requires-python = ">=3.10"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: OpenStack",
"Intended Audience :: Information Technology",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: Apache Software License",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: Implementation :: CPython",
]
[project.optional-dependencies]
osprofiler = [
"osprofiler>=1.4.0", # Apache-2.0
]
zvm = [
"zVMCloudConnector>=1.3.0;sys_platform!='win32'", # Apache 2.0 License
]
vmware = [
"oslo.vmware>=3.6.0", # Apache-2.0
]
[project.urls]
"Bug Tracker" = "https://bugs.launchpad.net/nova/"
"Documentation" = "https://docs.openstack.org/nova/"
"Source Code" = "https://opendev.org/openstack/nova"
[project.scripts]
nova-compute = "nova.cmd.compute:main"
nova-conductor = "nova.cmd.conductor:main"
nova-manage = "nova.cmd.manage:main"
nova-novncproxy = "nova.cmd.novncproxy:main"
nova-policy = "nova.cmd.policy:main"
nova-rootwrap = "oslo_rootwrap.cmd:main"
nova-rootwrap-daemon = "oslo_rootwrap.cmd:daemon"
nova-scheduler = "nova.cmd.scheduler:main"
nova-serialproxy = "nova.cmd.serialproxy:main"
nova-spicehtml5proxy = "nova.cmd.spicehtml5proxy:main"
nova-status = "nova.cmd.status:main"
[project.entry-points."oslo.config.opts"]
"nova.conf" = "nova.conf.opts:list_opts"
[project.entry-points."oslo.config.opts.defaults"]
"nova.conf" = "nova.config:set_lib_defaults"
[project.entry-points."oslo.policy.enforcer"]
nova = "nova.policy:get_enforcer"
[project.entry-points."oslo.policy.policies"]
# The sample policies will be ordered by entry point and then by list
# returned from that entry point. If more control is desired split out each
# list_rules method into a separate entry point rather than using the
# aggregate method.
nova = "nova.policies:list_rules"
[project.entry-points."nova.api.extra_spec_validators"]
accel = "nova.api.validation.extra_specs.accel"
aggregate_instance_extra_specs = "nova.api.validation.extra_specs.aggregate_instance_extra_specs"
capabilities = "nova.api.validation.extra_specs.capabilities"
hw = "nova.api.validation.extra_specs.hw"
hw_rng = "nova.api.validation.extra_specs.hw_rng"
hw_video = "nova.api.validation.extra_specs.hw_video"
null = "nova.api.validation.extra_specs.null"
os = "nova.api.validation.extra_specs.os"
pci_passthrough = "nova.api.validation.extra_specs.pci_passthrough"
quota = "nova.api.validation.extra_specs.quota"
resources = "nova.api.validation.extra_specs.resources"
traits = "nova.api.validation.extra_specs.traits"
vmware = "nova.api.validation.extra_specs.vmware"
[project.entry-points."nova.compute.monitors.cpu"]
virt_driver = "nova.compute.monitors.cpu.virt_driver:Monitor"
[tool.setuptools]
packages = [
"nova"
]
[tool.setuptools.data-files]
"etc/nova" = [
"etc/nova/api-paste.ini",
"etc/nova/rootwrap.conf",
]
"etc/nova/rootwrap.d" = [
"etc/nova/rootwrap.d/*",
]
[tool.autopep8]
aggressive = 3
in-place = true
recursive = true
[tool.codespell]
skip = "*.po,*.js,*.css,*.html,*.svg,HACKING.py,*hacking*,*build*,*_static*,doc/dictionary.txt,*.pyc,*.inv,*.gz,*.jpg,*.png,*.vsd,*.graffle,*.json"
count = true
quiet-level = 4
[tool.mypy]
python_version = "3.10"
show_column_numbers = true
show_error_context = true
ignore_missing_imports = true
follow_imports = "skip"
incremental = true
check_untyped_defs = true
warn_unused_ignores = true
files = [
"nova/compute/manager.py",
"nova/compute/pci_placement_translator.py",
"nova/crypto.py",
"nova/filesystem.py",
"nova/limit/local.py",
"nova/limit/placement.py",
"nova/network/neutron.py",
"nova/pci/*.py",
"nova/privsep/path.py",
"nova/scheduler/client/report.py",
"nova/scheduler/request_filter.py",
"nova/scheduler/utils.py",
"nova/virt/driver.py",
"nova/virt/hardware.py",
"nova/virt/libvirt/machine_type_utils.py",
"nova/virt/libvirt/__init__.py",
"nova/virt/libvirt/cpu/__init__.py",
"nova/virt/libvirt/cpu/api.py",
"nova/virt/libvirt/cpu/core.py",
"nova/virt/libvirt/driver.py",
"nova/virt/libvirt/event.py",
"nova/virt/libvirt/guest.py",
"nova/virt/libvirt/host.py",
"nova/virt/libvirt/utils.py",
]