Skip to content

iter_scan

iter_scan(
    table_name: TableArn,
    *,
    config_overrides: Optional[DynamoDBClientConfig] = None,
    index_name: Optional[IndexName] = None,
    attributes_to_get: Optional[AttributeNameList] = None,
    limit: Optional[PositiveIntegerObject] = None,
    select: Optional[Select] = None,
    scan_filter: Optional[FilterConditionMap] = None,
    conditional_operator: Optional[ConditionalOperator] = None,
    exclusive_start_key: Optional[Key] = None,
    return_consumed_capacity: Optional[ReturnConsumedCapacity] = None,
    total_segments: Optional[ScanTotalSegments] = None,
    segment: Optional[ScanSegment] = None,
    projection_expression: Optional[ProjectionExpression] = None,
    filter_expression: Optional[ConditionExpression] = None,
    expression_attribute_names: Optional[ExpressionAttributeNameMap] = None,
    expression_attribute_values: Optional[ExpressionAttributeValueMap] = None,
    consistent_read: Optional[ConsistentRead] = None,
) -> Iterator[AttributeMap]
Source code in docs_src/capo_dynamodb/_services/dynamo_db.py
def iter_scan(
    self,
    table_name: "capo_dynamodb.types.table_arn.TableArn",
    *,
    config_overrides: Optional[DynamoDBClientConfig] = None,
    index_name: Optional["capo_dynamodb.types.index_name.IndexName"] = None,
    attributes_to_get: Optional[
        "capo_dynamodb.types.attribute_name_list.AttributeNameList"
    ] = None,
    limit: Optional[
        "capo_dynamodb.types.positive_integer_object.PositiveIntegerObject"
    ] = None,
    select: Optional["capo_dynamodb.types.select.Select"] = None,
    scan_filter: Optional[
        "capo_dynamodb.types.filter_condition_map.FilterConditionMap"
    ] = None,
    conditional_operator: Optional[
        "capo_dynamodb.types.conditional_operator.ConditionalOperator"
    ] = None,
    exclusive_start_key: Optional["capo_dynamodb.types.key.Key"] = None,
    return_consumed_capacity: Optional[
        "capo_dynamodb.types.return_consumed_capacity.ReturnConsumedCapacity"
    ] = None,
    total_segments: Optional[
        "capo_dynamodb.types.scan_total_segments.ScanTotalSegments"
    ] = None,
    segment: Optional["capo_dynamodb.types.scan_segment.ScanSegment"] = None,
    projection_expression: Optional[
        "capo_dynamodb.types.projection_expression.ProjectionExpression"
    ] = None,
    filter_expression: Optional[
        "capo_dynamodb.types.condition_expression.ConditionExpression"
    ] = None,
    expression_attribute_names: Optional[
        "capo_dynamodb.types.expression_attribute_name_map.ExpressionAttributeNameMap"
    ] = None,
    expression_attribute_values: Optional[
        "capo_dynamodb.types.expression_attribute_value_map.ExpressionAttributeValueMap"
    ] = None,
    consistent_read: Optional[
        "capo_dynamodb.types.consistent_read.ConsistentRead"
    ] = None,
) -> "Iterator[capo_dynamodb.types.attribute_map.AttributeMap]":
    _token = exclusive_start_key
    while True:
        _response = self.scan(
            table_name,
            config_overrides=config_overrides,
            index_name=index_name,
            attributes_to_get=attributes_to_get,
            limit=limit,
            select=select,
            scan_filter=scan_filter,
            conditional_operator=conditional_operator,
            exclusive_start_key=_token,
            return_consumed_capacity=return_consumed_capacity,
            total_segments=total_segments,
            segment=segment,
            projection_expression=projection_expression,
            filter_expression=filter_expression,
            expression_attribute_names=expression_attribute_names,
            expression_attribute_values=expression_attribute_values,
            consistent_read=consistent_read,
        )
        _page = _resolve_path(_response, ("items",))
        for _item in _page or []:
            yield _item
        _token = _resolve_path(_response, ("last_evaluated_key",))
        if not _token:
            break