dynamodol.partition_query
Stores for filtered data sets
- class dynamodol.partition_query.DynamoDbPartitionPersister(db: Any = None, table_name: str = None, key_fields: tuple[str] = None, data_fields: tuple[str] = None, exclude_keys_on_read: bool = True, query: Any = None, key_query: Any = None, attr_query: Any = None, partition: str = None)[source]
- class dynamodol.partition_query.DynamoDbPartitionReader(db: Any = None, table_name: str = None, key_fields: tuple[str] = None, data_fields: tuple[str] = None, exclude_keys_on_read: bool = True, query: Any = None, key_query: Any = None, attr_query: Any = None, partition: str = None)[source]
Reads from a partition of a DynamoDB table.
>>> from dynamodol.base import load_sample_data >>> load_sample_data() >>> partition_reader = DynamoDbPartitionReader(partition='part1') >>> list(partition_reader) [('part1', '01-01'), ('part1', '01-02'), ('part1', '01-03'), ('part1', '01-04'), ('part1', '02-01'), ('part1', '03-02'), ('part1', '04-03'), ('part1', 'sort2')] >>> partition_reader[('part1', '01-01')]
- class dynamodol.partition_query.DynamoDbPrefixReader(db: Any = None, table_name: str = None, key_fields: tuple[str] = None, data_fields: tuple[str] = None, exclude_keys_on_read: bool = True, query: Any = None, key_query: Any = None, attr_query: Any = None, partition: str = None, prefix: str = '')[source]
Reads from a partition of a DynamoDB table, with the sort key filtered by a prefix.
>>> from dynamodol.base import load_sample_data >>> load_sample_data() >>> prefix_reader = DynamoDbPrefixReader(key_fields=('partitionkey', 'sortkey'), table_name='sorted_table', partition='part1', prefix='01') >>> list(prefix_reader) [('part1', '01-01'), ('part1', '01-02'), ('part1', '01-03'), ('part1', '01-04')]
- class dynamodol.partition_query.DynamoDbQueryReader(db: Any = None, table_name: str = None, key_fields: tuple[str] = None, data_fields: tuple[str] = None, exclude_keys_on_read: bool = True, query: Any = None, key_query: Any = None, attr_query: Any = None)[source]
Reads from a filtered subset of a DynamoDB table.
Every query must include the partition key (the first key field).
>>> from dynamodol.base import load_sample_data >>> load_sample_data()
Querying on the partition key and sort key >>> query_reader = DynamoDbQueryReader(query={‘partitionkey’: ‘part1’, ‘sortkey’: ‘04-03’}) >>> list(query_reader) [(‘part1’, ‘04-03’)]
Querying on a partition and arbitrary attribute key. >>> query_reader = DynamoDbQueryReader(query={‘partitionkey’: ‘part1’, ‘data’: ‘a’}) >>> list(query_reader) [(‘part1’, ‘01-01’), (‘part1’, ‘01-04’)] >>> query_reader[(‘part1’, ‘01-04’)]
A more complex query. Note that numerical values and numerical comparisons are not yet supported. >>> query = {‘partitionkey’: ‘part2’, ‘sortkey’: {‘$gt’: ‘02-01’}, ‘moredata’: {‘$contains’: ‘r’}} >>> query_reader = DynamoDbQueryReader(query=query) >>> list(query_reader) [(‘part2’, ‘03-02’), (‘part2’, ‘04-03’)]