Patchwork util: add length argument to util.buffer()

login
register
mail settings
Submitter Pulkit Goyal
Date Jan. 15, 2017, 11:34 a.m.
Message ID <087be8a1c7a0452beee3.1484480064@pulkit-goyal>
Download mbox | patch
Permalink /patch/18223/
State Accepted
Headers show

Comments

Pulkit Goyal - Jan. 15, 2017, 11:34 a.m.
# HG changeset patch
# User Pulkit Goyal <7895pulkit@gmail.com>
# Date 1484404515 -19800
#      Sat Jan 14 20:05:15 2017 +0530
# Node ID 087be8a1c7a0452beee36ca23d7978d107b72315
# Parent  9dc4d056d85a041b2b28587b3b84608b1f0903a5
util: add length argument to util.buffer()

util.buffer() either returns inbuilt buffer function or defines a new one which
slices. The inbuilt buffer() also has a length argument which is missing from
the ones whe defined. This patch adds that length argument.
Yuya Nishihara - Jan. 15, 2017, 11:45 a.m.
On Sun, 15 Jan 2017 17:04:24 +0530, Pulkit Goyal wrote:
> # HG changeset patch
> # User Pulkit Goyal <7895pulkit@gmail.com>
> # Date 1484404515 -19800
> #      Sat Jan 14 20:05:15 2017 +0530
> # Node ID 087be8a1c7a0452beee36ca23d7978d107b72315
> # Parent  9dc4d056d85a041b2b28587b3b84608b1f0903a5
> util: add length argument to util.buffer()

Queued, thanks.

> --- a/mercurial/util.py	Sat Jan 14 01:23:07 2017 +0530
> +++ b/mercurial/util.py	Sat Jan 14 20:05:15 2017 +0530
> @@ -238,10 +238,14 @@
>      buffer = buffer
>  except NameError:
>      if not pycompat.ispy3:
> -        def buffer(sliceable, offset=0):
> +        def buffer(sliceable, offset=0, length=None):
> +            if not length is None:
> +                return sliceable[offset:offset + length]
>              return sliceable[offset:]
>      else:
> -        def buffer(sliceable, offset=0):
> +        def buffer(sliceable, offset=0, length=None):
> +            if not length is None:

I've updated them to use "is not" operator, which seems more common.
timeless - Jan. 24, 2017, 7:05 a.m.
Yuya Nishihara wrote:
> On Sun, 15 Jan 2017 17:04:24 +0530, Pulkit Goyal wrote:
>> # HG changeset patch
>> # User Pulkit Goyal <7895pulkit@gmail.com>
>> # Date 1484404515 -19800
>> #      Sat Jan 14 20:05:15 2017 +0530
>> # Node ID 087be8a1c7a0452beee36ca23d7978d107b72315
>> # Parent  9dc4d056d85a041b2b28587b3b84608b1f0903a5
>> util: add length argument to util.buffer()
>
> Queued, thanks.

> the ones whe [sic] defined. This patch adds that length argument.

I had hoped this could be fixed :/

Patch

diff -r 9dc4d056d85a -r 087be8a1c7a0 mercurial/util.py
--- a/mercurial/util.py	Sat Jan 14 01:23:07 2017 +0530
+++ b/mercurial/util.py	Sat Jan 14 20:05:15 2017 +0530
@@ -238,10 +238,14 @@ 
     buffer = buffer
 except NameError:
     if not pycompat.ispy3:
-        def buffer(sliceable, offset=0):
+        def buffer(sliceable, offset=0, length=None):
+            if not length is None:
+                return sliceable[offset:offset + length]
             return sliceable[offset:]
     else:
-        def buffer(sliceable, offset=0):
+        def buffer(sliceable, offset=0, length=None):
+            if not length is None:
+                return memoryview(sliceable)[offset:offset + length]
             return memoryview(sliceable)[offset:]
 
 closefds = pycompat.osname == 'posix'