EdgeQL Query Builder
Project description
EdgeQL Query Builder
Query builder for EdgeDB
Description
- Project currently in pre-alpha status. It is not production-ready yet, and It may be buggy and unstable as well.
- The project is not affiliated with the official developers of EdgeDB.
- This project only supports a small part of the EdgeDB syntax.
- The library does not contain any code to connect to the database or to execute queries.
- The library does not introspect the database and will not check if you made a typo somewhere in a column name. What you write is what you get.
- Minimal required version of python is 3.10. Not sure if I'll ever do a backport.
- There is no external dependencies, even on 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
elgeql_qb-0.4.1.tar.gz
(17.9 kB
view details)
Built Distribution
elgeql_qb-0.4.1-py3-none-any.whl
(23.4 kB
view details)
File details
Details for the file elgeql_qb-0.4.1.tar.gz
.
File metadata
- Download URL: elgeql_qb-0.4.1.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.10.6 Linux/5.15.0-53-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83e49f1d4621d8fe719d3586d5038968913dd27540058d244b9aa4697a3f56e1 |
|
MD5 | d634e9cd7cc4f8c3192b26a5b3592b35 |
|
BLAKE2b-256 | 821ac22ee51ec74bf3ff13254dbf92059becc9ff50afd102498f5d1efeba603f |
File details
Details for the file elgeql_qb-0.4.1-py3-none-any.whl
.
File metadata
- Download URL: elgeql_qb-0.4.1-py3-none-any.whl
- Upload date:
- Size: 23.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.10.6 Linux/5.15.0-53-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4302af46c35073e7e183229c1dcc68917d8730ba1ee767adfd7bb4f59bcbece |
|
MD5 | 9666e9a4b87ab90cb2f6878b63afd6ec |
|
BLAKE2b-256 | 4bd22010009b91e86fef03d86a07c8349532d22c356db21bf7b3aeed244427fc |