diff --git a/changelog.d/20240906_114155_sirosen_move_serializable.rst b/changelog.d/20240906_114155_sirosen_move_serializable.rst deleted file mode 100644 index e7dd388a3..000000000 --- a/changelog.d/20240906_114155_sirosen_move_serializable.rst +++ /dev/null @@ -1,20 +0,0 @@ -Added -~~~~~ - -- ``globus_sdk.exc.ValidationError`` is a new error type used by the SDK for - certain cases of ``ValueError``\s which are caused by invalid content. It can - also be accessed as ``globus_sdk.ValidationError``. (:pr:`1044`) - -Changed -~~~~~~~ - -- Imports of ``globus_sdk.exc`` now defer importing ``requests`` so as to - reduce import-time performance impact the library is not needed. (:pr:`1044`) - - The following error classes are now lazily loaded even when - ``globus_sdk.exc`` is imported: - - - ``GlobusConnectionError`` - - ``GlobusConnectionTimeoutError`` - - ``GlobusTimeoutError`` - - ``NetworkError`` diff --git a/changelog.d/20240910_103438_sirosen_move_consents.rst b/changelog.d/20240910_103438_sirosen_move_consents.rst deleted file mode 100644 index 65e56c222..000000000 --- a/changelog.d/20240910_103438_sirosen_move_consents.rst +++ /dev/null @@ -1,5 +0,0 @@ -Changed -~~~~~~~ - -- Consent object models have been moved from - ``globus_sdk.experimental.consents`` into ``globus_sdk.scopes.consents``. (:pr:`1047`) diff --git a/changelog.d/20240916_102235_sirosen_move_gare.rst b/changelog.d/20240916_102235_sirosen_move_gare.rst deleted file mode 100644 index fde5beb1f..000000000 --- a/changelog.d/20240916_102235_sirosen_move_gare.rst +++ /dev/null @@ -1,11 +0,0 @@ -Changed -~~~~~~~ - -- Globus Auth Requirements errors are no longer ``experimental``. They have - been moved to the ``globus_sdk.gare`` module and the primary document type - has been renamed from ``GlobusAuthRequirementsError`` to ``GARE``. (:pr:`1048`) - - - The functions provided by this interface have also been renamed to use - ``gare`` in their naming: ``to_gare``, ``is_gare``, ``has_gares``, and - ``to_gares`` are now all available. The older names are available as - aliases from the ``experimental`` namespace. diff --git a/changelog.d/20240917_121333_sirosen_add_token_response_classes.rst b/changelog.d/20240917_121333_sirosen_add_token_response_classes.rst deleted file mode 100644 index 7fcfc2b2e..000000000 --- a/changelog.d/20240917_121333_sirosen_add_token_response_classes.rst +++ /dev/null @@ -1,17 +0,0 @@ -Changed -~~~~~~~ - -- The response types for different OAuth2 token grants now vary by the grant - type. For example, a ``refresh_token`` grant will now produce a - ``OAuthRefreshTokenResponse``. This allows code handling responses to identify - which grant type was used to produce a response. (:pr:`1051`) - - - The following new types have been introduced: - ``globus_sdk.OAuthRefreshTokenResponse``, - ``globus_sdk.OAuthAuthorizationCodeResponse``, - ``globus_sdk.OAuthClientCredentialsResponse``. - - - The ``RenewingAuthorizer`` class is now a generic over the response type - which it handles, and the subtypes of authorizers are specialized for their - types of responses. e.g., - ``class RefreshTokenAuthorizer(RenewingAuthorizer[OAuthRefreshTokenResponse])``. diff --git a/changelog.d/20240917_134528_sirosen_improve_lazy_import_typing.rst b/changelog.d/20240917_134528_sirosen_improve_lazy_import_typing.rst deleted file mode 100644 index 41d5758a8..000000000 --- a/changelog.d/20240917_134528_sirosen_improve_lazy_import_typing.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fixed -~~~~~ - -- Fix the typing-time attributes of ``globus_sdk`` so that ``mypy`` and other - type checkers won't erroneously suppress errors about missing attributes. (:pr:`1052`) diff --git a/changelog.d/20240918_120618_derek_move_login_flows.rst b/changelog.d/20240918_120618_derek_move_login_flows.rst deleted file mode 100644 index c48a89d9d..000000000 --- a/changelog.d/20240918_120618_derek_move_login_flows.rst +++ /dev/null @@ -1,8 +0,0 @@ - -Changed -~~~~~~~ - -- LoginFlowManagers have been moved from ``globus_sdk.experimental.login_flow_managers`` - to ``globus_sdk.login_flows``. (:pr:`1057`) - - diff --git a/changelog.d/20240918_224616_sirosen_control_tokenstorage_identity_id_extraction.rst b/changelog.d/20240918_224616_sirosen_control_tokenstorage_identity_id_extraction.rst deleted file mode 100644 index b969eee63..000000000 --- a/changelog.d/20240918_224616_sirosen_control_tokenstorage_identity_id_extraction.rst +++ /dev/null @@ -1,6 +0,0 @@ -Fixed -~~~~~ - -- Fix the handling of Dependent Token and Refresh Token responses in - ``TokenStorage`` and ``ValidatingTokenStorage`` in order to ensure - that ``id_token`` is only parsed when appropriate. (:pr:`1055`) diff --git a/changelog.d/20240919_153350_kurtmckee_python_3_13.rst b/changelog.d/20240919_153350_kurtmckee_python_3_13.rst deleted file mode 100644 index 0899badc9..000000000 --- a/changelog.d/20240919_153350_kurtmckee_python_3_13.rst +++ /dev/null @@ -1,4 +0,0 @@ -Python Support -~~~~~~~~~~~~~~ - -- Support Python 3.13. (:pr:`1058`) diff --git a/changelog.d/20240920_144134_derek_move_tokenstorage.rst b/changelog.d/20240920_144134_derek_move_tokenstorage.rst deleted file mode 100644 index d13ce08ea..000000000 --- a/changelog.d/20240920_144134_derek_move_tokenstorage.rst +++ /dev/null @@ -1,6 +0,0 @@ - -Changed -~~~~~~~ - -- TokenStorages have been moved from ``globus_sdk.experimental.tokenstorage`` - to ``globus_sdk.tokenstorage``. (:pr:`1065`) diff --git a/changelog.d/20240923_150125_derek_only_call_token_validation_error_handler_once.rst b/changelog.d/20240923_150125_derek_only_call_token_validation_error_handler_once.rst deleted file mode 100644 index 568b9d08b..000000000 --- a/changelog.d/20240923_150125_derek_only_call_token_validation_error_handler_once.rst +++ /dev/null @@ -1,12 +0,0 @@ - -Fixed -~~~~~ - -- Fixed a bug where upgrading from access token to refresh token mode in a - ``GlobusApp`` could result in multiple login prompts. (:pr:`1060`) - -Removed -~~~~~~~ - -- Removed the ``skip_error_handling`` optional kwarg from the method interface - ``GlobusApp.get_authorizer(...)``. (:pr:`1060`) diff --git a/changelog.d/20240924_225530_sirosen_refactor_token_validation.rst b/changelog.d/20240924_225530_sirosen_refactor_token_validation.rst deleted file mode 100644 index 91580b3b1..000000000 --- a/changelog.d/20240924_225530_sirosen_refactor_token_validation.rst +++ /dev/null @@ -1,12 +0,0 @@ -Changed -~~~~~~~ - -- The mechanisms of token data validation inside of ``GlobusApp`` are now more - modular and extensible. The ``ValidatingTokenStorage`` class does not define - built-in validation behaviors, but instead contains a list of validator - objects, which can be extended and otherwise altered. (:pr:`1061`) - - - These changes allow more validation criteria around token data to be - handled within the ``ValidatingTokenStorage``. This changes error behaviors - to avoid situations in which multiple errors are raised serially by - different layers of GlobusApp. diff --git a/changelog.d/20240930_113555_derek_move_validating_token_storage.rst b/changelog.d/20240930_113555_derek_move_validating_token_storage.rst deleted file mode 100644 index caf6f166d..000000000 --- a/changelog.d/20240930_113555_derek_move_validating_token_storage.rst +++ /dev/null @@ -1,7 +0,0 @@ - -Changed -~~~~~~~ - -- ValidatingTokenStorage has been moved from ``globus_sdk.experimental.globus_app`` to - ``globus_sdk.tokenstorage``. (:pr:`1066`) - diff --git a/changelog.d/20241001_125933_derek_move_globus_app.rst b/changelog.d/20241001_125933_derek_move_globus_app.rst deleted file mode 100644 index 9e00b0b77..000000000 --- a/changelog.d/20241001_125933_derek_move_globus_app.rst +++ /dev/null @@ -1,6 +0,0 @@ - -Changed -~~~~~~~ - -- GlobusApp constructs have been moved from ``globus_sdk.experimental.globus_app`` to - ``globus_sdk.globus_app`` and ``globus_sdk``. (:pr:`1085`) diff --git a/changelog.d/20241002_125030_30907815+rjmello_compute_client.rst b/changelog.d/20241002_125030_30907815+rjmello_compute_client.rst deleted file mode 100644 index 41d225fc1..000000000 --- a/changelog.d/20241002_125030_30907815+rjmello_compute_client.rst +++ /dev/null @@ -1,11 +0,0 @@ -Added -~~~~~ - -- Added an initial Globus Compute client class, ``globus_sdk.ComputeClient``. (:pr:`1071`) - - - ``globus_sdk.ComputeAPIError`` is the error class for this client. - - - ``ComputeClient.get_function`` is a method to get information about a registered function. - - - Users can access scopes for the Globus Compute API via ``globus_sdk.scopes.ComputeScopes`` - or ``globus_sdk.ComputeClient.scopes``. \ No newline at end of file diff --git a/changelog.d/20241004_135423_sirosen.rst b/changelog.d/20241004_135423_sirosen.rst deleted file mode 100644 index b40fb650d..000000000 --- a/changelog.d/20241004_135423_sirosen.rst +++ /dev/null @@ -1,4 +0,0 @@ -Added -~~~~~ - -- Add ``TransferClient.set_subscription_id`` (:pr:`1073`) diff --git a/changelog.d/20241004_164201_sirosen_fix_prefill_named_grant.rst b/changelog.d/20241004_164201_sirosen_fix_prefill_named_grant.rst deleted file mode 100644 index 5d30e79cd..000000000 --- a/changelog.d/20241004_164201_sirosen_fix_prefill_named_grant.rst +++ /dev/null @@ -1,6 +0,0 @@ -Fixed -~~~~~ - -- ``LoginFlowManager``\s built with ``GlobusApp`` now generate a more - appropriate value for ``prefill_named_grant``, using the current - hostname if possible. (:pr:`1075`) diff --git a/changelog.d/20241008_214456_30907815+rjmello_compute_client_function_methods.rst b/changelog.d/20241008_214456_30907815+rjmello_compute_client_function_methods.rst deleted file mode 100644 index f6617d90f..000000000 --- a/changelog.d/20241008_214456_30907815+rjmello_compute_client_function_methods.rst +++ /dev/null @@ -1,8 +0,0 @@ -Added -~~~~~ - -- Added ``ComputeClient.register_function()`` and ``ComputeClient.delete_function()`` - methods. (:pr:`1085`) - -- Added ``ComputeFunctionDocument`` and ``ComputeFunctionMetadata`` data classes for - use with the ``ComputeClient.register_function()`` method. (:pr:`1085`) diff --git a/changelog.rst b/changelog.rst index 363e5fd22..9b6c2f66d 100644 --- a/changelog.rst +++ b/changelog.rst @@ -12,6 +12,130 @@ to a major new version of the SDK. .. scriv-insert-here +.. _changelog-3.46.0: + +v3.46.0 (2024-10-15) +-------------------- + +Python Support +~~~~~~~~~~~~~~ + +- Support Python 3.13. (:pr:`1058`) + +Added +~~~~~ + +- Added an initial Globus Compute client class, :class:`globus_sdk.ComputeClient`. + (:pr:`1071`) + + - Application errors are raised as a :class:`globus_sdk.ComputeAPIError`. + + - A single method, ``ComputeClient.get_function`` is included initially to get + information about a registered function. + + - Compute scopes are defined at ``globus_sdk.scopes.ComputeScopes`` or + ``globus_sdk.ComputeClient.scopes``. + +- Added the ``ComputeClient.register_function()`` and + ``ComputeClient.delete_function()`` methods. (:pr:`1085`) + + - ``ComputeClient.register_function()`` introduces new data model classes: + ``ComputeFunctionDocument`` and ``ComputeFunctionMetadata``. + +- Added the ``TransferClient.set_subscription_id()`` method. (:pr:`1073`) + +- Added a new error type, ``globus_sdk.ValidationError``, used in certain cases of + ``ValueError``\s caused by invalid content. (:pr:`1044`) + +Removed +~~~~~~~ + +- Removed the ``skip_error_handling`` optional kwarg from the + ``GlobusApp.get_authorizer(...)`` method interface. (:pr:`1060`) + +Changed +~~~~~~~ + +- All previously experimental modules have been moved into main module namespaces + and are no longer experimental. Aliases will remain in the experimental namespaces + with a deprecation warning until SDKv4. + + - :ref:`gares` have been moved from + ``globus_sdk.experimental.auth_requirements_error`` to ``globus_sdk.gare``. + (:pr:`1048`) + + - The primary document type has been renamed from + ``GlobusAuthRequirementsError`` to ``GARE``. + + - The functions provided by this interface have been renamed to use + ``gare`` in their naming: ``to_gare``, ``is_gare``, ``has_gares``, and + ``to_gares``. + + - :ref:`globus_apps` have been moved from ``globus_sdk.experimental.globus_app`` + to ``globus_sdk`` and ``globus_sdk.globus_app``. (:pr:`1085`) + + - :ref:`login_flow_managers` have been moved from + ``globus_sdk.experimental.login_flow_managers`` to ``globus_sdk.login_flows``. + (:pr:`1057`) + + - :ref:`token_storages` have been moved from + ``globus_sdk.experimental.tokenstorage`` to ``globus_sdk.tokenstorage``. + (:pr:`1065`) + + - :ref:`consents` have been moved from ``globus_sdk.experimental.consents`` to + ``globus_sdk.scopes.consents``. (:pr:`1047`) + +- The response classes for OAuth2 token grants now vary by the grant type. For + example, a ``refresh_token``-type grant now produces a + :class:`globus_sdk.OAuthRefreshTokenResponse`. This allows code handling responses + to more easily identify which grant type produced a response. (:pr:`1051`) + + - The following new classes have been introduced: + :class:`globus_sdk.OAuthRefreshTokenResponse`, + :class:`globus_sdk.OAuthAuthorizationCodeResponse`, and + :class:`globus_sdk.OAuthClientCredentialsResponse`. + + - The ``RenewingAuthorizer`` class is now a generic over the response type + which it handles, and the subtypes of authorizers are specialized for their + types of responses. e.g., + ``class RefreshTokenAuthorizer(RenewingAuthorizer[OAuthRefreshTokenResponse])``. + +- The mechanisms of token data validation inside of ``GlobusApp`` are now more + modular and extensible. The ``ValidatingTokenStorage`` class does not define + built-in validation behaviors, but instead contains a list of validator + objects, which can be extended and otherwise altered. (:pr:`1061`) + + - These changes allow more validation criteria around token data to be + handled within the ``ValidatingTokenStorage``. This changes error behaviors + to avoid situations in which multiple errors are raised serially by + different layers of GlobusApp. + +- ``LoginFlowManager``\s built with ``GlobusApp`` now generate a more + appropriate value for ``prefill_named_grant``, using the current + hostname if possible. (:pr:`1075`) + + +- Imports of ``globus_sdk.exc`` now defer importing ``requests`` so as to + reduce import-time performance impact the library is not needed. (:pr:`1044`) + + The following error classes are now lazily loaded even when + ``globus_sdk.exc`` is imported: ``GlobusConnectionError``, + ``GlobusConnectionTimeoutError``, ``GlobusTimeoutError``, and ``NetworkError``. + +Fixed +~~~~~ + +- Fixed the typing-time attributes of ``globus_sdk`` so that ``mypy`` and other + type checkers won't erroneously suppress errors about missing attributes. + (:pr:`1052`) + +- Fixed the handling of Dependent Token and Refresh Token responses in + ``TokenStorage`` and ``ValidatingTokenStorage`` such that ``id_token`` is only + parsed when appropriate. (:pr:`1055`) + +- Fixed a bug where upgrading from access token to refresh token mode in a + ``GlobusApp`` could result in multiple login prompts. (:pr:`1060`) + .. _changelog-3.45.0: v3.45.0 (2024-09-06) diff --git a/docs/authorization/gare.rst b/docs/authorization/gare.rst index 4f155ffaa..c4123885b 100644 --- a/docs/authorization/gare.rst +++ b/docs/authorization/gare.rst @@ -1,3 +1,5 @@ +.. _gares: + Globus Auth Requirements Errors (GAREs) ======================================= diff --git a/docs/authorization/scopes_and_consents/consents.rst b/docs/authorization/scopes_and_consents/consents.rst index ddca152f9..e0e697945 100644 --- a/docs/authorization/scopes_and_consents/consents.rst +++ b/docs/authorization/scopes_and_consents/consents.rst @@ -1,3 +1,4 @@ +.. _consents: .. py:currentmodule:: globus_sdk.scopes.consents diff --git a/src/globus_sdk/version.py b/src/globus_sdk/version.py index 14104510c..70e8a745f 100644 --- a/src/globus_sdk/version.py +++ b/src/globus_sdk/version.py @@ -1,3 +1,3 @@ # single source of truth for package version, # see https://packaging.python.org/en/latest/single_source_version/ -__version__ = "3.45.0" +__version__ = "3.46.0"