<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"># sha1sum_stdin.py

from typing import List
import hashlib
import pathlib
import sys


def process_file(filename: str) -&gt; bytes:
    return pathlib.Path(filename).read_bytes()


def process_stdin() -&gt; bytes:
    return bytes("".join(sys.stdin), "utf-8")


def sha1sum(data: bytes) -&gt; str:
    sha1_hash = hashlib.sha1()
    sha1_hash.update(data)
    return sha1_hash.hexdigest()


def output_sha1sum(data: bytes, filename: str = "-") -&gt; None:
    print(f"{sha1sum(data)}  {filename}")


def main(args):
    if not args:
        output_sha1sum(process_stdin())
    for arg in args:
        if arg == "-":
            output_sha1sum(process_stdin(), "-")
            continue
        try:
            output_sha1sum(process_file(arg), arg)
        except FileNotFoundError as err:
            print(f"{sys.argv[0]}: {arg}: {err.strerror}", file=sys.stderr)


if __name__ == "__main__":
    main(sys.argv[1:])


# ejecutar
# python3 sha1sum_stdin.py
# Beautiful is better than ugly.
# Ctrl-D


# ejecutar
# python3 sha1sum_stdin.py bad_file.txt
</pre></body></html>