mini-toolbox


Namemini-toolbox JSON
Version 1.1.0 PyPI version JSON
download
home_pageNone
SummaryPython迷你工具箱,包含简化的常用工具,旨在帮助脚本快速开发。
upload_time2024-09-08 13:37:10
maintainerNone
docs_urlNone
authorNone
requires_python>=3.6
licenseNone
keywords mini-toolbox mini-tools toolbox tools
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 说明文档
  
  [![GitHub stars][github-stars-badge]][github-stars-link]
  [![GitHub forks][github-forks-badge]][github-forks-link]
  [![GitHub issues][github-issues-badge]][github-issues-link]
  [![GitHub license][github-license-badge]][github-license-link]
  [![Documentation Status][rtd-badge]][rtd-link]
  [![Python version][python-badge]][pypi-link]
  [![PyPI][pypi-badge]][pypi-link]
  [![PyPI - Downloads][install-badge]][install-link]

## 简述

Python迷你工具箱,包含简化的常用工具,旨在帮助脚本快速开发。

它具有调用方式统一、参数简单、实现相对简明、文档相对清晰的特点。

功能描述详见[接口文档][rtd-link],常用功能如:执行系统命令、创建/删除文件夹、压缩解压、日志工具、哈希计算、字符加密、邮件发送、钉钉通知、ssh连接、xml解析等。

## 安装说明

```shell
# 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
```

## 调用示例

```python
#!/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-style]**
- **文档编写遵循附录中的[Google风格文档编写示例](#sphinx-google-style)**


```shell
# 迭代说明
    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
```

## 打包说明

``` shell
# 将本地目录作为库安装调试
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
```

## 附录

<a id="sphinx-google-style"></a>

### Google风格文档编写示例

```shell
"""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官方打包说明

```shell
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/*
```


### 参考链接

- [[官方] Python项目打包](https://packaging.python.org/en/latest/tutorials/packaging-projects/)
- [[官方] Read the Docs简明文档](https://docs.readthedocs.io/en/stable/)
- [[官方] Sphinx文档](https://www.sphinx-doc.org/en/master/index.html)
- [[官方] Sphinx Read the Docs主题](https://sphinx-rtd-theme.readthedocs.io/en/stable/index.html)
- [[官方] Sphinx Google编码风格支持](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/)
- [[官方] Google开源项目风格指南-中文版][google-style]
- [[官方] Python PEP-8](https://peps.python.org/pep-0008)
- [[官方] Python Cookbook](https://python3-cookbook.readthedocs.io/zh_CN/latest/copyright.html)

[google-style]: https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/

[github-stars-badge]: https://img.shields.io/github/stars/gnzhoutian/mini_toolbox.svg
[github-stars-link]: https://github.com/gnzhoutian/mini_toolbox/stargazers

[github-forks-badge]: https://img.shields.io/github/forks/gnzhoutian/mini_toolbox.svg
[github-forks-link]: https://github.com/gnzhoutian/mini_toolbox/network

[github-issues-badge]: https://img.shields.io/github/issues/gnzhoutian/mini_toolbox.svg
[github-issues-link]: https://github.com/gnzhoutian/mini_toolbox/issues

[github-license-badge]: https://img.shields.io/badge/license-MIT-blue.svg
[github-license-link]: https://raw.githubusercontent.com/gnzhoutian/mini_toolbox/main/LICENSE

[python-badge]: https://img.shields.io/badge/python-3.6%2B-orange
[python-link]: https://pypi.org/project/mini-toolbox

[rtd-badge]: https://readthedocs.org/projects/mini-toolbox/badge/?version=latest
[rtd-link]: https://mini-toolbox.readthedocs.io?badge=latest

[pypi-badge]: https://img.shields.io/pypi/v/mini-toolbox.svg
[pypi-link]: https://pypi.org/project/mini-toolbox

[install-badge]: https://img.shields.io/pypi/dw/mini-toolbox?label=pypi%20installs
[install-link]: https://pypistats.org/packages/mini-toolbox

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mini-toolbox",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "mini-toolbox, mini-tools, toolbox, tools",
    "author": null,
    "author_email": "gnzhoutian <gnzhoutian@qq.com>",
    "download_url": "https://files.pythonhosted.org/packages/8d/e2/280fe8617aa07f73d4be1b01cda01f0546bf181349a759cf74c5fb9b58a2/mini_toolbox-1.1.0.tar.gz",
    "platform": null,
    "description": "# \u8bf4\u660e\u6587\u6863\n  \n  [![GitHub stars][github-stars-badge]][github-stars-link]\n  [![GitHub forks][github-forks-badge]][github-forks-link]\n  [![GitHub issues][github-issues-badge]][github-issues-link]\n  [![GitHub license][github-license-badge]][github-license-link]\n  [![Documentation Status][rtd-badge]][rtd-link]\n  [![Python version][python-badge]][pypi-link]\n  [![PyPI][pypi-badge]][pypi-link]\n  [![PyPI - Downloads][install-badge]][install-link]\n\n## \u7b80\u8ff0\n\nPython\u8ff7\u4f60\u5de5\u5177\u7bb1\uff0c\u5305\u542b\u7b80\u5316\u7684\u5e38\u7528\u5de5\u5177\uff0c\u65e8\u5728\u5e2e\u52a9\u811a\u672c\u5feb\u901f\u5f00\u53d1\u3002\n\n\u5b83\u5177\u6709\u8c03\u7528\u65b9\u5f0f\u7edf\u4e00\u3001\u53c2\u6570\u7b80\u5355\u3001\u5b9e\u73b0\u76f8\u5bf9\u7b80\u660e\u3001\u6587\u6863\u76f8\u5bf9\u6e05\u6670\u7684\u7279\u70b9\u3002\n\n\u529f\u80fd\u63cf\u8ff0\u8be6\u89c1[\u63a5\u53e3\u6587\u6863][rtd-link]\uff0c\u5e38\u7528\u529f\u80fd\u5982\uff1a\u6267\u884c\u7cfb\u7edf\u547d\u4ee4\u3001\u521b\u5efa/\u5220\u9664\u6587\u4ef6\u5939\u3001\u538b\u7f29\u89e3\u538b\u3001\u65e5\u5fd7\u5de5\u5177\u3001\u54c8\u5e0c\u8ba1\u7b97\u3001\u5b57\u7b26\u52a0\u5bc6\u3001\u90ae\u4ef6\u53d1\u9001\u3001\u9489\u9489\u901a\u77e5\u3001ssh\u8fde\u63a5\u3001xml\u89e3\u6790\u7b49\u3002\n\n## \u5b89\u88c5\u8bf4\u660e\n\n```shell\n# python\u7248\u672c\u8981\u6c42\n    \u4f9d\u8d56python3.6+\u7248\u672c, \u9ed8\u8ba4centos7\u73af\u5883yum\u5b89\u88c5\u7684python3\u53ef\u4ee5\u4f7f\u7528\n    \n# pip\u4ed3\u5e93\u914d\u7f6e\u793a\u4f8b(\u7f51\u901f\u6162\u5efa\u8bae\u66f4\u6362\u4e3a\u955c\u50cf\u4ed3\u5e93)\n    # unix: ~/.pip/pip.conf\n    # win: %APPDATA%\\pip\\pip.ini\n    \n    [global]\n    index-url = http://pypi.douban.com/simple\n    trusted-host = pypi.douban.com\n\n# \u5b89\u88c5\u65b9\u5f0f\n    # \u5b8c\u5168\u5b89\u88c5, \u5efa\u8bae, \u53ef\u4ee5\u4f7f\u7528\u5168\u90e8\u529f\u80fd\n        pip3 install mini-toolbox[full]\n    \n    # \u6700\u5c0f\u5316\u5b89\u88c5, \u4ec5\u4f7f\u7528\u539f\u751fpython3, \u53ef\u7528\u6a21\u5757\u8be6\u89c1\u6e90\u7801, \u5e38\u7528\u6a21\u5757\u5982\u4e0b: \n    # utils/path/extra/logger/hash/archive/mail/pip_list/conifg/ftp\n        pip3 install mini-toolbox\n\n# \u53d1\u5e03\u5730\u5740\n    Download: https://pypi.org/project/mini-toolbox\n    Document: https://mini-toolbox.readthedocs.io\n```\n\n## \u8c03\u7528\u793a\u4f8b\n\n```python\n#!/usr/bin/env python3\n# -*- coding:utf-8 -*-\n\"\"\" mini_toolbox\u8c03\u7528\u793a\u4f8b, unix\u73af\u5883\u4e2d\u6267\u884c \"\"\"\n\nfrom mini_toolbox.path import mkdirs, pushd\nfrom mini_toolbox.utils import exec_cmd\nfrom mini_toolbox.logger import Logger\n\n# \u5b9e\u4f8b\u5316\u65e5\u5fd7\u5de5\u5177\nlogger = Logger(logger_id='test_lib', to_file=False).logger\n\n# \u91cd\u5efadir2\u6587\u4ef6\u5939\nmkdirs('dir1/dir2', is_file=False, remake=True)\n\n# \u8fdb\u5165dir1/dir2\u6587\u4ef6\u5939, \u6267\u884c\u7ed3\u675f\u540e\u8fd4\u56de\u539f\u8def\u5f84\nwith pushd('dir1/dir2'):\n    # \u521b\u5efadir3\u76ee\u5f55, \u5b58\u5728\u5219\u5ffd\u7565\n    mkdirs('dir3/file1', is_file=True)\n\n    # \u6267\u884c`ls -lh`\u6307\u4ee4, \u8f93\u51fa\u7528\u65e5\u5fd7\u5de5\u5177\u6253\u5370\n    rst = exec_cmd('ls -lh')\n    logger.debug(rst)\n\n# \u6267\u884c`find .`\u6307\u4ee4, \u8f93\u51fa\u76f4\u63a5\u6253\u5370\nexec_cmd('find .', live=True)\n```\n\n## \u683c\u5f0f\u89c4\u8303\n\n- **\u7f16\u7801\u9075\u5faa[Google Python\u7f16\u7801\u98ce\u683c][google-style]**\n- **\u6587\u6863\u7f16\u5199\u9075\u5faa\u9644\u5f55\u4e2d\u7684[Google\u98ce\u683c\u6587\u6863\u7f16\u5199\u793a\u4f8b](#sphinx-google-style)**\n\n\n```shell\n# \u8fed\u4ee3\u8bf4\u660e\n    1. \u7248\u672c\u91c7\u7528\u4e09\u6bb5\u5f0f x.y.z\n    2. x \u8868\u793a\u4e3b\u7248\u672c - \u5f53\u4ea7\u751f\u91cd\u5927\u53d8\u66f4\u6216\u91cd\u5927\u91cc\u7a0b\u7891\u65f6, x+1, y=z=0\n    3. y \u8868\u793a\u589e\u91cf\u7248\u672c - \u5f53z\u7248\u672c\u5927\u4e8e9\u65f6, y+1, z=0\n    4. z \u8868\u793a\u8865\u4e01\u7248\u672c - \u5f53\u6d89\u53ca\u53d8\u66f4\u65f6, z+1, z<=9\n\n# \u547d\u540d\u5927\u5c0f\u5199\n    1. \u7c7b: \u5355\u8bcd\u9996\u5b57\u6bcd\u5927\u5199\n    2. \u5168\u5c40\u53d8\u91cf: \u5b57\u6bcd\u5927\u5199, \u4e0b\u5212\u7ebf\u5206\u9694\n    3. \u5185\u90e8\u51fd\u6570/\u65b9\u6cd5/\u5bf9\u8c61/\u53d8\u91cf/\u6a21\u5757: \u5355\u4e0b\u5212\u7ebf\u5f00\u5934, \u5c0f\u5199\u5b57\u6bcd, \u4e0b\u5212\u7ebf\u5206\u9694\n    4. \u5176\u5b83\u51fd\u6570/\u65b9\u6cd5/\u5bf9\u8c61/\u53d8\u91cf/\u6a21\u5757: \u5c0f\u5199\u5b57\u6bcd, \u4e0b\u5212\u7ebf\u5206\u9694\n    \n# \u5176\u5b83\u7ea6\u5b9a\n    1. \u683c\u5f0f\u5316 - \u4f7f\u7528yapf\u63d2\u4ef6\u683c\u5f0f\u5316\u4ee3\u7801 # pip3 install yapf\n    2. \u517c\u5bb9\u6027 - \u76f8\u540cx\u7248\u672c, \u505a\u5230\u5411\u540e\u517c\u5bb9, \u5c3d\u91cf\u505a\u5230\u5411\u524d\u517c\u5bb9\n    3. \u66f4\u65b0\u65e5\u5fd7 - \u63d0\u4f9by\u7248\u672c\u7684\u8be6\u7ec6\u53d8\u66f4\u65e5\u5fd7\u548c\u65f6\u95f4, \u505a\u5230\u63cf\u8ff0\u7b80\u7ec3\u3001\u5206\u7c7b\u6b63\u786e\n    4. \u5b9e\u73b0\u8303\u56f4 - \u4e0d\u6d89\u53ca\u4e1a\u52a1\u4ee3\u7801, \u5220\u9664\u5197\u4f59\u4ee3\u7801/\u6ce8\u91ca, \u505a\u5230\u76f8\u5bf9\u72ec\u7acb\u6027\u548c\u901a\u7528\u6027\n    5. \u6807\u70b9\u7b26\u53f7 - \u4ee3\u7801\u6bb5\u4e2d\u7684\u9017\u53f7\u3001\u5192\u53f7\u3001\u5206\u53f7\u5168\u90e8\u4f7f\u7528\u82f1\u6587\u7b26\u53f7\n    5. \u7c7b\u578b\u6ce8\u91ca - \u5c3d\u91cf\u63d0\u4f9b\u4ee3\u7801\u7c7b\u578b\u6ce8\u91ca\n        - int/float/str/bool/None\n        - from typing import Dict, List, Tuple, Optional, Union, Any\n```\n\n## \u6253\u5305\u8bf4\u660e\n\n``` shell\n# \u5c06\u672c\u5730\u76ee\u5f55\u4f5c\u4e3a\u5e93\u5b89\u88c5\u8c03\u8bd5\npython3 -m pip install --upgrade pip setuptools wheel\npip3 install -e .[full,docs,build]\n\n# \u624b\u52a8\u683c\u5f0f\u5316\u4ee3\u7801\n./build.sh format\n\n# \u7f16\u8bd1\u548c\u9884\u89c8\u6587\u6863\n./build.sh doc\n\n# \u7f16\u8bd1\u5168\u90e8\n./build.sh\n\n# \u66f4\u65b0\u7248\u672c\u53ca\u7f16\u8bd1 - x/y/z\n./build.sh z\n```\n\n## \u9644\u5f55\n\n<a id=\"sphinx-google-style\"></a>\n\n### Google\u98ce\u683c\u6587\u6863\u7f16\u5199\u793a\u4f8b\n\n```shell\n\"\"\"Example Google style docstrings(One line summary).\n\nThis module demonstrates documentation as specified by the `Google Python\nStyle Guide`_. Docstrings may extend over multiple lines. Sections are created\nwith a section header and a colon followed by a block of indented text.\n\nExample:\n    Sections support any reStructuredText formatting, including literal \n    blocks::\n\n        $ python example_google.py\n\n    >>> print([i for i in example_generator(4)])\n    [0, 1, 2, 3]\n\nAttributes:\n    likes_spam: A boolean indicating if we like SPAM or not.\n    eggs: An integer count of the eggs we have laid.\n\nArgs:\n    param1 (int): The first parameter.\n    param2 (str): The second parameter.\n    keys (str): A sequence of strings representing the key of each table \\\n    row to fetch.  String keys will be UTF-8 encoded.\n\nReturns:\n    bool: The return value. True for success, False otherwise.\n\nRaises:\n    IOError: An error occurred accessing the smalltable.\n\nTodo:\n    * For module TODOs, need ``sphinx.ext.todo`` extension\n    * This is colorful block\n\nNote:\n    This is colorful block\n\nWarning:\n    This is colorful block\n\nSee Also:\n    This is colorful block. `PEP 484`_ type annotations are supported.\n\n.. _Google Python Style Guide:\n    http://google.github.io/styleguide/pyguide.html\n\n.. _PEP 484:\n    https://www.python.org/dev/peps/pep-0484/\n\"\"\"\n```\n\n### Pypi\u5b98\u65b9\u6253\u5305\u8bf4\u660e\n\n```shell\n1. \u6ce8\u518c\u8d26\u6237, \u914d\u7f6etoken  # https://pypi.org/\n    # cat ~/.pypirc\n    [pypi]\n        username = __token__\n        password = pypi-xxxxxxxxxxxxxxxxxxxxxxxxxx\n    \n2. \u5b89\u88c5\u4f9d\u8d56\n    python3 -m pip install --upgrade pip setuptools wheel\n    pip3 install build virtualenv twine\n\n3. \u6267\u884c\u6253\u5305\n    python3 -m build\n\n4. \u6267\u884c\u4e0a\u4f20\n    python3 -m twine upload --repository pypi dist/*\n```\n\n\n### \u53c2\u8003\u94fe\u63a5\n\n- [[\u5b98\u65b9] Python\u9879\u76ee\u6253\u5305](https://packaging.python.org/en/latest/tutorials/packaging-projects/)\n- [[\u5b98\u65b9] Read the Docs\u7b80\u660e\u6587\u6863](https://docs.readthedocs.io/en/stable/)\n- [[\u5b98\u65b9] Sphinx\u6587\u6863](https://www.sphinx-doc.org/en/master/index.html)\n- [[\u5b98\u65b9] Sphinx Read the Docs\u4e3b\u9898](https://sphinx-rtd-theme.readthedocs.io/en/stable/index.html)\n- [[\u5b98\u65b9] Sphinx Google\u7f16\u7801\u98ce\u683c\u652f\u6301](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/)\n- [[\u5b98\u65b9] Google\u5f00\u6e90\u9879\u76ee\u98ce\u683c\u6307\u5357-\u4e2d\u6587\u7248][google-style]\n- [[\u5b98\u65b9] Python PEP-8](https://peps.python.org/pep-0008)\n- [[\u5b98\u65b9] Python Cookbook](https://python3-cookbook.readthedocs.io/zh_CN/latest/copyright.html)\n\n[google-style]: https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/\n\n[github-stars-badge]: https://img.shields.io/github/stars/gnzhoutian/mini_toolbox.svg\n[github-stars-link]: https://github.com/gnzhoutian/mini_toolbox/stargazers\n\n[github-forks-badge]: https://img.shields.io/github/forks/gnzhoutian/mini_toolbox.svg\n[github-forks-link]: https://github.com/gnzhoutian/mini_toolbox/network\n\n[github-issues-badge]: https://img.shields.io/github/issues/gnzhoutian/mini_toolbox.svg\n[github-issues-link]: https://github.com/gnzhoutian/mini_toolbox/issues\n\n[github-license-badge]: https://img.shields.io/badge/license-MIT-blue.svg\n[github-license-link]: https://raw.githubusercontent.com/gnzhoutian/mini_toolbox/main/LICENSE\n\n[python-badge]: https://img.shields.io/badge/python-3.6%2B-orange\n[python-link]: https://pypi.org/project/mini-toolbox\n\n[rtd-badge]: https://readthedocs.org/projects/mini-toolbox/badge/?version=latest\n[rtd-link]: https://mini-toolbox.readthedocs.io?badge=latest\n\n[pypi-badge]: https://img.shields.io/pypi/v/mini-toolbox.svg\n[pypi-link]: https://pypi.org/project/mini-toolbox\n\n[install-badge]: https://img.shields.io/pypi/dw/mini-toolbox?label=pypi%20installs\n[install-link]: https://pypistats.org/packages/mini-toolbox\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python\u8ff7\u4f60\u5de5\u5177\u7bb1\uff0c\u5305\u542b\u7b80\u5316\u7684\u5e38\u7528\u5de5\u5177\uff0c\u65e8\u5728\u5e2e\u52a9\u811a\u672c\u5feb\u901f\u5f00\u53d1\u3002",
    "version": "1.1.0",
    "project_urls": {
        "Changelog": "https://mini-toolbox.readthedocs.io/latest/CHANGELOG.html",
        "Documentation": "https://mini-toolbox.readthedocs.io",
        "Homepage": "https://pypi.org/project/mini-toolbox",
        "Issues": "https://github.com/gnzhoutian/mini_toolbox/issues",
        "Repository": "https://github.com/gnzhoutian/mini_toolbox.git"
    },
    "split_keywords": [
        "mini-toolbox",
        " mini-tools",
        " toolbox",
        " tools"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b7866e4023cd1de5471586844a46c81185b9700ed7308231f666c9ef6302066e",
                "md5": "40ce2d1b757f04813ca9f58c85341894",
                "sha256": "8eb6068e254698649b932e90410de30734fb45649ab02284f68cf16a0b92813e"
            },
            "downloads": -1,
            "filename": "mini_toolbox-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "40ce2d1b757f04813ca9f58c85341894",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 46320,
            "upload_time": "2024-09-08T13:37:08",
            "upload_time_iso_8601": "2024-09-08T13:37:08.078227Z",
            "url": "https://files.pythonhosted.org/packages/b7/86/6e4023cd1de5471586844a46c81185b9700ed7308231f666c9ef6302066e/mini_toolbox-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8de2280fe8617aa07f73d4be1b01cda01f0546bf181349a759cf74c5fb9b58a2",
                "md5": "97d0b7e7df89b82f812e908146185be1",
                "sha256": "f41dd61965995b1af3c86d24cc0e8a661f415977f76f55ad906feaf36ced8a50"
            },
            "downloads": -1,
            "filename": "mini_toolbox-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "97d0b7e7df89b82f812e908146185be1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 50379,
            "upload_time": "2024-09-08T13:37:10",
            "upload_time_iso_8601": "2024-09-08T13:37:10.105666Z",
            "url": "https://files.pythonhosted.org/packages/8d/e2/280fe8617aa07f73d4be1b01cda01f0546bf181349a759cf74c5fb9b58a2/mini_toolbox-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-08 13:37:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gnzhoutian",
    "github_project": "mini_toolbox",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "mini-toolbox"
}
        
Elapsed time: 0.64318s