python异常类封装_GitHub - eddiewangjian/jutil_py: python公共util库,封装通用的错误码、log、配置、检查宏命令、数据库访问、可视化出图、通用编解码、通...

jutil_py

python公共util库,封装通用的错误码、log、配置、检查宏命令、数据库访问、可视化出图、通用编解码、通用系统操作

Deploy

pip3 install configparser # common_conf

pip3 install logging # common_log

pip3 install requests # common_http

pip3 install pymysql # common_mysql

pip3 install matplotlib # common_plot

QuickStart

# 将jutil_py作为子模块直接引用即可使用,调用函数详见API Document

from jutil_py.common_xxx import XXX

API Document

common_conf模块

- 功能:管理系统session配置

- 配置格式说明:

配置文件中,分为section和item两级,配置文件格式如下:

# 配置文件demo.conf

[section_name1]

key1 = value1

key2 = value2

[section_name2]

key3 = value3

key4 = value4

配置读入内存dict结构,分为conf/section/item三级,如下:

GLOBAL_CONF = {

"conf_name1": {

"section_name1": {

"key1": value1,

"key2": value2

},

"section_name2": {

"key3": value3,

"key4": value4

}

},

"conf_name2": {

"section_name3": {

"key5": value5,

"key6": value6

},

"section_name4": {

"key7": value7,

"key8": value8

}

}

}

- 类库使用说明:

ConfMgr静态类用于读取配置文件中的信息。可指定根目录,并通过绝对路径或相对根路径,解析整个配置为dict格式;也支持读取配置文件中的一个item

import jutil_py.common_conf import ConfMgr

# 初始化配置管理,根目录设置为当前文件所在路径

this_file_path = os.path.dirname(os.path.abspath(__file__))

ConfMgr.set_root_path(this_file_path)

res = ConfMgr.get_root_path()

# 读取当前路径下的example_conf_file.conf配置,返回格式为dict

res = ConfMgr.parse_conf("example_conf_file.conf")

# 读取当前路径下example_conf_file.conf配置,获取section为section_name,key为key_name的value,并按照str/int/float格式解读,还支持在最后添加一个参数用来设置读取失败或异常下的填充值,缺省时返回None

res = ConfMgr.get_value_str("example_conf_file.conf", "section_name", "key_name")

res = ConfMgr.get_value_int("example_conf_file.conf", "section_name", "key_name")

res = ConfMgr.get_value_float("example_conf_file.conf", "section_name", "key_name",3.14)

GlobalConf静态类用于管理配置驻留内存的结构。背后依赖一个GLOBAL_DICT全局dict变量,分为conf/section/item三层,每个item为一个key-value

import jutil_py.common_conf import GlobalConf

# 内存全局配置设置

GlobalConf.set_item("conf_name1", "session_name1", "key1", value1)

# 通过配置文件初始化内存全局配置中的一个conf

this_file_path = os.path.dirname(os.path.abspath(__file__))

ConfMgr.set_root_path(this_file_path + "/example")

conf_dict = ConfMgr.parse_conf("example_conf_file.conf")

GlobalConf.set_conf("conf_name3", conf_dict)

# 获取内存全局配置中的一个item

res = GlobalConf.get_item("conf_name1", "session_name2", "key3")

# 获取内存全局配置中的一个conf_dict

res = GlobalConf.get_conf("conf_name1")

# 获取全局配置

res = GlobalConf.get_all()

# 内存全局配置清空一个指定item

GlobalConf.clear_item("conf_name2", "session_name3", "key5")

# 内存全局配置清空一个指定conf

GlobalConf.clear_conf("conf_name1")

# 内存全局配置清空

GlobalConf.clear_all()

common_log模块

- 功能:管理系统log。支持stdout或文件打印、日志分级、格式自定义

- 使用说明:

# 【注意】系统在引用common_log模块后,会默认初始化stdout模式,以保证日志至少可输出到stdout

import jutil_py.common_log import Log

# 初始化一个stdout日志

# log_type: 日志类型(stdout:只打印到stdout;file:只打印到文件;stdout_and_file/file_and_stdout:同时打印到stdout和文件)

# log_path: 日志文件路径,在log_type等于stdout不试用此参数

# log_level: 日志级别(DEBUG:10;INFO:20;WARNING:30;ERROR:40;CRITICAL:50),会打印大于等于当前数值的各级日志

# log_format: 日志打印格式,如[%(asctime)s][%(levelname)s]%(message)s

Log.init(log_type="stdout", log_path="", log_level=10, log_format="[%(asctime)s][%(levelname)s]%(message)s")

# 调用打印日志

Log.debug("debug log")

Log.info("info log")

Log.warning("warning log")

Log.error("error log")

Log.critical("critical log")

common_http模块

- 功能:静态类封装http的get/post/put/delete请求

- 使用说明:

import jutil_py.common_http import Http

# 发送一个http请求

# request_type: 请求类型(get/post/put/delete)

# url: 请求url

# params: dict格参数,追加于url的参数

# data: dict格式data,请求时会自动转为json的data

# headers: dict格式的请求headers

# timeout: 超时秒数

# return: 元组(status_code, return_text如果为josn会自动转为dict)

res = Http.request(request_type="post", url="http://cgi.slightheat.com:8002/abc.AiBrainService/echo", params={}, data={"message": "hello"}, headers={'Content-Type': 'text/plain'}, timeout=3)

common_mysql模块

- 功能:静态类封装mysql的一次single连接请求

- 使用说明:

import jutil_py.common_mysql import Mysql

# 发送一个单连接mysql请求

# host: mysql服务的host

# port: mysql服务的端口

# db: 连接的数据库

# user: mysql用户名

# passwd: mysql密码

# sql: 数据库sql请求

res = Mysql.query("127.0.0.1", 3306, "db_name", "work", "passwd@123", "select * from user_info")

common_plot模块

- 功能:绘制图片类库封装

- 使用说明:

import jutil_py.common_plot import Plot

# 绘制曲线到图片中

# x_data: x轴数据列表

# y_data: y轴数据列表(x_data与y_data需要等长)

# file_path: 保存的图片文件路径

# file_format: 图片格式

# title: 图片内部的名称

# x_name: x轴名称

# y_name: y轴名称

# line_style: 曲线的形状

# marker: 采样点的形状

# color: 曲线颜色

# 静态函数用于绘制单个曲线到图片

xData = [0, 1, 2, 3, 4, 5]

yData1 = [0, 2, 4, 6, 8, 10]

yData2 = [0, 3, 6, 9, 12, 15]

Plot.single_plot(xData, yData1, file_path="./example/single_plot.png", file_format="png", title='result', x_name='x-axis', y_name='y-axis', line_style='--', marker='.', color='b')

# 使用实例在一张图中打印多条曲线

pt = Plot()

pt.reset()

pt.add_line(xData, yData1, 'func1', line_style='-', marker='.', color='b')

pt.add_line(xData, yData2, 'func2', line_style='--', marker='o', color='r')

pt.multi_plot(file_path='./example/multi_plot.png', file_format='png', title='result', x_name='x-axis', y_name='y-axis')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值