跳转到主要内容

Python的md5sum等命令行工具的替代品。

项目描述

主页:

https://github.com/avalentino/hashsum

Latest Version Supported Python versions License GHA status page Coverage Status

用法

usage: hashsum [-h] [-a] [--tag] [-b | -t] [-c | -l] [--quiet]
               [--status] [--strict] [-w] [-m] [--version]
               [FILE [FILE ...]]

Compute and check message digest with different hash algorithms.
The sums are computed as described in [1].
When checking, the input should be a former output of this program.
The default mode is to print a line with checksum, a character
indicating input mode ('*' for binary, space for text), and name
for each FILE.

[1] https://docs.pythonlang.cn/3/library/hashlib.html

positional arguments:
  FILE                  name of file to process. If not specified,
                        or set to -, data are read form the
                        standard input

optional arguments:
  -h, --help            show this help message and exit
  -a , --algorithm      specify the hashing algorithm
                        (default: 'md5')
  --tag                 create a BSD-style checksum
  -b, --binary          read input data in binary mode
  -t, --text            read input data in text mode (default)
  -c, --check           read checksum(s) form FILE and check them
  -l, --list-algorithms
                        list available hashing algorithms
  -m, --multi-thread    perform I/O and hash computation in separate threads
                        (default=False). Can speed-up computation on large
                        files while it is not recommended for small files.
  --version             show program's version number and exit

check:
  Options that are useful only when verifying checksums

  --quiet               don't print OK for each successfully
                        verified file
  --status              don't output anything, status code shows
                        success
  --strict              exit non-zero for improperly formatted
                        checksum lines
  -w, --warn            warn about improperly formatted checksum
                        lines

包测试

测试包的推荐方法是使用 pytest

$ python3 -m pytest -v

========================== test session starts ==========================
platform linux -- Python 3.9.5, pytest-6.0.2, py-1.10.0, pluggy-0.13.0
hashsum version:      1.4.0.dev0
Platform:             Linux-5.11.0-24-generic-x86_64-with-glibc2.33
Byte-ordering:        little
Default encoding:     utf-8
Default FS encoding:  utf-8
Default locale:       ('it_IT', 'UTF-8')
rootdir: /home/antonio/projects/hashsum, configfile: setup.cfg
plugins: hypothesis-5.43.3, remotedata-0.3.2, doctestplus-0.9.0,
        openfiles-0.5.0, flake8-1.0.6, filter-subpackage-0.1.1, cov-2.10.1
collected 26 items

tests/test_hashsum.py::ComputeSumTestCase::test_binary PASSED       [  3%]
tests/test_hashsum.py::ComputeSumTestCase::test_binary_auto PASSED  [  7%]

[...]

tests/test_hashsum.py::ThreadedCheckTestCase::test_text PASSED      [100%]

========================== 26 passed in 0.29s ===========================

请注意,一些基本系统信息(可用于错误报告)也会打印在屏幕上。

"pytest"的默认配置存储在源包根目录中的 setup.cfg 文件中

[tool:pytest]
addopts = -p no:warnings -p no:logging

或者可以使用

$ python3 -m unittest -v tests/test_hashsum.py

许可协议

hashsum 软件根据“3-Clause BSD License”条款进行分发,详细信息请参阅 LICENSE.txt 文件。

hashsum 更新日志

hashsum v1.4.1 (2021/07/18)

  • 修复了轮生成问题:生成的轮不是通用的,它们仅适用于Python 3.6及以上版本

hashsum v1.4.0 (2021/07/18)

  • 放弃对Python < 3.6的支持。

  • 切换到GitHub Actions进行持续集成。

  • 修复Windows上文本模式下校验和的验证。

  • 重构并简化测试代码。

  • 添加构建系统支持(pyproject.toml

  • 切换到声明性设置配置(setup.cfg)。

hashsum v1.3.0(2019年8月25日)

  • 将hashsum.VERSION重命名为hashsum.__version__

  • 添加测试实用函数

  • 推荐使用小写字母作为哈希函数名称

  • 提高线程计算校验和时对未知/不可用哈希函数的鲁棒性

  • 测试CLI中添加了新的–failfast选项

  • 改进了基准测试脚本

  • 更新了man页面

  • 提高了与pytest的兼容性

hashsum v1.2.2(2016年11月15日)

  • 修复与Windows操作系统的兼容性问题

hashsum v1.2.1(2016年8月24日)

  • 微调打包修复

hashsum v1.2.0(2016年8月24日)

  • 提高与OpenSSL命令行工具的兼容性

  • 更好地迭代数据块

  • 可选的线程哈希计算

  • 重构:整个代码在tools中重新组织

  • 删除所有与getcite>gettext相关的文件

hashsum v1.1.1(2016年1月30日)

  • 将man页面包含在tarball中

hashsum v1.1(2016年1月30日)

  • 修复IncrementalNewlineDecoder.decoder签名

  • 在文本模式下读取时,始终使用final=True调用decode

  • 将校验和计算代码进行分解

  • 所有Exceptions现在都在main函数中捕获

  • 添加单元测试

  • 代码清理

  • 添加NEWS.rst文件

  • 添加man页面

  • 改进命令行帮助(也修复了一些错误)

  • 通过travis-ci启用自动测试

hashsum v1.0(2016年1月4日)

  • 初始发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

hashsum-1.4.1.tar.gz (15.4 kB 查看哈希

上传时间:

构建分发

hashsum-1.4.1-py3-none-any.whl (10.5 kB 查看哈希

上传时间: Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面