From a6b67613b89ee1d981c3c226d2f8d391cca2c146 Mon Sep 17 00:00:00 2001 From: Peter Briggs Date: Thu, 15 Dec 2022 19:16:39 +0000 Subject: [PATCH] bcftbx/Md5sum: reimplement 'md5sum' function to reduce memory footprint. --- bcftbx/Md5sum.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/bcftbx/Md5sum.py b/bcftbx/Md5sum.py index d9695167..e9e87eb0 100644 --- a/bcftbx/Md5sum.py +++ b/bcftbx/Md5sum.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # # Md5sum.py: classes and functions for md5 checksum operations -# Copyright (C) University of Manchester 2012-2020 Peter Briggs +# Copyright (C) University of Manchester 2012-2022 Peter Briggs # ######################################################################## # @@ -471,20 +471,19 @@ def md5sum(f): Returns: Md5sum digest for the named file. - """ chksum = hashlib.md5() close_fp = False try: - fp = io.open(f,"rb",buffering=BLOCKSIZE) + fp = open(f,"rb") close_fp = True except TypeError: fp = f - for block in iter(fp.read,''): - if block: - chksum.update(block) - else: + while True: + buf = fp.read(BLOCKSIZE) + if not buf: break + chksum.update(buf) if close_fp: fp.close() return chksum.hexdigest()