Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit bebfba0

Browse filesBrowse files
Fix: fileno error google colab (abetlen#729) (abetlen#1156)
Instead of using a devnull just made a dummy class with a 'write()' method that does nothing.
1 parent 8a5911b commit bebfba0
Copy full SHA for bebfba0

File tree

Expand file treeCollapse file tree

1 file changed

+8
-30
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+8
-30
lines changed
Open diff view settings
Collapse file

‎llama_cpp/_utils.py‎

Copy file name to clipboardExpand all lines: llama_cpp/_utils.py
+8-30Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
import sys
55
from typing import Any, Dict
66

7-
# Avoid "LookupError: unknown encoding: ascii" when open() called in a destructor
8-
outnull_file = open(os.devnull, "w")
9-
errnull_file = open(os.devnull, "w")
7+
class NullDevice():
8+
def write(self, s):
9+
pass
1010

1111
class suppress_stdout_stderr(object):
1212
# NOTE: these must be "saved" here to avoid exceptions when using
@@ -21,41 +21,19 @@ def __init__(self, disable: bool = True):
2121
def __enter__(self):
2222
if self.disable:
2323
return self
24-
25-
# Check if sys.stdout and sys.stderr have fileno method
26-
if not hasattr(self.sys.stdout, 'fileno') or not hasattr(self.sys.stderr, 'fileno'):
27-
return self # Return the instance without making changes
28-
29-
self.old_stdout_fileno_undup = self.sys.stdout.fileno()
30-
self.old_stderr_fileno_undup = self.sys.stderr.fileno()
31-
32-
self.old_stdout_fileno = self.os.dup(self.old_stdout_fileno_undup)
33-
self.old_stderr_fileno = self.os.dup(self.old_stderr_fileno_undup)
34-
3524
self.old_stdout = self.sys.stdout
3625
self.old_stderr = self.sys.stderr
3726

38-
self.os.dup2(outnull_file.fileno(), self.old_stdout_fileno_undup)
39-
self.os.dup2(errnull_file.fileno(), self.old_stderr_fileno_undup)
40-
41-
self.sys.stdout = outnull_file
42-
self.sys.stderr = errnull_file
27+
self.sys.stdout = NullDevice()
28+
self.sys.stderr = NullDevice()
4329
return self
4430

4531
def __exit__(self, *_):
4632
if self.disable:
4733
return
48-
49-
# Check if sys.stdout and sys.stderr have fileno method
50-
if hasattr(self.sys.stdout, 'fileno') and hasattr(self.sys.stderr, 'fileno'):
51-
self.sys.stdout = self.old_stdout
52-
self.sys.stderr = self.old_stderr
53-
54-
self.os.dup2(self.old_stdout_fileno, self.old_stdout_fileno_undup)
55-
self.os.dup2(self.old_stderr_fileno, self.old_stderr_fileno_undup)
56-
57-
self.os.close(self.old_stdout_fileno)
58-
self.os.close(self.old_stderr_fileno)
34+
35+
self.sys.stdout = self.old_stdout
36+
self.sys.stderr = self.old_stderr
5937

6038

6139
class MetaSingleton(type):

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.