Context Managers for LibGAP¶
This module implements a context manager for global variables. This is useful since the behavior of GAP is sometimes controlled by global variables, which you might want to switch to a different value for a computation. Here is an example how you are suppose to use it from your code. First, let us set a dummy global variable for our example:
sage: libgap.set_global('FooBar', 123)
Then, if you want to switch the value momentarily you can write:
sage: with libgap.global_context('FooBar', 'test'):
....: print(libgap.get_global('FooBar'))
test
Afterward, the global variable reverts to the previous value:
sage: print(libgap.get_global('FooBar'))
123
The value is reset even if exceptions occur:
sage: with libgap.global_context('FooBar', 'test'):
....: print(libgap.get_global('FooBar'))
....: raise ValueError(libgap.get_global('FooBar'))
Traceback (most recent call last):
...
ValueError: test
sage: print(libgap.get_global('FooBar'))
123
-
class
sage.libs.gap.context_managers.
GlobalVariableContext
(variable, value)¶ Bases:
object
Context manager for GAP global variables.
It is recommended that you use the
sage.libs.gap.libgap.Gap.global_context()
method and not construct objects of this class manually.INPUT:
variable
– string. The variable name.value
– anything that defines a GAP object.
EXAMPLES:
sage: libgap.set_global('FooBar', 1) sage: with libgap.global_context('FooBar', 2): ....: print(libgap.get_global('FooBar')) 2 sage: libgap.get_global('FooBar') 1