ahvn.utils.mdb.types moduleΒΆ

MongoDB type definitions and conversion utilities for UKF models.

class ahvn.utils.mdb.types.BaseMongoType(**kwargs)[source]ΒΆ

Bases: object

Base class for MongoDB field types with UKF conversion.

__init__(**kwargs)[source]ΒΆ
from_ukf(ukf_value)[source]ΒΆ

Convert UKF value to MongoDB value.

Return type:

Any

Parameters:

ukf_value (Any)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB value to UKF value.

Return type:

Any

Parameters:

mongo_value (Any)

class ahvn.utils.mdb.types.MongoIdType(**kwargs)[source]ΒΆ

Bases: BaseMongoType

ID type for MongoDB (_id field).

UKF IDs can be very large integers (beyond 64-bit). MongoDB only supports up to 64-bit integers (8 bytes). We store IDs as strings to avoid overflow.

from_ukf(ukf_value)[source]ΒΆ

Convert UKF ID to MongoDB _id (string).

Return type:

Optional[str]

Parameters:

ukf_value (Any)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB _id to UKF ID (integer).

Return type:

Optional[int]

Parameters:

mongo_value (Any)

class ahvn.utils.mdb.types.MongoTextType(length=None, **kwargs)[source]ΒΆ

Bases: BaseMongoType

Text type for MongoDB (string).

Parameters:

length (int | None)

__init__(length=None, **kwargs)[source]ΒΆ
Parameters:

length (int | None)

from_ukf(ukf_value)[source]ΒΆ

Convert UKF text to MongoDB string.

Return type:

Optional[str]

Parameters:

ukf_value (Any)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB string to UKF text.

Return type:

Optional[str]

Parameters:

mongo_value (Any)

class ahvn.utils.mdb.types.MongoIntegerType(**kwargs)[source]ΒΆ

Bases: BaseMongoType

Integer type for MongoDB.

from_ukf(ukf_value)[source]ΒΆ

Convert UKF integer to MongoDB integer.

Return type:

Optional[int]

Parameters:

ukf_value (Any)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB integer to UKF integer.

Return type:

Optional[int]

Parameters:

mongo_value (Any)

class ahvn.utils.mdb.types.MongoBooleanType(**kwargs)[source]ΒΆ

Bases: BaseMongoType

Boolean type for MongoDB.

from_ukf(ukf_value)[source]ΒΆ

Convert UKF boolean to MongoDB boolean.

Return type:

Optional[bool]

Parameters:

ukf_value (Any)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB boolean to UKF boolean.

Return type:

Optional[bool]

Parameters:

mongo_value (Any)

class ahvn.utils.mdb.types.MongoDurationType(**kwargs)[source]ΒΆ

Bases: BaseMongoType

Duration type for MongoDB (stored as integer seconds).

from_ukf(ukf_value)[source]ΒΆ

Convert UKF timedelta to MongoDB integer (seconds).

Return type:

Optional[int]

Parameters:

ukf_value (timedelta | None)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB integer (seconds) to UKF timedelta.

Return type:

Optional[timedelta]

Parameters:

mongo_value (int | None)

class ahvn.utils.mdb.types.MongoTimestampType(**kwargs)[source]ΒΆ

Bases: BaseMongoType

Timestamp type for MongoDB (stored as integer or datetime).

from_ukf(ukf_value)[source]ΒΆ

Convert UKF datetime to MongoDB integer (Unix timestamp).

Return type:

Optional[int]

Parameters:

ukf_value (datetime | None)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB integer (Unix timestamp) to UKF datetime.

Return type:

Optional[datetime]

Parameters:

mongo_value (int | None)

class ahvn.utils.mdb.types.MongoJsonType(**kwargs)[source]ΒΆ

Bases: BaseMongoType

JSON type for MongoDB (stored as embedded document).

from_ukf(ukf_value)[source]ΒΆ

Convert UKF JSON to MongoDB embedded document.

Return type:

Optional[Dict[str, Any]]

Parameters:

ukf_value (Any)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB embedded document to UKF JSON.

Return type:

Any

Parameters:

mongo_value (Dict[str, Any] | None)

class ahvn.utils.mdb.types.MongoVectorType(**kwargs)[source]ΒΆ

Bases: BaseMongoType

Vector type for MongoDB (stored as array of floats).

from_ukf(ukf_value)[source]ΒΆ

Convert UKF vector to MongoDB array.

Return type:

Optional[List[float]]

Parameters:

ukf_value (List[float] | None)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB array to UKF vector.

Return type:

Optional[List[float]]

Parameters:

mongo_value (List[float] | None)

class ahvn.utils.mdb.types.MongoTagsType(**kwargs)[source]ΒΆ

Bases: BaseMongoType

Tags type for MongoDB (stored as array of {slot, value} subdocuments).

UKF tags are stored as strings like β€œ[slot:value]”. MongoDB stores them as subdocuments: [{β€œslot”: β€œβ€¦β€, β€œvalue”: β€œβ€¦β€}, …]

from_ukf(ukf_value)[source]ΒΆ

Convert UKF tags (set of β€œ[slot:value]” strings) to MongoDB array.

Return type:

Optional[List[Dict[str, str]]]

Parameters:

ukf_value (set | None)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB array to UKF tags (set of β€œ[slot:value]” strings).

Return type:

Optional[set]

Parameters:

mongo_value (List[Dict[str, str]] | None)

class ahvn.utils.mdb.types.MongoSynonymsType(**kwargs)[source]ΒΆ

Bases: BaseMongoType

Synonyms type for MongoDB (stored as array of strings).

UKF synonyms are already a set of strings.

from_ukf(ukf_value)[source]ΒΆ

Convert UKF synonyms (set of strings) to MongoDB array.

Return type:

Optional[List[str]]

Parameters:

ukf_value (set | None)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB array to UKF synonyms (set of strings).

Return type:

Optional[set]

Parameters:

mongo_value (List[str] | None)

class ahvn.utils.mdb.types.MongoRelatedType(**kwargs)[source]ΒΆ

Bases: BaseMongoType

Related type for MongoDB (stored as array of relation subdocuments).

UKF related are 5-element tuples: (subject_id: int, relation: str, object_id: int, relation_id: Optional[int], relation_resources: Optional[str])

The relation_resources is a JSON string that gets stored in MongoDB as-is.

from_ukf(ukf_value)[source]ΒΆ

Convert UKF related (set of 5-tuples) to MongoDB array.

Return type:

Optional[List[Dict[str, Any]]]

Parameters:

ukf_value (set | None)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB array of subdocuments to UKF related (set of 5-tuples).

Return type:

Optional[set]

Parameters:

mongo_value (List[Dict[str, Any]] | None)

class ahvn.utils.mdb.types.MongoAuthsType(**kwargs)[source]ΒΆ

Bases: BaseMongoType

Authorities type for MongoDB (stored as array of subdocuments).

UKF stores auths as set of β€œ[user:authority]” strings. We parse this into subdocuments with user and authority fields.

from_ukf(ukf_value)[source]ΒΆ

Convert UKF auths (set of β€œ[user:authority]” strings) to MongoDB array.

Return type:

Optional[List[Dict[str, str]]]

Parameters:

ukf_value (set | None)

to_ukf(mongo_value)[source]ΒΆ

Convert MongoDB array to UKF auths (set of β€œ[user:authority]” strings).

Return type:

Optional[set]

Parameters:

mongo_value (List[Dict[str, str]] | None)