Skip to main content

封装了一些日常用的函数

Project description

使用方法:

pip install simple-util

from simple_util import SUtil

# 比较两个列表,返回删除的列表和新增的列表
print(SUtil.parse_diffrent_list([1,2,3], [1,2,3,4]))
([], [4])

# 将列表进行拆分
SUtil.slice_data([1,2,3,4],2)
输出[[1, 2], [3, 4]]


# 安全删除列表中的元素
from simple_util import DeleteSafeList
a=[1,2,3,45,6,56,78]
safeDelete = DeleteSafeList(a)

for item in safeDelete:
    if item ==45:
        safeDelete.RemoveCurrent()
print(a)
# [1, 2, 3, 6, 56, 78]

日期处理函数

from simple_util import DateUtil
# 获取指定日期的指定小时到指定小时的时间,如果endHour小于beginHour,则结束时间为第二天
print(DateUtil.datetime_range(datetime.now(),beginHour=22,willHour=10))
# 计算从当前时间到未来时间,返回时间戳(精确到秒),如果传入负数,则返回从过去到当前的时间戳
print(DateUtil.timestamp_from_now(minutes=-5))

雪花算法生成Id

from simple_util import SnowflakeIDGenerator
print(SnowflakeIDGenerator().get_next_id())

日志

from simple_util.slogger import create_logger

logger,handler = create_logger(logging.DEBUG,'appName','production',filname='log/app',file_type='log',backupCount=5,maxBytes=10485760,mutiple_process=False)

# mutiple_process 是否多进程,多进程需要生成不同的文件

logger.info('hello world')

日志进阶用法,设置traceId:

from simple_util.slogger import user_id,user_info,new_trace
req_trace_id = request.headers.get("X-Trace-ID") or str(uuid4())
new_trace(req_trace_id)
user_id.set('login user id')
# user_info用于存储用户自定义的信息,方便在其他地方取用
user_info.set({'name':'login user name','email':'login user email'})

日志自定义打印格式:

class JsonFormatter(logging.Formatter):
    def format(self, record):
        # 构建日志记录的字典
        log_record = {
            "appName":appName,
            "serverAddr":os.environ.get('IP',localIp),
            "cluster": env,
            "levelname": record.levelname,
            "filename": record.filename,
            "lineno": record.lineno,
            "traceId": record.trace_id,
            "sessionId": record.session_id,
            "userid":record.userid,
            "seqId": record.seq,
            "message": record.getMessage(),
            "CreateTime": self.formatTime(record, self.datefmt),
            "createdOn": int(time.time() * 1000)  # 添加 Unix 时间戳
        }
        # 将字典转换为 JSON 字符串
        return json.dumps(log_record, ensure_ascii=False)

from simple_util.slogger import create_logger

logger,handler = create_logger(logging.DEBUG,'appName','production',filname='log/app',file_type='log',backupCount=5,maxBytes=10485760)
handler.setFormatter(JsonFormatter())
logger.info('hello world')

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

simple_util-0.3.10.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simple_util-0.3.10-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file simple_util-0.3.10.tar.gz.

File metadata

  • Download URL: simple_util-0.3.10.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for simple_util-0.3.10.tar.gz
Algorithm Hash digest
SHA256 9baced37752206099a964f191d215df8686ac15dd50ff6f02ec068507c4f502a
MD5 41c7105347ed2a3685ec4e5238ba7a52
BLAKE2b-256 92bb115a50b0707dba8d92a7883e61e97cb07cb1c3b65a4291b621322e116a8a

See more details on using hashes here.

File details

Details for the file simple_util-0.3.10-py3-none-any.whl.

File metadata

  • Download URL: simple_util-0.3.10-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for simple_util-0.3.10-py3-none-any.whl
Algorithm Hash digest
SHA256 b8bdfbc560c2ab7153ae83c1cd293e8e6d7fd302ce9403ba020f829711e5527b
MD5 04a876a187961026b4eee80b4b1e2286
BLAKE2b-256 cab011077743cd7f04665c2ff3262b03c875b1d32bacb1f1a4d27951ad5ccacd

See more details on using hashes here.

Supported by

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