edgedb-python automatically converts EdgeDB types to the corresponding Python types and vice versa.
The table below shows the correspondence between EdgeDB and Python types.
EdgeDB Type |
Python Type |
---|---|
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
offset-naive |
|
offset-naive |
|
offset-aware |
| |
| |
| |
| |
| |
|
Inexact single-precision float
values may have a different
representation when decoded into a Python float. This is inherent
to the implementation of limited-precision floating point types.
If you need the decimal representation to match, cast the expression
to float64
or decimal
in your query.
A representation of an immutable set of values returned by a query.
The BlockingIOConnection.query()
and
AsyncIOConnection.query()
methods return
an instance of this type. Nested sets in the result are also
returned as Set
objects.
Return the number of fields in set s.
Return an iterator over the values of the set s.
An immutable representation of an object instance returned from a query.
The value of an object property or a link can be accessed through a corresponding attribute:
>>>
import edgedb
>>>
conn = edgedb.connect()
>>> ... ... ...
r = conn.query_one('''
SELECT schema::ObjectType {name}
FILTER .name = 'std::Object'
LIMIT 1''')
>>>
r
Object{name := 'std::Object'}
>>>
r.name
'std::Object'
Return a edgedb.Link
or a edgedb.LinkSet
instance
representing the instance(s) of link linkname associated with
obj.
Example:
>>>
import edgedb
>>>
conn = edgedb.connect()
>>> ... ... ... ...
r = conn.query_one('''
SELECT schema::Property {name, annotations: {name, @value}}
FILTER .name = 'listen_port'
AND .source.name = 'cfg::Config'
LIMIT 1''')
>>>
r
Object { name: 'listen_port', annotations: { Object { name: 'cfg::system', @value: 'true' } } }
>>>
r['annotations']
LinkSet(name='annotations')
>>>
l = list(r['annotations])[0]
>>>
l.value
'true'
An immutable representation of an object link.
Links are created when edgedb.Object
is accessed via
a []
operator. Using Link objects explicitly is useful for
accessing link properties.
An immutable representation of a set of Links.
LinkSets are created when a multi link on edgedb.Object
is accessed via a []
operator.
An immutable value representing an EdgeDB tuple value.
Instances of edgedb.Tuple
generally behave exactly like
standard Python tuples:
>>>
import edgedb
>>>
conn = edgedb.connect()
>>>
r = conn.query_one('''SELECT (1, 'a', [3])''')
>>>
r
(1, 'a', [3])
>>>
len(r)
3
>>>
r[1]
'a'
>>>
r == (1, 'a', [3])
True
An immutable value representing an EdgeDB named tuple value.
Instances of edgedb.NamedTuple
generally behave similarly to
namedtuple
:
>>>
import edgedb
>>>
conn = edgedb.connect()
>>>
r = conn.query_one('''SELECT (a := 1, b := 'a', c := [3])''')
>>>
r
(a := 1, b := 'a', c := [3])
>>>
r.b
'a'
>>>
r[0]
1
>>>
r == (1, 'a', [3])
True