Skip to main content

A library to connect to SurrealDB.

Project description

PySurrealDB

Join the chat at https://gitter.im/pysurrealdb/community

An unofficial library to connect to SurrealDB.

Minimal dependencies, easy to use.


Getting Started

If you don't already have it, install SurrealDB

Linux:

$ curl -sSf https://install.surrealdb.com | sh
# then
$ surreal start --user test --pass test

Install PySurrealDB

pip install pysurrealdb

Examples

import pysurrealdb as surreal

conn = surreal.connect(user='test', password='test')

conn.create('person', {'name': 'Mike'})
conn.query('select * from person')

You can specify additional connection info either in the connect call, or in a config file.

import pysurrealdb as surreal
conn = surreal.connect(host='surreal.com', port=8000, user='user', password='pass', database='db', namespace='ns')

Both http and websocket are supported. Specify which to use with the client keyword.

conn = surreal.connect(client='websocket')
# Websocket was added and made the default as of version 0.3. Try http if you run into issues, and please report any bugs you find!

Optional Config file:

# use a configured connection. 
conn = surreal.connection('default')
# Requires pysurrealdb.json file. Place it in your root directory, or specify the file location with the env variable 'PYSURREALDB_CONFIG'.

Example pysurrealdb.json:
{
    "connections": {
        "default": {
            "host": "localhost",
            "port": 8000,
            "user": "test",
            "password": "test"
            "database": "test",
            "namespace": "test",
            "client": "http",
        }
    }
}

# when using a config file, you do not even need to connect, you can access most functions directly:
import pysurrealdb as surreal

surreal.query('select * from test') # uses the last connection from connect() or the default connection if connect() has not been called.

Query Builder

You can write queries using Laravel and Orator style syntax:

import pysurrealdb as surreal
conn = surreal.connection()

# setup data
conn.drop('person')
conn.insert('person', [{'name': 'Mike', 'age': 31}, {'name':'Mr P'}])

# query builder examples
first_person = conn.table('person').where('name', 'Mike').first()

adults = conn.table('person').where('age', '>=', 18).order_by('age', 'desc').limit(10).get()

Methods

Some of the basic methods available:

query(sql)
get(table, id='')
insert(table, data)
create(table, data)
update(table, data)
upsert(table, data)
delete(table, id)
drop(table)
relate(noun, verb, noun2, data={})

# Most methods accept a table or table:id as the main arguement. The data is also checked for an ID when relevant.

This project is a work in progress. Questions and feedback are welcome! Please create an issue or use the gitter chat link at the top. Thanks!

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

PySurrealDB-0.3.1.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

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

PySurrealDB-0.3.1-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file PySurrealDB-0.3.1.tar.gz.

File metadata

  • Download URL: PySurrealDB-0.3.1.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.8.2 Linux/5.15.0-60-generic

File hashes

Hashes for PySurrealDB-0.3.1.tar.gz
Algorithm Hash digest
SHA256 07430e7d6a50b4f0e729c5213a5e4079f07c16d41f25f37cf9f4fc486e5c0e3a
MD5 2bbeb64c09e8fd6ad974a5b182de1306
BLAKE2b-256 164e47265228a7dadf11c78750ac9812971370107b39fd9cebabb6227fc9a2a9

See more details on using hashes here.

File details

Details for the file PySurrealDB-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: PySurrealDB-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.8.2 Linux/5.15.0-60-generic

File hashes

Hashes for PySurrealDB-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 80e918ee93c2dadb646e5a031210173d7e5e73e38e1bd80e91cd1329a1e4a7de
MD5 c797faf1fc6f20d6666422a2dcb9ddeb
BLAKE2b-256 f6c1e91186da8062adc3dfc8219a9000e0ddf75bf1ef415503562375d9cf7139

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