Skip to main content

python工具类

Project description

Python工具类

简介

此工具类致力于封装一些常用的python代码,目前支持log日志,progress进度条,mysql数据库操作,雪花算法唯一id,时间工具类等方法

使用说明

安装

pip install yaoys-python-tool

更多例子请查看demo文件夹下相关代码

目前已经支持的功能

  1. log日志记录,包括打印至控制台和保存到文件,输出到控制台支持针对不同级别的日志设置不同的颜色
  2. 进度条展示:支持多种样式的进度条,并且支持将进度保存到log日志文件
  3. 数据集划分,包括划分为训练数据集,测试数据集,验证集,划分方式可以是使用pandas读取后的数据格式(datautil) ,也可以直接使用文件路径,使用文件路径的方式暂时只支持划分测试集和训练集,文件格式为csv或者TXT(split_files) ,具体使用可查看demo/data/dataDemo.py
  4. 唯一id,雪花算法实现唯一ID
  5. 时间工具类
  6. 数据库的连接与增删改查,暂时只支持mysql数据库

log日志

# log日志demo
from yaoysTools.log.logutil import getLogger, log_info, MY_LOG_INFO

# 说明:如果设置保存日志到日志文件,则必须设置日志文件路径,此时 save_log2_file=True, log_path='../log'
# 封装了log_info,log_error,log_warn,log_debug等方法
# 日志颜色将根据不同的日志等级设置为不同的颜色
logger = getLogger('test', log_path='../log', log_level=MY_LOG_INFO, save_log2_file=True)
log_info('test', my_logger=logger)
# 运行结果如下:
[2022 - 07 - 23 13: 31:25, 05
8] [log_name: test] [INFO][filename:some_thing_test.py][func_name:非方法调用(Not
function)] [15 line] - message: test
# 可在log文件中查看到相关日志

progress 进度条

# 进度条demo
# 进度条工具整合了第三方的工具,代码地址:https://github.com/verigak/progress.git
# 针对以上源码进行了封装,修改,增加将进度保存到日志文件中
from time import sleep
from yaoysTools.progress.progressUtil import PROGRESS_TYPE_PIXELBAR, definitionProgressBar

# 进度条可选择的样式有多种,如果不知道具体的总的长度,可以使用spinner,原作者提供了多种spinner
PROGRESS_TYPE_BAR = 'Bar'
PROGRESS_TYPE_CHARGING_BAR = 'ChargingBar'
PROGRESS_TYPE_FILLINGSQUARESBAR = 'FillingSquaresBar'
PROGRESS_TYPE_FILLINGCIRCLESBAR = 'FillingCirclesBar'
PROGRESS_TYPE_INCREMENTALBAR = 'IncrementalBar'
PROGRESS_TYPE_PIXELBAR = 'PixelBar'
PROGRESS_TYPE_SHADYBAR = 'ShadyBar'
PROGRESS_TYPE_SPINNER = 'Spinner'
PROGRESS_TYPE_PIESPINNER = 'PieSpinner'
PROGRESS_TYPE_MOONSPINNER = 'MoonSpinner'
PROGRESS_TYPE_LINESPINNER = 'LineSpinner'
PROGRESS_TYPE_PIXELSPINNER = 'PixelSpinner'
# 注意,如果需要将进度保存到日志中,必须设置 is_save_log=True,并且设置log日志的路径
# 你还可以自己定义自己的logger.如果不定义,将采用默认的logger,自定义logger使用的方法是log日志中的getLogger
# 自定义logger时,同样的如果需要将进度保存到日志中,必须设置 is_save_log=True,并且设置log日志的路径,必须设置is_only_file=True,否则会在控制台输出进度
# logger = getLogger(self.message, log_level=MY_LOG_INFO, log_path=self.log_path, is_only_file=True)
# 如果采用默认的logger,则不需要设置my_logger=logger

# 以下为显示进度时间样式
PROGRESS_ELAPSED = 'elapsed'  # 正向时间增加,只显示秒数
PROGRESS_ELAPSED_TD = 'elapsed_td'  # 正向时间增加,显示时,分,秒
PROGRESS_ETA = 'eta'  # 倒序时间减少,elapsed的逆序
PROGRESS_ETA_TD = 'eta_td'  # elapsed_td的逆序
默认显示时间时间格式为elapsed_td如果需要不显示时间, 设置 need_show_time = False
bar = definitionProgressBar(progress_type=PROGRESS_TYPE_PIXELBAR,
                            count=100, is_save_log=True, log_path='../log', my_logger=logger, need_show_time=True,
                            show_time_type=PROGRESS_ELAPSED_TD).get_progress()
for i in range(100):
    # Do some work
    sleep(0.01)
    bar.next()
bar.finish()
# 控制台运行结果:
Progress |  ################################| 100/100  100.00% 0:00:11 
# log日志输出进度如下:
[2022 - 08 - 26 21: 0
8: 38, 976][log_name: Progress][INFO][filename:E:\MyJob\PyCharm\PythonTools\yaoysTools\progress\__init__.py][
    func_name: writeln][131 line] - message: Progress |  ################################| 100/100  100.00% 0:00:11

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

yaoys-python-tool-0.0.50.tar.gz (24.7 kB view details)

Uploaded Source

File details

Details for the file yaoys-python-tool-0.0.50.tar.gz.

File metadata

  • Download URL: yaoys-python-tool-0.0.50.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.1 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for yaoys-python-tool-0.0.50.tar.gz
Algorithm Hash digest
SHA256 099571e0a29f1e15d68d2cc78ec0d0ccb0805c75a4a28424c6fd0c0e0aa64e31
MD5 84430429fafced3c6267535fba0b6f0b
BLAKE2b-256 46a07a2ea28b2c332cd120ad5bdc9acedb218f8967bd87396a2ba801526083df

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