Package: aletheia
A Python 3 implementation ofAletheia.This is how we get fromI read it on the Internet, so it must be true.toYesterday, the Guardian had a story about a prominent politician doing
something they weren’t supposed to be doing.  The video footage was
certified authentic, and the author of the article stands by her work.Aletheia is a little program you run to attach your name – and reputation –
to the files you create: audio, video, and documentation, all of it can carry
authorship, guaranteed to be tamper proof.Once you use Aletheia to sign your files, you can share them all over the web,
and all someone has to do to verify the file’s author is run Aletheia against
the file they just received.  The complication of fetching public keys and
verifying signatures is all done for you.If this sounds interesting to you, have a look atthe documentationor even
install it and try it out yourself.The GoalI want to live in a world where journalism means something again.  Where “some
guy on the internet” making unsubstantiated claims can be fact-checked by
organisations who have a reputation for doing the work of accurate reporting.
More importantly though, I think we need a way to be able to trust what we see
again.New technologies are evolving every day that allow better and better fakes to
be created.  Now more than ever we need a way to figure out whether we trust
the source of something we’re seeing.  This is an attempt to do that.How to Use itThe process is pretty straight forward.  Install the system dependencies as
described in thesetup documentationand then:$pipinstallaletheiaOnce it’s installed, you can verify a file to try it out.  Usethis oneas a
starting example.Command Line API$aletheiaverifypath/to/test.jpgPython APIfromaletheia.utilsimportverifyverify("path/to/test.jpg")More details can be found in thecommand line APIandPython APIdocumentation.How to Run the TestsAletheia usespytest, so assuming you’ve got a working environment (with
libmagic, exiftool, and ffmpeg installed and working) you can just run it from
the project root:$pytestThe reality of this project however is that getting a working environment setup
perfectly can be a pain, especially when all you want to do is run the tests.
So to that end, we’ve got some Docker containers setup for you.To run your tests in a lightweightAlpine Linuxcontainer, just run this:$dockerrun--rm-v$(pwd):/app-itregistry.gitlab.com/danielquinn/aletheia-python:alpine-python3.7bash-c'cd /app && pytest'That’ll run the entire battery of tests in an environment containing all the
tools Aletheia needs to do its thing.  Alternatively, you can just jump into
an instance of the container and use it as a sort of virtualenv:$dockerrun--rm-v$(pwd):/app-itregistry.gitlab.com/danielquinn/aletheia-python:alpine-python3.7/bin/bash$cd/app$pytestTesting for Multiple EnvironmentsGitLab will automatically run the tests in a multitude of environments
(Alpine:py3.6, Arch, Debian:py3.5, Debian:py3.7, etc.), but if you want to do
that locallybeforeit goes up to GitLab, there’s a handy test script for you
that does all the work:$./tests/cross-platformJust note that this script will download all of the required Docker containers
from GitLab to do its thing, so you’re looking at a few hundred MB of disk
space consumed by this process.Colophon & DisambiguationThis project is named for the Greek goddess of truth & verity – a reasonable
name for a project that’s trying to restore truth and verified origins to the
web.  It also doesn’t hurt that the lead developer’s wife is Greek ;-)It’s been noted that there’sanother project out there with the same name.
The two projects are totally unrelated, despite the identical nameandthe
fact that both lead developers are named “Daniel”.