boto3 1.42.1__tar.gz → 1.42.23__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. {boto3-1.42.1 → boto3-1.42.23}/PKG-INFO +3 -3
  2. {boto3-1.42.1 → boto3-1.42.23}/README.rst +1 -1
  3. {boto3-1.42.1 → boto3-1.42.23}/boto3/__init__.py +1 -1
  4. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/__init__.py +1 -1
  5. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/service.py +1 -1
  6. {boto3-1.42.1 → boto3-1.42.23}/boto3/dynamodb/conditions.py +3 -3
  7. {boto3-1.42.1 → boto3-1.42.23}/boto3/resources/base.py +7 -11
  8. {boto3-1.42.1 → boto3-1.42.23}/boto3/resources/factory.py +3 -3
  9. {boto3-1.42.1 → boto3-1.42.23}/boto3/resources/model.py +3 -3
  10. {boto3-1.42.1 → boto3-1.42.23}/boto3/resources/params.py +1 -1
  11. {boto3-1.42.1 → boto3-1.42.23}/boto3/s3/transfer.py +12 -8
  12. {boto3-1.42.1 → boto3-1.42.23}/boto3/session.py +1 -1
  13. {boto3-1.42.1 → boto3-1.42.23}/boto3/utils.py +1 -11
  14. {boto3-1.42.1 → boto3-1.42.23}/boto3.egg-info/PKG-INFO +3 -3
  15. {boto3-1.42.1 → boto3-1.42.23}/boto3.egg-info/requires.txt +1 -1
  16. {boto3-1.42.1 → boto3-1.42.23}/pyproject.toml +9 -1
  17. {boto3-1.42.1 → boto3-1.42.23}/setup.cfg +1 -1
  18. {boto3-1.42.1 → boto3-1.42.23}/setup.py +1 -1
  19. {boto3-1.42.1 → boto3-1.42.23}/CONTRIBUTING.rst +0 -0
  20. {boto3-1.42.1 → boto3-1.42.23}/LICENSE +0 -0
  21. {boto3-1.42.1 → boto3-1.42.23}/MANIFEST.in +0 -0
  22. {boto3-1.42.1 → boto3-1.42.23}/NOTICE +0 -0
  23. {boto3-1.42.1 → boto3-1.42.23}/boto3/compat.py +0 -0
  24. {boto3-1.42.1 → boto3-1.42.23}/boto3/crt.py +0 -0
  25. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/cloudformation/2010-05-15/resources-1.json +0 -0
  26. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/cloudwatch/2010-08-01/resources-1.json +0 -0
  27. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/dynamodb/2012-08-10/resources-1.json +0 -0
  28. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/ec2/2014-10-01/resources-1.json +0 -0
  29. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/ec2/2015-03-01/resources-1.json +0 -0
  30. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/ec2/2015-04-15/resources-1.json +0 -0
  31. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/ec2/2015-10-01/resources-1.json +0 -0
  32. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/ec2/2016-04-01/resources-1.json +0 -0
  33. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/ec2/2016-09-15/resources-1.json +0 -0
  34. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/ec2/2016-11-15/resources-1.json +0 -0
  35. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/glacier/2012-06-01/resources-1.json +0 -0
  36. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/iam/2010-05-08/resources-1.json +0 -0
  37. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/s3/2006-03-01/resources-1.json +0 -0
  38. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/sns/2010-03-31/resources-1.json +0 -0
  39. {boto3-1.42.1 → boto3-1.42.23}/boto3/data/sqs/2012-11-05/resources-1.json +0 -0
  40. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/action.py +0 -0
  41. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/attr.py +0 -0
  42. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/base.py +0 -0
  43. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/client.py +0 -0
  44. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/collection.py +0 -0
  45. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/docstring.py +0 -0
  46. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/method.py +0 -0
  47. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/resource.py +0 -0
  48. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/subresource.py +0 -0
  49. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/utils.py +0 -0
  50. {boto3-1.42.1 → boto3-1.42.23}/boto3/docs/waiter.py +0 -0
  51. {boto3-1.42.1 → boto3-1.42.23}/boto3/dynamodb/__init__.py +0 -0
  52. {boto3-1.42.1 → boto3-1.42.23}/boto3/dynamodb/table.py +0 -0
  53. {boto3-1.42.1 → boto3-1.42.23}/boto3/dynamodb/transform.py +0 -0
  54. {boto3-1.42.1 → boto3-1.42.23}/boto3/dynamodb/types.py +0 -0
  55. {boto3-1.42.1 → boto3-1.42.23}/boto3/ec2/__init__.py +0 -0
  56. {boto3-1.42.1 → boto3-1.42.23}/boto3/ec2/createtags.py +0 -0
  57. {boto3-1.42.1 → boto3-1.42.23}/boto3/ec2/deletetags.py +0 -0
  58. {boto3-1.42.1 → boto3-1.42.23}/boto3/examples/cloudfront.rst +0 -0
  59. {boto3-1.42.1 → boto3-1.42.23}/boto3/examples/s3.rst +0 -0
  60. {boto3-1.42.1 → boto3-1.42.23}/boto3/exceptions.py +0 -0
  61. {boto3-1.42.1 → boto3-1.42.23}/boto3/resources/__init__.py +0 -0
  62. {boto3-1.42.1 → boto3-1.42.23}/boto3/resources/action.py +0 -0
  63. {boto3-1.42.1 → boto3-1.42.23}/boto3/resources/collection.py +0 -0
  64. {boto3-1.42.1 → boto3-1.42.23}/boto3/resources/response.py +0 -0
  65. {boto3-1.42.1 → boto3-1.42.23}/boto3/s3/__init__.py +0 -0
  66. {boto3-1.42.1 → boto3-1.42.23}/boto3/s3/constants.py +0 -0
  67. {boto3-1.42.1 → boto3-1.42.23}/boto3/s3/inject.py +0 -0
  68. {boto3-1.42.1 → boto3-1.42.23}/boto3.egg-info/SOURCES.txt +0 -0
  69. {boto3-1.42.1 → boto3-1.42.23}/boto3.egg-info/dependency_links.txt +0 -0
  70. {boto3-1.42.1 → boto3-1.42.23}/boto3.egg-info/top_level.txt +0 -0
  71. {boto3-1.42.1 → boto3-1.42.23}/requirements.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: boto3
3
- Version: 1.42.1
3
+ Version: 1.42.23
4
4
  Summary: The AWS SDK for Python
5
5
  Home-page: https://github.com/boto/boto3
6
6
  Author: Amazon Web Services
@@ -22,7 +22,7 @@ Classifier: Programming Language :: Python :: 3.14
22
22
  Requires-Python: >= 3.9
23
23
  License-File: LICENSE
24
24
  License-File: NOTICE
25
- Requires-Dist: botocore<1.43.0,>=1.42.0
25
+ Requires-Dist: botocore<1.43.0,>=1.42.23
26
26
  Requires-Dist: jmespath<2.0.0,>=0.7.1
27
27
  Requires-Dist: s3transfer<0.17.0,>=0.16.0
28
28
  Provides-Extra: crt
@@ -115,7 +115,7 @@ Then, set up a default region (in e.g. ``~/.aws/config``):
115
115
  .. code-block:: ini
116
116
 
117
117
  [default]
118
- region=us-east-1
118
+ region = us-east-1
119
119
 
120
120
  Other credential configuration methods can be found `here <https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html>`__
121
121
 
@@ -85,7 +85,7 @@ Then, set up a default region (in e.g. ``~/.aws/config``):
85
85
  .. code-block:: ini
86
86
 
87
87
  [default]
88
- region=us-east-1
88
+ region = us-east-1
89
89
 
90
90
  Other credential configuration methods can be found `here <https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html>`__
91
91
 
@@ -18,7 +18,7 @@ from boto3.compat import _warn_deprecated_python
18
18
  from boto3.session import Session
19
19
 
20
20
  __author__ = 'Amazon Web Services'
21
- __version__ = '1.42.1'
21
+ __version__ = '1.42.23'
22
22
 
23
23
 
24
24
  # The default Boto3 session; autoloaded when needed.
@@ -45,7 +45,7 @@ def generate_docs(root_dir, session):
45
45
  service_name, session, services_doc_path
46
46
  ).document_service()
47
47
  service_doc_path = os.path.join(
48
- services_doc_path, service_name + '.rst'
48
+ services_doc_path, f"{service_name}.rst"
49
49
  )
50
50
  with open(service_doc_path, 'wb') as f:
51
51
  f.write(docs)
@@ -190,7 +190,7 @@ class ServiceDocumenter(BaseServiceDocumenter):
190
190
 
191
191
  def _get_example_file(self):
192
192
  return os.path.realpath(
193
- os.path.join(self.EXAMPLE_PATH, self._service_name + '.rst')
193
+ os.path.join(self.EXAMPLE_PATH, f"{self._service_name}.rst")
194
194
  )
195
195
 
196
196
  def _document_examples(self, section):
@@ -311,10 +311,10 @@ class ConditionExpressionBuilder:
311
311
  self._value_placeholder = 'v'
312
312
 
313
313
  def _get_name_placeholder(self):
314
- return '#' + self._name_placeholder + str(self._name_count)
314
+ return f"#{self._name_placeholder}{self._name_count}"
315
315
 
316
316
  def _get_value_placeholder(self):
317
- return ':' + self._value_placeholder + str(self._value_count)
317
+ return f":{self._value_placeholder}{self._value_count}"
318
318
 
319
319
  def reset(self):
320
320
  """Resets the placeholder name and values"""
@@ -451,7 +451,7 @@ class ConditionExpressionBuilder:
451
451
  # Assuming the values are grouped by parenthesis.
452
452
  # IN is the currently the only one that uses this so it maybe
453
453
  # needed to be changed in future.
454
- return '(' + ', '.join(placeholder_list) + ')'
454
+ return f"({', '.join(placeholder_list)})"
455
455
  # Otherwise, treat the value as a single value that needs only
456
456
  # one placeholder.
457
457
  else:
@@ -104,7 +104,7 @@ class ServiceResource:
104
104
  # Allow setting identifiers as positional arguments in the order
105
105
  # in which they were defined in the ResourceJSON.
106
106
  for i, value in enumerate(args):
107
- setattr(self, '_' + self.meta.identifiers[i], value)
107
+ setattr(self, f"_{self.meta.identifiers[i]}", value)
108
108
 
109
109
  # Allow setting identifiers via keyword arguments. Here we need
110
110
  # extra logic to ignore other keyword arguments like ``client``.
@@ -115,7 +115,7 @@ class ServiceResource:
115
115
  if name not in self.meta.identifiers:
116
116
  raise ValueError(f'Unknown keyword argument: {name}')
117
117
 
118
- setattr(self, '_' + name, value)
118
+ setattr(self, f"_{name}", value)
119
119
 
120
120
  # Validate that all identifiers have been set.
121
121
  for identifier in self.meta.identifiers:
@@ -123,15 +123,11 @@ class ServiceResource:
123
123
  raise ValueError(f'Required parameter {identifier} not set')
124
124
 
125
125
  def __repr__(self):
126
- identifiers = []
127
- for identifier in self.meta.identifiers:
128
- identifiers.append(
129
- f'{identifier}={repr(getattr(self, identifier))}'
130
- )
131
- return "{}({})".format(
132
- self.__class__.__name__,
133
- ', '.join(identifiers),
134
- )
126
+ identifiers = [
127
+ f'{identifier}={repr(getattr(self, identifier))}'
128
+ for identifier in self.meta.identifiers
129
+ ]
130
+ return f"{self.__class__.__name__}({', '.join(identifiers)})"
135
131
 
136
132
  def __eq__(self, other):
137
133
  # Should be instances of the same resource class
@@ -145,7 +145,7 @@ class ResourceFactory:
145
145
  cls_name = resource_name
146
146
  if service_context.service_name == resource_name:
147
147
  cls_name = 'ServiceResource'
148
- cls_name = service_context.service_name + '.' + cls_name
148
+ cls_name = f"{service_context.service_name}.{cls_name}"
149
149
 
150
150
  base_classes = [ServiceResource]
151
151
  if self._emitter is not None:
@@ -325,7 +325,7 @@ class ResourceFactory:
325
325
  # identifiers have a value ``None``. If any are ``None``,
326
326
  # a more informative user error than a generic AttributeError
327
327
  # is raised.
328
- return getattr(self, '_' + identifier.name, None)
328
+ return getattr(self, f"_{identifier.name}", None)
329
329
 
330
330
  get_identifier.__name__ = str(identifier.name)
331
331
  get_identifier.__doc__ = docstring.IdentifierDocstring(
@@ -344,7 +344,7 @@ class ResourceFactory:
344
344
  """
345
345
 
346
346
  def get_identifier(self):
347
- return getattr(self, '_' + identifier.name, None)
347
+ return getattr(self, f"_{identifier.name}", None)
348
348
 
349
349
  get_identifier.__name__ = str(identifier.member_name)
350
350
  get_identifier.__doc__ = docstring.AttributeDocstring(
@@ -366,9 +366,9 @@ class ResourceModel:
366
366
  name = xform_name(name)
367
367
 
368
368
  if name in names:
369
- logger.debug(f'Renaming {self.name} {category} {name}')
370
- self._renamed[(category, name)] = name + '_' + category
371
- name += '_' + category
369
+ logger.debug('Renaming %s %s %s', self.name, category, name)
370
+ self._renamed[(category, name)] = f"{name}_{category}"
371
+ name += f"_{category}"
372
372
 
373
373
  if name in names:
374
374
  # This isn't good, let's raise instead of trying to keep
@@ -132,7 +132,7 @@ def build_param_structure(params, target, value, index=None):
132
132
  else:
133
133
  # We have an explicit index
134
134
  index = int(result.group(1))
135
- part = part[: -len(str(index) + '[]')]
135
+ part = part[: -len(f"{index}[]")]
136
136
  else:
137
137
  # Index will be set after we know the proper part
138
138
  # name and that it's a list instance.
@@ -175,13 +175,17 @@ def create_transfer_manager(client, config, osutil=None):
175
175
  crt_transfer_manager = create_crt_transfer_manager(client, config)
176
176
  if crt_transfer_manager is not None:
177
177
  logger.debug(
178
- f"Using CRT client. pid: {getpid()}, thread: {threading.get_ident()}"
178
+ "Using CRT client. pid: %s, thread: %s",
179
+ getpid(),
180
+ threading.get_ident(),
179
181
  )
180
182
  return crt_transfer_manager
181
183
 
182
184
  # If we don't resolve something above, fallback to the default.
183
185
  logger.debug(
184
- f"Using default client. pid: {getpid()}, thread: {threading.get_ident()}"
186
+ "Using default client. pid: %s, thread: %s",
187
+ getpid(),
188
+ threading.get_ident(),
185
189
  )
186
190
  return _create_default_transfer_manager(client, config, osutil)
187
191
 
@@ -214,9 +218,11 @@ def _should_use_crt(config):
214
218
  return True
215
219
 
216
220
  logger.debug(
217
- "Opting out of CRT Transfer Manager. Preferred client: "
218
- f"{pref_transfer_client}, CRT available: {HAS_CRT}, "
219
- f"Instance Optimized: {is_optimized_instance}."
221
+ "Opting out of CRT Transfer Manager. "
222
+ "Preferred client: %s, CRT available: %s, Instance Optimized: %s",
223
+ pref_transfer_client,
224
+ HAS_CRT,
225
+ is_optimized_instance,
220
226
  )
221
227
  return False
222
228
 
@@ -450,9 +456,7 @@ class S3Transfer:
450
456
  # client error.
451
457
  except ClientError as e:
452
458
  raise S3UploadFailedError(
453
- "Failed to upload {} to {}: {}".format(
454
- filename, '/'.join([bucket, key]), e
455
- )
459
+ f"Failed to upload {filename} to {bucket}/{key}: {e}"
456
460
  )
457
461
 
458
462
  def download_file(
@@ -72,7 +72,7 @@ class Session:
72
72
  if self._session.user_agent_name == 'Botocore':
73
73
  botocore_info = f'Botocore/{self._session.user_agent_version}'
74
74
  if self._session.user_agent_extra:
75
- self._session.user_agent_extra += ' ' + botocore_info
75
+ self._session.user_agent_extra += f" {botocore_info}"
76
76
  else:
77
77
  self._session.user_agent_extra = botocore_info
78
78
  self._session.user_agent_name = 'Boto3'
@@ -10,8 +10,8 @@
10
10
  # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
- import sys
14
13
  from collections import namedtuple
14
+ from importlib import import_module
15
15
 
16
16
  _ServiceContext = namedtuple(
17
17
  'ServiceContext',
@@ -47,16 +47,6 @@ class ServiceContext(_ServiceContext):
47
47
  pass
48
48
 
49
49
 
50
- def import_module(name):
51
- """Import module given a name.
52
-
53
- Does not support relative imports.
54
-
55
- """
56
- __import__(name)
57
- return sys.modules[name]
58
-
59
-
60
50
  def lazy_call(full_name, **kwargs):
61
51
  parent_kwargs = kwargs
62
52
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: boto3
3
- Version: 1.42.1
3
+ Version: 1.42.23
4
4
  Summary: The AWS SDK for Python
5
5
  Home-page: https://github.com/boto/boto3
6
6
  Author: Amazon Web Services
@@ -22,7 +22,7 @@ Classifier: Programming Language :: Python :: 3.14
22
22
  Requires-Python: >= 3.9
23
23
  License-File: LICENSE
24
24
  License-File: NOTICE
25
- Requires-Dist: botocore<1.43.0,>=1.42.0
25
+ Requires-Dist: botocore<1.43.0,>=1.42.23
26
26
  Requires-Dist: jmespath<2.0.0,>=0.7.1
27
27
  Requires-Dist: s3transfer<0.17.0,>=0.16.0
28
28
  Provides-Extra: crt
@@ -115,7 +115,7 @@ Then, set up a default region (in e.g. ``~/.aws/config``):
115
115
  .. code-block:: ini
116
116
 
117
117
  [default]
118
- region=us-east-1
118
+ region = us-east-1
119
119
 
120
120
  Other credential configuration methods can be found `here <https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html>`__
121
121
 
@@ -1,4 +1,4 @@
1
- botocore<1.43.0,>=1.42.0
1
+ botocore<1.43.0,>=1.42.23
2
2
  jmespath<2.0.0,>=0.7.1
3
3
  s3transfer<0.17.0,>=0.16.0
4
4
 
@@ -43,7 +43,15 @@ target-version = "py39"
43
43
  # Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.
44
44
  # Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
45
45
  # McCabe complexity (`C901`) by default.
46
- select = ["E4", "E7", "E9", "F", "I", "UP"]
46
+ select = [
47
+ "E4", # pycodestyle
48
+ "E7", # pycodestyle
49
+ "E9", # pycodestyle
50
+ "F", # pyflakes
51
+ "G", # flake8-logging-format
52
+ "I", # isort
53
+ "UP", # pyupgrade
54
+ ]
47
55
  ignore = []
48
56
 
49
57
  # Allow fix for all enabled rules (when `--fix`) is provided.
@@ -3,7 +3,7 @@ universal = 0
3
3
 
4
4
  [metadata]
5
5
  requires_dist =
6
- botocore>=1.42.0,<1.43.0
6
+ botocore>=1.42.23,<1.43.0
7
7
  jmespath>=0.7.1,<2.0.0
8
8
  s3transfer>=0.16.0,<0.17.0
9
9
 
@@ -14,7 +14,7 @@ VERSION_RE = re.compile(r'''__version__ = ['"]([0-9.]+)['"]''')
14
14
 
15
15
 
16
16
  requires = [
17
- 'botocore>=1.42.0,<1.43.0',
17
+ 'botocore>=1.42.23,<1.43.0',
18
18
  'jmespath>=0.7.1,<2.0.0',
19
19
  's3transfer>=0.16.0,<0.17.0',
20
20
  ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes