35 lines
742 B
Python
35 lines
742 B
Python
|
import atexit
|
||
|
|
||
|
|
||
|
def _encode_string(s):
|
||
|
encoded = s.encode('utf-8')
|
||
|
return encoded
|
||
|
|
||
|
|
||
|
def _decode_string(b):
|
||
|
return b.decode('utf-8')
|
||
|
|
||
|
|
||
|
_encode_string.__doc__ = """Encode a string for use by LLVM."""
|
||
|
_decode_string.__doc__ = """Decode a LLVM character (byte)string."""
|
||
|
|
||
|
|
||
|
_shutting_down = [False]
|
||
|
|
||
|
|
||
|
def _at_shutdown():
|
||
|
_shutting_down[0] = True
|
||
|
|
||
|
|
||
|
atexit.register(_at_shutdown)
|
||
|
|
||
|
|
||
|
def _is_shutting_down(_shutting_down=_shutting_down):
|
||
|
"""
|
||
|
Whether the interpreter is currently shutting down.
|
||
|
For use in finalizers, __del__ methods, and similar; it is advised
|
||
|
to early bind this function rather than look it up when calling it,
|
||
|
since at shutdown module globals may be cleared.
|
||
|
"""
|
||
|
return _shutting_down[0]
|