triplemodel.metadata.cardinality

Field cardinality and type resolution for RDF mapping.

triplemodel.metadata.cardinality.field_annotation(field_info)[source]
Return type:

type | GenericAlias | Union | str | ForwardRef

Parameters:

field_info (FieldInfo)

triplemodel.metadata.cardinality.unwrap_annotation(annotation)[source]

Strip Annotated and single-member optional unions.

Return type:

type | GenericAlias | Union | str | ForwardRef

triplemodel.metadata.cardinality.element_type(annotation)[source]

Inner type for list[T] / set[T] after unwrapping.

Return type:

type | GenericAlias | Union | str | ForwardRef

triplemodel.metadata.cardinality.raise_if_inverse_collection(field_info)[source]

Reject inverse= on list / set fields.

Return type:

None

Parameters:

field_info (FieldInfo)

triplemodel.metadata.cardinality.raise_if_unhashable_ref_set(field_info)[source]

Reject set[TripleModel] on ref_field (use list instead).

Return type:

None

Parameters:

field_info (FieldInfo)

triplemodel.metadata.cardinality.raise_if_nested_collection(field_info)[source]

Reject embedded list[TripleModel] / set[TripleModel] (not ref_field).

Return type:

None

Parameters:

field_info (FieldInfo)

triplemodel.metadata.cardinality.is_triple_model_type(tp)[source]
Return type:

bool

triplemodel.metadata.cardinality.field_cardinality(field_info)[source]

Classify how a mapped field maps to RDF objects.

Return type:

Literal['scalar', 'list', 'set', 'nested', 'ref']

Parameters:

field_info (FieldInfo)

triplemodel.metadata.cardinality.union_member_types(field_info)[source]

Non-optional union members for str | int-style fields.

Return type:

tuple[type, ...]

Parameters:

field_info (FieldInfo)

triplemodel.metadata.cardinality.scalar_python_type(field_info)[source]

Resolved scalar type for term conversion, if a single type.

Return type:

type | None

Parameters:

field_info (FieldInfo)

triplemodel.metadata.cardinality.ref_collection_element_type(field_info)[source]

Return linked model class for ref_field on set / list, if any.

Return type:

type | None

Parameters:

field_info (FieldInfo)

triplemodel.metadata.cardinality.nested_model_type(field_info)[source]

Return nested TripleModel subclass for a field, if any.

Return type:

type | None

Parameters:

field_info (FieldInfo)