EdgeQL Query Builder
Project description
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:
- select
- nested shapes
- filters for nested shapes
- order by for nested shapes
- limit/offset for nested shapes
- aggregations for nested shapes
- function calls
- computed fields
- filters
- filter by nested paths
- limit & offset
- order by
- backlinks
- subqueries
- polymorphic fields
- link properties (@notation)
- detached
- nested shapes
- group
- columns
- using
- by
- function calls
- update
- function calls
- nested queries
- delete
- delete without filters
- function calls
- limit & offset
- order by
- insert
- function calls
- positional arguments
- keyword arguments
- with block
- with literal
- with subquery
- with module + closure
- with x := subquery select x
- with x := subquery group x
- with x := subquery update x
- with x := Type.column
- if statements
- globals
- for statements
- union statements
- queries without models, like select [1,2,3]
- select
-
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)
Built Distribution
edgeql_qb-0.4.6-py3-none-any.whl
(23.8 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f82c329bffdc46bb7d0f87329155922d953aac96490fb547bd74014e29569a07 |
|
MD5 | d260f9e288073d6d770eaea5a2e9930b |
|
BLAKE2b-256 | cee6f31f73772ef2e7e0b15b3482184f92e0e2eb929fd34e124798451911207d |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fc63c50626ad88d6297400b709a29f02ae4e8248cddaf206d4f6b023041f55a |
|
MD5 | 698797406950329e184340a55f2a7556 |
|
BLAKE2b-256 | 0def7c4c423d4e516d6f691f28c7f58a68b52a30bc28fb166891878d83bf40fe |