changeset 337:e89eb63fc319

treesum: .write_file_digest() method: the "size" parameter is now positional and mandatory
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 31 Mar 2025 13:38:57 +0200
parents 0049f486e1cd
children e163e6754071
files cutils/treesum.py
diffstat 1 files changed, 17 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/cutils/treesum.py	Mon Mar 31 12:57:39 2025 +0200
+++ b/cutils/treesum.py	Mon Mar 31 13:38:57 2025 +0200
@@ -702,7 +702,7 @@
                     self._algorithm[1],
                     b"./@/",
                     dir_dgst.digest(),
-                    size=sz)
+                    sz)
             self._writer.flush()
         else:
             self._generate(os.path.normpath(root), tuple())
@@ -757,7 +757,8 @@
             if self._size_only:
                 self._writer.write_size(opath, None)
             else:
-                self._writer.write_file_digest(self._algorithm[1], opath, None)
+                self._writer.write_file_digest(
+                    self._algorithm[1], opath, None, None)
             self._writer.flush()
             return (e.errno, None, None, None)
 
@@ -844,7 +845,7 @@
                                     collector.algorithm or "MD5",
                                     opath,
                                     None,
-                                    size=sz)
+                                    sz)
                                 return (errno.ESRCH, None, None, None)
                         # We got all required infos without errors
                         self._writer.write_accept_treesum_file(fpath)
@@ -853,7 +854,7 @@
                         else:
                             self._writer.write_file_digest(
                                 collector.algorithm, opath, collector.digest,
-                                size=sz)
+                                sz)
                         return (0,
                                 collector.algorithm,
                                 collector.digest,
@@ -872,8 +873,7 @@
                             self._writer.write_size(opath, None)
                         else:
                             self._writer.write_file_digest(
-                                self._algorithm[1], opath, None,
-                                size=None)
+                                self._algorithm[1], opath, None, None)
                         return (eno, None, None, None)
         #
         # No treesum file: just process normally with digesting
@@ -971,7 +971,7 @@
                             util.interpolate_bytes(
                                 b"%s/./@%s", opath, special_tag),
                             linkdgst.digest(),
-                            size=sz)
+                            sz)
                 else:
                     #
                     # Follow the symlink to special file and/or handle a
@@ -1011,7 +1011,7 @@
                             util.interpolate_bytes(
                                 b"%s/./%s", opath, special_tag),
                             b"",
-                            size=sz)
+                            sz)
             elif fso.is_dir:
                 assert fso.stat is not None        # because .is_dir is True
                 if fso.is_symlink and not self._follow_symlinks.directory:
@@ -1052,7 +1052,7 @@
                             self._algorithm[1],
                             util.interpolate_bytes(b"%s/./@/", opath),
                             linkdgst.digest(),
-                            size=sz)
+                            sz)
                 else:
                     #
                     # Follow the symlink to dir or handle a "real" directory
@@ -1145,7 +1145,7 @@
                             self._algorithm[1],
                             util.interpolate_bytes(b"%s/./@", opath),
                             linkdgst.digest(),
-                            size=sz)
+                            sz)
                 else:
                     #
                     # Follow the symlink to file or handle a "real" file
@@ -1175,7 +1175,7 @@
                             self._writer.write_size(opath, None)
                         else:
                             self._writer.write_file_digest(
-                                self._algorithm[1], opath, None)
+                                self._algorithm[1], opath, None, None)
                     else:
                         #
                         # Ok: File has normal stat info
@@ -1223,8 +1223,7 @@
                                 sz = (fso.stat.st_size if self._print_size
                                       else None)
                                 self._writer.write_file_digest(
-                                    self._algorithm[1], opath, None,
-                                    size=sz)
+                                    self._algorithm[1], opath, None, sz)
                             else:
                                 dir_dgst.update(util.interpolate_bytes(
                                     b"%d:%s,%d:%s,",
@@ -1235,8 +1234,7 @@
                                 sz = (fso.stat.st_size if self._print_size
                                       else None)
                                 self._writer.write_file_digest(
-                                    self._algorithm[1], opath, dgst,
-                                    size=sz)
+                                    self._algorithm[1], opath, dgst, sz)
             self._writer.flush()
         opath = join_output_path(top, None)
         if opath:
@@ -1256,7 +1254,7 @@
         else:
             sz = dir_size if self._print_size else None
             self._writer.write_file_digest(
-                self._algorithm[1], opath, dir_dgst.digest(), size=sz)
+                self._algorithm[1], opath, dir_dgst.digest(), sz)
         self._writer.flush()
         return (0, self._algorithm[1], dir_dgst.digest(), dir_size)
 
@@ -1346,7 +1344,7 @@
         """
         raise NotImplementedError("write_size")
 
-    def write_file_digest(self, algorithm, filename, digest, size=None):
+    def write_file_digest(self, algorithm, filename, digest, size):
         """
 
         If `size` is `None` and the output of a size is required then this
@@ -1478,7 +1476,7 @@
         self.write(filename)
         self.writeln(b")")
 
-    def write_file_digest(self, algorithm, filename, digest, size=None):
+    def write_file_digest(self, algorithm, filename, digest, size):
         assert isinstance(filename, bytes)
         if digest is not None:
             digest = (base64.b64encode(digest)
@@ -1586,7 +1584,7 @@
         self.write(b"ACCEPT-TREESUM\t")
         self.writeln(filename)
 
-    def write_file_digest(self, algorithm, filename, digest, size=None):
+    def write_file_digest(self, algorithm, filename, digest, size):
         assert isinstance(filename, bytes)
         if digest is not None:
             digest = (base64.b64encode(digest)