def iter_list_parts(
self,
bucket: "capo_s3.types.bucket_name.BucketName",
key: "capo_s3.types.object_key.ObjectKey",
upload_id: "capo_s3.types.multipart_upload_id.MultipartUploadId",
*,
config_overrides: Optional[S3ClientConfig] = None,
max_parts: Optional["capo_s3.types.max_parts.MaxParts"] = None,
part_number_marker: Optional[
"capo_s3.types.part_number_marker.PartNumberMarker"
] = None,
request_payer: Optional["capo_s3.types.request_payer.RequestPayer"] = None,
expected_bucket_owner: Optional["capo_s3.types.account_id.AccountId"] = None,
sse_customer_algorithm: Optional[
"capo_s3.types.sse_customer_algorithm.SSECustomerAlgorithm"
] = None,
sse_customer_key: Optional[
"capo_s3.types.sse_customer_key.SSECustomerKey"
] = None,
sse_customer_key_md5: Optional[
"capo_s3.types.sse_customer_key_md5.SSECustomerKeyMD5"
] = None,
) -> "Iterator[capo_s3.types.part.Part]":
_token = part_number_marker
while True:
_response = self.list_parts(
bucket,
key,
upload_id,
config_overrides=config_overrides,
max_parts=max_parts,
part_number_marker=_token,
request_payer=request_payer,
expected_bucket_owner=expected_bucket_owner,
sse_customer_algorithm=sse_customer_algorithm,
sse_customer_key=sse_customer_key,
sse_customer_key_md5=sse_customer_key_md5,
)
_page = _resolve_path(_response, ("parts",))
for _item in _page or []:
yield _item
_token = _resolve_path(_response, ("next_part_number_marker",))
if not _token or not _resolve_path(_response, ("is_truncated",)):
break