bloop
bloop copied to clipboard
Object Mapper for DynamoDB
```python from bloop import BaseModel, DateTime, String, Column, Engine class MyModel(BaseModel): id = Column(String, hash_key=True) date = Column(DateTime, range_key=True) e = Engine() e.bind(MyModel, skip_table_setup=True) condition_hk = MyModel.id == "foo" condition_rk...
reproducible on both `3.1.0` and `4.0.0a1` with: ```python #!/usr/bin/env python from bloop import BaseModel, Column, Integer class A(BaseModel): id_a = Column(Integer, hash_key=True) class B(A): id_b = Column(Integer, hash_key=True) # B...
[Announcement here](https://aws.amazon.com/about-aws/whats-new/2020/05/amazon-dynamodb-now-supports-empty-values-for-non-key-string-and-binary-attributes-in-dynamodb-tables) and [PutItem reference here](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html#DDB-PutItem-request-Item) > Empty String and Binary attribute values are allowed. Attribute values of type String and Binary must have a length greater than zero if...
_I can contribute PR for this but I'm leaving the issue here first to collect some thoughts._ Currently if we skip creating table when binding a model and the table...
Building on #136 there are two functions that could be exposed as additional values for `ActionType`: `if_not_exist` and `list_append` The [`if_not_exist`](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.PreventingAttributeOverwrites) function is a conditional SET. This should be straightforward:...
Currently, a `types.Map` only supports full updates. This can be an issue with concurrent additions. Consider: ``` # ============= models.py class Model(engine.model): id = Column(String, hash_key=True) document = Column(**{ 'bar':...