Skip to main content

EdgeQL Query Builder

Project description

PyPI - Python Version PyPI version Tests Maintainability Rating Coverage

EdgeQL Query Builder

Query builder for EdgeDB

Description

  • This project is currently in pre-alpha status, meaning that it is not yet production-ready and may be buggy and unstable.
  • Please note that this project is not affiliated with the official developers of EdgeDB.
  • Additionally, it is important to know that this project only supports a small part of the EdgeDB syntax.
  • The library does not include any code for connecting to the database or executing queries.
  • It also does not provide database introspection, so it will not check for typos in column names. What you write is what you get.
  • Python version 3.10 or higher is required to use this library, and there are currently no plans for backporting to earlier versions.
  • There are no external dependencies, including EdgeDB itself.

Usage examples

Many examples of queries are given in the documentation directory.

from edgeql_qb import EdgeDBModel
from edgeql_qb.types import int16
from edgedb.blocking_client import create_client


client = create_client()
Movie = EdgeDBModel('Movie')
Person = EdgeDBModel('Person')

insert = Movie.insert.values(
    title='Blade Runner 2049',
    year=int16(2017),
    director=(
        Person.select()
        .where(Person.c.id == director_id)
        .limit1
    ),
    actors=Person.insert.values(
        first_name='Harrison',
        last_name='Ford',
    ),
).build()


select = (
    Movie.select(
        Movie.c.title,
        Movie.c.year,
        Movie.c.director(
            Movie.c.director.first_name,
            Movie.c.director.last_name,
        ),
        Movie.c.actors(
            Movie.c.actors.first_name,
            Movie.c.actors.last_name,
        ),
    )
    .where(Movie.c.title == 'Blade Runner 2049')
    .build()
)

delete = Movie.delete.where(Movie.c.title == 'Blade Runner 2049').build()

decade = (Movie.c.year // 10).label('decade')
group = Movie.group().using(decade).by(decade).build()

client.query(insert.query, **insert.context)
result = client.query(select.query, **select.context)

movies_by_decade = client.query(group.query, **group.context)

client.query(delete.query, **delete.context)

Status

  • Queries:

  • Types:

    • type casts
    • cal::date_duration
    • cal::relative_duration
    • std::array
    • std::json
    • std::range
    • std::set
    • std::tuple
    • cal::local_date
    • cal::local_date
    • cal::local_datetime
    • cal::local_time
    • std::bigint
    • std::bool
    • std::bytes
    • std::datetime
    • std::decimal
    • std::duration
    • std::float32
    • std::float64
    • std::int16
    • std::int32
    • std::int64
    • std::str
    • std::uuid
  • Functions

    • cal
    • math
    • std
    • sys

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

edgeql_qb-0.4.6.tar.gz (17.7 kB view details)

Uploaded Source

Built Distribution

edgeql_qb-0.4.6-py3-none-any.whl (23.8 kB view details)

Uploaded Python 3

File details

Details for the file edgeql_qb-0.4.6.tar.gz.

File metadata

  • Download URL: edgeql_qb-0.4.6.tar.gz
  • Upload date:
  • Size: 17.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.10 Linux/6.5.0-1025-azure

File hashes

Hashes for edgeql_qb-0.4.6.tar.gz
Algorithm Hash digest
SHA256 f82c329bffdc46bb7d0f87329155922d953aac96490fb547bd74014e29569a07
MD5 d260f9e288073d6d770eaea5a2e9930b
BLAKE2b-256 cee6f31f73772ef2e7e0b15b3482184f92e0e2eb929fd34e124798451911207d

See more details on using hashes here.

File details

Details for the file edgeql_qb-0.4.6-py3-none-any.whl.

File metadata

  • Download URL: edgeql_qb-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 23.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.10 Linux/6.5.0-1025-azure

File hashes

Hashes for edgeql_qb-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 6fc63c50626ad88d6297400b709a29f02ae4e8248cddaf206d4f6b023041f55a
MD5 698797406950329e184340a55f2a7556
BLAKE2b-256 0def7c4c423d4e516d6f691f28c7f58a68b52a30bc28fb166891878d83bf40fe

See more details on using hashes here.

Supported by

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