Compare and report on two artefacts summaries.
Project description
Artefacts Comparison
artefactscomparison
is a Python package to compare and report on two artefacts summaries.
An artefact summary is a CSV listing files' paths and SHA512 sum. Assuming artefacts are saved under the results/
directory, an artefact summary is generated as follows:
$ find results/ -type f `# list files in the 'results/' directory…`\
-exec sha512sum {} \; `# … and compute their SHA-512 sum`\
| sed 's/ /,/' `# use comma — instead of double space — as separator`\
| cat <(echo 'sha512,file_name') - `# add header to CSV`
sha512,file_name
<SHA512>,results/artefact_1
<SHA512>,results/path/to/artefact_2
The artefactscomparison
package provides a CLI entry point that outputs a diff report on two artefacts summaries:
$ artefacts_comparison --base base_artefact_summary.csv --head head_artefact_summary.csv
@@ 3 file(s) added @@
+ path/to/new_file_1
+ path/to/new_file_2
+ path/to/new_file_3
@@ 1 file(s) deleted @@
- path/to/removed_file.csv
@@ 2 file(s) renamed @@
! path/to/to_rename_1 → path/to/renamed_1
! path/to/to_rename_2 → path/to/renamed_2
# 2 other file(s) remain unmodified
User Quickstart
Installation
You can install artefactscomparison
from PyPI:
pip install artefactscomparison
How to use
From the command line:
artefacts_comparison --head head_artefact_summary.csv --base base_artefact_summary.csv
where:
head_artefact_summary.csv
is the artefact summary of the branch you want to merge,base_artefact_summary.csv
is the artefact summary of the branch your PR points to (i.e.main
,master
, etc.).
Development Quickstart
This project adheres to Semantic Versioning, and releases descriptions can be found in CHANGELOG.md
.
Use your own environment management preference
For pyvenv
:
python -m venv .venv/
source .venv/bin/activate
Install this package
git clone git@github.com:EBoisseauSierra/artefacts_comparison.git
cd artefacts_comparison
pip install --upgrade pip
pip install -e '.[dev,test]'
Initialise pre-commit hooks
The pre-commit hooks defined in this repo ensure that code formating and linting is applied on any piece of code committed. This should enable a cleaner code base and less “formatting noise” in commits.
To install the hooks, simply run:
pre-commit install
Contributing
- Fork this repo (https://github.com/EBoisseauSierra/artefacts_comparison/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
Licence
Distributed under the MIT License. See LICENSE
for more information.
References
- Add comments on multi-line shell commands: https://stackoverflow.com/a/12797512/5433628
- Compute the SHA sum of all files in a directory: https://askubuntu.com/a/1091369
- Prefix the stdout: https://stackoverflow.com/a/33139133/5433628
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for artefactscomparison-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c59291b59c7bac81363612ab63a39ab20dd01c36383f8a847da2efd11dedb79 |
|
MD5 | 7aa211cb40126689506dbc29bb7e45f5 |
|
BLAKE2b-256 | 7ed56e4236532d8dbd97024300208b142158aeaafd284228e8f30f895f0e3be6 |
Hashes for artefactscomparison-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f77fea55bc91a9ed44353d63351f5ef4fe52417485c1ef784437ccfd11dc5503 |
|
MD5 | 07398284aba6da11c1949dc1c8a152a4 |
|
BLAKE2b-256 | 3120ccf86751635438cddb5da5e37b7b94ae152d59e3d32e283db4db61340ad4 |