Entity Query Language (EQL)
EQL is a relational query language that is pythonic, and intuitive.
The interface side of EQL is inspired by euROBIN entity query language white paper.
Installation
pip install entity_query_languageS
If you want to use the visualization feature, you will also need to install rustworkx_utils.
pip install rustworkx_utils
Documentation
Read the documentation here.
Example Usage
An important feature of EQL is that you do not need to do operations like JOIN in SQL, this is performed implicitly. EQL tries to mirror your intent in a query statement with as less boiler plate code as possiple. For example an attribute access with an equality check to another value is as simple as using python's dot notation with the equality operator. For example:
from dataclasses import dataclass
from typing_extensions import List
from entity_query_language import entity, an, contains, symbolic_mode, symbol, From
@symbol
@dataclass
class Body:
name: str
@dataclass
class World:
id_: int
bodies: List[Body]
world = World(1, [Body("Body1"), Body("Body2")])
with symbolic_mode():
body = Body(From(world.bodies))
query = an(entity(body, contains(body.name, "2"),
body.name.startswith("Body"))
)
results = list(query.evaluate())
assert len(results) == 1
assert results[0].name == "Body2"
where this creates a body variable that gets its values from world.bodies, and filters them to have their att "name" equal to "Body1".
To Cite:
@software{bassiouny2025eql,
author = {Bassiouny, Abdelrhman},
title = {Entity-Query-Language},
url = {https://github.com/AbdelrhmanBassiouny/entity_query_language},
version = {3.1.0}
}
Metadata
Release files for entity-query-language 3.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| entity_query_language-3.1.1.tar.gz | 109.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| entity_query_language-3.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 178.5 kB
Release files / entity_query_language-3.1.1.tar.gz
| Download URL | entity_query_language-3.1.1.tar.gz |
|---|---|
| Size | 109.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
88772c4fb8ad5be1bd78d6982857a43fb8ed66f51f4842a19a915f81aef149e4
|
|
BLAKE2b-256 checksum How to use checksums |
49c8cb1e7de1ae4604a500e69942c3e65859d606bf30b99b3b4a16330d6a2752
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2025.
Transparency logRelease files / entity_query_language-3.1.1-py3-none-any.whl
| Download URL | entity_query_language-3.1.1-py3-none-any.whl |
|---|---|
| Size | 69.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
98531255bd210778c4256676df1780aa3a167cc62917888396dbca350fd8ca6f
|
|
BLAKE2b-256 checksum How to use checksums |
ea8cb103f7e89f934ab30f4c9ee9984eadfd570b56a1d2fed0dfc97cae455c7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2025.
Transparency log