X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fbup%2Fio.py;h=e2fd410b3eb8b1eb444118acf06a8f8e88a8f62c;hb=HEAD;hp=a384f1007e5d5f0452d646633a658b01b1dad9f0;hpb=4448f184253125e1b8bd0c55d0098a335d15b90b;p=bup.git diff --git a/lib/bup/io.py b/lib/bup/io.py index a384f10..e2fd410 100644 --- a/lib/bup/io.py +++ b/lib/bup/io.py @@ -1,27 +1,16 @@ -from __future__ import absolute_import, print_function import mmap as py_mmap -from bup import compat from bup.compat import pending_raise -if compat.py_maj > 2: - def byte_stream(file): - return file.buffer +def byte_stream(file): + return file.buffer - def path_msg(x): - """Return a string representation of a path.""" - # FIXME: configurability (might git-config quotePath be involved?) - return x.decode(errors='backslashreplace') -else: - def byte_stream(file): - return file - - def path_msg(x): - """Return a string representation of a path.""" - # FIXME: configurability (might git-config quotePath be involved?) - return x +def path_msg(x): + """Return a string representation of a path.""" + # FIXME: configurability (might git-config quotePath be involved?) + return x.decode(errors='backslashreplace') assert not hasattr(py_mmap.mmap, '__del__') @@ -33,14 +22,17 @@ class mmap(py_mmap.mmap): that aren't explicitly closed. ''' + def __new__(cls, *args, **kwargs): + result = super().__new__(cls, *args, **kwargs) + result._bup_closed = True # supports __del__ + return result def __init__(self, *args, **kwargs): - self._bup_closed = True # Silence deprecation warnings. mmap's current parent is # object, which accepts no params and as of at least 2.7 # warns about them. if py_mmap.mmap.__init__ is not object.__init__: - super(mmap, self).__init__(self, *args, **kwargs) + super().__init__(self, *args, **kwargs) self._bup_closed = False def close(self):