[elbe-devel] [PATCH v2 17/22] filesystem: add support for reading and uncompressing gziped files

Bastian Germann bage at linutronix.de
Tue Jul 2 17:17:21 CEST 2019


> Prepare to read gzipped changelog files.
> Add Filesystem.open_gz() and add gzip:bool param to Filesystem.read_file()
> 
> 
> Signed-off-by: Torben Hohn <torben.hohn at linutronix.de>

Reviewed-by: Bastian Germann <bage at linutronix.de>

> ---
>  elbepack/filesystem.py | 18 ++++++++++++++----
>  1 file changed, 14 insertions(+), 4 deletions(-)
> 
> diff --git a/elbepack/filesystem.py b/elbepack/filesystem.py
> index 450f15248..5c766ba4e 100644
> --- a/elbepack/filesystem.py
> +++ b/elbepack/filesystem.py
> @@ -12,6 +12,7 @@ import shutil
>  from glob import glob
>  from tempfile import mkdtemp
>  from string import digits
> +import gzip
>  
>  def size_to_int(size):
>      if size[-1] in digits:
> @@ -66,6 +67,9 @@ class Filesystem(object):
>      def open(self, path, mode="r"):
>          return open(self.fname(path), mode)
>  
> +    def open_gz(self, path, mode="r"):
> +        return gzip.open(self.fname(path), mode)
> +
>      def isdir(self, path):
>          return os.path.isdir(self.fname(path))
>  
> @@ -212,10 +216,16 @@ class Filesystem(object):
>          if mode is not None:
>              self.chmod(path, mode)
>  
> -    def read_file(self, path):
> -        fp = self.open(path, "r")
> -        retval = fp.read()
> -        fp.close()
> +    def read_file(self, path, gzip=False):
> +        if gzip:
> +            print('read gzip '+path)
> +            fp = self.open_gz(path, "r")
> +        else:
> +            fp = self.open(path, "r")
> +
> +        with fp:
> +            retval = fp.read()
> +
>          return retval
>  
>      def mkdir_p(self, newdir, mode=0o755):
> 



More information about the elbe-devel mailing list