8000 Fix name 'open' is not defined exception. Closes #860 · ego/llama-cpp-python@011b95d · GitHub
[go: up one dir, main page]

Skip to content

Commit 011b95d

Browse files
committed
Fix name 'open' is not defined exception. Closes abetlen#860
1 parent fa83cc5 commit 011b95d

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

llama_cpp/utils.py

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,42 @@
33

44

55
class suppress_stdout_stderr(object):
6+
# NOTE: these must be "saved" here to avoid exceptions when using
7+
# this context manager inside of a __del__ method
8+
open = open
9+
sys = sys
10+
os = os
11+
612
# Oddly enough this works better than the contextlib version
713
def __enter__(self):
8-
self.outnull_file = open(os.devnull, "w")
9-
self.errnull_file = open(os.devnull, "w")
14+
self.outnull_file = self.open(self.os.devnull, "w")
15+
self.errnull_file = self.open(self.os.devnull, "w")
1016

11-
self.old_stdout_fileno_undup = sys.stdout.fileno()
12-
self.old_stderr_fileno_undup = sys.stderr.fileno()
17+
self.old_stdout_fileno_undup = self.sys.stdout.fileno()
18+
self.old_stderr_fileno_undup = self.sys.stderr.fileno()
1319

14-
self.old_stdout_fileno = os.dup(sys.stdout.fileno())
15-
self.old_stderr_fileno = os.dup(sys.stderr.fileno())
20+
self.old_stdout_fileno = self.os.dup(self.sys.stdout.fileno())
21+
self.old_stderr_fileno = self.os.dup(self.sys.stderr.fileno())
1622

17-
self.old_stdout = sys.stdout
18-
self.old_stderr = sys.stderr
23+
self.old_stdout = self.sys.stdout
24+
self.old_stderr = self.sys.stderr
1925

20-
os.dup2(self.outnull_file.fileno(), self.old_stdout_fileno_undup)
21-
os.dup2(self.errnull_file.fileno(), self.old_stderr_fileno_undup)
26+
self.os.dup2(self.outnull_file.fileno(), self.old_stdout_fileno_undup)
27+
self.os.dup2(self.errnull_file.fileno(), self.old_stderr_fileno_undup)
2228

23-
sys.stdout = self.outnull_file
24-
sys.stderr = self.errnull_file
29+
self.sys.stdout = self.outnull_file
30+
self.sys.stderr = self.errnull_file
2531
return self
2632

2733
def __exit__(self, *_):
28-
sys.stdout = self.old_stdout
29-
sys.stderr = self.old_stderr
34+
self.sys.stdout = self.old_stdout
35+
self.sys.stderr = self.old_stderr
3036

31-
os.dup2(self.old_stdout_fileno, self.old_stdout_fileno_undup)
32-
os.dup2(self.old_stderr_fileno, self.old_stderr_fileno_undup)
37+
self.os.dup2(self.old_stdout_fileno, self.old_stdout_fileno_undup)
38+
self.os.dup2(self.old_stderr_fileno, self.old_stderr_fileno_undup)
3339

34-
os.close(self.old_stdout_fileno)
35-
os.close(self.old_stderr_fileno)
40+
self.os.close(self.old_stdout_fileno)
41+
self.os.close(self.old_stderr_fileno)
3642

3743
self.outnull_file.close()
3844
self.errnull_file.close()

0 commit comments

Comments
 (0)
0