1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
[build-system]
requires = ["pbr>=6.1.1"]
build-backend = "pbr.build"
[project]
name = "keystoneauth1"
description = "Authentication Library for OpenStack Identity"
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",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: 3 :: Only",
]
[project.urls]
"Documentation" = "https://docs.openstack.org/keystoneauth/latest/"
"Source" = "https://opendev.org/openstack/keystoneauth/"
"Bugs" = "https://bugs.launchpad.net/keystoneauth/"
"Release Notes" = "https://docs.openstack.org/releasenotes/keystoneauth/"
[project.optional-dependencies]
kerberos = [
"requests-kerberos>=0.8.0", # ISC
]
saml2 = [
"lxml>=4.2.0", # BSD
]
oauth1 = [
"oauthlib>=0.6.2", # BSD
]
betamax = [
"betamax>=0.7.0", # Apache-2.0
"fixtures>=3.0.0", # Apache-2.0/BSD
"PyYAML>=3.13", # MIT
]
[project.entry-points."keystoneauth1.plugin"]
none = "keystoneauth1.loading._plugins.noauth:NoAuth"
http_basic = "keystoneauth1.loading._plugins.http_basic:HTTPBasicAuth"
password = "keystoneauth1.loading._plugins.identity.generic:Password"
token = "keystoneauth1.loading._plugins.identity.generic:Token"
admin_token = "keystoneauth1.loading._plugins.admin_token:AdminToken"
v2password = "keystoneauth1.loading._plugins.identity.v2:Password"
v2token = "keystoneauth1.loading._plugins.identity.v2:Token"
v3password = "keystoneauth1.loading._plugins.identity.v3:Password"
v3token = "keystoneauth1.loading._plugins.identity.v3:Token"
v3oidcclientcredentials = "keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials"
v3oidcpassword = "keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword"
v3oidcdeviceauthz = "keystoneauth1.loading._plugins.identity.v3:OpenIDConnectDeviceAuthorization"
v3oidcauthcode = "keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode"
v3oidcaccesstoken = "keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken"
v3oauth1 = "keystoneauth1.extras.oauth1._loading:V3OAuth1"
v3kerberos = "keystoneauth1.extras.kerberos._loading:Kerberos"
v3totp = "keystoneauth1.loading._plugins.identity.v3:TOTP"
v3fedkerb = "keystoneauth1.extras.kerberos._loading:MappedKerberos"
v3tokenlessauth = "keystoneauth1.loading._plugins.identity.v3:TokenlessAuth"
v3adfspassword = "keystoneauth1.extras._saml2._loading:ADFSPassword"
v3samlpassword = "keystoneauth1.extras._saml2._loading:Saml2Password"
v3applicationcredential = "keystoneauth1.loading._plugins.identity.v3:ApplicationCredential"
v3multifactor = "keystoneauth1.loading._plugins.identity.v3:MultiFactor"
v3oauth2clientcredential = "keystoneauth1.loading._plugins.identity.v3:OAuth2ClientCredential"
v3oauth2mtlsclientcredential = "keystoneauth1.loading._plugins.identity.v3:OAuth2mTlsClientCredential"
[tool.setuptools]
packages = [
"keystoneauth1"
]
[tool.mypy]
python_version = "3.10"
show_column_numbers = true
show_error_context = true
strict = true
ignore_missing_imports = true
# keep this in-sync with 'mypy.exclude' in '.pre-commit-config.yaml'
exclude = '(?x)(doc | releasenotes)'
[[tool.mypy.overrides]]
module = ["keystoneauth1.tests.unit.*"]
ignore_errors = true
[[tool.mypy.overrides]]
module = [
"keystoneauth1.fixture.*",
"keystoneauth1.hacking.*",
]
disallow_subclassing_any = false
disallow_untyped_defs = false
disallow_untyped_calls = false
[tool.ruff]
line-length = 79
[tool.ruff.lint]
select = ["C4", "E4", "E5", "E7", "E9", "F", "G", "LOG", "S", "UP"]
ignore = [
"S101", # asserts are only used for type narrowing
]
[tool.ruff.lint.per-file-ignores]
"keystoneauth1/tests/*" = ["S"]
[tool.ruff.format]
quote-style = "preserve"
docstring-code-format = true
skip-magic-trailing-comma = true
|