Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

entity-query-language

Package Overview
Dependencies
Maintainers
1
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

entity-query-language

Provides a relational query language that is pythonic and intuitive. Entity Query Language serves as a front end to other query languages like sql or prolog

pipPyPI
Version
3.1.1
Maintainers
1

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}
}

Keywords

robotics

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts