hashio


Namehashio JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttp://github.com/rsgalloway/hashio
SummaryCustom file and directory checksum tool
upload_time2024-12-15 19:21:19
maintainerNone
docs_urlNone
authorRyan Galloway
requires_python>=3.6
licenseBSD 3-Clause License
keywords
VCS
bugtrack_url
requirements envstack xxhash
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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"
}
        
Elapsed time: 0.39383s