diff --git a/docs/user/atomic.rst b/docs/user/atomic.rst index 80228613..a5fa2991 100644 --- a/docs/user/atomic.rst +++ b/docs/user/atomic.rst @@ -1,5 +1,5 @@ Atomic Operations -================= +^^^^^^^^^^^^^^^^^ TODO copied from another draft @@ -34,3 +34,46 @@ Then the following two calls are equivalent: These are simple atomic conditions - the condition is built by iterating the set of columns that were loaded from DynamoDB through ``Engine.load``, ``Engine.query``, ``Engine.scan``, or saved to DynamoDB through ``Engine.save`` or ``Engine.delete``. + +Quick Example +============= + +Network Failures +================ + +increment an integer and get a 500 - read again and it's incremented. was that us, or someone else? + +Consistent vs Atomic +==================== + +'latest version at time of call' vs 'unchanged since last load' + +Usage +===== + +atomic=True +engine config + +Scenarios +========= + +New Instance +------------ + +atomic save on an instance before it's been saved or loaded from dynamo + +Loaded +------ + +loaded from dynamo, not changed + +Scenario C: Loaded + +loaded from dynamo, modified by another writer + +Partial Query +------------- + +query doesn't load all columns +atomic condition only on loaded +(other writer can modify not loaded column) diff --git a/docs/user/conditions.rst b/docs/user/conditions.rst index 30d6187f..cbacb32f 100644 --- a/docs/user/conditions.rst +++ b/docs/user/conditions.rst @@ -1,4 +1,79 @@ Conditions -========== +^^^^^^^^^^ -TODO +Quick Examples +============== + +Save if not Finalized +--------------------- + +model with a finalized field, save if finalized is False, catch and throw illegal state + +Filter by Time Range +-------------------- + +scan tweets created between two dates + +Atomic Delete +------------- + +atomic=True + +Available Conditions +==================== + +Comparisons +----------- + +``between`` +----------- + +``in_`` +------- + +``is_`` +------- + +``is_not`` +---------- + +``begins_with`` +--------------- + +``contains`` +------------ + +Bitwise Operators +----------------- + +Conditional Save +================ + +Conditional Delete +================== + +Query, Scan +=========== + +Key Conditions +-------------- + +======== +Hash Key +======== + +========= +Range Key +========= + +Filter Condition +---------------- + +Atomic Conditions +================= + +By Hand +------- + +Save, Delete +------------ diff --git a/docs/user/custom_types.rst b/docs/user/custom_types.rst index 3c41d207..39f44090 100644 --- a/docs/user/custom_types.rst +++ b/docs/user/custom_types.rst @@ -426,8 +426,8 @@ and ``_dump`` above, so that the dynamo_* functions only handle non-null data. You SHOULD NOT map None to a value other than None and vice versa, as bloop leverages in multiple areas the convention that None represents omission; from the tracking system to the base model's load/dump methods. -Recursive Load and Dump ------------------------ +Recursive Load, Dump +-------------------- Because ``bind`` can return any two functions, you MUST NOT rely on a type having ``_load``, ``_dump``, ``dynamo_load``, or ``dynamo_dump`` methods. If you need to load or dump a value through a different type, you MUST diff --git a/docs/user/debugging.rst b/docs/user/debugging.rst index 22f8e718..71ad0c96 100644 --- a/docs/user/debugging.rst +++ b/docs/user/debugging.rst @@ -1,4 +1,53 @@ Debugging -========= +^^^^^^^^^ -TODO +Logging +======= + +Wire +---- + +Config +------ + +Models +------ + +Sample Calls +============ + +Load +---- + +Save +---- + +Delete +------ + +Query +----- + +Scan +---- + +Exceptions +========== + +BloopException +-------------- + +AbstractModelException +---------------------- + +ConstraintViolation +------------------- + +NotModified +----------- + +TableMismatch +------------- + +UnboundModel +------------ diff --git a/docs/user/declarative_modeling.rst b/docs/user/declarative_modeling.rst index 4dc04255..3064be48 100644 --- a/docs/user/declarative_modeling.rst +++ b/docs/user/declarative_modeling.rst @@ -81,5 +81,5 @@ Models as Views Table Validation ---------------- -Overlapping Attribute Types ---------------------------- +Overlapping Attributes +---------------------- diff --git a/docs/user/modifying_objects.rst b/docs/user/modifying_objects.rst index fb74fcbd..cc1d7a11 100644 --- a/docs/user/modifying_objects.rst +++ b/docs/user/modifying_objects.rst @@ -1,4 +1,35 @@ Modifying Objects -================= +^^^^^^^^^^^^^^^^^ -TODO +Save +==== + +Quick Example +------------- + +New Objects +----------- + +Partial Updates +--------------- + +Maps and Paths +-------------- + +Link to map issue; diff-based updates not possible with paths + +Delete +====== + +Quick Example +------------- + +Conditions +========== + +link to conditions page + +Atomic +====== + +link to atomic page