PocketBase SDK for python.
Project description
PocketBase Python SDK
Python client SDK for the PocketBase backend.
This is in early development, and at first is just a translation of the javascript lib using HTTPX.
Installation
Install PocketBase using PIP:
python3 -m pip install pocketbase
Usage
The rule of thumb here is just to use it as you would the javascript lib, but in a pythonic way of course!
from pocketbase import PocketBase # Client also works the same
from pocketbase.client import FileUpload
client = PocketBase('http://127.0.0.1:8090')
# authenticate as regular user
user_data = client.collection("users").auth_with_password(
"user@example.com", "0123456789")
# check if user token is valid
user_data.is_valid
# or as admin
admin_data = client.admins.auth_with_password("test@example.com", "0123456789")
# check if admin token is valid
admin_data.is_valid
# list and filter "example" collection records
result = client.collection("example").get_list(
1, 20, {"filter": 'status = true && created > "2022-08-01 10:00:00"'})
# create record and upload file to image field
result = client.collection("example").create(
{
"status": "true",
"image": FileUpload(("image.png", open("image.png", "rb"))),
})
# and much more...
More detailed API docs and copy-paste examples could be found in the API documentation for each service. Just remember to 'pythonize it' 🙃.
Development
These are the requirements for local development:
- Python 3.9+
- Poetry (https://python-poetry.org/)
You can install locally:
poetry install
Or can build and generate a package:
poetry build
But if you are using only PIP, use this command:
python3 -m pip install -e .
Tests
To execute the tests use this command:
poetry run pytest
Sandbox integration testing
A lot of real-world integration test against a sandboxed pocketbase instance will be included in the pytest when the sandbox is running (on 127.0.0.1:8090) to start the sandbox follow the following steps:
export TMP_EMAIL_DIR=`mktemp -d` # Export temp dir used for sendmail sandbox
bash ./tests/integration/pocketbase # Run the pocketbase sandbox (automatically downloads the latest pocketbase instance)
pytest # Run test including sandbox API integration tests
License
The PocketBase Python SDK is MIT licensed code.
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 pocketbase-0.12.3.tar.gz
.
File metadata
- Download URL: pocketbase-0.12.3.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b51e94b381329f5e81ebff61966eb5400ca5714fdd9adda0cc4c210a4e4132c0 |
|
MD5 | 316ccb935de563e94b09fa435f7bc64f |
|
BLAKE2b-256 | e2fe28c79f818bd0ce6a66918dc98879467072119cb6be27f26cba7fc5c63f63 |
File details
Details for the file pocketbase-0.12.3-py3-none-any.whl
.
File metadata
- Download URL: pocketbase-0.12.3-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a60445f369d19d34c6064bb954e2a0a557e543c092ecdb8a0bd69a7f42807592 |
|
MD5 | f52025fbb82c8f7662c2e3ba11bbb4f8 |
|
BLAKE2b-256 | c7c69bb0f1b138579e2b737798e56468c4f26ae70bd02adc69d2159c6c88c73e |