معرفی شرکت ها


copy2hash-0.5


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Copy or rename any file(s) to a hash-secured filename via terminal
ویژگی مقدار
سیستم عامل -
نام فایل copy2hash-0.5
نام copy2hash
نسخه کتابخانه 0.5
نگهدارنده ['Anselm Hahn']
ایمیل نگهدارنده ['Anselm.Hahn@gmail.com']
نویسنده Anselm Hahn
ایمیل نویسنده Anselm.Hahn@gmail.com
آدرس صفحه اصلی https://github.com/Anselmoo/copy2hash
آدرس اینترنتی https://pypi.org/project/copy2hash/
مجوز MIT
[![Travis (.com)](https://img.shields.io/travis/com/Anselmoo/copy2hash?logo=travis)](https://travis-ci.com/github/Anselmoo/copy2hash) [![Codecov](https://img.shields.io/codecov/c/github/Anselmoo/copy2hash?logo=Codecov)](https://codecov.io/gh/Anselmoo/copy2hash) [![CodeFactor Grade](https://img.shields.io/codefactor/grade/github/Anselmoo/copy2hash/master?logo=codefactor)](https://www.codefactor.io/repository/github/anselmoo/copy2hash) [![Code Style: Black](https://img.shields.io/badge/code%20style-black-black.svg)](https://github.com/ambv/black) [![GitHub](https://img.shields.io/github/license/Anselmoo/copy2hash?logo=GitHub)](https://github.com/Anselmoo/copy2hash/blob/master/LICENSE) [![Build Status](https://dev.azure.com/anselmhahn/anselmhahn/_apis/build/status/Anselmoo.copy2hash?branchName=master)](https://dev.azure.com/anselmhahn/anselmhahn/_build/latest?definitionId=5&branchName=master) [![Azure DevOps coverage](https://img.shields.io/azure-devops/coverage/anselmhahn/anselmhahn/5?logo=Azure-Devops&logoColor=blue)](https://dev.azure.com/anselmhahn/anselmhahn/_build/latest?definitionId=5&branchName=master) # copy2hash ## Copy or rename any file(s) to a _hash-secured_ filename via terminal --- `copy2hash` copies or renames file(s) with regular titles to file(s) with a _hash-secured_ title by using the terminal or in `python`-framework. Having unique filenames is essential for the correct indexing of databases, especially if the data come from different pipelines. Also, it is important if the filename or/and directory contains _meta_-information, which extend the length of the valid file lengths. Having _regular_-filename pairs such as `example.input` ⇄ `example.output` can brings very fast confusion and makes analysis of data very confusing. The secured hash algorithms (**SHA**) [1-5] in `copy2hash` provides a safe way to generate distinguishable filenames like: `example.input` ⇄ `example.output` ⟶ `7e2229daab26b247b877565505b6aaf131014f2cb64e4c4ca796fbe0dc2fadc4.input` ⇄ `4bd077ed771af9ad97e3f2dc45583a14af014ebafb73a846f2436a168ae3eafa.output` The following **SHA** algorithms [1-5] are available: 1. `sha1` 2. `sha224` 3. `sha256` 4. `sha384` 5. `sha512` 6. `blake2b` 7. `blake2s` 8. `md5` 9. `sha3_224` 10. `sha3_256` 11. `sha3_384` 12. `sha3_512` 13. `shake_128` with fixed `32` character length 14. `shake_256` with fixed `32` character length and the copied or moved processed will be automatically logged as: 1. `*.csv`-file: 2. `*.json`-file 3. `*.pkl`-file 4. `*.txt`-file 5. `*.yaml`-file 6. `*.xml`-file ## Installation --- `pip install copy2hash` or `pip install https://github.com/Anselmoo/copy2hash.git` or ```bash pip install -r requirements.txt python setup.py install ``` ## Requirments --- 1. Python3 >= 3.6 2. [dict2xml>=1.7.0](https://github.com/lucasicf/dict2xml) 3. [PyYAML>=5.3.1](https://github.com/yaml/pyyaml) ## Usage --- ```bash ╰─ copy2hash * -h usage: copy2hash [-h] [-r [REPORT [REPORT ...]]] [-rn REPORT_NAME] [-s [SHA [SHA ...]]] [-dir DIRECTORY] [-mv] [-fxt] [-sxt] [-nfxt] [-ver] [-v] [infile [infile ...]] copy or rename any file(s) to a hash-secured filename via terminal positional arguments: infile file(s) to copy or to rename with regular filename to secured hash filename optional arguments: -h, --help show this help message and exit -r [REPORT [REPORT ...]], --report [REPORT [REPORT ...]] define one or a series of file format(s) for the rename-report(s) to retrace the copying or rename of the file(s). The availabel file formats are:'csv', 'json', 'pkl', 'txt', 'yaml', 'xml', or own file- extension as ASCII; default is 'json' -rn REPORT_NAME, --report_name REPORT_NAME define the report name for the copied or move file(s); default is 'copy_report' -s [SHA [SHA ...]], --sha [SHA [SHA ...]] define one or a series of secure hash algorithms (sha) for copying or rename of the file(s). The availabel secure hash algorithms (sha) are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'blake2b', 'blake2s', 'md5', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'shake_128', 'shake_256'; default 'sha256'. The 'shake_128' and 'shake_256' are defined for 32 character length. -dir DIRECTORY, --directory DIRECTORY replace the standard directory ('./') by a specific directory ('./path'). If the specific directory not exist, the directory will be created. This can required sudo rights. -mv, --move moving the file(s) instead of copying the files with regular filename to secure hash filename -fxt, --file_extension replaced the given file-extension by the abbreviations of the used secure hash algorithms (sha) -sxt, --file_suffix removed the given file-extension and add a suffix in front of the file based on the abbreviations of the used secure hash algorithms (sha). It is seperated by colon like 'sha256-e3b0c44298fc1c149afbf4c8996fb92427a e41e4649b934ca495991b7852b855' -nfxt, --no_file_extension removed the any file-extension and just copy or move the file(s) as sha renamed file(s) -ver, --verbose enable the verbose mode -v, --version displays the current version of cop2hash ``` ## Other Examples --- For keeping the regular file-extension, use: `copy2hash * -r json csv yaml` | _regular_-filename | | _sha256_-filename | | ------------------ | ------ | ---------------------------------------------------------------------- | | `example.out` | → | `c8e1f67ad67b8f456afe76b5eb5d6dd0a919b1537cd67b9419f86158e4d9c1b4.out` | | `example.t` | → | `97c7bc3705df72f76cf3d3d55228751bc6895a488fb004b112914d4a05447c16.t` | | `example.tx` | → | `11297eae82d7866c4dd42e79b8082a5256fa3d54e7e1bf60ab87747e9b664303.tx` | | `example.txt` | → | `e7cb632359a2be17c1008b50f9ec85691cd5d66834d5fe8f63ef65ceb06682ee.txt` | | `example_1.txt` | → | `85a6fae2fca1342a85222088ff0342cbea8222e4140aba96690691c9d58e5786.txt` | | `example_2.txt` | → | `0329cb55ddfab933d9753686ddb193148003611df672a4a41aad014ead4767f9.txt` | | `example_l.txt` | → | `eb4d990362cbf5cccd0b49374b71ca3f799c7262352c9fda7ba875ba034f7168.txt` | Removing the regular file-extension and adding the SHA-key in front, use: `copy2hash * -r json csv yaml -sxt` | _regular_-filename | | _sha256_-filename | | ------------------ | ------ | ------------------------------------------------------------------------- | | `example.out` | → | `sha256-c8e1f67ad67b8f456afe76b5eb5d6dd0a919b1537cd67b9419f86158e4d9c1b4` | | `example.t` | → | `sha256-97c7bc3705df72f76cf3d3d55228751bc6895a488fb004b112914d4a05447c16` | | `example.tx` | → | `sha256-11297eae82d7866c4dd42e79b8082a5256fa3d54e7e1bf60ab87747e9b664303` | | `example.txt` | → | `sha256-e7cb632359a2be17c1008b50f9ec85691cd5d66834d5fe8f63ef65ceb06682ee` | | `example_1.txt` | → | `sha256-85a6fae2fca1342a85222088ff0342cbea8222e4140aba96690691c9d58e5786` | | `example_2.txt` | → | `sha256-0329cb55ddfab933d9753686ddb193148003611df672a4a41aad014ead4767f9` | | `example_l.txt` | → | `sha256-eb4d990362cbf5cccd0b49374b71ca3f799c7262352c9fda7ba875ba034f7168` | ### More Examples Generate a report in the `json`- and `yaml`-format: `copy2hash example.input example.output -r json yaml` ```json { "index": [0, 1], "filename": ["example.input", "example.output"], "mode": ["copy", "copy"], "home_dir": [".", "."], "copy_dir": [".", "."], "sha256": [ "7e2229daab26b247b877565505b6aaf131014f2cb64e4c4ca796fbe0dc2fadc4.input", "4bd077ed771af9ad97e3f2dc45583a14af014ebafb73a846f2436a168ae3eafa.output" ] } ``` ```yaml copy_dir: - . - . filename: - example.input - example.output home_dir: - . - . index: - 0 - 1 mode: - copy - copy sha256: - 7e2229daab26b247b877565505b6aaf131014f2cb64e4c4ca796fbe0dc2fadc4.input - 4bd077ed771af9ad97e3f2dc45583a14af014ebafb73a846f2436a168ae3eafa.output ``` ## Using as Built-in --- ```python from copy2hash import copy2hash from pathlib import Path args = { "infile": list(Path("test").glob("example1.txt")), "report": ["json"], "report_name": "copy_report", "sha": ["sha256"], "directory": None, "move": None, "file_extension": False, "file_suffix": False, "no_file_extension": False, "verbose": True, "version": False, } copy2hash.command_line_runner(opt=args) ``` ## Author --- - [Anselm Hahn](https://github.com/Anselmoo) ## Contributions --- I'm happy to accept how to improve batchplot; please forward your [issues](https://github.com/Anselmoo/copy2hash/issues) or [pull requests](https://github.com/Anselmoo/copy2hash/pulls). Keep in mind that [pull requests](https://github.com/Anselmoo/copy2hash/pulls) have to pass TravisCI in combination with [flake8](https://github.com/PyCQA/flake8), [black](https://github.com/psf/black), and [pydocstyle](https://github.com/PyCQA/pydocstyle). ## License --- The source code of `copy2hash` is licensed under the [MIT license](https://github.com/Anselmoo/copy2hash/blob/master/LICENSE). ## References --- 1. https://docs.python.org/3/library/hashlib.html 2. https://tools.ietf.org/html/rfc1321.html 3. https://en.wikipedia.org/wiki/NIST_hash_function_competition 4. https://131002.net/blake/ 5. https://docs.python.org/3/library/hashlib.html#hashlib.blake2 CHANGES ------- {changes} TODO ---- {todo}


نیازمندی

مقدار نام
>=1.7.0 dict2xml
>=5.3.1 PyYAML
- pipenv


نحوه نصب


نصب پکیج whl copy2hash-0.5:

    pip install copy2hash-0.5.whl


نصب پکیج tar.gz copy2hash-0.5:

    pip install copy2hash-0.5.tar.gz