Firestore + Dataclass: declare and interact with your Firestore models using dataclasses.
Project description
Fireclass
Firestore + Dataclass: declare and interact with your Firestore models using Python dataclasses.
Installation
pip install fireclass
Sample usage
from dataclasses import dataclass
from enum import Enum
from google.cloud import firestore
from fireclass import Document, initialize_with_firestore_client
class MembershipLevelEnum(Enum):
NONE = 1
INTERMEDIATE = 2
FULL = 3
# Define a new type of document as a dataclass
@dataclass
class Person(Document):
email_address: str
age: int
# Enum fields are supported
membership: MembershipLevelEnum
# Initialize access to the Firestore DB
client = firestore.Client.from_service_account_json("travis-ci-test-suite-service-account.json")
initialize_with_firestore_client(client)
# Create a new person
person = Person(email_address="test@test.com", age=30, membership=MembershipLevelEnum.INTERMEDIATE)
# Save the person to the DB
person.create()
# Update some fields
person.age = 31
person.membership = MembershipLevelEnum.NONE
person.update()
# Fetch this specific person
fetched_person = Person.get_document(person.id)
# Query for persons
for found_person in Person.where("age", "==", 31).stream():
print(found_person)
# Delete the document from the DB
person.delete()
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
fireclass-1.0.4.tar.gz
(5.0 kB
view details)
File details
Details for the file fireclass-1.0.4.tar.gz
.
File metadata
- Download URL: fireclass-1.0.4.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02ef392e542e07d33a3b1a2b6c74e6b525e7b761e9b6a4958ab13f9143ac47b1 |
|
MD5 | f4493aa4a6181fb445315ca77b27fb8a |
|
BLAKE2b-256 | 82b8d7b4ab22c22be1832468351d6a48d9edf9de9dbc6b12171376bac634e700 |