From 5d41fcda38996db93ecda541494c89571505d30a Mon Sep 17 00:00:00 2001 From: "Adrian D." <101290859+adev-code@users.noreply.github.com> Date: Wed, 4 Feb 2026 13:12:22 -0800 Subject: [PATCH 1/3] Fix argparse error for BooleanArgument with % in documentation (#10044) * Fix argparse error for BooleanArgument with % in documentation Python 3.14+ argparse treats % characters in help strings as format specifiers. When service model documentation contains % (e.g., IAM's UpdateAccountPasswordPolicy RequireSymbols parameter), argparse raises: `ValueError: unsupported format character '^' (0x5e) at index 129` This was already fixed for CLIArgument in PR #9790 but BooleanArgument was missed. This commit adds the same .replace('%', '%%') escaping to BooleanArgument.add_to_parser() and adds a test to verify all service operations with % in documentation work correctly. Fixes compatibility with Python 3.14+ --- awscli/arguments.py | 2 +- tests/unit/test_argprocess.py | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/awscli/arguments.py b/awscli/arguments.py index 686253ad0f6a..f9f75fb57ffe 100644 --- a/awscli/arguments.py +++ b/awscli/arguments.py @@ -593,7 +593,7 @@ def add_to_arg_table(self, argument_table): def add_to_parser(self, parser): parser.add_argument( self.cli_name, - help=self.documentation, + help=self.documentation.replace('%', '%%'), action=self._action, default=self._default, dest=self._destination, diff --git a/tests/unit/test_argprocess.py b/tests/unit/test_argprocess.py index fd9e6e063908..87fc1aa49972 100644 --- a/tests/unit/test_argprocess.py +++ b/tests/unit/test_argprocess.py @@ -32,6 +32,7 @@ from awscli.arguments import ListArgument, BooleanArgument from awscli.arguments import create_argument_model_from_schema +from awscli.argparser import ArgTableArgParser # These tests use real service types so that we can # verify the real shapes of services. @@ -895,5 +896,39 @@ def test_json_value_decode_error(self): unpack_cli_arg(self.p, value) +class TestArgumentPercentEscaping(BaseArgProcessTest): + def _test_percent_escaping(self, arg_type, arg_class, doc_string): + argument = self.create_argument( + { + 'Test': { + 'type': arg_type, + 'documentation': doc_string, + } + } + ) + arg = arg_class( + 'test-arg', + argument.argument_model.members['Test'], + mock.Mock(), + mock.Mock(), + is_required=False, + ) + arg_table = {arg.name: arg} + parser = ArgTableArgParser(arg_table) + help_output = parser.format_help() + self.assertIn(doc_string, help_output) + + def test_cli_argument_escapes_percent(self): + self._test_percent_escaping('string', CLIArgument, 'Symbols: % ^ & *') + + def test_boolean_argument_escapes_percent(self): + self._test_percent_escaping('boolean', BooleanArgument, 'Symbols: % ^ & *') + + def test_cli_argument_escapes_url_encoded_percent(self): + self._test_percent_escaping('string', CLIArgument, 'File: test%28file%29.png') + + def test_boolean_argument_escapes_url_encoded_percent(self): + self._test_percent_escaping('boolean', BooleanArgument, 'File: test%28file%29.png') + if __name__ == '__main__': unittest.main() From 3f986905c09cfcacb2c074f84e5a203d86e8397a Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 5 Feb 2026 19:08:47 +0000 Subject: [PATCH 2/3] Update changelog based on model updates --- .changes/next-release/api-change-arcregionswitch-45991.json | 5 +++++ .changes/next-release/api-change-athena-7890.json | 5 +++++ .changes/next-release/api-change-bedrockagentcore-82469.json | 5 +++++ .../api-change-bedrockagentcorecontrol-20837.json | 5 +++++ .changes/next-release/api-change-glue-38221.json | 5 +++++ .changes/next-release/api-change-medialive-62701.json | 5 +++++ .changes/next-release/api-change-neptunegraph-62873.json | 5 +++++ .changes/next-release/api-change-ram-38453.json | 5 +++++ .changes/next-release/api-change-transfer-63535.json | 5 +++++ .changes/next-release/api-change-workspaces-37711.json | 5 +++++ 10 files changed, 50 insertions(+) create mode 100644 .changes/next-release/api-change-arcregionswitch-45991.json create mode 100644 .changes/next-release/api-change-athena-7890.json create mode 100644 .changes/next-release/api-change-bedrockagentcore-82469.json create mode 100644 .changes/next-release/api-change-bedrockagentcorecontrol-20837.json create mode 100644 .changes/next-release/api-change-glue-38221.json create mode 100644 .changes/next-release/api-change-medialive-62701.json create mode 100644 .changes/next-release/api-change-neptunegraph-62873.json create mode 100644 .changes/next-release/api-change-ram-38453.json create mode 100644 .changes/next-release/api-change-transfer-63535.json create mode 100644 .changes/next-release/api-change-workspaces-37711.json diff --git a/.changes/next-release/api-change-arcregionswitch-45991.json b/.changes/next-release/api-change-arcregionswitch-45991.json new file mode 100644 index 000000000000..72f7b45ede92 --- /dev/null +++ b/.changes/next-release/api-change-arcregionswitch-45991.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``arc-region-switch``", + "description": "Updates documentation for ARC Region switch and provides stronger validation for Amazon Aurora Global Database execution block parameters." +} diff --git a/.changes/next-release/api-change-athena-7890.json b/.changes/next-release/api-change-athena-7890.json new file mode 100644 index 000000000000..1cb5a9e01fc8 --- /dev/null +++ b/.changes/next-release/api-change-athena-7890.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``athena``", + "description": "Reduces the minimum TargetDpus to create or update capacity reservations from 24 to 4." +} diff --git a/.changes/next-release/api-change-bedrockagentcore-82469.json b/.changes/next-release/api-change-bedrockagentcore-82469.json new file mode 100644 index 000000000000..9f9babad2d0c --- /dev/null +++ b/.changes/next-release/api-change-bedrockagentcore-82469.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock-agentcore``", + "description": "Support Browser profile persistence (cookies and local storage) across sessions for AgentCore Browser." +} diff --git a/.changes/next-release/api-change-bedrockagentcorecontrol-20837.json b/.changes/next-release/api-change-bedrockagentcorecontrol-20837.json new file mode 100644 index 000000000000..59c9e728d936 --- /dev/null +++ b/.changes/next-release/api-change-bedrockagentcorecontrol-20837.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``bedrock-agentcore-control``", + "description": "Support Browser profile persistence (cookies and local storage) across sessions for AgentCore Browser." +} diff --git a/.changes/next-release/api-change-glue-38221.json b/.changes/next-release/api-change-glue-38221.json new file mode 100644 index 000000000000..8c96364bc92e --- /dev/null +++ b/.changes/next-release/api-change-glue-38221.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``glue``", + "description": "This release adds the capability to easily create custom AWS Glue connections to data sources with REST APIs." +} diff --git a/.changes/next-release/api-change-medialive-62701.json b/.changes/next-release/api-change-medialive-62701.json new file mode 100644 index 000000000000..7b5d49e9f67f --- /dev/null +++ b/.changes/next-release/api-change-medialive-62701.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``medialive``", + "description": "Outputs using the AV1 codec in CMAF Ingest output groups in MediaLive now have the ability to specify a target bit depth of 8 or 10." +} diff --git a/.changes/next-release/api-change-neptunegraph-62873.json b/.changes/next-release/api-change-neptunegraph-62873.json new file mode 100644 index 000000000000..89575e8c8a48 --- /dev/null +++ b/.changes/next-release/api-change-neptunegraph-62873.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``neptune-graph``", + "description": "Minor neptune-graph documentation changes" +} diff --git a/.changes/next-release/api-change-ram-38453.json b/.changes/next-release/api-change-ram-38453.json new file mode 100644 index 000000000000..fa4689d5f90e --- /dev/null +++ b/.changes/next-release/api-change-ram-38453.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``ram``", + "description": "Added ListSourceAssociations API. Allows RAM resource share owners to list source associations that determine which sources can access resources through service principal associations. Supports filtering by resource share ARN, source ID, source type, or status, with pagination." +} diff --git a/.changes/next-release/api-change-transfer-63535.json b/.changes/next-release/api-change-transfer-63535.json new file mode 100644 index 000000000000..3d27b28bfc4d --- /dev/null +++ b/.changes/next-release/api-change-transfer-63535.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``transfer``", + "description": "Adds support for the customer to send custom HTTP headers and configure an AS2 Connector to receive Asynchronous MDNs from their trading partner" +} diff --git a/.changes/next-release/api-change-workspaces-37711.json b/.changes/next-release/api-change-workspaces-37711.json new file mode 100644 index 000000000000..0616736d530d --- /dev/null +++ b/.changes/next-release/api-change-workspaces-37711.json @@ -0,0 +1,5 @@ +{ + "type": "api-change", + "category": "``workspaces``", + "description": "Added support for 12 new graphics-optimized compute types - Graphics.g6 (xlarge, 2xlarge, 4xlarge, 8xlarge, 16xlarge), Graphics.gr6 (4xlarge, 8xlarge), Graphics.g6f (large, xlarge, 2xlarge, 4xlarge), and Graphics.gr6f (4xlarge)." +} From c11c45731dc8c4787baf1cdad20e062476b0cbdb Mon Sep 17 00:00:00 2001 From: aws-sdk-python-automation Date: Thu, 5 Feb 2026 19:10:41 +0000 Subject: [PATCH 3/3] Bumping version to 1.44.33 --- .changes/1.44.33.json | 52 +++++++++++++++++++ .../api-change-arcregionswitch-45991.json | 5 -- .../next-release/api-change-athena-7890.json | 5 -- .../api-change-bedrockagentcore-82469.json | 5 -- ...-change-bedrockagentcorecontrol-20837.json | 5 -- .../next-release/api-change-glue-38221.json | 5 -- .../api-change-medialive-62701.json | 5 -- .../api-change-neptunegraph-62873.json | 5 -- .../next-release/api-change-ram-38453.json | 5 -- .../api-change-transfer-63535.json | 5 -- .../api-change-workspaces-37711.json | 5 -- CHANGELOG.rst | 15 ++++++ awscli/__init__.py | 2 +- doc/source/conf.py | 2 +- setup.cfg | 2 +- setup.py | 2 +- 16 files changed, 71 insertions(+), 54 deletions(-) create mode 100644 .changes/1.44.33.json delete mode 100644 .changes/next-release/api-change-arcregionswitch-45991.json delete mode 100644 .changes/next-release/api-change-athena-7890.json delete mode 100644 .changes/next-release/api-change-bedrockagentcore-82469.json delete mode 100644 .changes/next-release/api-change-bedrockagentcorecontrol-20837.json delete mode 100644 .changes/next-release/api-change-glue-38221.json delete mode 100644 .changes/next-release/api-change-medialive-62701.json delete mode 100644 .changes/next-release/api-change-neptunegraph-62873.json delete mode 100644 .changes/next-release/api-change-ram-38453.json delete mode 100644 .changes/next-release/api-change-transfer-63535.json delete mode 100644 .changes/next-release/api-change-workspaces-37711.json diff --git a/.changes/1.44.33.json b/.changes/1.44.33.json new file mode 100644 index 000000000000..27a4fbb27f9d --- /dev/null +++ b/.changes/1.44.33.json @@ -0,0 +1,52 @@ +[ + { + "category": "``arc-region-switch``", + "description": "Updates documentation for ARC Region switch and provides stronger validation for Amazon Aurora Global Database execution block parameters.", + "type": "api-change" + }, + { + "category": "``athena``", + "description": "Reduces the minimum TargetDpus to create or update capacity reservations from 24 to 4.", + "type": "api-change" + }, + { + "category": "``bedrock-agentcore``", + "description": "Support Browser profile persistence (cookies and local storage) across sessions for AgentCore Browser.", + "type": "api-change" + }, + { + "category": "``bedrock-agentcore-control``", + "description": "Support Browser profile persistence (cookies and local storage) across sessions for AgentCore Browser.", + "type": "api-change" + }, + { + "category": "``glue``", + "description": "This release adds the capability to easily create custom AWS Glue connections to data sources with REST APIs.", + "type": "api-change" + }, + { + "category": "``medialive``", + "description": "Outputs using the AV1 codec in CMAF Ingest output groups in MediaLive now have the ability to specify a target bit depth of 8 or 10.", + "type": "api-change" + }, + { + "category": "``neptune-graph``", + "description": "Minor neptune-graph documentation changes", + "type": "api-change" + }, + { + "category": "``ram``", + "description": "Added ListSourceAssociations API. Allows RAM resource share owners to list source associations that determine which sources can access resources through service principal associations. Supports filtering by resource share ARN, source ID, source type, or status, with pagination.", + "type": "api-change" + }, + { + "category": "``transfer``", + "description": "Adds support for the customer to send custom HTTP headers and configure an AS2 Connector to receive Asynchronous MDNs from their trading partner", + "type": "api-change" + }, + { + "category": "``workspaces``", + "description": "Added support for 12 new graphics-optimized compute types - Graphics.g6 (xlarge, 2xlarge, 4xlarge, 8xlarge, 16xlarge), Graphics.gr6 (4xlarge, 8xlarge), Graphics.g6f (large, xlarge, 2xlarge, 4xlarge), and Graphics.gr6f (4xlarge).", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.changes/next-release/api-change-arcregionswitch-45991.json b/.changes/next-release/api-change-arcregionswitch-45991.json deleted file mode 100644 index 72f7b45ede92..000000000000 --- a/.changes/next-release/api-change-arcregionswitch-45991.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``arc-region-switch``", - "description": "Updates documentation for ARC Region switch and provides stronger validation for Amazon Aurora Global Database execution block parameters." -} diff --git a/.changes/next-release/api-change-athena-7890.json b/.changes/next-release/api-change-athena-7890.json deleted file mode 100644 index 1cb5a9e01fc8..000000000000 --- a/.changes/next-release/api-change-athena-7890.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``athena``", - "description": "Reduces the minimum TargetDpus to create or update capacity reservations from 24 to 4." -} diff --git a/.changes/next-release/api-change-bedrockagentcore-82469.json b/.changes/next-release/api-change-bedrockagentcore-82469.json deleted file mode 100644 index 9f9babad2d0c..000000000000 --- a/.changes/next-release/api-change-bedrockagentcore-82469.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock-agentcore``", - "description": "Support Browser profile persistence (cookies and local storage) across sessions for AgentCore Browser." -} diff --git a/.changes/next-release/api-change-bedrockagentcorecontrol-20837.json b/.changes/next-release/api-change-bedrockagentcorecontrol-20837.json deleted file mode 100644 index 59c9e728d936..000000000000 --- a/.changes/next-release/api-change-bedrockagentcorecontrol-20837.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``bedrock-agentcore-control``", - "description": "Support Browser profile persistence (cookies and local storage) across sessions for AgentCore Browser." -} diff --git a/.changes/next-release/api-change-glue-38221.json b/.changes/next-release/api-change-glue-38221.json deleted file mode 100644 index 8c96364bc92e..000000000000 --- a/.changes/next-release/api-change-glue-38221.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``glue``", - "description": "This release adds the capability to easily create custom AWS Glue connections to data sources with REST APIs." -} diff --git a/.changes/next-release/api-change-medialive-62701.json b/.changes/next-release/api-change-medialive-62701.json deleted file mode 100644 index 7b5d49e9f67f..000000000000 --- a/.changes/next-release/api-change-medialive-62701.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``medialive``", - "description": "Outputs using the AV1 codec in CMAF Ingest output groups in MediaLive now have the ability to specify a target bit depth of 8 or 10." -} diff --git a/.changes/next-release/api-change-neptunegraph-62873.json b/.changes/next-release/api-change-neptunegraph-62873.json deleted file mode 100644 index 89575e8c8a48..000000000000 --- a/.changes/next-release/api-change-neptunegraph-62873.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``neptune-graph``", - "description": "Minor neptune-graph documentation changes" -} diff --git a/.changes/next-release/api-change-ram-38453.json b/.changes/next-release/api-change-ram-38453.json deleted file mode 100644 index fa4689d5f90e..000000000000 --- a/.changes/next-release/api-change-ram-38453.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``ram``", - "description": "Added ListSourceAssociations API. Allows RAM resource share owners to list source associations that determine which sources can access resources through service principal associations. Supports filtering by resource share ARN, source ID, source type, or status, with pagination." -} diff --git a/.changes/next-release/api-change-transfer-63535.json b/.changes/next-release/api-change-transfer-63535.json deleted file mode 100644 index 3d27b28bfc4d..000000000000 --- a/.changes/next-release/api-change-transfer-63535.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``transfer``", - "description": "Adds support for the customer to send custom HTTP headers and configure an AS2 Connector to receive Asynchronous MDNs from their trading partner" -} diff --git a/.changes/next-release/api-change-workspaces-37711.json b/.changes/next-release/api-change-workspaces-37711.json deleted file mode 100644 index 0616736d530d..000000000000 --- a/.changes/next-release/api-change-workspaces-37711.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "api-change", - "category": "``workspaces``", - "description": "Added support for 12 new graphics-optimized compute types - Graphics.g6 (xlarge, 2xlarge, 4xlarge, 8xlarge, 16xlarge), Graphics.gr6 (4xlarge, 8xlarge), Graphics.g6f (large, xlarge, 2xlarge, 4xlarge), and Graphics.gr6f (4xlarge)." -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3de412bc71fa..cd41ecac887a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,21 @@ CHANGELOG ========= +1.44.33 +======= + +* api-change:``arc-region-switch``: Updates documentation for ARC Region switch and provides stronger validation for Amazon Aurora Global Database execution block parameters. +* api-change:``athena``: Reduces the minimum TargetDpus to create or update capacity reservations from 24 to 4. +* api-change:``bedrock-agentcore``: Support Browser profile persistence (cookies and local storage) across sessions for AgentCore Browser. +* api-change:``bedrock-agentcore-control``: Support Browser profile persistence (cookies and local storage) across sessions for AgentCore Browser. +* api-change:``glue``: This release adds the capability to easily create custom AWS Glue connections to data sources with REST APIs. +* api-change:``medialive``: Outputs using the AV1 codec in CMAF Ingest output groups in MediaLive now have the ability to specify a target bit depth of 8 or 10. +* api-change:``neptune-graph``: Minor neptune-graph documentation changes +* api-change:``ram``: Added ListSourceAssociations API. Allows RAM resource share owners to list source associations that determine which sources can access resources through service principal associations. Supports filtering by resource share ARN, source ID, source type, or status, with pagination. +* api-change:``transfer``: Adds support for the customer to send custom HTTP headers and configure an AS2 Connector to receive Asynchronous MDNs from their trading partner +* api-change:``workspaces``: Added support for 12 new graphics-optimized compute types - Graphics.g6 (xlarge, 2xlarge, 4xlarge, 8xlarge, 16xlarge), Graphics.gr6 (4xlarge, 8xlarge), Graphics.g6f (large, xlarge, 2xlarge, 4xlarge), and Graphics.gr6f (4xlarge). + + 1.44.32 ======= diff --git a/awscli/__init__.py b/awscli/__init__.py index 1a4290bf315b..9a694fdfdb81 100644 --- a/awscli/__init__.py +++ b/awscli/__init__.py @@ -18,7 +18,7 @@ import os -__version__ = '1.44.32' +__version__ = '1.44.33' # # Get our data path to be added to botocore's search path diff --git a/doc/source/conf.py b/doc/source/conf.py index c469e39db6d2..18b85a331432 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -52,7 +52,7 @@ # The short X.Y version. version = '1.44.' # The full version, including alpha/beta/rc tags. -release = '1.44.32' +release = '1.44.33' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/setup.cfg b/setup.cfg index 1fd6afdaec63..6d6c2ea83164 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,7 +3,7 @@ universal = 0 [metadata] requires_dist = - botocore==1.42.42 + botocore==1.42.43 docutils>=0.18.1,<=0.19 s3transfer>=0.16.0,<0.17.0 PyYAML>=3.10,<6.1 diff --git a/setup.py b/setup.py index ff572623bea0..76c99d061312 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ def find_version(*file_paths): install_requires = [ - 'botocore==1.42.42', + 'botocore==1.42.43', 'docutils>=0.18.1,<=0.19', 's3transfer>=0.16.0,<0.17.0', 'PyYAML>=3.10,<6.1',