https://github.com/geldata/gel-python
The official Python client library for EdgeDB
https://github.com/geldata/gel-python
asynchronous asyncio database-driver edgedb high-performance python3 synchronous
Last synced: 7 months ago
JSON representation
The official Python client library for EdgeDB
- Host: GitHub
- URL: https://github.com/geldata/gel-python
- Owner: geldata
- License: apache-2.0
- Created: 2018-06-29T22:37:25.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-02-23T20:54:37.000Z (7 months ago)
- Last Synced: 2025-02-23T21:04:38.430Z (7 months ago)
- Topics: asynchronous, asyncio, database-driver, edgedb, high-performance, python3, synchronous
- Language: Python
- Homepage: https://edgedb.com
- Size: 1.7 MB
- Stars: 381
- Watchers: 12
- Forks: 46
- Open Issues: 31
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
The Python driver for Gel
=========================.. image:: https://github.com/geldata/gel-python/workflows/Tests/badge.svg?event=push&branch=master
:target: https://github.com/geldata/gel-python/actions.. image:: https://img.shields.io/pypi/v/gel.svg
:target: https://pypi.python.org/pypi/gel.. image:: https://img.shields.io/badge/join-github%20discussions-green
:target: https://github.com/geldata/gel/discussions**gel-python** is the official Gel driver for Python.
It provides both blocking IO and asyncio implementations.The library requires Python 3.8 or later.
Documentation
-------------The project documentation can be found
`here `_.Installation
------------The library is available on PyPI. Use ``pip`` to install it::
$ pip install gel
Basic Usage
-----------.. code-block:: python
import datetime
import geldef main():
client = gel.create_client()
# Create a User object type
client.execute('''
CREATE TYPE User {
CREATE REQUIRED PROPERTY name -> str;
CREATE PROPERTY dob -> cal::local_date;
}
''')# Insert a new User object
client.query('''
INSERT User {
name := $name,
dob := $dob
}
''', name='Bob', dob=datetime.date(1984, 3, 1))# Select User objects.
user_set = client.query(
'SELECT User {name, dob} FILTER .name = $name', name='Bob')
# *user_set* now contains
# Set{Object{name := 'Bob', dob := datetime.date(1984, 3, 1)}}# Close the client.
client.close()if __name__ == '__main__':
main()Development
-----------Instructions for installing Gel and gel-python locally can be found at
`www.geldata.com/docs/reference/dev `_.To run the test suite, run ``$ python setup.py test``.
License
-------gel-python is developed and distributed under the Apache 2.0 license.