SurrealDB Query Interface
Project description
Sirqle
Surreal DB with Python wrapper for surrealdb.py which makes it easy to write SurrealQL queries in Python.
Install with:
pip install sirqle
Usage:
from sirqle.query import Config, Query
config = Config(
url = "localhost:8000",
namespace = "test",
database = "test",
username = "test",
password = "test",
)
my_query = Query(config=config)
table_name = "person"
cont = {
"name": "Tobie",
"company": "SurrealDB",
"skills": ["Rust", "Go", "JavaScript"],
}
my_query.create(table_name).content(cont)
response = await my_query.execute()
# the result
response = [{'company': 'SurrealDB', 'id': 'person:it2e579rij23zu0iswk4', 'name': 'Tobie', 'skills': ['Rust', 'Go', 'JavaScript']}]
Config Module
The Config
class is used to configure the connection the database. It uses the SurrealHTTP
client and requires the following arguments depending on the desired method:
- Manually enter the parameters
url
: URL of the databasenamespace
: The namespace of the databasedatabase
: The name of the databaseusername
: The access usernamepassword
: The access password
- Pass a previous defined client
client
: anSurrealHTTP
client fromsurrealdb.py
- Load the parameters from a file
env_file
: the name of the env file. Defaults to.db_conf
.
Query Module
The Query module aims to extend the standard SurrealQL and make it more Python friendly. Internally it constructs a SurrealQL string from method chaining and sends the query to the database.
Initialize the query
query = Query(config)
Create examples
Create a new entry:
CREATE person CONTENT {
name: 'Tobie',
company: 'SurrealDB',
skills: ['Rust', 'Go', 'JavaScript']
};
becomes
table_name = "person"
cont = {
"name": "Tobie",
"company": "SurrealDB",
"skills": ["Rust", "Go", "JavaScript"],
}
create_query.create(table_name).content(cont)
Insert example
INSERT INTO person (name, company, founded) VALUES ('John', 'SurrealDB', '2021-09-10');
becomes
table_name = "person (name, company, founded)"
data = tuple(["John", "SurrealDB", "2021-09-10"])
insert_query.insert(table_name, values=data)
Select example
SELECT * FROM person;
becomes
query.select("*").from_("person")
Execution
To execute the query run res = await query.execute()
, where res
is the result of the query.
Custom query example
If you need something more complex than the basic operations, you can directly pass an SurrealQL query as a string:
This query creates a temporary entry in the table
Topic
where we hash the values oftopic_label
andtopic_source
, returns the hash value and then delete the table.
table_name = "Topic"
topic_label = "SurrealDB is awesome"
topic_source = "My personal knowledge"
my_query.custom( f"create {table_name} content"
+ f" {{words: {topic_label}, source: {topic_source}}}"
+ f" return crypto::md5(string::concat($this.words, $this.source));"
+ f" delete from {table_name};")
response = await my_query.execute()
response = {"crypto::md5": "8f23a9630e18d525946740e5498798be"}
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
Built Distribution
File details
Details for the file sirqle-0.4.4.tar.gz
.
File metadata
- Download URL: sirqle-0.4.4.tar.gz
- Upload date:
- Size: 521.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ec5406a3d734a3f00918886ebbffc5779865714c6be94b810b593e05c37e37a |
|
MD5 | cf9c1027c07aa959b64dc53ef2cd2f35 |
|
BLAKE2b-256 | 5fbfe5f37e14135eb7d7fe1318340223f68afd763106c01feb3ca60322da4884 |
File details
Details for the file sirqle-0.4.4-py3-none-any.whl
.
File metadata
- Download URL: sirqle-0.4.4-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90716c2891e5e4a1dbaeef97740bcb3b749c2984392bd95c304b875cd2746b4e |
|
MD5 | ae815931c966502e5f44fc9877a5ac71 |
|
BLAKE2b-256 | 4361cf9dbdac877de71712bc418f0fc8efb2dadf691f72c26f38eb8d6faac0e0 |