Skip to main content

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

Project description

Entity Query Language (EQL)

EQL is a relational query language that is pythonic, and intuitive. This serves as a front end to other query languages like sql or prolog.

The interface side of EQL is inspired by euROBIN entity query language white paper.

Installation

pip install entity_query_language

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 and equal check to another value is just how you expect:

from entity_query_language import entity, an, let
from dataclasses import dataclass
from typing_extensions import List


@dataclass(unsafe_hash=True)
class Body:
    name: str


@dataclass(eq=False)
class World:
    id_: int
    bodies: List[Body]


world = World(1, [Body("Body1"), Body("Body2")])

results_generator = an(entity(body := let(type_=Body, domain=world.bodies), body.name == "Body2"))
results = list(results_generator)
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 = {0.0.1},
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

entity_query_language-0.2.4.tar.gz (59.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

entity_query_language-0.2.4-py3-none-any.whl (38.5 kB view details)

Uploaded Python 3

File details

Details for the file entity_query_language-0.2.4.tar.gz.

File metadata

  • Download URL: entity_query_language-0.2.4.tar.gz
  • Upload date:
  • Size: 59.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for entity_query_language-0.2.4.tar.gz
Algorithm Hash digest
SHA256 ea05f87c56b9c1bb99b07a39f065f0ddff87d29656b26d290592216c63c6b8b0
MD5 198af41821930cafc2a0a2446989fba8
BLAKE2b-256 5a4f62a479e1e67c43dddb4d41d30dd6802df5a5740fa01358aa6a681f35c297

See more details on using hashes here.

Provenance

The following attestation bundles were made for entity_query_language-0.2.4.tar.gz:

Publisher: publish-to-test-pypi.yml on AbdelrhmanBassiouny/entity_query_language

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file entity_query_language-0.2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for entity_query_language-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0d7cd71710b60a1cc973840f873b57d1023f3b7c07fdeb6f9b0e3955434bda0f
MD5 a4c6a38e5a38eec3c3560bbec52559b9
BLAKE2b-256 15bd0020796ccfc6616d3eaefd05967e57f165cf2b9c1471bf19d6f71ce5e702

See more details on using hashes here.

Provenance

The following attestation bundles were made for entity_query_language-0.2.4-py3-none-any.whl:

Publisher: publish-to-test-pypi.yml on AbdelrhmanBassiouny/entity_query_language

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page