python调试:使用装饰器来统计函数被调用次数及格式化dict
喜欢调试的时候显示数据并显示一些其它的信息,比如区分是哪次调用的调试信息,比如友好的显示dict等相对复杂的数据类型,所以这里涉及到两个方面。一是统计函数被调用次数;二是格式化展示dict数据。 在类中对一个函数的调用次数进行统计比较方便,直接定义一个类属性来计数即可,但对于一个普通函数这样的方法就不能实现了,于是我们可以通过装饰器来实现。 装饰器(Decorators)是Python的一个重要功能,它是一个可以修改其他函数的功能的函...[>>…]
git:LF will be replaced by CRLF和pytest: --cov NTERNALERROR PermissionError
1.gitwarning:LFwillbereplacedbyCRLFin***file 偶然gitadd在进行代码提交的时候碰到警告warning:LFwillbereplacedbyCRLFin***file,原因是编辑的代码内容中存在符号转义问题,windows中的换行符为CRLF,而在linux下的换行符为LF,所以在执行add.时,git发现改动文件中引入了LF会发出警告你哪些文件不是纯CRLF文件,但git不会自动修改工作区的文件,而是对暂存区进行修改。我们也可不做任何处理,它只是会提示,对代码提交无影响。 $gitadd. warning:LFwillbereplacedbyCRLFin***file Thefile...[>>…]
python的fabric模块实现run运行错误以及run执行shell的结果捕获
在jenkins发布代码前有必要进行代码自动化测试,而最终代码是否需要发布就需要依据自动化测试的结果来处理,jenkins中使用fabric模块调用远程服务器执行shell脚本,比如在方法中调用远程服务器执行docker容器中的代码自动测试,我们期望对run执行的shell脚本进行判断,目标实现逻辑如下: #取得shell执行结果 result=run("dockerexec-itcontainpytest/app/--cov") #根据结果进行处理 ifresult=="Ok": print("测试成功通过,继续发布") else: print("测试失败,终止发布")  ...[>>…]
代码持续集成jenkins之fabric模块更多功能
一、关于fabric fabric是一个Python的库,同时它也是一个命令行工具。使用fabric提供的命令行工具,可以很方便地执行应用部署和系统管理等操作。fabric依赖于paramiko进行ssh交互,fabric的设计思路是通过几个API接口来完成所有的部署,因此fabric对系统管理操作进行了简单的封装,比如执行命令,上传文件,并行操作和异常处理等。二、fabric执行任务步骤 fabric执行任务的步骤如下:1.创建任务列表,这些任务就是fab命令行参数指定的任务,fab会保持这些任务的顺序2....[>>…]
常见的WSGI服务器Gunicorn、uWSGI了解
常见的WSGI服务器有: 1.Gunicorn:Gunicorn是使用Python实现的WSGI服务器,提供http服务,并在worker工作方式上提供了多种选择,其默认的work_class是sync,即同步阻塞的网络模型,性能不佳。其它的工作方式还有eventlet、gevent(利用python协程实现)、tornado(利用Tornado框架实现)、gthread(采用线程工作模式)、gaiohttp(利用aiohttp库实现异步I/O,支持websocket)。在多进程模式中除了使用多CPU的同时,还可以使用协程来提供并发支撑。和nginx类似,Gunicorn也是一个...[>>…]
Python-smtplib邮件发送Relaying denied. IP name possibly forged[IP地址]
使用PYTHON-smtplib需要先安装sendmail,使用aptinstallsendmail命令安装vcb即可,安装完成后sendmail的配置文件在/etc/mail/中,日志文件位于/var/log/目录中,mail.log、mail.err,查看这两个文件信息来定位问题。可以通过命令mail、mailq查看接收到的邮件和待发送的邮件。 $whereissendmail sendmail:/usr/sbin/sendmail/usr/lib/sendmail/usr/share/sendmail 进行邮件发送代码很少,引入模块定义几个参数执行就行了。代码示例如下: importsmtplib fromemail.mi...[>>…]
fastApi框架隐藏没多大意义的Schemes模型部分内容
之前有篇文章提到python框架fastApi怎么关闭接口文档、隐藏部分接口以及关闭Schemes,但并没有实现关闭schemes的功能。http://47.93.183.36/article/936.htmlSchemes这个部分看着不爽啊,而且烦的是它默认打开着的,占了页面很大的一个高度,今天看着不爽就想了想办法。 之前的想法是从fastAPI框架层去关闭它的功能,但找了找框架文档,fastAPI框架也许认为这个东西很有意义吧,根本没有提供阉割它的入口,今天换了个想法,不去干掉它就去把它隐藏掉呗,在页面查看了...[>>…]