maestral.database.types

SQL column type definitions, including conversion rules from / to Python types.

Module Contents

class maestral.database.types.SqlType[source]

Base class to represent Python types in SQLite table

sql_type = TEXT[source]
py_type :Any[source]
sql_to_py(self, value)[source]

Converts the return value from sqlite3 to the target Python type.

py_to_sql(self, value)[source]

Converts a Python value to a type accepted by sqlite3.

class maestral.database.types.SqlString[source]

Bases: SqlType

Class to represent Python strings in SQLite table

sql_type = TEXT[source]
py_type[source]
class maestral.database.types.SqlInt[source]

Bases: SqlType

Class to represent Python integers in SQLite table

SQLite supports up to 64-bit signed integers (-2**63 < int < 2**63 - 1)

sql_type = INTEGER[source]
py_type[source]
class maestral.database.types.SqlFloat[source]

Bases: SqlType

Class to represent Python floats in SQLite table

sql_type = REAL[source]
py_type[source]
class maestral.database.types.SqlLargeInt[source]

Bases: SqlType

Class to represent large integers > 64bit in SQLite table

Integers are stored as text in the database and converted on read / write.

sql_type = TEXT[source]
py_type[source]
sql_to_py(self, value)[source]

Converts the return value from sqlite3 to the target Python type.

Parameters

value (str | None) –

Return type

int | None

py_to_sql(self, value)[source]

Converts a Python value to a type accepted by sqlite3.

Parameters

value (int | None) –

Return type

str | None

class maestral.database.types.SqlPath[source]

Bases: SqlType

Class to represent Python paths in SQLite table

Paths are stored as bytes in the database to handle characters in the path which cannot be decoded in the reported file system encoding. On the Python side, paths will contain surrogate escapes in place of such characters.

sql_type = BLOB[source]
py_type[source]
sql_to_py(self, value)[source]

Converts the return value from sqlite3 to the target Python type.

Parameters

value (bytes | None) –

Return type

str | None

py_to_sql(self, value)[source]

Converts a Python value to a type accepted by sqlite3.

Parameters

value (str | None) –

Return type

bytes | None

class maestral.database.types.SqlEnum(enum)[source]

Bases: SqlType

Class to represent Python enums in SQLite table

Enums are stored as text (attribute name) in the database.

Parameters

enum (Iterable[enum.Enum]) –

sql_type = TEXT[source]
py_type[source]
sql_to_py(self, value)[source]

Converts the return value from sqlite3 to the target Python type.

Parameters

value (str | None) –

Return type

Enum | None

py_to_sql(self, value)[source]

Converts a Python value to a type accepted by sqlite3.

Parameters

value (Enum | None) –

Return type

str | None