Development status ⚙️
Python Package status 📦
TerminusDB Client v10.0 works with TerminusDB v10.0 and TerminusX. Please check RELEASE_NOTES.md to find out what has changed.
- TerminusDB Client can be downloaded form PyPI using pip:
python -m pip install terminusdb-client
This only includes the core Python Client (WOQLClient) and WOQLQuery.
If you want to use woqlDataframe or the import and export csv function in Scaffolding CLI tool:
python -m pip install terminusdb-client[dataframe]
if you are installing form zsh
you have to quote the argument like this:
python -m pip install 'terminusdb-client[dataframe]'
- Install from source:
python -m pip install git+https://github.com/terminusdb/terminusdb-client-python.git
Connect to local host
from terminusdb_client import WOQLClient
client = WOQLClient("http://127.0.0.1:6363/")
client.connect()
Connect to TerminusX
check documentation for TerminusX about how to add the API token to the environment variable
from terminusdb_client import WOQLClient
team="MyTeam"
client = WOQLClient(f"https://dashboard.terminusdb.com/{team}/")
client.connect(team="MyTeam", use_token=True)
client.create_database("MyDatabase")
from terminusdb_client.woqlschema import WOQLSchema, DocumentTemplate, RandomKey
my_schema = WOQLSchema()
class Pet(DocumentTemplate):
_schema = my_schema
name: str
species: str
age: int
weight: float
my_schema.commit(client)
my_dog = Pet(name="Honda", species="Huskey", age=3, weight=21.1)
my_cat = Pet(name="Tiger", species="Bengal cat", age=5, weight=4.5)
client.insert_document([my_dog, my_cat])
print(list(client.get_all_documents()))
[{'@id': 'Pet/b5edacf854e34fe79c228a91e2af45fb', '@type': 'Pet', 'age': 5, 'name': 'Tiger', 'species': 'Bengal cat', 'weight': 4.5}, {'@id': 'Pet/cdbe3f6d49394b38b952ae315309256d', '@type': 'Pet', 'age': 3, 'name': 'Honda', 'species': 'Huskey', 'weight': 21.1}]
print(list(client.query_document({"@type":"Pet", "age":5})))
[{'@id': 'Pet/145eb73966d14a1394f7cd5576d7d0b8', '@type': 'Pet', 'age': 5, 'name': 'Tiger', 'species': 'Bengal cat', 'weight': 4.5}]
client.delete_database("MyDatabase")
Start a project in the directory
$terminusdb startproject
Please enter a project name (this will also be the database name): mydb
Please enter a endpoint location (press enter to use localhost default) [http://127.0.0.1:6363/]:
config.json and schema.py created, please customize them to start your project.
Import a CSV named grades.csv
$terminusdb importcsv grades.csv --na=error
0it [00:00, ?it/s]
Schema object Grades created with grades.csv inserted into database.
schema.py is updated with mydb schema.
1it [00:00, 1.00it/s]
Records in grades.csv inserted as type Grades into database with Lexical ids.
Get documents with query
terminusdb alldocs --type Grades -q grade="B-"
[{'@id': 'Grades/Android_Electric_087-65-4321_42.0_23.0_36.0_45.0_47.0_B-', '@type': 'Grades', 'final': 47.0, 'first_name': 'Electric', 'grade': 'B-', 'last_name': 'Android', 'ssn': '087-65-4321', 'test1': 42.0, 'test2': 23.0, 'test3': 36.0, 'test4': 45.0}, {'@id': 'Grades/Elephant_Ima_456-71-9012_45.0_1.0_78.0_88.0_77.0_B-', '@type': 'Grades', 'final': 77.0, 'first_name': 'Ima', 'grade': 'B-', 'last_name': 'Elephant', 'ssn': '456-71-9012', 'test1': 45.0, 'test2': 1.0, 'test3': 78.0, 'test4': 88.0}, {'@id': 'Grades/Franklin_Benny_234-56-2890_50.0_1.0_90.0_80.0_90.0_B-', '@type': 'Grades', 'final': 90.0, 'first_name': 'Benny', 'grade': 'B-', 'last_name': 'Franklin', 'ssn': '234-56-2890', 'test1': 50.0, 'test2': 1.0, 'test3': 90.0, 'test4': 80.0}]
Delete the database
$terminusdb deletedb
Do you want to delete 'mydb'? WARNING: This opertation is non-reversible. [y/N]: y
mydb deleted.
Please check the full Documentation for more information.
There is a list of examples that uses the Python client in our tutorial repo. As a start, we would recommend having a look at create TerminusDB graph with Python client using Jupyter notebook
-
Clone this repository
git clone https://github.com/terminusdb/terminusdb-client-python.git
-
Install all development dependencies using pipenv
$ make init
- (a) To run test files only
$ pytest terminusdb_client/tests
- (b) To run full test
$ tox -e test
Visit our TerminusDB Documentation for the full explanation of using TerminusDB.
Documentation specifically on the latest version of the Python Client can be found here.
-
Clone this repository
git clone https://github.com/terminusdb/terminusdb-client-python.git
-
Install all development dependencies
$ make init
- Change directory to docs
$ cd docs/
- Build with Sphinx
$ make html
The output files are under docs/build/html
, open index.html
in your browser to inspect.
If you encounter any issues, please report them with your os and environment setup, the version that you are using and a simple reproducible case.
If you have other questions, you can ask in our community forum or Discord server.
Come visit us on our discord server or our forum. We are also on twitter
It will be nice, if you open an issue first so that we can know what is going on, then, fork this repo and push in your ideas. Do not forget to add some test(s) of what value you adding.
Please check CONTRIBUTING.md for more information.
Apache License (Version 2.0)
Copyright (c) 2019