[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"] # 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.optional-dependencies] # test = [ # ] [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 ignore_missing_imports = 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 = false extra_checks = true # keep this in-sync with 'mypy.exclude' in '.pre-commit-config.yaml' 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", "E7", "E9", "F", "S", "U"] ignore = [ # we only use asserts for type narrowing "S101", ] [tool.ruff.lint.per-file-ignores] "openstack/tests/*" = ["S"] "examples/*" = ["S"]