Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

stdex.py 1.1 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  1. import os
  2. import sys
  3. class suppress_stdout_stderr(object):
  4. def __enter__(self):
  5. self.outnull_file = open(os.devnull, 'w')
  6. self.errnull_file = open(os.devnull, 'w')
  7. self.old_stdout_fileno_undup = sys.stdout.fileno()
  8. self.old_stderr_fileno_undup = sys.stderr.fileno()
  9. self.old_stdout_fileno = os.dup ( sys.stdout.fileno() )
  10. self.old_stderr_fileno = os.dup ( sys.stderr.fileno() )
  11. self.old_stdout = sys.stdout
  12. self.old_stderr = sys.stderr
  13. os.dup2 ( self.outnull_file.fileno(), self.old_stdout_fileno_undup )
  14. os.dup2 ( self.errnull_file.fileno(), self.old_stderr_fileno_undup )
  15. sys.stdout = self.outnull_file
  16. sys.stderr = self.errnull_file
  17. return self
  18. def __exit__(self, *_):
  19. sys.stdout = self.old_stdout
  20. sys.stderr = self.old_stderr
  21. os.dup2 ( self.old_stdout_fileno, self.old_stdout_fileno_undup )
  22. os.dup2 ( self.old_stderr_fileno, self.old_stderr_fileno_undup )
  23. os.close ( self.old_stdout_fileno )
  24. os.close ( self.old_stderr_fileno )
  25. self.outnull_file.close()
  26. self.errnull_file.close()
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...