All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added shorthands for the most common use cases: Applying an OData filter straight to a Django QuerySet or SQLAlchemy query.
- Cleared warnings produced in SLY by wrong regex flag placement.
- Raise a new
InvalidFieldException
if a field in a query doesn't exist.
- Allow
AliasRewriter
to recurse intoAttribute
nodes, in order to replace nodes in theAttribute
's ownership chain.
- Added
NodeTransformers
, which are likeNodeVisitors
but replace visited nodes with the returned value. - Initial API documentation.
- The AstTo{ORMQuery} visitors for SQLAlchemy and Django now have the same interface.
- AstToDjangoQVisitor now builds subqueries for
any()/all()
itself, instead of relying onSubQueryToken
s and a seperate visitor. - Made all AST Nodes
frozen
(read-only), so they can be hashed. - Replaced
field_mapping
on the ORM visitors with a more generalAliasRewriter
based on the newNodeTransformers
. - Refactored
IdentifierStripper
to use the newNodeTransformers
.
- Transform OData queries to SQLAlchemy expressions with the new AstToSqlAlchemyClauseVisitor.
- Don't write a debugfile for the parser by default.
- Initial split to seperate package.