hashio
======
Custom file and directory checksum tool.
## Features
- multiple hash algos: c4, md5, sha256, sha512, xxh64
- recursively runs checksums on files in directory trees
- ignores predefined file name patterns
- caches results for better performance
## Installation
The easiest way to install:
```bash
$ pip install -U hashio
```
## Usage
Checksum one or more files or directories using one or more hash algorithms
(default is xxh64):
```bash
$ hashio <PATH> [--algo <ALGO>]
```
Recursively checksum and gather metadata all the files in a dir tree, and output
results to a JSON file:
```bash
$ hashio <DIR>
```
Note that files matching patterns defined in `config.IGNORABLE` will be skipped.
Verify paths in previously generated JSON file by comparing stored mtimes (if
available) or regenerated hash values if mtimes are missing or different:
```bash
$ hashio --verify hash.json
```
## Environments
You modifiy settings in the environment stack file `hashio.env`, or create a new
environment stack:
```bash
$ cp hashio.env debug.env
$ vi debug.env # make edits
$ ./debug.env -- hashio
```
## Python API
Generate a `hash.json` file for a given path (Default is the current working
directory):
```python
from hashio.worker import HashWorker
worker = HashWorker(path)
worker.run()
```
Verify pre-generated checksums stored in a `hash.json` file:
```python
from hashio.encoder import verify_checksums
for algo, value, miss in verify_checksums("hash.json"):
print("{0} {1}".format(algo, miss))
```
Raw data
{
"_id": null,
"home_page": "http://github.com/rsgalloway/hashio",
"name": "hashio",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Ryan Galloway",
"author_email": "ryan@rsgalloway.com",
"download_url": "https://files.pythonhosted.org/packages/12/99/7f3657d0ee41bd2048bfe81899a0711548cfb39ce9d383d75307238a33cf/hashio-0.2.0.tar.gz",
"platform": null,
"description": "hashio\n======\n\nCustom file and directory checksum tool.\n\n## Features\n\n- multiple hash algos: c4, md5, sha256, sha512, xxh64\n- recursively runs checksums on files in directory trees\n- ignores predefined file name patterns\n- caches results for better performance\n\n## Installation\n\nThe easiest way to install:\n\n```bash\n$ pip install -U hashio\n```\n\n## Usage\n\nChecksum one or more files or directories using one or more hash algorithms\n(default is xxh64):\n\n```bash\n$ hashio <PATH> [--algo <ALGO>]\n```\n\nRecursively checksum and gather metadata all the files in a dir tree, and output\nresults to a JSON file:\n\n```bash\n$ hashio <DIR>\n```\n\nNote that files matching patterns defined in `config.IGNORABLE` will be skipped.\n\nVerify paths in previously generated JSON file by comparing stored mtimes (if\navailable) or regenerated hash values if mtimes are missing or different:\n\n```bash\n$ hashio --verify hash.json\n```\n\n## Environments\n\nYou modifiy settings in the environment stack file `hashio.env`, or create a new\nenvironment stack:\n\n```bash\n$ cp hashio.env debug.env\n$ vi debug.env # make edits\n$ ./debug.env -- hashio\n```\n\n## Python API\n\nGenerate a `hash.json` file for a given path (Default is the current working\ndirectory):\n\n```python\nfrom hashio.worker import HashWorker\nworker = HashWorker(path)\nworker.run()\n```\n\nVerify pre-generated checksums stored in a `hash.json` file:\n\n```python\nfrom hashio.encoder import verify_checksums\nfor algo, value, miss in verify_checksums(\"hash.json\"):\n print(\"{0} {1}\".format(algo, miss))\n```\n",
"bugtrack_url": null,
"license": "BSD 3-Clause License",
"summary": "Custom file and directory checksum tool",
"version": "0.2.0",
"project_urls": {
"Homepage": "http://github.com/rsgalloway/hashio"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "12997f3657d0ee41bd2048bfe81899a0711548cfb39ce9d383d75307238a33cf",
"md5": "82f98b8415da92e50a786c7552d3d327",
"sha256": "c763daf054ebfb087cbe3addc65355d3785885c954193fdcdd06520e99b03308"
},
"downloads": -1,
"filename": "hashio-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "82f98b8415da92e50a786c7552d3d327",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 16537,
"upload_time": "2024-12-15T19:21:19",
"upload_time_iso_8601": "2024-12-15T19:21:19.976909Z",
"url": "https://files.pythonhosted.org/packages/12/99/7f3657d0ee41bd2048bfe81899a0711548cfb39ce9d383d75307238a33cf/hashio-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-15 19:21:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rsgalloway",
"github_project": "hashio",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "envstack",
"specs": [
[
"==",
"0.7.2"
]
]
},
{
"name": "xxhash",
"specs": [
[
"==",
"3.5.0"
]
]
}
],
"lcname": "hashio"
}