We are tickled pink to announce the release of: keystoneauth 5.9.0 This release is part of the epoxy release series. The source is available from: https://opendev.org/openstack/keystoneauth Download the package from: https://pypi.org/project/keystoneauth Please report issues through: https://bugs.launchpad.net/keystoneauth/+bugs For more details, please see below. 5.9.0 ^^^^^ New Features ************ * All modules except for "keystoneauth1.fixtures" and "keystoneauth1.hacking" now provide full type hints. Upgrade Notes ************* * The OIDC plugins no longer accept a "grant_type" parameter. This was deprecated in 2.10.0 (Newton) and has now been removed. * Support for Python 3.8 has been dropped. The minimum version of Python now supported in 3.9. Changes in keystoneauth 5.8.0..5.9.0 ------------------------------------ 92746df typing: Make loaders broadly generic e26894c Add py.typed file 5b7ba60 typing: Move configuration to pyproject.toml 8f58f5b typing: Set remaining 'disallow_*' opts to 'true' 2fbac42 typing: Invert module settings 1e3be13 typing: Annotate keystoneauth1.extras (2/2) c08766f typing: Annotate keystoneauth1.loading._plugins d8b89fd typing: Annotate keystoneauth1.loading._utils 3b3b98d typing: Annotate keystoneauth1.loading.identity fa12f58 typing: Annotate keystoneauth1.loading.session 576ce96 typing: Annotate keystoneauth1.loading.adapter 8b8b911 typing: Annotate keystoneauth1.loading.conf ce44ebc typing: Annotate keystoneauth1.loading.cli f9cf05b typing: Annotate keystoneauth1.loading.opts 5684230 typing: Annotate keystoneauth1.loading.base 1fa931d typing: Annotate keystoneauth1.extras (1/2) daca625 typing: Annotate keystoneauth1.identity.v3 a5aa2d6 typing: Annotate keystoneauth1.identity.generic c3b6b94 identity: Remove kwarg-generation helpers ff5cc5f typing: Annotate keystoneauth1.identity.v2 94462a1 typing: Annotate keystoneauth1.identity.access 5cd37e4 identity: Remove use of kwargs c6b9ef3 identity: Remove support for manual OIDC grant type 2a6bd4f typing: Annotate keystoneauth1.identity.base 3cd4b5b typing: Annotate keystoneauth1.access.access 2ab3615 access: Remove use of _missingproperty wrapper 876f6e5 access: Add more helper attributes to AccessInfoV3 f7f316d typing: Annotate keystoneauth1.access.service_providers 1664cab typing: Resolve unnecessary typing ignore e36f730 docs: Fix indentation 3359114 pre-commit: Bump versions d6b2e9d typing: Annotate keystoneauth1.access.service_catalog dfd52e0 typing: Annotate keystoneauth1.exceptions f117b0d typing: Annotate keystoneauth1._utils 8d2e02e typing: Annotate various plugin modules c45aa48 typing: Annotate keystoneauth1._fair_semaphore 0383309 typing: Annotate keystoneauth1.adapter 6b2c8fd trivial: Consistent f prefixes 7b6ac92 typing: Annotate keystoneauth1.session 63cdc2a typing: Annotate keystoneauth1.plugin 5754f92 typing: Annotate keystoneauth1.discover ef0d29d discover: Rework normalization 1799e01 discover: Expand use of kwargs c5085d6 Enable mypy b2dcd89 typing: Resolve remaining initial issues 9181ef3 typing: Add variable for auth plugin opts b1f71c9 typing: Synchronise overridden method signatures f07049b typing: Make abstract method actually abstract 2c6f13e Enable ruff, ruff-format 127d7be Apply ruff, ruff-format d6a7c6a Drop support for Python 3.8 c05e237 trivial: Remove errant trailing commas 4735db3 docs: Remove cruft from configuration files f0a6443 Add pre-commit 86d3a50 Update betamax extra deps 087c40b Update master for stable/2024.2 796c999 Pass oidc client id in the body if no client secret provided Diffstat (except docs and test files) ------------------------------------- .pre-commit-config.yaml | 54 + keystoneauth1/_fair_semaphore.py | 27 +- keystoneauth1/_utils.py | 63 +- keystoneauth1/access/__init__.py | 10 +- keystoneauth1/access/access.py | 586 +++--- keystoneauth1/access/service_catalog.py | 304 ++- keystoneauth1/access/service_providers.py | 34 +- keystoneauth1/access/types.py | 235 +++ keystoneauth1/adapter.py | 415 ++-- keystoneauth1/discover.py | 898 ++++++--- keystoneauth1/exceptions/auth.py | 8 +- keystoneauth1/exceptions/auth_plugins.py | 33 +- keystoneauth1/exceptions/base.py | 5 +- keystoneauth1/exceptions/catalog.py | 4 +- keystoneauth1/exceptions/connection.py | 18 +- keystoneauth1/exceptions/discovery.py | 37 +- keystoneauth1/exceptions/http.py | 216 ++- keystoneauth1/exceptions/oidc.py | 20 +- keystoneauth1/exceptions/response.py | 5 +- keystoneauth1/exceptions/service_providers.py | 6 +- keystoneauth1/extras/_saml2/_loading.py | 95 +- keystoneauth1/extras/_saml2/v3/adfs.py | 344 ++-- keystoneauth1/extras/_saml2/v3/base.py | 81 +- keystoneauth1/extras/_saml2/v3/saml2.py | 240 ++- keystoneauth1/extras/kerberos/__init__.py | 108 +- keystoneauth1/extras/kerberos/_loading.py | 85 +- keystoneauth1/extras/oauth1/_loading.py | 48 +- keystoneauth1/extras/oauth1/v3.py | 106 +- keystoneauth1/fixture/__init__.py | 23 +- keystoneauth1/fixture/discovery.py | 93 +- keystoneauth1/fixture/keystoneauth_betamax.py | 36 +- keystoneauth1/fixture/plugin.py | 49 +- keystoneauth1/fixture/serializer.py | 25 +- keystoneauth1/fixture/v2.py | 66 +- keystoneauth1/fixture/v3.py | 166 +- keystoneauth1/hacking/checks.py | 10 +- keystoneauth1/http_basic.py | 26 +- keystoneauth1/identity/__init__.py | 36 +- keystoneauth1/identity/access.py | 19 +- keystoneauth1/identity/base.py | 302 ++- keystoneauth1/identity/generic/__init__.py | 5 +- keystoneauth1/identity/generic/base.py | 178 +- keystoneauth1/identity/generic/password.py | 127 +- keystoneauth1/identity/generic/token.py | 94 +- keystoneauth1/identity/v2.py | 136 +- keystoneauth1/identity/v3/__init__.py | 63 +- .../identity/v3/application_credential.py | 56 +- keystoneauth1/identity/v3/base.py | 251 ++- keystoneauth1/identity/v3/federation.py | 93 +- keystoneauth1/identity/v3/k2k.py | 111 +- keystoneauth1/identity/v3/multi_factor.py | 62 +- .../identity/v3/oauth2_client_credential.py | 104 +- .../identity/v3/oauth2_mtls_client_credential.py | 88 +- keystoneauth1/identity/v3/oidc.py | 607 ++++-- keystoneauth1/identity/v3/password.py | 45 +- keystoneauth1/identity/v3/receipt.py | 21 +- keystoneauth1/identity/v3/token.py | 54 +- keystoneauth1/identity/v3/tokenless_auth.py | 49 +- keystoneauth1/identity/v3/totp.py | 41 +- keystoneauth1/loading/__init__.py | 9 +- keystoneauth1/loading/_plugins/admin_token.py | 35 +- keystoneauth1/loading/_plugins/http_basic.py | 42 +- keystoneauth1/loading/_plugins/identity/generic.py | 60 +- keystoneauth1/loading/_plugins/identity/v2.py | 53 +- keystoneauth1/loading/_plugins/identity/v3.py | 636 +++--- keystoneauth1/loading/_plugins/noauth.py | 22 +- keystoneauth1/loading/_utils.py | 17 +- keystoneauth1/loading/adapter.py | 355 ++-- keystoneauth1/loading/base.py | 91 +- keystoneauth1/loading/cli.py | 75 +- keystoneauth1/loading/conf.py | 59 +- keystoneauth1/loading/identity.py | 233 ++- keystoneauth1/loading/opts.py | 103 +- keystoneauth1/loading/session.py | 220 ++- keystoneauth1/noauth.py | 9 +- keystoneauth1/plugin.py | 164 +- keystoneauth1/service_token.py | 80 +- keystoneauth1/session.py | 690 ++++--- .../unit/extras/kerberos/test_fedkerb_loading.py | 42 +- .../unit/extras/kerberos/test_kerberos_loading.py | 30 +- .../unit/extras/oauth1/test_oauth1_loading.py | 29 +- .../unit/identity/test_identity_v3_federation.py | 191 +- keystoneauth1/token_endpoint.py | 43 +- py.typed | 0 pyproject.toml | 56 + .../notes/add-typing-617a487a60de0b86.yaml | 5 + ...oidc-grant_type-parameter-79ca58f56238a615.yaml | 5 + .../notes/drop-python38-cb0b045f67bf8a1b.yaml | 5 + releasenotes/source/2024.2.rst | 6 + releasenotes/source/conf.py | 225 +-- releasenotes/source/index.rst | 1 + requirements.txt | 5 +- setup.cfg | 6 +- setup.py | 4 +- tox.ini | 31 +- 149 files changed, 12654 insertions(+), 8035 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index d61a7ed..1abd03f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15 +15 @@ pbr>=2.0.0 # Apache-2.0 -iso8601>=0.1.11 # MIT +iso8601>=2.0.0 # MIT @@ -18 +18,2 @@ stevedore>=1.20.0 # Apache-2.0 -os-service-types>=1.2.0 # Apache-2.0 +os-service-types>=1.2.0 # Apache-2.0 +typing-extensions>=4.12 # PSF