Skip to main content

A set of tools that keep Python sweeter.

Project description

SmarTool - Smart Util Tool for Python

简介

SmarTool是一个小而全的Python工具类库,类似Java的Hutool

安装

pip install SmarTool

>>> import SmarTool
>>> SmarTool.hello()
======= Hello, this is SmarTool! =======
 Author: Harpsichord
 Email: tliu1217@163.com
 Install: pip install SmarTool
 Github: https://github.com/Harpsichord1207/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(seconds=10)
def f2():
    time.sleep(6)
f2()

3. DTUtil - 日期工具

import datetime
from SmarTool import DTUtil

# 当前日期增加一个月
print(DTUtil.add_month().strftime("%Y-%m-%d"))  # Out: 2022-05-01

# 指定日期增加10个月
date = datetime.datetime.strptime("2022-04-01", "%Y-%m-%d")
print(DTUtil.add_month(date, months=10).strftime("%Y-%m-%d"))  # Out: 2023-02-01

# 获取某个日期当月第一天
date = datetime.datetime.strptime("2022-03-22", "%Y-%m-%d")
print(DTUtil.first_day_of_month(date).strftime("%Y-%m-%d"))  # Out: 2022-03-01

# 获取某个日期当月最后一天
print(DTUtil.last_day_of_month(date).strftime("%Y-%m-%d"))  # Out: 2022-03-31

Project details


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.8.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

SmarTool-1.0.8-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file SmarTool-1.0.8.tar.gz.

File metadata

  • Download URL: SmarTool-1.0.8.tar.gz
  • Upload date:
  • Size: 9.6 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

Hashes for SmarTool-1.0.8.tar.gz
Algorithm Hash digest
SHA256 a2348b302495f3460d0efe216d5c9313540290adbde4ed094a8bfcb279aad9b6
MD5 25aaecbd2bd4bb650f876217ebd34022
BLAKE2b-256 cb8958fc9d9da94e640031d1168c5709b1f911a7272e9571d94c66cee42b5695

See more details on using hashes here.

File details

Details for the file SmarTool-1.0.8-py3-none-any.whl.

File metadata

  • Download URL: SmarTool-1.0.8-py3-none-any.whl
  • Upload date:
  • Size: 10.6 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

Hashes for SmarTool-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 b3dbcd6534b528f410aea9013927da0f639af8780c984373eaab469621b82f71
MD5 dcbff7fb80b82be2ac6ebc361eac5259
BLAKE2b-256 f478f97cdc0aaff796d37e70864055135135c6f5bc04b3774a77fdf69ce88e06

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page