/// <summary> /// Restore the __import__ hook. /// </summary> static void RestoreImport() { IntPtr builtins = Runtime.GetBuiltins(); int res = Runtime.PyObject_SetAttr(builtins, PyIdentifier.__import__, py_import); PythonException.ThrowIfIsNotZero(res); Runtime.XDecref(py_import); py_import = IntPtr.Zero; hook.Release(); hook = null; Runtime.XDecref(builtins); }
/// <summary> /// Restore the __import__ hook. /// </summary> static void RestoreImport() { IntPtr builtins = GetNewRefToBuiltins(); int res = Runtime.PyObject_SetAttrString(builtins, "__import__", py_import); PythonException.ThrowIfIsNotZero(res); Runtime.XDecref(py_import); py_import = IntPtr.Zero; hook.Release(); hook = null; Runtime.XDecref(builtins); }
/// <summary> /// Restore the __import__ hook. /// </summary> static void RestoreImport() { IntPtr builtins = Runtime.GetBuiltins(); IntPtr existing = Runtime.PyObject_GetAttr(builtins, PyIdentifier.__import__); Runtime.XDecref(existing); if (existing != hook.ptr) { throw new NotSupportedException("Unable to restore original __import__."); } int res = Runtime.PyObject_SetAttr(builtins, PyIdentifier.__import__, py_import); PythonException.ThrowIfIsNotZero(res); Runtime.XDecref(py_import); py_import = IntPtr.Zero; hook.Release(); hook = null; Runtime.XDecref(builtins); }