rics.cardinality package
Submodules
rics.cardinality.exceptions module
Cardinality exceptions.
- exception rics.cardinality.exceptions.CardinalityError(message: str, cardinality: Cardinality)[source]
Bases:
ValueErrorRaised for cardinality issues.
- Parameters
message – An exception message.
cardinality – A
Cardinality.
Module contents
Cardinality enumeration.
- class rics.cardinality.Cardinality(value)[source]
Bases:
EnumEnumeration type for cardinality relationships.
Cardinalities are comparable using numerical operators, and can be thought of as comparing “preciseness”. The less ambiguity there is for a given cardinality, the smaller it is in comparison to the others. The hierarchy is given by
1:1 < 1:N = N:1 < M:N. Note that1:NandN:1are considered equally precise.Examples
Comparing cardinalities
>>> from rics.cardinality import Cardinality >>> Cardinality.ManyToOne <Cardinality.ManyToOne: 'N:1'> >>> Cardinality.OneToOne <Cardinality.OneToOne: '1:1'> >>> Cardinality.ManyToOne < Cardinality.OneToOne False
- OneToOne = '1:1'
- OneToMany = '1:N'
- ManyToOne = 'N:1'
- ManyToMany = 'M:N'
- property inverse: Cardinality
Inverse cardinality. For symmetric cardinalities,
self.inverse == self.- Returns
Inverse cardinality.
See also
- property symmetric: bool
Symmetry flag. For symmetric cardinalities,
self.inverse == self.- Returns
Symmetry flag.
See also
- classmethod from_counts(left_count: int, right_count: int) Cardinality[source]
Derive a Cardinality from counts.
- Parameters
left_count – Number of elements on the left-hand side.
right_count – Number of elements on the right-hand side.
- Returns
A
Cardinality.- Raises
ValueError – For counts < 1.
- classmethod parse(arg: Union[str, Cardinality], strict: bool = False) Cardinality[source]
Convert to cardinality.
- Parameters
arg – Argument to parse.
strict – If True, arg must match exactly when it is given as a string.
- Returns
A
Cardinality.- Raises
ValueError – If the argument could not be converted.