Skip to content

Commit 9cda882

Browse files
committed
Create is_initialized function that tries to call GxB_Global_Option_get
Thanks for the trick, @michelp!
1 parent 009d3d6 commit 9cda882

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

suitesparse_graphblas/__init__.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22
from . import utils
33
from ._version import get_versions
44

5-
is_initialized = False
5+
6+
def is_initialized():
7+
"""Is GraphBLAS initialized via GrB_init or GxB_init?"""
8+
fmt = ffi.new("GxB_Format_Value*")
9+
return lib.GxB_Global_Option_get(lib.GxB_FORMAT, fmt) != lib.GrB_PANIC
610

711

812
def initialize(*, blocking=False, memory_manager="numpy"):
@@ -25,8 +29,7 @@ def initialize(*, blocking=False, memory_manager="numpy"):
2529
The global variable `suitesparse_graphblas.is_initialized` indicates whether
2630
GraphBLAS has been initialized.
2731
"""
28-
global is_initialized
29-
if is_initialized:
32+
if is_initialized():
3033
raise RuntimeError(
3134
"suitesparse-python is already initialized! Unable to initialize again."
3235
)
@@ -38,7 +41,6 @@ def initialize(*, blocking=False, memory_manager="numpy"):
3841
lib.GrB_init(blocking)
3942
else:
4043
raise ValueError(f'memory_manager argument must be "numpy" or "c"; got: {memory_manager!r}')
41-
is_initialized = True
4244

4345

4446
__version__ = get_versions()["version"]

0 commit comments

Comments
 (0)