Initial midway commit for Service Layer 2.0. Target module will be `apptools.rpc`. Starting off with proper import blocks, file-level commenting, and exported message/datastructure symbols.
New `memoize` utility decorator, further structure to the RPC 2.0 rewrite.
First working version of the complete service layer rewrite. Patches for dispatch and bootstrap to match.
Removed old service layer, removed import references to old service layer, fixed numerous small bugs in switchover.
Cleanup, commenting fixes, coverage fixes.
More coverage cleanup.
ProtoRPC mixin bugfixes in the Model API.
Fixed issues with calculating service paths before dispatch is ready. URL endpoints for services are now deferred for calculation until runtime, then cached.
Only grab ImportErrors in RPC check for ProtoRPC package.
Fully-fail on RPC failing to find ProtoRPC.
Raise errors that occur when looking for ProtoRPC.
Updates and improvements (tiny) to the RPC and model layers.
Support for arbitrary keyword arguments in `get()`, `put()`, `delete()`, and `allocate_ids()` in the Model API. Indexer-related methods are also enabled for keyword arguments, and they are now properly passed through all the way to the low-level driver. The reference implementation for this is in the Redis driver, using the `pipeline` keyword arg.
Bugfix in the Redis adapter for pipelined puts.
Full working meta and property indexer support for Redis and the InMemory adapter.
First version of a Query engine and supporting infrastructure.
Operator overload support for Query components, support at the Property level for overloading so we can spec query filters and sorts. Filters and Sorts (`QueryComponent` children) are now constructable and encapsulated properly by `Query`. `Model.query` now generates `Query` objects and appropriately passes-on kwargs/args and local model kind.
First crack at a query engine.
Progress on the Query engine.
Midway commit - model API query support. Support for a couple of very specific cases: `all` entities, entities filtered by an ancestor key only, and entities filtered on a property supporting a sorted range with both a greater-than-type and less-than-type filter to create a bounded range.