mini_toolbox package
Submodules
mini_toolbox.api_json module
用于操作免认证的api获取返回json数据
mini_toolbox.archive module
解压缩工具, 包括: zip/unzip/tar/untar
- mini_toolbox.archive.tar(arch_name: str, path_list: Union[list, str], mode: str = 'gz') Optional[int] [源代码]
用于压缩列表中指定的路径
- 参数
arch_name (str) -- 压缩至指定文件路径
path_list (Union[list, str]) -- 压缩指定的路径, 支持文件路径或目录路径
mode (str) -- 压缩模式, 默认为gz, 可选:(None/bz2/xz)
- 返回
返回
(1|2|None)
, 当arch_name或file_list为空时返回1, 当path_list中存在非法路径时返回2, 其它情况返回None- 返回类型
Optional[int]
- mini_toolbox.archive.untar(arch_name: str, to_dir: Optional[str] = None, mode: Optional[str] = None) Optional[int] [源代码]
用于解压文件至指定的路径
- 参数
arch_name (str) -- 压缩包路径
to_dir (Optional[str]) -- 解压至指定路径, 默认为当前路径
mode (Optional[str]) -- 压缩模式, 默认为自动检测, 可选:(gz/bz2/xz)
- 返回
返回
(1|None)
, 当arch_name为空时返回1- 返回类型
Optional[int]
- mini_toolbox.archive.unzip(arch_name: str, to_dir: Optional[str] = None, pwd: Optional[bytes] = None) Optional[list] [源代码]
用于解压文件至指定的路径
- 参数
arch_name (str) -- 压缩包路径
dst_dir (Optional[str]) -- 解压至指定路径, 默认为当前路径
pwd (Optional[bytes]) -- 压缩包密码, 默认为未加密
- 返回
返回
(None|list)
, 当arch_name为空时返回None, 其它情况返回包中文件列表- 返回类型
Optional[list]
- mini_toolbox.archive.zip(arch_name: str, path_list: Union[list, str]) Optional[int] [源代码]
用于压缩列表中指定的路径
警告
如果路径中存在软链接, 建议使用tar命令压缩
- 参数
arch_name (str) -- 压缩至指定文件路径
path_list (Union[list, str]) -- 压缩指定的路径, 支持文件路径或目录路径
- 返回
返回
(1|2|None)
, 当arch_name或file_list为空时返回1, 当path_list中存在非法路径时返回2, 其它情况返回None- 返回类型
Optional[int]
mini_toolbox.config module
用于解析配置文件, 包含json、toml, 由于用法很简单, 仅做部分封装
mini_toolbox.crypt module
mini_toolbox.dingtalk module
用于钉钉群消息通知
- class mini_toolbox.dingtalk.DingTalk(token: str, secret: Optional[str] = None, user_dict: Optional[dict] = None, ding_url: str = 'https://oapi.dingtalk.com/robot/send?access_token=')[源代码]
基类:
object
用于钉钉群消息通知, 仅支持text模式, 详见 钉钉官方文档
- 参数
token (str) -- Webhook中的access_token
secret (Optional[str]) -- 加签模式的密钥, 可选, 默认为关键字模式, 实现详见 官方签名文档
user_dict (Optional[dict]) -- 导入
{'用户名':'手机号'}
键值对, 用于在at_users中直接选择用户名ding_url (str) -- 钉钉官方api接口的url前缀(不含token)或者公司私用接口
- send(content: Optional[str] = None, at_users: Union[list, str] = [], at_all: bool = False, sep: Optional[str] = None) dict [源代码]
发送钉钉消息
- 参数
content (Optional[str]) -- 消息正文, 默认为
'None'
, 支持\n\t
等扩展字符at_users (Union[list, str]) -- 用于@指定人员, 填写手机号或user_dict中的用户名, str会自动
split(sep)
为列表at_all (bool) -- 是否@所有人, 默认为False
sep (Optional[str]) -- @指定人员列表分隔符, 默认为空格
- 返回
返回api的响应体信息, 如: {'errcode': 0, 'errmsg': 'ok'}
- 返回类型
dict
mini_toolbox.extra module
扩展工具集, 统一存放存在内部依赖的工具
- mini_toolbox.extra.catch_exception(func=None, logger: logging.Logger = <Logger mini_toolbox (WARNING)>, exit_code: typing.Optional[int] = None) Any [源代码]
异常捕获装饰器
- mini_toolbox.extra.gen_deps_seq(src_deps: list) Tuple[List[str], bool] [源代码]
基于模块依赖关系, 生成依赖顺序和环状依赖标识
- 参数
src_deps (list) -- 依赖关系列表, '模块A,依赖B,依赖C', 示例: ['A,B,C', 'B,D', 'C', 'E,B']
- 返回
(依赖顺序, 环状依赖标识), 示例: (['C', 'B', 'A', 'E'], False)
- 返回类型
Tuple[List[str], bool]
mini_toolbox.ftp module
用于FTP相关操作
- class mini_toolbox.ftp.FtpTools(host: str, port: int = 0, user: str = '', passwd: str = '', level: int = 0)[源代码]
基类:
object
用于FTP相关操作
支持文件/目录的上传和下载, 由于存在安全风险, 不支持删除, 仅支持重写
示例
FTP download / upload 语法示例:
copy /haha/hehe . # hehe 拷贝为 ./hehe # 后为. 则后补/ copy /haha/hehe ./ # hehe 拷贝为 ./hehe copy /haha/hehe ./haha # hehe 拷贝为 ./haha copy /haha/hehe ./haha/ # hehe 拷贝为 ./haha/hehe copy /haha/hehe/ ./ # hehe/* 拷贝为 ./* copy /haha/hehe/ ./haha # hehe/* 拷贝为 ./haha/* # 前有/ 则后补/ copy /haha/hehe/ ./haha/ # hehe/* 拷贝为 ./haha/*
- 参数
host (str) -- 服务器地址
port (int) -- 服务器端口
user (str) -- 用户名
passwd (str) -- 用户密码
level (int) -- 日志等级,
0/1/2
分别表示隐藏/少量/大量
, 默认为0
mini_toolbox.git module
用于gitlab相关操作
- class mini_toolbox.git.GitTools(token: str, server: str, ssl_verify: bool = True)[源代码]
基类:
object
用于gitlab相关操作, 仅支持token认证
备注
官方文档: python-gitlab
- 参数
token (str) -- private_token, 请使用用户私有token
server (str) -- git服务器地址
ssl_verify (bool) -- 是否启用SSL认证, 默认为True, 认证失败是建议置为False
- LEVELS = {'developer': 30, 'maintainer': 40, 'reporter': 20}
- create_branch(git_url: str, branch: str, ref: str, force: bool = False) Any [源代码]
创建分支
- 参数
git_url (str) -- git仓库的url地址
branch (str) -- 新分支名称
ref (str) -- 基于的分支名/标签名/commit
force (bool) -- 是否强制重建
- create_tag(git_url: str, tag_name: str, ref: str, force: bool = False, msg: Optional[str] = None) Any [源代码]
创建标签
- 参数
git_url (str) -- git仓库的url地址
tag_name (str) -- 新标签名称
ref (str) -- 基于的分支名/标签名/commit
force (bool) -- 是否强制重建, 默认为不重建
msg (Optional[str]) -- 标签提交信息, 默认为空
- delete_branch(git_url: str, branch: str) None [源代码]
删除分支
- 参数
git_url (str) -- git仓库的url地址
branch (str) -- 分支名称
mini_toolbox.hash module
提供基本hash工具: md5/sha1/sha256
- mini_toolbox.hash.md5(file_path: str) Optional[str] [源代码]
计算文件的md5: 合法文件, 返回指定文件md5值; 非法文件, 返回
None
mini_toolbox.jenkins module
- class mini_toolbox.jenkins.JenkinsTools(user: str, token: str, server: str)[源代码]
基类:
object
用于jenkins相关操作, 支持token
- 参数
user (str) -- 用户名
token (str) -- 用户密码, 建议使用token
server (str) -- jenkins服务器地址
- build_job(job_name: str, params: Optional[dict] = None, poll: int = 20, bg=False, ccu=True) tuple [源代码]
调用执行job, 返回任务执行的状态信息
- 参数
job_name (str) -- jenkins的job名称
params (Optional[dict]) -- 用于参数化构建, 键值与job变量取交集生效
poll (int) -- 任务状态轮询周期, 默认为20s
bg (bool) -- 后台执行,直接返回, 默认为False
ccu (bool) -- 执行并发构建, 默认为True
- 返回
bg=False,
(结果状态, 日志URL, 日志数据)
; bg=True,(job名称, 任务ID)
- 返回类型
tuple
- get_status(job_name: str, build_num: int, encoding: Optional[str] = None, errors: str = 'replace') tuple [源代码]
返回任务执行的状态信息
- 参数
job_name (str) -- jenkins的job名称
build_num (int) -- job的任务ID
encoding (Optional[str]) -- 输出编码, 默认根据chardet自动判断, 建议默认
errors (str) -- 遇到错误时处理模式, 默认为
replace
, 可选:strict/ignore/replace
- 返回
(结果状态, 日志URL, 日志数据)
- 返回类型
tuple
mini_toolbox.jfrog module
- class mini_toolbox.jfrog.JFrog(user: str, token: str, server: str)[源代码]
基类:
object
用于操作JFrog仓库
- 参数
user (str) -- 用户名
token (str) -- 用户token
备注
实例方法入参说明:
path
指任意路径;file
指文件路径;dir
指目录路径
mini_toolbox.logger module
- class mini_toolbox.logger.Logger(logger_id: str = 'mini', file_path: str = 'all.log', to_file: bool = True, to_console: bool = True, color_file: bool = True, color_console: bool = True, show_process: bool = False, show_thread: bool = False, show_module: bool = False, level: str = 'DEBUG', log_size: float = 10.0, log_count: int = 10, encoding: str = 'utf-8')[源代码]
基类:
object
标准化日志工具
警告
同一logger_id仅第一次初始化时生效, 后续重复初始化不再改变
- logger
实例化后的日志工具
- 参数
logger_id (str) -- logger的名称, 默认为
mini
file_path (str) -- 日志文件名, 默认为
./all.log
to_file (bool) -- 是否写入文件, 默认为True
to_console (bool) -- 是否输出至控制台, 默认为True
color_file (bool) -- 文件输出为彩色, 默认为True
color_console (bool) -- 控制台输出为彩色, 默认为True
show_process (bool) -- 日志输出显示进程字段, 默认为False
show_thread (bool) -- 日志输出显示线程字段, 默认为False
show_module (bool) -- 日志输出显示模块字段, 默认为False
level (str) -- 日志显示等级, 默认为 DEBUG, 可选项
('FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'SUCCESS')
log_size (float) -- 单个日志文件大小(MB), 默认为10MB
log_count (int) -- 日志备份数量, 默认为10个
encoding (str) -- 写入文件的编码, 默认为'utf-8'
示例
>>> logger = Logger().logger >>> logger.info('this is info message.')
mini_toolbox.mail module
用于发送邮件通知
- class mini_toolbox.mail.Mail(host: str, suffix: str, sender: str, sender_desc: str, encode: str = 'utf-8', port: int = 25, ssl: bool = False, level: int = 0, username: Optional[str] = None, password: Optional[str] = None)[源代码]
基类:
object
用于发送邮件通知
备注
linux如果使用localhost, 可以使用postfix服务
官方文档: smptlib, module-email, email-examples
- 参数
host (str) -- 邮件服务器地址
suffix (str) -- 邮箱地址后缀, 如果邮箱地址中没有@符号, 则添加此后缀
sender (str) -- 发件人地址, 可简写为邮箱地址前缀
sender_desc (str) -- 发件人地址显示的用户名
encode (str) -- 编码类型, 暂未使用
port (int) -- 邮箱服务器端口, 默认为25, SSL端口一般为465
ssl (str) -- 是否开启SSL认证
level (int) -- 日志等级,
0/1/2
分别表示隐藏/少量/大量
, 默认为0username (str) -- 认证登陆用户, 默认为空, 一般为发件人地址
password (str) -- 认证登陆密码, 默认为空
- add_attachment(path_list: Union[str, list], ctype: Optional[str] = None, sep: Optional[str] = None) None [源代码]
添加邮件附件
- 参数
path_list (Union[str, list]) -- 附件路径列表, str会自动
split(sep)
为列表ctype (Optional[str]) -- 文件类型, 默认为自动检测, 建议默认, 示例:
image/png
, 详见mimetypes
sep (Optional[str]) -- 附件路径列表分隔符, 默认为空格
- add_content(content: str, subtype: str = 'plain') None [源代码]
添加邮件正文 - 普通模式, 与关联模式互斥
- 参数
content (str) -- 正文内容
subtype (str) -- 正文编码, 支持
plain/html
格式, 默认为plain(纯文本)
添加邮件正文 - 关联模式, 与普通模式互斥, 支持邮件正文中显示图片
警告
不支持手动指定多种data类型, 如果需要, 请保存为文件后自动检测
如果is_path为False, 则需要手动指定ctype, 如:
'image/png'
- 参数
content (str) -- 正文内容, 正文编码只支持html
relate_dict (dict) -- 正文html中format()时需要关联的键值对,
{'html中变量': '文件路径或data'}
is_path (bool) -- relate_dict的键值是否为文件路径, 默认为True, 建议使用文件路径
ctype (Optional[str]) -- 文件类型, 默认为自动检测, 建议默认
- send_mail(subject: str, receivers: Union[str, list], cc_receivers: Union[str, list] = [], sep: Optional[str] = None) None [源代码]
发送邮件
- 参数
subject (str) -- 邮件主题
receivers (Union[str, list]) -- 收件人地址列表, str会自动
split(sep)
为列表, 可简写为邮箱地址前缀cc_receivers (Union[str, list]) -- 抄送人地址列表, str会自动
split(sep)
为列表, 可简写为邮箱地址前缀, 默认为空sep (Optional[str]) -- 收件人地址列表分隔符, 默认为空格
mini_toolbox.mysql module
- class mini_toolbox.mysql.MySQL(host: str, port: int = 3306, user: str = '', passwd: str = '', database: str = '')[源代码]
基类:
object
用于mysql数据库相关操作
- 参数
host (str) -- 服务器地址
port (int) -- 服务器端口
user (str) -- 用户名
passwd (str) -- 用户密码
database (str) -- 数据库名
mini_toolbox.path module
文件、路径处理相关工具
- mini_toolbox.path.copy_file(src: str, dst: str, force: bool = True) None [源代码]
拷贝单文件路径, 源目路径类型需要一致, 仅支持处理三种文件类型:
dir/file/link
- mini_toolbox.path.edit_file(path: str, sub_info: list, encoding: str = 'utf-8') None [源代码]
按规则修改文本行
使用
re.serarch
搜索行关键字, 使用re.sub
替换, sub_info格式:[line_keyword, sub_from, sub_to]
- mini_toolbox.path.gen_path(path: str, only_file: bool = False, base_dir: str = '.') list [源代码]
按序递归生成有序且唯一的子路径列表
- 参数
path (str) -- 待分析的路径
only_file (bool) -- 仅返回文件路径, 默认False
base_dir (str) -- 基准路径, 优先切换至该路径, 默认
.
- 返回
返回全部的子路径列表
- 返回类型
list
- mini_toolbox.path.merge_file(src: str, dst: str, force: bool = True)[源代码]
合并源目路径, 源目路径类型需要一致, 仅支持处理三种文件类型:
dir/file/link
- mini_toolbox.path.mkdirs(path: str, is_file: bool = False, remake: bool = False) str [源代码]
递归创建文件夹, 并返回目录路径
- 参数
path (str) -- 路径
is_file (bool) -- 是否为文件路径, 默认为False,
remake (bool) -- 是否重建目录, 默认False
- 返回
目录路径
- 返回类型
str
- mini_toolbox.path.move_file(src: str, dst: str, force: bool = True) None [源代码]
移动单文件路径, 源目路径类型需要一致, 仅支持处理三种文件类型:
dir/file/link
- mini_toolbox.path.path_join(path: str, *args: str, sep: str = '/') str [源代码]
合并路径, 原版'/'开头路径前面的参数全部丢弃改为不丢弃
mini_toolbox.pip_list module
备注
提供命令行工具 pip_list
, 用于格式化显示pip库安装日期, 使用 -h
查看命令行帮助
mini_toolbox.recoding module
备注
提供命令行工具 file_recoding
, 用于转换文件编码, 使用 -h
查看命令行帮助
- mini_toolbox.recoding.file_recoding(file_path: str, src_encoding: str, dst_encoding: str, errors: str = 'ignore') str [源代码]
将文件转化从原编码转化为指定编码
- 参数
file_path (str) -- 文件路径
src_encoding (str) -- 文件当前编码
dst_encoding (str) -- 目标转换编码
errors (str) -- 遇到错误时处理模式, 默认为
ignore
, 可选:strict/ignore/replace
- 返回
解码后的文档内容
- 返回类型
str
mini_toolbox.ssh module
用于ssh/sftp相关操作
- class mini_toolbox.ssh.SshTools(host: str, port: int = 22, user: Optional[str] = None, passwd: Optional[str] = None, pkey_file: Optional[str] = None)[源代码]
基类:
object
用于ssh/sftp相关操作, 支持密码和密钥登陆
- 参数
host (str) -- 服务器地址
port (int) -- 端口地址
user (Optional[str]) -- 用户名, 默认为当前用户名
passwd (Optional[str]) -- 密码, 优先级低于pkey_file
pkey_file (Optional[str]) -- 指定私钥路径, 默认为.ssh/id_rsa
- exec(cmd: str, input: Optional[str] = None, live=False, encoding='utf-8', errors: str = 'replace') Tuple[int, str, str] [源代码]
执行shell指令, 不建议执行复杂指令
- 参数
cmd (str) -- 待执行指令, 多条命令用
';'
分隔input (Optional[str]) -- 指令执行时交互输入, 如
'keyword\n'
, 不建议使用live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为None
encoding (str) -- 目标服务器输出的编码格式, 默认为
'utf-8'
errors (str) -- 遇到错误时处理模式, 默认为
replace
, 可选:strict/ignore/replace
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
mini_toolbox.svn module
SVN常用指令封装
警告
出于安全考虑, 不支持密码输入
备注
官方文档: svn官方文档, svn-book英文版, svn-book中文版
- mini_toolbox.svn.svn_checkout(svn_url: str, dst_dir: str, rev: Optional[Union[int, str]] = None, params: Optional[str] = None, live: bool = False) Tuple[int, str, str] [源代码]
检出代码
- 参数
svn_url (str) -- svn_url路径
dst_path (str) -- 本地目的路径
rev (Union[int, str, None]) -- 指定配置库提交版本, 默认为最新版本
params (Optional[str]) -- 指定额外参数, 默认为空
live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为空
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
- mini_toolbox.svn.svn_clean(local_path: Optional[str] = None, live: bool = False) Tuple[int, str, str] [源代码]
用于清理工作目录, 返回执行结果
- 参数
local_path (Optional[str]) -- 仅支持svn本地路径, 默认为当前路径
live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为空
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
- mini_toolbox.svn.svn_commit(local_path: str, msg: str, live: bool = False) Tuple[int, str, str] [源代码]
提交代码
- 参数
local_path (str) -- 仅支持svn本地路径
msg (str) -- 提交日志信息, 必填
live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为空
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
- mini_toolbox.svn.svn_copy(src_path: str, dst_path: str, msg: str, rev: Optional[Union[int, str]] = None, live: bool = False) Tuple[int, str, str] [源代码]
复制svn路径, 返回指令执行信息
- 参数
src_path (str) -- svn路径, 支持本地路径和url
dst_path (str) -- svn路径, 支持本地路径和url
msg (str) -- 日志信息, url路径时必填, 默认为空
rev (Union[int, str, None]) -- 指定配置库提交版本, 默认为最新版本
live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为空
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
- mini_toolbox.svn.svn_delete(svn_path: str, msg: Optional[str] = None, force: bool = True, live: bool = False) Tuple[int, str, str] [源代码]
删除svn路径, 返回delete指令执行信息
- 参数
svn_path (str) -- svn路径, 支持本地路径和url
msg (Optional[str]) -- 日志信息, url路径时必填, 默认为空
force (bool) -- 本地存在修改时是否删除, 默认为True
live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为空
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
- mini_toolbox.svn.svn_export(svn_url: str, dst_dir: str, rev: Optional[Union[int, str]] = None, params: Optional[str] = None, live: bool = False) Tuple[int, str, str] [源代码]
检出纯净代码副本, 不带.svn
- 参数
svn_url (str) -- svn_url路径
dst_path (str) -- 本地目的路径
rev (Union[int, str, None]) -- 指定配置库提交版本, 默认为最新版本
params (Optional[str]) -- 指定额外参数, 默认为空
live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为空
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
- mini_toolbox.svn.svn_info(svn_path: str, rev: Optional[Union[int, str]] = None, params: Optional[str] = None, live: bool = False) Tuple[int, str, str] [源代码]
返回info指令执行信息
- 参数
svn_path -- (str) svn路径, 支持本地路径和url
rev -- (Union[int, str, None]) 指定配置库提交版本, 默认为最新版本
params -- (Optional[str]) 指定额外参数, 默认为空
live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为空
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
- mini_toolbox.svn.svn_info_dict(svn_path: str, rev: Optional[Union[int, str]] = None) Any [源代码]
返回字典化的info信息
- 参数
svn_path -- (str) svn路径, 支持本地路径和url
rev -- (Union[int, str, None]) 指定配置库提交版本, 默认为最新版本
- 返回
返回常用键值对, 包括:
path/rev/kind/url/root/last_rev/last_author/last_date
- 返回类型
dict
- 引发
Tuple[int, str, str] -- 执行结果(状态码, 标准输出, 错误输出)
- mini_toolbox.svn.svn_list(svn_path: str, params: str = '-vR', rev: Optional[Union[int, str]] = None, live: bool = False) Tuple[int, str, str] [源代码]
返回list指令执行信息
- 参数
svn_path -- (str) svn路径, 支持本地路径和url
params -- (str) 指定额外参数, 默认为空
rev -- (Union[int, str, None]) 指定配置库提交版本, 默认为最新版本
live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为空
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
- mini_toolbox.svn.svn_log(svn_path: str, num: Optional[Union[int, str]] = None, rev: Optional[Union[int, str]] = None, params: Optional[str] = None, live: bool = False) Tuple[int, str, str] [源代码]
返回log指令执行信息
- 参数
svn_path -- (str) svn路径, 支持本地路径和url
num -- (Union[int, str, None]) 指定查询的日志数量, 默认为全部
rev -- (Union[int, str, None]) 指定配置库提交版本, 默认为最新版本
params -- (Optional[str]) 指定额外参数, 默认为空
live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为空
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
- mini_toolbox.svn.svn_log_list(svn_path: str, num: Optional[Union[int, str]] = None, rev: Optional[Union[int, str]] = None) Any [源代码]
返回列表化的log信息
- 参数
svn_path -- (str) svn路径, 支持本地路径和url
num -- (Union[int, str, None]) 指定查询的日志数量, 默认为全部
rev -- (Union[int, str, None]) 指定配置库提交版本, 默认为最新版本
- 返回
返回列表化的常用键值对, 包括:
rev/author/date/msg
- 返回类型
List[dict]
- 引发
Tuple[int, str, str] -- 执行结果(状态码, 标准输出, 错误输出)
- mini_toolbox.svn.svn_update(local_path: Optional[str] = None, rev: Optional[Union[int, str]] = None, live: bool = False) Tuple[int, str, str] [源代码]
用于更新工作目录, 返回执行结果, 可以指定配置库提交版本
- 参数
local_path (Optional[str]) -- 仅支持svn本地路径, 默认为当前路径
rev (Union[int, str, None]) -- 指定配置库提交版本, 默认为最新版本
live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为空
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
mini_toolbox.utils module
实用系统工具
- mini_toolbox.utils.chunk_str(src: str, size: int, sep: str = ',') list [源代码]
按指定大小拆分指定分隔符的字符串
- 参数
src (str) -- 待拆分的字符串
size (int) -- 子字符串大小
sep (str) -- 分隔符, 默认
,
- 返回
返回拆分后的字符串列表
- 返回类型
list
- mini_toolbox.utils.comp_ver(ver_a: str, ver_b: str, flag: str = '<') bool [源代码]
用于比较标准数字版本号, 版本号可以以
Vv
开头,.
分隔, 不支持存在其它字母
- mini_toolbox.utils.dict2obj(data: Union[dict, mini_toolbox.utils._Dict2Object]) mini_toolbox.utils._Dict2Object [源代码]
将字典转化为
_Dict2Object
数据对象
- mini_toolbox.utils.exec_cmd(cmd: Union[str, list], shell: bool = True, live: bool = False, input: Optional[str] = None, timeout: Optional[int] = None, encoding: Optional[str] = None, errors: str = 'strict') Tuple[int, str, str] [源代码]
调用系统指令, 返回指令输出, 不建议执行复杂指令
- 参数
cmd (Union[str, list]) -- 待执行指令
shell (bool) -- 是否使用系统shell执行, 默认为True, 如果cmd为列表, 需要置为False
live (bool) -- 是否实时输出, 默认为False, 如果为True, 则返回值中标准输出和错误输出为None
input (Optional[str]) -- 指令执行时交互输入, 如
'keyword\n'
, 不建议使用timeout (Optional[int]) -- 指令执行超时时间, 默认不限制, 建议使用
encoding (Optional[str]) -- 输出编码, 默认根据系统判断: win(gbk)/unix(utf-8), 建议默认
errors (str) -- 遇到错误时处理模式, 默认为
strict
, 可选:strict/ignore/replace
- 返回
执行结果(状态码, 标准输出, 错误输出)
- 返回类型
Tuple[int, str, str]
- 引发
TimeoutExpired -- 超时情况抛出异常, 中断程序
- mini_toolbox.utils.get_obj_value(obj: object, path: str, default: Optional[Any] = None) Any [源代码]
获取对象path的值, 如果不存在, 返回默认值
- mini_toolbox.utils.judge_errs(*args) list [源代码]
用于条件判断, 返回msg列表:
(condition, msg, Optional(break(bool)),
mini_toolbox.xlsx module
用于xlsx相关操作
mini_toolbox.xml module
- class mini_toolbox.xml.XmlTools(file: str, pretty: bool = False)[源代码]
基类:
object
用于XML相关操作
- 参数
file (str) -- xml文件路径
pretty (bool) -- 是否格式化保存, 默认为原始格式
备注
官方文档: Element, ElementTree, xpath, findall
示例
lxml.etree 语法示例:
# 节点间位置关系约定: 父节点, 子节点, 上节点(同级), 下节点(同级) node.findall(xpath) # 搜索 # 查找全部匹配子节点, 返回列表 node.find(xpath) # 搜索 # 查找首个匹配子节点, 返回节点 node.iter() # 遍历 # 递归遍历子节点 node.itertext() # 遍历 # 递归遍历子节点文本 node.iterchildren() # 遍历 # 遍历子节点 node.getparent() # 获取 # 获取父节点 node.getprevious() # 获取 # 获取上节点 node.getnext() # 获取 # 获取下节点 root.makeelement(name) # 获取 # 创建节点 node.append(_node) # 增删 # 新增子节点 node.addprevious(_node) # 增删 # 新增上节点 node.addnext(_node) # 增删 # 新增下节点 node.remove(_node) # 增删 # 删除节点 node.tag # 编辑 # 节点标签 node.text # 编辑 # 节点文本 node.attrib # 编辑 # 节点属性 node.get(key) # 编辑 # 节点属性获取 node.set(key, value) # 编辑 # 节点属性增改
node.findall(xpath) 简化语法示例:
. # 当前节点 .. # 父节点 * # 下级全部子节点 // # 递归全部子节点 [@key] # 节点存在指定属性 [@key='value'] # 节点存在指定键值对 [tag] # 子节点存在指定标签 [tag='text'] # 子节点存在指定标签文本对
- addchild(base: lxml.etree._Element, nodes: Union[lxml.etree._Element, List[lxml.etree._Element]], reverse: bool = False) lxml.etree._Element [源代码]
新增子节点, 支持同时添加多个, 返回base节点
- addnext(base: lxml.etree._Element, nodes: Union[lxml.etree._Element, List[lxml.etree._Element]], reverse: bool = False) lxml.etree._Element [源代码]
新增下节点, 支持同时添加多个, 返回base节点
- addprev(base: lxml.etree._Element, nodes: Union[lxml.etree._Element, List[lxml.etree._Element]], reverse: bool = False) lxml.etree._Element [源代码]
新增上节点, 支持同时添加多个, 返回base节点
- makenode(tag: str, text: Optional[str] = None, attrib: Optional[dict] = None, namespace: Optional[str] = None) lxml.etree._Element [源代码]
创建节点
- 参数
tag (str) -- 节点标签
text (str) -- 节点文本
attrib (dict) -- 节点属性
namespace (Optional[str]) -- 节点命名空间, 默认为None, 自动处理