Fields

Field markers are used inside Annotated[] to control how Python types map to CQL column types, keys, and indexes.

class coodie.fields.PrimaryKey(partition_key_index: int = 0)

Bases: object

Annotated marker: partition key column.

Use partition_key_index to define composite partition keys:

product_id: Annotated[UUID, PrimaryKey(partition_key_index=0)]
category:   Annotated[str,  PrimaryKey(partition_key_index=1)]
partition_key_index: int = 0
class coodie.fields.ClusteringKey(order: str = 'ASC', clustering_key_index: int = 0)

Bases: object

Annotated marker: clustering column.

Parameters:
  • order"ASC" (default) or "DESC".

  • clustering_key_index – Position within the clustering key (0-based).

order: str = 'ASC'
clustering_key_index: int = 0
class coodie.fields.Indexed(index_name: str | None = None)

Bases: object

Annotated marker: create a secondary index on this column.

index_name: str | None = None
class coodie.fields.Counter

Bases: object

Annotated marker: counter column.

class coodie.fields.BigInt

Bases: object

Annotated marker: maps int to CQL bigint.

class coodie.fields.SmallInt

Bases: object

Annotated marker: maps int to CQL smallint.

class coodie.fields.TinyInt

Bases: object

Annotated marker: maps int to CQL tinyint.

class coodie.fields.VarInt

Bases: object

Annotated marker: maps int to CQL varint.

class coodie.fields.Double

Bases: object

Annotated marker: maps float to CQL double.

class coodie.fields.Ascii

Bases: object

Annotated marker: maps str to CQL ascii.

class coodie.fields.TimeUUID

Bases: object

Annotated marker: maps UUID to CQL timeuuid.

class coodie.fields.Time

Bases: object

Annotated marker: maps to CQL time.

class coodie.fields.Static

Bases: object

Annotated marker: declares a column as STATIC.

Static columns are shared across all rows within a partition. They can only appear on tables that have at least one clustering column.

class coodie.fields.Frozen

Bases: object

Annotated marker: wraps a collection or UDT type with frozen<>.

class coodie.fields.Duration

Bases: object

Annotated marker: maps a CqlDuration field to CQL duration.

class coodie.fields.Discriminator

Bases: object

Annotated marker: discriminator column for polymorphic (single-table inheritance) models.

class coodie.fields.Vector(dimensions: int)

Bases: object

Annotated marker: vector column for ANN similarity search.

Maps list[float] to the CQL vector<float, N> type:

embedding: Annotated[list[float], Vector(dimensions=384)]
dimensions: int
class coodie.fields.VectorIndex(similarity_function: str = 'COSINE')

Bases: object

Annotated marker: create a SAI vector index on this column.

Emits CREATE CUSTOM INDEX USING 'vector_index' with the chosen similarity function (COSINE, DOT_PRODUCT, or EUCLIDEAN):

embedding: Annotated[list[float], Vector(dimensions=384), VectorIndex(similarity_function="COSINE")]
similarity_function: str = 'COSINE'