A set of tools that keep Python sweeter.
Project description
SmarTool - Smart Util Tool for Python
简介
SmarTool是一个小而全的Python工具类库,类似Java的Hutool。
安装
pip install SmarTool
使用
1. Retry - 重试工具
import random
import requests
from SmarTool import retry
# 默认重试5次,每次间隔2秒,所有异常都重试
@retry
def div1(a, b):
return a / random.choice([0, 1, b])
div1(2, 1)
# 重试10次,每次间隔1秒,仅在出现ZeroDivisionError时重试
@retry(times=10, delay=1, catch_error=ZeroDivisionError)
def div2(a, b):
return a / random.choice([0, 1, b])
div2(2, 1)
# 在出现TypeError时不重试直接抛出异常
@retry(ignore_error=TypeError)
def div3(a, b):
return a / random.choice([0, 1, b])
div3(2)
# 出现指定的多个异常时重试
@retry(catch_error=[requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout])
def get():
return requests.get("https://xxx.com").json()
get()
2. Timeout - 超时工具
import time
from SmarTool import timeout
# 默认超时时间为5秒,函数执行时间超过5秒抛出TimeoutException
@timeout
def f1():
time.sleep(6)
f1()
# 自定义超时时间为10秒
@timeout(10)
def f2():
time.sleep(6)
f2()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
SmarTool-1.0.6.tar.gz
(8.9 kB
view details)
Built Distribution
File details
Details for the file SmarTool-1.0.6.tar.gz
.
File metadata
- Download URL: SmarTool-1.0.6.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9fed78dff29fd6bd2a1a4be500528a71c111753734642c2e0133f9766450bc3 |
|
MD5 | 3fab9fea0d6f3087bd82b7e26833020d |
|
BLAKE2b-256 | 64c8d512e9b26cdc0e7ff7e258c8aeeed99ae409a2aaaf92cd3913d17edccce7 |
File details
Details for the file SmarTool-1.0.6-py3-none-any.whl
.
File metadata
- Download URL: SmarTool-1.0.6-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68a65139bb49545def22e8b2be7080948062326296adef9067027fc76ab86d87 |
|
MD5 | f7efaca10f43f20a6daa4de6178a8a77 |
|
BLAKE2b-256 | 566812a762c153db21b97852b4814c510c77f445ce00aafc48598f0e55bafc2c |