CONTRIBUTORS WANTED!!
Installation
pip install python-soql-parser
or, with poetry
poetry add python-soql-parser
Usage
from python_soql_parser import parse
parse_result = parse("SELECT Id FROM Account")
where parse_result
is a ParseResults object from pyparsing.
Notable caveats
Unsupported features
- Subqueries (e.g.,
SELECT Name, (SELECT LastName FROM Contacts) FROM Account
) - Aggregate queries
- SOQL specific WHERE-clause tokens (e.g.,
LAST_N_DAYS:
)
Partially supported
These are either partially supported or weakly supported
- Related attributes (e.g.,
SELECT Id, Account.Name FROM Contact
). The object name is not yet parsed out on its own. This will simply parse out"Account.Name"
Contributing
A lot of work remains to be done. Practically no SOQL-specific features are supported as of yet. If you want to contribute, just open a PR! (and add a test for your new feature)
Setting up locally
First install poetry. Afterwards, to install the dependencies, run
poetry install
Running the tests
Simply execute
pytest
House cleaning
Please sort imports with isort
and format the code with black
(in that order).