mypy-boto3-dynamodb 1.40.44__py3-none-any.whl → 1.41.0__py3-none-any.whl

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.
@@ -12,9 +12,9 @@ def print_info() -> None:
12
12
  Print package info to stdout.
13
13
  """
14
14
  sys.stdout.write(
15
- "Type annotations for boto3 DynamoDB 1.40.44\n"
16
- "Version: 1.40.44\n"
17
- "Builder version: 8.11.0\n"
15
+ "Type annotations for boto3 DynamoDB 1.41.0\n"
16
+ "Version: 1.41.0\n"
17
+ "Builder version: 8.12.0\n"
18
18
  "Docs: https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dynamodb//\n"
19
19
  "Boto3 docs: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#dynamodb\n"
20
20
  "Other services: https://pypi.org/project/boto3-stubs/\n"
@@ -26,7 +26,7 @@ def print_version() -> None:
26
26
  """
27
27
  Print package version to stdout.
28
28
  """
29
- sys.stdout.write("1.40.44\n")
29
+ sys.stdout.write("1.41.0\n")
30
30
 
31
31
 
32
32
  def main() -> None:
@@ -19,6 +19,7 @@ Usage::
19
19
  from __future__ import annotations
20
20
 
21
21
  import sys
22
+ from collections.abc import Mapping
22
23
  from typing import Any, overload
23
24
 
24
25
  from botocore.client import BaseClient, ClientMeta
@@ -146,11 +147,6 @@ from .type_defs import (
146
147
  )
147
148
  from .waiter import TableExistsWaiter, TableNotExistsWaiter
148
149
 
149
- if sys.version_info >= (3, 9):
150
- from builtins import type as Type
151
- from collections.abc import Mapping
152
- else:
153
- from typing import Mapping, Type
154
150
  if sys.version_info >= (3, 12):
155
151
  from typing import Literal, Unpack
156
152
  else:
@@ -161,41 +157,41 @@ __all__ = ("DynamoDBClient",)
161
157
 
162
158
 
163
159
  class Exceptions(BaseClientExceptions):
164
- BackupInUseException: Type[BotocoreClientError]
165
- BackupNotFoundException: Type[BotocoreClientError]
166
- ClientError: Type[BotocoreClientError]
167
- ConditionalCheckFailedException: Type[BotocoreClientError]
168
- ContinuousBackupsUnavailableException: Type[BotocoreClientError]
169
- DuplicateItemException: Type[BotocoreClientError]
170
- ExportConflictException: Type[BotocoreClientError]
171
- ExportNotFoundException: Type[BotocoreClientError]
172
- GlobalTableAlreadyExistsException: Type[BotocoreClientError]
173
- GlobalTableNotFoundException: Type[BotocoreClientError]
174
- IdempotentParameterMismatchException: Type[BotocoreClientError]
175
- ImportConflictException: Type[BotocoreClientError]
176
- ImportNotFoundException: Type[BotocoreClientError]
177
- IndexNotFoundException: Type[BotocoreClientError]
178
- InternalServerError: Type[BotocoreClientError]
179
- InvalidExportTimeException: Type[BotocoreClientError]
180
- InvalidRestoreTimeException: Type[BotocoreClientError]
181
- ItemCollectionSizeLimitExceededException: Type[BotocoreClientError]
182
- LimitExceededException: Type[BotocoreClientError]
183
- PointInTimeRecoveryUnavailableException: Type[BotocoreClientError]
184
- PolicyNotFoundException: Type[BotocoreClientError]
185
- ProvisionedThroughputExceededException: Type[BotocoreClientError]
186
- ReplicaAlreadyExistsException: Type[BotocoreClientError]
187
- ReplicaNotFoundException: Type[BotocoreClientError]
188
- ReplicatedWriteConflictException: Type[BotocoreClientError]
189
- RequestLimitExceeded: Type[BotocoreClientError]
190
- ResourceInUseException: Type[BotocoreClientError]
191
- ResourceNotFoundException: Type[BotocoreClientError]
192
- TableAlreadyExistsException: Type[BotocoreClientError]
193
- TableInUseException: Type[BotocoreClientError]
194
- TableNotFoundException: Type[BotocoreClientError]
195
- ThrottlingException: Type[BotocoreClientError]
196
- TransactionCanceledException: Type[BotocoreClientError]
197
- TransactionConflictException: Type[BotocoreClientError]
198
- TransactionInProgressException: Type[BotocoreClientError]
160
+ BackupInUseException: type[BotocoreClientError]
161
+ BackupNotFoundException: type[BotocoreClientError]
162
+ ClientError: type[BotocoreClientError]
163
+ ConditionalCheckFailedException: type[BotocoreClientError]
164
+ ContinuousBackupsUnavailableException: type[BotocoreClientError]
165
+ DuplicateItemException: type[BotocoreClientError]
166
+ ExportConflictException: type[BotocoreClientError]
167
+ ExportNotFoundException: type[BotocoreClientError]
168
+ GlobalTableAlreadyExistsException: type[BotocoreClientError]
169
+ GlobalTableNotFoundException: type[BotocoreClientError]
170
+ IdempotentParameterMismatchException: type[BotocoreClientError]
171
+ ImportConflictException: type[BotocoreClientError]
172
+ ImportNotFoundException: type[BotocoreClientError]
173
+ IndexNotFoundException: type[BotocoreClientError]
174
+ InternalServerError: type[BotocoreClientError]
175
+ InvalidExportTimeException: type[BotocoreClientError]
176
+ InvalidRestoreTimeException: type[BotocoreClientError]
177
+ ItemCollectionSizeLimitExceededException: type[BotocoreClientError]
178
+ LimitExceededException: type[BotocoreClientError]
179
+ PointInTimeRecoveryUnavailableException: type[BotocoreClientError]
180
+ PolicyNotFoundException: type[BotocoreClientError]
181
+ ProvisionedThroughputExceededException: type[BotocoreClientError]
182
+ ReplicaAlreadyExistsException: type[BotocoreClientError]
183
+ ReplicaNotFoundException: type[BotocoreClientError]
184
+ ReplicatedWriteConflictException: type[BotocoreClientError]
185
+ RequestLimitExceeded: type[BotocoreClientError]
186
+ ResourceInUseException: type[BotocoreClientError]
187
+ ResourceNotFoundException: type[BotocoreClientError]
188
+ TableAlreadyExistsException: type[BotocoreClientError]
189
+ TableInUseException: type[BotocoreClientError]
190
+ TableNotFoundException: type[BotocoreClientError]
191
+ ThrottlingException: type[BotocoreClientError]
192
+ TransactionCanceledException: type[BotocoreClientError]
193
+ TransactionConflictException: type[BotocoreClientError]
194
+ TransactionInProgressException: type[BotocoreClientError]
199
195
 
200
196
 
201
197
  class DynamoDBClient(BaseClient):
@@ -19,6 +19,7 @@ Usage::
19
19
  from __future__ import annotations
20
20
 
21
21
  import sys
22
+ from collections.abc import Mapping
22
23
  from typing import Any, overload
23
24
 
24
25
  from botocore.client import BaseClient, ClientMeta
@@ -146,11 +147,6 @@ from .type_defs import (
146
147
  )
147
148
  from .waiter import TableExistsWaiter, TableNotExistsWaiter
148
149
 
149
- if sys.version_info >= (3, 9):
150
- from builtins import type as Type
151
- from collections.abc import Mapping
152
- else:
153
- from typing import Mapping, Type
154
150
  if sys.version_info >= (3, 12):
155
151
  from typing import Literal, Unpack
156
152
  else:
@@ -159,41 +155,41 @@ else:
159
155
  __all__ = ("DynamoDBClient",)
160
156
 
161
157
  class Exceptions(BaseClientExceptions):
162
- BackupInUseException: Type[BotocoreClientError]
163
- BackupNotFoundException: Type[BotocoreClientError]
164
- ClientError: Type[BotocoreClientError]
165
- ConditionalCheckFailedException: Type[BotocoreClientError]
166
- ContinuousBackupsUnavailableException: Type[BotocoreClientError]
167
- DuplicateItemException: Type[BotocoreClientError]
168
- ExportConflictException: Type[BotocoreClientError]
169
- ExportNotFoundException: Type[BotocoreClientError]
170
- GlobalTableAlreadyExistsException: Type[BotocoreClientError]
171
- GlobalTableNotFoundException: Type[BotocoreClientError]
172
- IdempotentParameterMismatchException: Type[BotocoreClientError]
173
- ImportConflictException: Type[BotocoreClientError]
174
- ImportNotFoundException: Type[BotocoreClientError]
175
- IndexNotFoundException: Type[BotocoreClientError]
176
- InternalServerError: Type[BotocoreClientError]
177
- InvalidExportTimeException: Type[BotocoreClientError]
178
- InvalidRestoreTimeException: Type[BotocoreClientError]
179
- ItemCollectionSizeLimitExceededException: Type[BotocoreClientError]
180
- LimitExceededException: Type[BotocoreClientError]
181
- PointInTimeRecoveryUnavailableException: Type[BotocoreClientError]
182
- PolicyNotFoundException: Type[BotocoreClientError]
183
- ProvisionedThroughputExceededException: Type[BotocoreClientError]
184
- ReplicaAlreadyExistsException: Type[BotocoreClientError]
185
- ReplicaNotFoundException: Type[BotocoreClientError]
186
- ReplicatedWriteConflictException: Type[BotocoreClientError]
187
- RequestLimitExceeded: Type[BotocoreClientError]
188
- ResourceInUseException: Type[BotocoreClientError]
189
- ResourceNotFoundException: Type[BotocoreClientError]
190
- TableAlreadyExistsException: Type[BotocoreClientError]
191
- TableInUseException: Type[BotocoreClientError]
192
- TableNotFoundException: Type[BotocoreClientError]
193
- ThrottlingException: Type[BotocoreClientError]
194
- TransactionCanceledException: Type[BotocoreClientError]
195
- TransactionConflictException: Type[BotocoreClientError]
196
- TransactionInProgressException: Type[BotocoreClientError]
158
+ BackupInUseException: type[BotocoreClientError]
159
+ BackupNotFoundException: type[BotocoreClientError]
160
+ ClientError: type[BotocoreClientError]
161
+ ConditionalCheckFailedException: type[BotocoreClientError]
162
+ ContinuousBackupsUnavailableException: type[BotocoreClientError]
163
+ DuplicateItemException: type[BotocoreClientError]
164
+ ExportConflictException: type[BotocoreClientError]
165
+ ExportNotFoundException: type[BotocoreClientError]
166
+ GlobalTableAlreadyExistsException: type[BotocoreClientError]
167
+ GlobalTableNotFoundException: type[BotocoreClientError]
168
+ IdempotentParameterMismatchException: type[BotocoreClientError]
169
+ ImportConflictException: type[BotocoreClientError]
170
+ ImportNotFoundException: type[BotocoreClientError]
171
+ IndexNotFoundException: type[BotocoreClientError]
172
+ InternalServerError: type[BotocoreClientError]
173
+ InvalidExportTimeException: type[BotocoreClientError]
174
+ InvalidRestoreTimeException: type[BotocoreClientError]
175
+ ItemCollectionSizeLimitExceededException: type[BotocoreClientError]
176
+ LimitExceededException: type[BotocoreClientError]
177
+ PointInTimeRecoveryUnavailableException: type[BotocoreClientError]
178
+ PolicyNotFoundException: type[BotocoreClientError]
179
+ ProvisionedThroughputExceededException: type[BotocoreClientError]
180
+ ReplicaAlreadyExistsException: type[BotocoreClientError]
181
+ ReplicaNotFoundException: type[BotocoreClientError]
182
+ ReplicatedWriteConflictException: type[BotocoreClientError]
183
+ RequestLimitExceeded: type[BotocoreClientError]
184
+ ResourceInUseException: type[BotocoreClientError]
185
+ ResourceNotFoundException: type[BotocoreClientError]
186
+ TableAlreadyExistsException: type[BotocoreClientError]
187
+ TableInUseException: type[BotocoreClientError]
188
+ TableNotFoundException: type[BotocoreClientError]
189
+ ThrottlingException: type[BotocoreClientError]
190
+ TransactionCanceledException: type[BotocoreClientError]
191
+ TransactionConflictException: type[BotocoreClientError]
192
+ TransactionInProgressException: type[BotocoreClientError]
197
193
 
198
194
  class DynamoDBClient(BaseClient):
199
195
  """
@@ -205,7 +205,6 @@ ServiceName = Literal[
205
205
  "apprunner",
206
206
  "appstream",
207
207
  "appsync",
208
- "apptest",
209
208
  "arc-region-switch",
210
209
  "arc-zonal-shift",
211
210
  "artifact",
@@ -373,7 +372,6 @@ ServiceName = Literal[
373
372
  "iotdeviceadvisor",
374
373
  "iotevents",
375
374
  "iotevents-data",
376
- "iotfleethub",
377
375
  "iotfleetwise",
378
376
  "iotsecuretunneling",
379
377
  "iotsitewise",
@@ -412,8 +410,6 @@ ServiceName = Literal[
412
410
  "location",
413
411
  "logs",
414
412
  "lookoutequipment",
415
- "lookoutmetrics",
416
- "lookoutvision",
417
413
  "m2",
418
414
  "machinelearning",
419
415
  "macie2",
@@ -448,6 +444,7 @@ ServiceName = Literal[
448
444
  "mq",
449
445
  "mturk",
450
446
  "mwaa",
447
+ "mwaa-serverless",
451
448
  "neptune",
452
449
  "neptune-graph",
453
450
  "neptunedata",
@@ -467,6 +464,7 @@ ServiceName = Literal[
467
464
  "osis",
468
465
  "outposts",
469
466
  "panorama",
467
+ "partnercentral-channel",
470
468
  "partnercentral-selling",
471
469
  "payment-cryptography",
472
470
  "payment-cryptography-data",
@@ -488,8 +486,6 @@ ServiceName = Literal[
488
486
  "qapps",
489
487
  "qbusiness",
490
488
  "qconnect",
491
- "qldb",
492
- "qldb-session",
493
489
  "quicksight",
494
490
  "ram",
495
491
  "rbin",
@@ -504,7 +500,6 @@ ServiceName = Literal[
504
500
  "resource-explorer-2",
505
501
  "resource-groups",
506
502
  "resourcegroupstaggingapi",
507
- "robomaker",
508
503
  "rolesanywhere",
509
504
  "route53",
510
505
  "route53-recovery-cluster",
@@ -513,6 +508,7 @@ ServiceName = Literal[
513
508
  "route53domains",
514
509
  "route53profiles",
515
510
  "route53resolver",
511
+ "rtbfabric",
516
512
  "rum",
517
513
  "s3",
518
514
  "s3control",
@@ -543,6 +539,7 @@ ServiceName = Literal[
543
539
  "sesv2",
544
540
  "shield",
545
541
  "signer",
542
+ "signin",
546
543
  "simspaceweaver",
547
544
  "snow-device-management",
548
545
  "snowball",
@@ -203,7 +203,6 @@ ServiceName = Literal[
203
203
  "apprunner",
204
204
  "appstream",
205
205
  "appsync",
206
- "apptest",
207
206
  "arc-region-switch",
208
207
  "arc-zonal-shift",
209
208
  "artifact",
@@ -371,7 +370,6 @@ ServiceName = Literal[
371
370
  "iotdeviceadvisor",
372
371
  "iotevents",
373
372
  "iotevents-data",
374
- "iotfleethub",
375
373
  "iotfleetwise",
376
374
  "iotsecuretunneling",
377
375
  "iotsitewise",
@@ -410,8 +408,6 @@ ServiceName = Literal[
410
408
  "location",
411
409
  "logs",
412
410
  "lookoutequipment",
413
- "lookoutmetrics",
414
- "lookoutvision",
415
411
  "m2",
416
412
  "machinelearning",
417
413
  "macie2",
@@ -446,6 +442,7 @@ ServiceName = Literal[
446
442
  "mq",
447
443
  "mturk",
448
444
  "mwaa",
445
+ "mwaa-serverless",
449
446
  "neptune",
450
447
  "neptune-graph",
451
448
  "neptunedata",
@@ -465,6 +462,7 @@ ServiceName = Literal[
465
462
  "osis",
466
463
  "outposts",
467
464
  "panorama",
465
+ "partnercentral-channel",
468
466
  "partnercentral-selling",
469
467
  "payment-cryptography",
470
468
  "payment-cryptography-data",
@@ -486,8 +484,6 @@ ServiceName = Literal[
486
484
  "qapps",
487
485
  "qbusiness",
488
486
  "qconnect",
489
- "qldb",
490
- "qldb-session",
491
487
  "quicksight",
492
488
  "ram",
493
489
  "rbin",
@@ -502,7 +498,6 @@ ServiceName = Literal[
502
498
  "resource-explorer-2",
503
499
  "resource-groups",
504
500
  "resourcegroupstaggingapi",
505
- "robomaker",
506
501
  "rolesanywhere",
507
502
  "route53",
508
503
  "route53-recovery-cluster",
@@ -511,6 +506,7 @@ ServiceName = Literal[
511
506
  "route53domains",
512
507
  "route53profiles",
513
508
  "route53resolver",
509
+ "rtbfabric",
514
510
  "rum",
515
511
  "s3",
516
512
  "s3control",
@@ -541,6 +537,7 @@ ServiceName = Literal[
541
537
  "sesv2",
542
538
  "shield",
543
539
  "signer",
540
+ "signin",
544
541
  "simspaceweaver",
545
542
  "snow-device-management",
546
543
  "snowball",
@@ -23,6 +23,7 @@ Usage::
23
23
  from __future__ import annotations
24
24
 
25
25
  import sys
26
+ from collections.abc import Iterator, Sequence
26
27
  from datetime import datetime
27
28
 
28
29
  from boto3.dynamodb.table import BatchWriter
@@ -68,11 +69,6 @@ from .type_defs import (
68
69
  UpdateTableInputTableUpdateTypeDef,
69
70
  )
70
71
 
71
- if sys.version_info >= (3, 9):
72
- from builtins import list as List
73
- from collections.abc import Iterator, Sequence
74
- else:
75
- from typing import Iterator, List, Sequence
76
72
  if sys.version_info >= (3, 12):
77
73
  from typing import Unpack
78
74
  else:
@@ -125,7 +121,7 @@ class ServiceResourceTablesCollection(ResourceCollection):
125
121
  [Show boto3-stubs documentation](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dynamodb/service_resource/#serviceresourcetablescollection)
126
122
  """
127
123
 
128
- def pages(self) -> Iterator[List[Table]]:
124
+ def pages(self) -> Iterator[list[Table]]:
129
125
  """
130
126
  A generator which yields pages of Tables.
131
127
 
@@ -149,9 +145,9 @@ class Table(ServiceResource):
149
145
  """
150
146
 
151
147
  name: str
152
- attribute_definitions: List[AttributeDefinitionTypeDef]
148
+ attribute_definitions: list[AttributeDefinitionTypeDef]
153
149
  table_name: str
154
- key_schema: List[KeySchemaElementTypeDef]
150
+ key_schema: list[KeySchemaElementTypeDef]
155
151
  table_status: TableStatusType
156
152
  creation_date_time: datetime
157
153
  provisioned_throughput: ProvisionedThroughputDescriptionTypeDef
@@ -160,14 +156,14 @@ class Table(ServiceResource):
160
156
  table_arn: str
161
157
  table_id: str
162
158
  billing_mode_summary: BillingModeSummaryTypeDef
163
- local_secondary_indexes: List[LocalSecondaryIndexDescriptionTypeDef]
164
- global_secondary_indexes: List[GlobalSecondaryIndexDescriptionTypeDef]
159
+ local_secondary_indexes: list[LocalSecondaryIndexDescriptionTypeDef]
160
+ global_secondary_indexes: list[GlobalSecondaryIndexDescriptionTypeDef]
165
161
  stream_specification: StreamSpecificationTypeDef
166
162
  latest_stream_label: str
167
163
  latest_stream_arn: str
168
164
  global_table_version: str
169
- replicas: List[ReplicaDescriptionTypeDef]
170
- global_table_witnesses: List[GlobalTableWitnessDescriptionTypeDef]
165
+ replicas: list[ReplicaDescriptionTypeDef]
166
+ global_table_witnesses: list[GlobalTableWitnessDescriptionTypeDef]
171
167
  restore_summary: RestoreSummaryTypeDef
172
168
  sse_description: SSEDescriptionTypeDef
173
169
  archival_summary: ArchivalSummaryTypeDef
@@ -279,7 +275,7 @@ class Table(ServiceResource):
279
275
  [Show boto3-stubs documentation](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dynamodb/service_resource/#tablewait_until_not_exists-method)
280
276
  """
281
277
 
282
- def batch_writer(self, overwrite_by_pkeys: List[str] = ...) -> BatchWriter:
278
+ def batch_writer(self, overwrite_by_pkeys: list[str] = ...) -> BatchWriter:
283
279
  """
284
280
  Create a batch writer object.
285
281
 
@@ -23,6 +23,7 @@ Usage::
23
23
  from __future__ import annotations
24
24
 
25
25
  import sys
26
+ from collections.abc import Iterator, Sequence
26
27
  from datetime import datetime
27
28
 
28
29
  from boto3.dynamodb.table import BatchWriter
@@ -68,11 +69,6 @@ from .type_defs import (
68
69
  UpdateTableInputTableUpdateTypeDef,
69
70
  )
70
71
 
71
- if sys.version_info >= (3, 9):
72
- from builtins import list as List
73
- from collections.abc import Iterator, Sequence
74
- else:
75
- from typing import Iterator, List, Sequence
76
72
  if sys.version_info >= (3, 12):
77
73
  from typing import Unpack
78
74
  else:
@@ -122,7 +118,7 @@ class ServiceResourceTablesCollection(ResourceCollection):
122
118
  [Show boto3-stubs documentation](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dynamodb/service_resource/#serviceresourcetablescollection)
123
119
  """
124
120
 
125
- def pages(self) -> Iterator[List[Table]]:
121
+ def pages(self) -> Iterator[list[Table]]:
126
122
  """
127
123
  A generator which yields pages of Tables.
128
124
 
@@ -145,9 +141,9 @@ class Table(ServiceResource):
145
141
  """
146
142
 
147
143
  name: str
148
- attribute_definitions: List[AttributeDefinitionTypeDef]
144
+ attribute_definitions: list[AttributeDefinitionTypeDef]
149
145
  table_name: str
150
- key_schema: List[KeySchemaElementTypeDef]
146
+ key_schema: list[KeySchemaElementTypeDef]
151
147
  table_status: TableStatusType
152
148
  creation_date_time: datetime
153
149
  provisioned_throughput: ProvisionedThroughputDescriptionTypeDef
@@ -156,14 +152,14 @@ class Table(ServiceResource):
156
152
  table_arn: str
157
153
  table_id: str
158
154
  billing_mode_summary: BillingModeSummaryTypeDef
159
- local_secondary_indexes: List[LocalSecondaryIndexDescriptionTypeDef]
160
- global_secondary_indexes: List[GlobalSecondaryIndexDescriptionTypeDef]
155
+ local_secondary_indexes: list[LocalSecondaryIndexDescriptionTypeDef]
156
+ global_secondary_indexes: list[GlobalSecondaryIndexDescriptionTypeDef]
161
157
  stream_specification: StreamSpecificationTypeDef
162
158
  latest_stream_label: str
163
159
  latest_stream_arn: str
164
160
  global_table_version: str
165
- replicas: List[ReplicaDescriptionTypeDef]
166
- global_table_witnesses: List[GlobalTableWitnessDescriptionTypeDef]
161
+ replicas: list[ReplicaDescriptionTypeDef]
162
+ global_table_witnesses: list[GlobalTableWitnessDescriptionTypeDef]
167
163
  restore_summary: RestoreSummaryTypeDef
168
164
  sse_description: SSEDescriptionTypeDef
169
165
  archival_summary: ArchivalSummaryTypeDef
@@ -275,7 +271,7 @@ class Table(ServiceResource):
275
271
  [Show boto3-stubs documentation](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_dynamodb/service_resource/#tablewait_until_not_exists-method)
276
272
  """
277
273
 
278
- def batch_writer(self, overwrite_by_pkeys: List[str] = ...) -> BatchWriter:
274
+ def batch_writer(self, overwrite_by_pkeys: list[str] = ...) -> BatchWriter:
279
275
  """
280
276
  Create a batch writer object.
281
277