用于基本方法时间和内存使用的小型python decorator。

shamus的Python项目详细描述


萨缪斯

Open Source LovePyPIPyPI - Python VersionlicensePRs Welcome

用于基本方法时间和内存使用的小型python decorator。

安装

可通过PYPI获得,最新版本0.7。最新的Python2兼容版本0.5。

pip install shamus
pipenv install shamus

取决于psutil>=5.0.0

用法

importrandomfromshamusimportshamusnames=['Steve','Michael','Tom']language=['Python','Javascript','Java','PHP']@shamus()defgenerate_coders():final_list=list()foriinxrange(800000):final_list.append({'order':i,'name':random.choice(names),'codes':random.choice(language)})returnfinal_list

输出

如果output_console设置为true,则输出如下:

--
shamus says @(04-12-2018 07:59:44 UTC)for[generate_coders]
 -> Memory: 242.7266 [MB]
 -> Time:   1.3413 [s]
--

对于设置为true的输出日志,将在指定位置创建文件shamus_generate_coders.log,格式为:

INFO:root:shamus timestamp: 04-12-2018 08:01:19 UTC
CRITICAL:root:Memory: 242.7969 [MB]
INFO:root:Time: 1.316 [s]

INFO:root:shamus timestamp: 04-12-2018 08:01:22 UTC
CRITICAL:root:Memory: 242.5469 [MB]
INFO:root:Time: 1.316 [s]

选项

默认选项如下。

DEFAULT_OPTIONS={'output_console':True,'output_log':False,'output_log_dir':'','memory_warning_levels':(1,15),'time_warning_levels':(2,10)}

调用shamus装饰器时,可以覆盖任意选项并将其作为dict发送。 例如,要确保日志被创建并存储在/var/log/目录中:

@shamus({'output_log':True,'output_log_dir: '/var/log'})defyour_method_here():pass

未指定日志位置时,将在当前目录中创建它们。忽略无效的日志位置(不存在没有写入访问的目录或目录)。

还可以发送自定义内存和时间警告级别,格式为两个正数的元组,第二个大于第一个。不符合此格式的参数也将被忽略。 内存和时间警告指定三个级别,例如级别(1,20):

  • ok-低于1的一切正常(绿色终端颜色,信息记录)
  • warning-低于1和20的都是警告(黄色终端颜色,警告日志记录)
  • critical-高于20的一切都是关键的(红色终端颜色,关键日志)

python版本

0.5及以下版本与Python2.7.x兼容(不再受支持),而0.6版本与Python3.6.x兼容。 是时候升级那些python人了!

许可证

麻省理工学院

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在循环链表中找到最大子序列和   java如何将片段制作为应用程序启动活动   java使用单个json,但发布多个AVRO消息   java无法通过URL连接从站点加载内容   java拒绝名称空间仅在文件扩展名(最后一个点后的部分)上不同的WSDL合法吗?   向ArrayList添加图像时java IndexOutofBounds异常   rest CitrusFramework无法通过java运行   java使用枚举构建象限   ubuntu在独立模式下运行Hadoop:bin/Hadoop:line 350:/usr/local/java/jdk1。8.O/bin/java:没有这样的文件或目录   java如何判断getOutputStream或getwriter是在servlet过滤器中调用的   java如何确保覆盖图中的正确绘图顺序?   java部署在WildFly 10中共享JAR文件   java无法使用Swing将数据添加到表中。我该怎么办?   存储基于表单的应用程序数据的java最佳缓存原则   java比较两个连续的hasmap值   java为什么我的背景在重新绘制后会出现问题?   java Gson Android和异步任务   导出html页面时,java图像不会加载到jasper report中   jsf Netbeans:Java阻止在清理项目时删除文件夹   显示Firebase查询的RecyclerView开始处的java插入对象