Suppressing Stan optimizer printing in Python

 1 # from https://stackoverflow.com/questions/11130156/suppress-stdout-stderr-print-from-python-functions
2 class suppress_stdout_stderr(object):
3 '''
4 A context manager for doing a "deep suppression" of stdout and stderr in
5 Python, i.e. will suppress all print, even if the print originates in a
6 compiled C/Fortran sub-function.
7 This will not suppress raised exceptions, since exceptions are printed
8 to stderr just before a script exits, and after the context manager has
9 exited (at least, I think that is why it lets exceptions through).
10
11 '''
12 def __init__(self):
13 # Open a pair of null files
14 self.null_fds = [os.open(os.devnull, os.O_RDWR) for x in range(2)]
15 # Save the actual stdout (1) and stderr (2) file descriptors.
16 self.save_fds = (os.dup(1), os.dup(2))
17
18 def __enter__(self):
19 # Assign the null pointers to stdout and stderr.
20 os.dup2(self.null_fds[0], 1)
21 os.dup2(self.null_fds[1], 2)
22
23 def __exit__(self, *_):
24 # Re-assign the real stdout/stderr back to (1) and (2)
25 os.dup2(self.save_fds[0], 1)
26 os.dup2(self.save_fds[1], 2)
27 # Close the null files
28 os.close(self.null_fds[0])
29 os.close(self.null_fds[1])

使用:

1 # used like
2 with suppress_stdout_stderr():
3 p = Propet(*kwargs).fit(training_data)

关闭Python函数执行期间的标准输出的更多相关文章

  1. 【原创】控制perl和python脚本执行过程中脚本文件是否关闭的方法

    引子 跟踪perl和python脚本对文件的访问,实际过程中,perl和python解析器在解析完脚本后,直接关闭了 脚本文件,在进程中查询不到是访问文件的脚本文件名称. shell.perl和pyt ...

  2. python用装饰器实现缓存函数执行结果

    根据调用的函数名和调用的参数,对函数的结果进行缓存,下次执行的时候就不用重复计算   可以用装饰器来实现   import time import hashlib import pickle cach ...

  3. python函数的执行过程

    对于 Python 常规函数,都只有一个入口,但会有多个出口如 return 返回或者抛出异常.函数从入口进入会一直运行到 return 语句或者抛出异常,中间不会暂停,函数一直拥有控制权.当运行结束 ...

  4. 出错提示:“Could not flush the DNS Resolver Cache: 执行期间,函数出了问题”的解决方法

    在DNS解析中,出错提示:"Could not flush the DNS Resolver Cache: 执行期间,函数出了问题"的解决方法  . 由于公司网站空间更换了服务商. ...

  5. python 函数基础2

    一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点:1.约束函数的调用者必须按照Kye=value的形式传值. 2,.约束函数的调用者必须用我们指定的Key名. def aut ...

  6. Python函数高级

    函数对象 在面向对象编程中 一切皆对象 函数在python中是第一类对象 函数可以这么用 可以被引用 def func(): print('hello world !') ​ f=func f() 可 ...

  7. python函数----名称空间和作用域

    一 名称空间 名称空间即存放名字与对象映射/绑定关系的地方. 对于x=3,Python会申请内存空间存放对象3,然后将名字x与3的绑定关系存放于名称空间中,del x表示清除该绑定关系. ​在程序执行 ...

  8. 跟着老男孩教育学Python开发【第三篇】:Python函数

    set 无序,不重复,可嵌套. 函数 创建函数: 1.def关键字,创建函数 2.函数名 3.() 4.函数体 5.返回值 发邮件函数 def sendmail():     import smtpl ...

  9. Python函数讲解

    Python函数

  10. python函数基础 与文件操作

    函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...

随机推荐

  1. 37.1K star!MCP爆火后,这个AI模型全能工具箱开源项目让智能体开发更简单!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "Awesome MCP Servers 是当前最全面的模型上下文协议服务器集合, ...

  2. NOIP集训 P4137 Rmq Problem / mex 题解

    前置指使:可持久化线段树 题解:P4137 Rmq Problem / mex 有一个长度为 \(n\) 的数组 \(\{ a_1,a_2,...,a_n \}\) . \(m\) 次询问,每次询问一 ...

  3. 代码随想录第三天 | Leecode 203. 移除链表元素、707. 设计链表、206. 翻转链表

    Leecode 203 移除链表元素 题目链接:https://leetcode.cn/problems/remove-linked-list-elements/ 题目描述 给你一个链表的头节点 he ...

  4. 反悔贪心&局部调整法学习笔记

    一.什么是反悔贪心 反悔贪心就是在普通贪心的过程中"反悔",从而使得一些看似不太好贪心的题变成贪心可做题. 二.反悔贪心普遍流程 就是先使用一个好想的贪心策略,使用优先队列进行维护 ...

  5. Gin 实现基础 CRUD 接口

    前面2篇讲了关于 gin + mysql + jwt + rbac 等基础 web搭建操作, 主要目的还是学习 go 语言的一些应用工具, 然后本篇继续来实现一个名为 notice 的公告模块, 包含 ...

  6. vue3 基础-传送门 teleport

    之前介绍了一波混入 mixin 和 自定义指令 directive 其基本作用就是为了在 vue 中实现代码的复用. 而本篇介绍的是 vue3 的一个新特性叫做传送门. 一听这个名字是不是就感觉特别科 ...

  7. 王炸!SpringBoot+MCP 让你的系统秒变AI小助手

    王炸!SpringBoot+MCP 让你的系统秒变AI小助手 感觉本篇对你有帮助可以关注一下我的微信公众号(深入浅出谈java),会不定期更新知识和面试资料.技巧!!! 一.MCP 是什么? MCP( ...

  8. codeup之【字符串】回文串

    题目描述 读入一串字符,判断是否是回文串."回文串"是一个正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串. 输入 ...

  9. CentOS、Ubuntu安装jdk11方法

    CentOS: sudo yum install java-11-openjdk -y Ubuntu sudo apt-get install openjdk-11-jre -y 检查版本: java ...

  10. odoo16跨域问题解决办法--适用app端、web端、跨系统接口

    Odoo的跨域问题: 由于浏览器的同源策略所引起的.同源策略是一种安全策略,它限制了一个源(协议.域名.端口)的文档或脚本如何与另一个源的资源进行交互. 如果两个源不同,则无法进行跨域交互.因此,如果 ...