Skip to content

vex1023/vxUtils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vxUtils

这是我的工具箱

decorator 修饰器

  1. retry

错误重试的修饰器

from vxUtils.decorator import retry

@retry(5, ValueError, delay=1, backoff=2)
def test():

    raise ValueError('try it ')
  1. timeit

计算运行消耗时间

import time
from vxUtils.decorator import timeit

@timeit
def test():
    time.sleep(5)
  1. Singleton

设计模式:单例实现方式

from vxUtils.decorator import singleton

@singleton
class Test():
    pass
  1. threads

异步多线程

import requests
from vxUtils.decorator import threads

@threads(5)
def get_url(url):
    return requests.get(url)

if __name__ == '__main__':
    urls = [
        'www.sina.com',
        'www.baidu.com',
        'www.qq.com',
        'www.taobao.com'
    ]
    
    responses = [get_url(url) for url in urls]
    for r in responses:
        print(r.content)
        
  1. timeout

限制超时时间

import time
from vxUtils.decorator import timeout

@timeout(5)
def test():
    print('start to test')
    for n in range(10):
        time.sleep(1)
        print('n: %s' % n)
  1. lazy_property

类似@property的功能,但只执行一次

from vxUtils.decorator import lazy_property

class T():
    @lazy_property
    def myproperty(self):
       print('call myproperty')
       return 'myproperty'

PrettyLogger

漂亮的日志格式

  1. add_console_logger

增加console logger

import logging
from vxUtils.PrettyLogger import add_console_logger

logger = logging.getLogger('test')

logger = add_console_logger(logger, 'debug')

logger.debug('蓝色') 
logger.info('绿色')
logger.warnning('黄色')
logger.error('棕色')
logger.critical('红色')
  1. add_qyWechat_logger

企业微信号,日志通知

import logging
from vxUtils.PrettyLogger import add_qyWechat_logger

logger = logging.getLogger('test')

logger = add_qyWechat_logger(logger,'warning',corpid, appsecret, agentid)

logger.warning('这是微信日志通知')

About

我的工具箱

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages