用于基本方法时间和内存使用的小型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 JFreeChart:使用ChartMouseListener和鼠标移动在ChartPanel中动态选择点   java在Eclipse中调试时findViewById找不到GUI资源时该怎么办   不支持java在线程中执行MySQL存储过程并获取可调用语句   spring启动应用程序中的java类路径错误?   java类:为什么实现代码没有显示给客户端   java mvn命令即使与安装在spring boot中的maven也不起作用   Java:从链表中删除节点   java如何从集合返回对象。   mysql在Java的RESTLet DAO客户机-服务器体系结构中配置后备数据源   java如何解析具有多个表的页面   当被同一类的方法调用时,java Spring方面不工作   C语言中的java协方差与逆变#   异步使用Java `完全未来。例外情况`有选择地在例外情况下继续   java在使用maven failsafe时,有没有办法为我的所有JUnit测试用例运行一个安装方法?   排序如何在Python 3中使用自定义比较函数?   Java:使用两个不同的输入源和   我的jsp中的java错误标记库   Java数组。add()停止程序