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. Change-Id: I46eac909846b2d6bd41608efedbed7db08df0c20 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
113 lines
2.9 KiB
TOML
113 lines
2.9 KiB
TOML
[build-system]
|
|
requires = ["pbr>=6.1.1"]
|
|
build-backend = "pbr.build"
|
|
|
|
[project]
|
|
name = "openstacksdk"
|
|
description = "An SDK for building applications to work with OpenStack"
|
|
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 = [
|
|
"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.13",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://docs.openstack.org/openstacksdk"
|
|
Repository = "https://opendev.org/openstack/openstacksdk/"
|
|
|
|
[project.scripts]
|
|
# TODO(mordred) Move this to an OSC command at some point
|
|
openstack-inventory = "openstack.cloud.cmd.inventory:main"
|
|
|
|
[tool.setuptools]
|
|
packages = [
|
|
"openstack"
|
|
]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.10"
|
|
show_column_numbers = true
|
|
show_error_context = true
|
|
follow_imports = "normal"
|
|
check_untyped_defs = true
|
|
warn_unused_ignores = true
|
|
# many of the following are false while we incrementally add typing
|
|
warn_return_any = false
|
|
warn_unused_configs = true
|
|
warn_redundant_casts = true
|
|
strict_equality = true
|
|
disallow_untyped_decorators = false
|
|
disallow_any_generics = false
|
|
disallow_subclassing_any = false
|
|
disallow_untyped_calls = false
|
|
disallow_incomplete_defs = true
|
|
disallow_untyped_defs = false
|
|
no_implicit_reexport = true
|
|
extra_checks = true
|
|
disable_error_code = ["import-untyped"]
|
|
exclude = '(?x)(doc | examples | releasenotes)'
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = [
|
|
"openstack._log",
|
|
"openstack.common",
|
|
"openstack.common.*",
|
|
"openstack.config",
|
|
"openstack.config.*",
|
|
"openstack.connection",
|
|
"openstack.exceptions",
|
|
"openstack.fields",
|
|
"openstack.format",
|
|
"openstack.proxy",
|
|
"openstack.utils",
|
|
"openstack.version",
|
|
"openstack.warnings",
|
|
]
|
|
warn_return_any = true
|
|
disallow_untyped_decorators = true
|
|
disallow_any_generics = true
|
|
disallow_subclassing_any = true
|
|
disallow_untyped_calls = true
|
|
disallow_untyped_defs = true
|
|
no_implicit_reexport = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = ["openstack.tests.unit.*"]
|
|
ignore_errors = true
|
|
|
|
[tool.ruff]
|
|
line-length = 79
|
|
|
|
[tool.ruff.format]
|
|
quote-style = "preserve"
|
|
docstring-code-format = true
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E4", "E5", "E7", "E9", "F", "RUF", "S", "UP", "W"]
|
|
ignore = [
|
|
# there are a lot of these to fix
|
|
"RUF012",
|
|
# we only use asserts for type narrowing
|
|
"S101",
|
|
]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"openstack/tests/*" = ["S"]
|
|
"openstack/_services_mixin.py" = ["E501"]
|
|
"examples/*" = ["S"]
|