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.7.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

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

edgeql_qb-0.4.7-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: edgeql_qb-0.4.7.tar.gz
  • Upload date:
  • Size: 18.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.13 Linux/6.11.0-1018-azure

File hashes

Hashes for edgeql_qb-0.4.7.tar.gz
Algorithm Hash digest
SHA256 c239232be67682063f1fcb8ddd2062478a6d6d80e77a73a3b007ad0295e2756e
MD5 3df40122a368e4849fd4a39066d38d55
BLAKE2b-256 25687d392c551e72e220e1b65dd3e70cd4967cd7f2cda8f13ea54397e1299bac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: edgeql_qb-0.4.7-py3-none-any.whl
  • Upload date:
  • Size: 24.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.13 Linux/6.11.0-1018-azure

File hashes

Hashes for edgeql_qb-0.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 94b148f1485b29a44cb9227dba7f931daa90589781e4206c2d34d1b2774dfe98
MD5 d7191d3af8ae9d31d1799bcd8b5bc251
BLAKE2b-256 ce24c1355cfc3da05cda440d7c1f85ec610f5ec4f7d6a1f284f9989bf2e669db

See more details on using hashes here.

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