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
.-
__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 ofmake_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 totemp_value
.
-
static
reset
()[source]¶ Reset the level for raising an
UndefException
back to its initial value.
-
static
-
exception
algebraixlib.undef.
UndefException
[source]¶ Bases:
Exception
This exception is raised when the
level
argument ofmake_or_raise_undef
is less than or equal to theRaiseOnUndef
level.
-
algebraixlib.undef.
make_or_raise_undef
(level=1)[source]¶ Raise
UndefException
iflevel
is less than or equal to theRaiseOnUndef
level, otherwise returnUndef()
.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.