Skip to content

Table

scylla_bridge.table.Table

Base table class for Scylla.

Define attributes in a SQLAlchemy manner

fields class-attribute instance-attribute

fields = None

get_view classmethod

get_view(param)

Get access to a particular view like a table.

Parameters:

Name Type Description Default
param str

Key of the view.

required
Source code in scylla_bridge/table.py
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
@classmethod
def get_view(cls: Type[Table], param: str) -> Type[Table]:
    """Get access to a particular view like a table.

    Parameters
    ----------
    param: str
        Key of the view.
    """
    if param == cls.__base_level__:
        return cls
    if param not in cls.__materialized_views__.keys():
        raise ValueError(
            f"Table {cls.__tablename__} does not have a view associated with {param}."
        )
    view = deepcopy(cls)
    view.__tablename__ = f"{cls.__tablename__}_{param}"
    view.__index__ = cls.__materialized_views__[param]
    return view

to_redis_schema classmethod

to_redis_schema()

Map the class to a redis-schema.

Source code in scylla_bridge/table.py
30
31
32
33
34
35
36
37
38
39
40
41
42
@classmethod
def to_redis_schema(cls: Type[Table]) -> Dict[str, List[str]]:
    """Map the class to a redis-schema."""
    mappings = {
        field_name: SCYLLA_TO_REDIS_MAP[col.type]
        for field_name, col in cls.fields.items()
    }
    values = set(mappings.values())
    schema = {
        v: [key for key, value in mappings.items() if value == v] for v in values
    }

    return schema

Types

scylla_bridge.types.ScyllaType

Bases: StrEnum

Enum defining all the ScyllaDB Types.

BIGINT class-attribute instance-attribute

BIGINT = 'BIGINT'

BLOB class-attribute instance-attribute

BLOB = 'BLOB'

BOOLEAN class-attribute instance-attribute

BOOLEAN = 'BOOLEAN'

COUNTER class-attribute instance-attribute

COUNTER = 'COUNTER'

DATE class-attribute instance-attribute

DATE = 'DATE'

DECIMAL class-attribute instance-attribute

DECIMAL = 'DECIMAL'

DOUBLE class-attribute instance-attribute

DOUBLE = 'DOUBLE'

DURATION class-attribute instance-attribute

DURATION = 'DURATION'

FLOAT class-attribute instance-attribute

FLOAT = 'FLOAT'

INET class-attribute instance-attribute

INET = 'INET'

INT class-attribute instance-attribute

INT = 'INT'

SMALLINT class-attribute instance-attribute

SMALLINT = 'SMALLINT'

TEXT class-attribute instance-attribute

TEXT = 'TEXT'

TIME class-attribute instance-attribute

TIME = 'TIME'

TIMESTAMP class-attribute instance-attribute

TIMESTAMP = 'TIMESTAMP'

TIMEUUID class-attribute instance-attribute

TIMEUUID = 'TIMEUUID'

TINYINT class-attribute instance-attribute

TINYINT = 'TINYINT'

UUID class-attribute instance-attribute

UUID = 'UUID'

VARCHAR class-attribute instance-attribute

VARCHAR = 'VARCHAR'

VARINT class-attribute instance-attribute

VARINT = 'VARINT'