Python迷你工具箱,包含简化的常用工具,旨在帮助脚本快速开发。
Project description
说明文档
简述
Python迷你工具箱,包含简化的常用工具,旨在帮助脚本快速开发。
它具有调用方式统一、参数简单、实现相对简明、文档相对清晰的特点。
功能描述详见接口文档,常用功能如:执行系统命令、创建/删除文件夹、压缩解压、日志工具、哈希计算、字符加密、邮件发送、钉钉通知、ssh连接、xml解析等。
安装说明
# python版本要求
依赖python3.6+版本, 默认centos7环境yum安装的python3可以使用
# pip仓库配置示例(网速慢建议更换为镜像仓库)
# unix: ~/.pip/pip.conf
# win: %APPDATA%\pip\pip.ini
[global]
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com
# 安装方式
# 完全安装, 建议, 可以使用全部功能
pip3 install mini-toolbox[full]
# 最小化安装, 仅使用原生python3, 可用模块详见源码, 常用模块如下:
# utils/path/extra/logger/hash/archive/mail/pip_list/conifg/ftp
pip3 install mini-toolbox
# 发布地址
Download: https://pypi.org/project/mini-toolbox
Document: https://mini-toolbox.readthedocs.io
调用示例
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
""" mini_toolbox调用示例, unix环境中执行 """
from mini_toolbox.path import mkdirs, pushd
from mini_toolbox.utils import exec_cmd
from mini_toolbox.logger import Logger
# 实例化日志工具
logger = Logger(logger_id='test_lib', to_file=False).logger
# 重建dir2文件夹
mkdirs('dir1/dir2', is_file=False, remake=True)
# 进入dir1/dir2文件夹, 执行结束后返回原路径
with pushd('dir1/dir2'):
# 创建dir3目录, 存在则忽略
mkdirs('dir3/file1', is_file=True)
# 执行`ls -lh`指令, 输出用日志工具打印
rst = exec_cmd('ls -lh')
logger.debug(rst)
# 执行`find .`指令, 输出直接打印
exec_cmd('find .', live=True)
格式规范
- 编码遵循Google Python编码风格
- 文档编写遵循附录中的Google风格文档编写示例
# 迭代说明
1. 版本采用三段式 x.y.z
2. x 表示主版本 - 当产生重大变更或重大里程碑时, x+1, y=z=0
3. y 表示增量版本 - 当z版本大于9时, y+1, z=0
4. z 表示补丁版本 - 当涉及变更时, z+1, z<=9
# 命名大小写
1. 类: 单词首字母大写
2. 全局变量: 字母大写, 下划线分隔
3. 内部函数/方法/对象/变量/模块: 单下划线开头, 小写字母, 下划线分隔
4. 其它函数/方法/对象/变量/模块: 小写字母, 下划线分隔
# 其它约定
1. 格式化 - 使用yapf插件格式化代码 # pip3 install yapf
2. 兼容性 - 相同x版本, 做到向后兼容, 尽量做到向前兼容
3. 更新日志 - 提供y版本的详细变更日志和时间, 做到描述简练、分类正确
4. 实现范围 - 不涉及业务代码, 删除冗余代码/注释, 做到相对独立性和通用性
5. 标点符号 - 代码段中的逗号、冒号、分号全部使用英文符号
5. 类型注释 - 尽量提供代码类型注释
- int/float/str/bool/None
- from typing import Dict, List, Tuple, Optional, Union, Any
打包说明
# 将本地目录作为库安装调试
python3 -m pip install --upgrade pip setuptools wheel
pip3 install -e .[full,docs,build]
# 手动格式化代码
./build.sh format
# 编译和预览文档
./build.sh doc
# 编译全部
./build.sh
# 更新版本及编译 - x/y/z
./build.sh z
附录
Google风格文档编写示例
"""Example Google style docstrings(One line summary).
This module demonstrates documentation as specified by the `Google Python
Style Guide`_. Docstrings may extend over multiple lines. Sections are created
with a section header and a colon followed by a block of indented text.
Example:
Sections support any reStructuredText formatting, including literal
blocks::
$ python example_google.py
>>> print([i for i in example_generator(4)])
[0, 1, 2, 3]
Attributes:
likes_spam: A boolean indicating if we like SPAM or not.
eggs: An integer count of the eggs we have laid.
Args:
param1 (int): The first parameter.
param2 (str): The second parameter.
keys (str): A sequence of strings representing the key of each table \
row to fetch. String keys will be UTF-8 encoded.
Returns:
bool: The return value. True for success, False otherwise.
Raises:
IOError: An error occurred accessing the smalltable.
Todo:
* For module TODOs, need ``sphinx.ext.todo`` extension
* This is colorful block
Note:
This is colorful block
Warning:
This is colorful block
See Also:
This is colorful block. `PEP 484`_ type annotations are supported.
.. _Google Python Style Guide:
http://google.github.io/styleguide/pyguide.html
.. _PEP 484:
https://www.python.org/dev/peps/pep-0484/
"""
Pypi官方打包说明
1. 注册账户, 配置token # https://pypi.org/
# cat ~/.pypirc
[pypi]
username = __token__
password = pypi-xxxxxxxxxxxxxxxxxxxxxxxxxx
2. 安装依赖
python3 -m pip install --upgrade pip setuptools wheel
pip3 install build virtualenv twine
3. 执行打包
python3 -m build
4. 执行上传
python3 -m twine upload --repository pypi dist/*
参考链接
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mini_toolbox-1.1.0.tar.gz
(50.4 kB
view details)
Built Distribution
File details
Details for the file mini_toolbox-1.1.0.tar.gz
.
File metadata
- Download URL: mini_toolbox-1.1.0.tar.gz
- Upload date:
- Size: 50.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.18 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f41dd61965995b1af3c86d24cc0e8a661f415977f76f55ad906feaf36ced8a50 |
|
MD5 | 97d0b7e7df89b82f812e908146185be1 |
|
BLAKE2b-256 | 8de2280fe8617aa07f73d4be1b01cda01f0546bf181349a759cf74c5fb9b58a2 |
File details
Details for the file mini_toolbox-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: mini_toolbox-1.1.0-py3-none-any.whl
- Upload date:
- Size: 46.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.18 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8eb6068e254698649b932e90410de30734fb45649ab02284f68cf16a0b92813e |
|
MD5 | 40ce2d1b757f04813ca9f58c85341894 |
|
BLAKE2b-256 | b7866e4023cd1de5471586844a46c81185b9700ed7308231f666c9ef6302066e |