# algebraixlib.undef module¶

Facilities for representing and working with the concept of “undefined”.

Most operations are not defined for all types of data: set operations may not be defined on couplets, multiset operations may not be defined on sets, and so on. When an operation is not defined for a given input, it returns the singleton Undef(). This return value can then be taken into account by the caller. In some cases it is an error, in other cases the result is simply ignored.

class algebraixlib.undef.Undef[source]

Bases: object

A singleton class that represents the concept of “undefined”.

Instances of this class are not treated as a value by the operations in this library; specifically, it will never appear as the value of an Atom.

Override __new__ to create a singleton class.

static __new__()[source]

Override __new__ to create a singleton class.

__eq__(other)[source]

Prevent comparisons on Undef; raise a TypeError.

__ne__(other)[source]

Prevent comparisons on Undef; raise a TypeError.

__repr__()[source]

Return the instance’s code representation.

__str__()[source]

Return the instance’s string representation.

is_atom

Return False since Undef is not an Atom.

is_couplet

Return False since Undef is not a Couplet.

is_multiset

Return False since Undef is not a Multiset.

is_set

Return False since Undef is not a Set.

cached_relation

Return the cached state of being a relation. See [PropCache].

cached_is_relation

Return False since self is known not to be a relation. See [PropCache].

cached_is_not_relation

Return True since self is known not to be a relation. See [PropCache].

cached_clan

Return the cached state of being a clan. See [PropCache].

cached_is_clan

Return False since self is known not to be a clan. See [PropCache].

cached_is_not_clan

Return True since self is known not to be a clan. See [PropCache].

cached_multiclan

Return the cached state of being a multiclan. See [PropCache].

cached_is_multiclan

Return False since self is known to not be a multiclan. See [PropCache].

cached_is_not_multiclan

Return True since self is known not to be a multiclan. See [PropCache].

cached_absolute

Return the cached state of being absolute. See [PropCache].

Note

Keep in mind that this does not tell you what kind of absolute algebra member this is. For example, an absolute relation is a non-absolute set.

cached_is_absolute

Return False since self is known not to be absolute. See [PropCache].

Note

Keep in mind that this does not tell you what kind of absolute algebra member this is known to be. For example, an absolute relation is a non-absolute set.

cached_is_not_absolute

Return True since self is known not to be absolute. See [PropCache].

Note

Keep in mind that this does not tell you what kind of absolute algebra member this is known not to be. For example, an absolute relation is a non-absolute set.

cached_functional

Return the cached state of being functional. See [PropCache].

cached_is_functional

Return False since functional does not apply. See [PropCache].

cached_is_not_functional

Return False since functional does not apply. See [PropCache].

cached_right_functional

Return the cached state of being right-functional. See [PropCache].

cached_is_right_functional

Return False since right-functional does not apply. See [PropCache].

cached_is_not_right_functional

Return False since right-functional does not apply. See [PropCache].

cached_reflexive

Return the cached state of being reflexive. See [PropCache].

cached_is_reflexive

Return False since reflexive does not apply. See [PropCache].

cached_is_not_reflexive

Return False since reflexive does not apply. See [PropCache].

cached_symmetric

Return the cached state of being symmetric. See [PropCache].

cached_is_symmetric

Return False since symmetric does not apply. See [PropCache].

cached_is_not_symmetric

Return False since symmetric does not apply. See [PropCache].

cached_transitive

Return the cached state of being transitive. See [PropCache].

cached_is_transitive

Return False since transitive does not apply. See [PropCache].

cached_is_not_transitive

Return False since transitive does not apply. See [PropCache].

cached_regular

Return the cached state of being regular. See [PropCache].

cached_is_regular

Return False since regular does not apply. See [PropCache].

cached_is_not_regular

Return False since regular does not apply. See [PropCache].

cached_right_regular

Return the cached state of being right-regular. See [PropCache].

cached_is_right_regular

Return False since right-regular does not apply. See [PropCache].

cached_is_not_right_regular

Return False since right-regular does not apply. See [PropCache].

__hash__ = None
class algebraixlib.undef.RaiseOnUndef[source]

Bases: object

Manage the level for make_or_raise_undef. Implemented as static class.

static get_level()[source]

Return the current level for raising an UndefException.

The exception is raised if the level argument of make_or_raise_undef is less than or equal to the value returned here.

static set_level(temp_value)[source]

Set the level for raising an UndefException temporarily to temp_value.

static reset()[source]

Reset the level for raising an UndefException back to its initial value.

exception algebraixlib.undef.UndefException[source]

Bases: Exception

This exception is raised when the level argument of make_or_raise_undef is less than or equal to the RaiseOnUndef level.

algebraixlib.undef.make_or_raise_undef(level=1)[source]

Raise UndefException if level is less than or equal to the RaiseOnUndef level, otherwise return Undef().

Parameters: level – An integer >= 1. Default is 1.

Note

Use 1 (or no argument) for the cases that are most likely to be errors (like wrong argument types). Use higher numbers for cases that may return Undef() on purpose.

algebraixlib.undef.make_or_raise_undef2(obj)[source]

Raise UndefException if level is less than or equal to the RaiseOnUndef level, otherwise return Undef().

Parameters: obj – Causes level argument to make_or_raise_undef to be 2 if Undef()
algebraixlib.undef.make_undef()[source]

Return Undef(). Used where a hashable instance that evaluates to Undef() is needed.