Skip to main content

No project description provided

Project description

fastastra

commits Github Last Commit PyPI version Discord chat Stars

fastastra is modeled after fastlite and it allows you to use FastHTML with AstraDB (Cassandra).

Installation

poetry add fastastra

or

pip install fastastra

To connect:

from fastastra.fastastra import AstraDatabase
db = AstraDatabase(token, dbid) # get your token and dbid from https://astra.datastax.com

Basic usage

List tables

db.t

Create a table

cats = db.t.cats
if cats not in db.t:
    cats.create(cat_id=uuid.uuid1, name=str, partition_keys='cat_id')

Insert a row

cat_timeuuid = uuid.uuid1()
cats.update(cat_id=cat_timeuuid, name="fluffy")

List all rows

rows = cats()

ANN / vector search

db = AstraDatabase(token, dbid, embedding_model="embed-english-v3.0") # supports all embedding models in LiteLLM using env vars
dogs = db.t.dogs
if dogs not in db.t:
    #dogs.create(id=int, name=str, good_boy=bool, embedding=(list[float], 2), pk='id') # specify dimensions in create
    dogs.create(id=int, name=str, good_boy=bool, embedding=list[float], pk='id') # infer dimensions from db.embedding_model
    dogs.c.good_boy.index()
    dogs.c.embedding.index()

dogs.insert(id=2, good_boy=True, name="spike", embedding=[0.1, 0.2])

index_lookukp = dogs.xtra(good_boy=True)
ann_matches = dogs.xtra(embedding=[0.2, 0.2])

Get dataclass and pydantic model

dataclass = cats.dataclass()
model = cats.pydantic_model()

Get a row

print(cats[cat_timeuuid])

Delete a row

cats.delete(cat_timeuuid)

or

cats.delete(str(cat_timeuuid))

Run a FastHTML example:

This example was taken almost verbatim from the FastHTML examples repo. The only change was the dependency, the db connection string, and changing the id from int to uuid1.

uv sync

uv run python examples/todo.py

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

fastastra-0.1.37.tar.gz (158.3 kB view details)

Uploaded Source

Built Distribution

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

fastastra-0.1.37-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file fastastra-0.1.37.tar.gz.

File metadata

  • Download URL: fastastra-0.1.37.tar.gz
  • Upload date:
  • Size: 158.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.7

File hashes

Hashes for fastastra-0.1.37.tar.gz
Algorithm Hash digest
SHA256 e206f014d6c774b334895a29d829f62fd30d3f5b805e2e1aa734b9eec015f1e4
MD5 034c11f095768c98541095c8c55b57c3
BLAKE2b-256 cd108d2bffe157eefe5a755ab10788c70773e49e995ad38ab7979d0a4c5a454b

See more details on using hashes here.

File details

Details for the file fastastra-0.1.37-py3-none-any.whl.

File metadata

  • Download URL: fastastra-0.1.37-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.7

File hashes

Hashes for fastastra-0.1.37-py3-none-any.whl
Algorithm Hash digest
SHA256 4b189374353dd1d25c5cf613f685073cadf299caf509f8ebe678ab1537e2dc5d
MD5 1da46cc9aa4f4c3ad97b3bcf571ba448
BLAKE2b-256 9c79d0e506e7b74f4c5eb90967878259e630c3c5b0030d00ee8d00770676f9f0

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