Skip to main content
Statikk

An ORM-like Single Table Application (STA) architecture library for Python and DynamoDb. Makes it really eason to set up and work with STAs.

The library is in alpha. Constant work is being done on it as I’m developing my game.

Requirements

  • Pydantic 2.3+

  • Python 3.8+

Probably works on older versions of Python, but we haven’t tested it.

Installation

pip install statikk

Basic Usage

from statikk.models import DatabaseModel, Table, GlobalSecondaryIndex, KeySchema

class MyAwesomeModel(DatabaseModel):
  player_id: str
  tier: str
  name: str = "Foo"
  values: set = {1, 2, 3, 4}
  cost: int = 4

  @classmethod
  def index_definitions(cls) -> dict[str, IndexFieldConfig]:
    return {"main-index": IndexFieldConfig(pk_fields=["player_id"], sk_fields=["tier"])}

table = Table(
  name="my-dynamodb-table",
  key_schema=KeySchema(hash_key="id"),
  indexes=[
    GSI(
      name="main-index",
      hash_key=Key(name="gsi_pk"),
      sort_key=Key(name="gsi_sk"),
     )
   ],
  models=[MyAwesomeModel],
)

def main():
  my_model = MyAwesomeModel(id="foo", player_id="123", tier="gold")
  my_model.save()
  MyAwesomeModel.update("foo").set(name="Bar").delete("values", {1}).add("cost", 1).execute() # Update multiple fields at once
  my_model = table.get("foo", MyAwesomeModel) # Get a model by its primary key using the table
  my_model = MyAwesomeModel.get("foo") # Get a model by its primary key using the model's class
  my_model.gsi_pk # returns "123"
  my_model.gsi_sk # returns "MyAwesomeModel|gold"
  my_model.delete() # Delete a model

See the usage docs for more

Features

  • Single Table Application architecture

  • Easy model definition using Pydantic

  • Automatic index value construction based on marked fields.

  • Get, Update, Delete, Batch Get, Batch Write, Query, and Scan operations

Metadata

Release files for statikk 0.1.28

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for statikk 0.1.28
File Size Uploaded
statikk-0.1.28.tar.gz 67.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for statikk 0.1.28
File Interpreter ABI Platform
statikk-0.1.28-py3-none-any.whl Python 3 none any Details

Total release size: 88.1 kB

Release files / statikk-0.1.28.tar.gz

Download URL statikk-0.1.28.tar.gz
Size 67.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0be323cce61578cd010ea46c9487a33d81575a97bbac5610b28417b7b097814b
BLAKE2b-256 checksum
How to use checksums
d620f6ee8507f7add1c4820ff0b8ba369b0405634d2630ac97f8c6cc35247559
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.0

Release files / statikk-0.1.28-py3-none-any.whl

Download URL statikk-0.1.28-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
952ce509e573bf5db159bd9ea2082f2a581a35c365a399aae58a2c394bdb9725
BLAKE2b-256 checksum
How to use checksums
0deb9156bd1d53c55fb5034c5105e78d372a963a664493a7649c6132365938f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.0

Release history Release notifications | RSS feed

This release

0.1.28 This release

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.13

2 release files

0.0.11

1 release file

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page