util: move 'readexactly' in the util module
This function is used in multiple place, having it in util would be better.
(existing caller will be migrated in another series)
--- a/mercurial/changegroup.py Fri Jan 19 19:13:11 2018 -0500
+++ b/mercurial/changegroup.py Fri Jan 19 20:51:35 2018 +0100
@@ -32,14 +32,7 @@
_CHANGEGROUPV2_DELTA_HEADER = "20s20s20s20s20s"
_CHANGEGROUPV3_DELTA_HEADER = ">20s20s20s20s20sH"
-def readexactly(stream, n):
- '''read n bytes from stream.read and abort if less was available'''
- s = stream.read(n)
- if len(s) < n:
- raise error.Abort(_("stream ended unexpectedly"
- " (got %d bytes, expected %d)")
- % (len(s), n))
- return s
+readexactly = util.readexactly
def getchunk(stream):
"""return the next chunk from stream as a string"""
--- a/mercurial/util.py Fri Jan 19 19:13:11 2018 -0500
+++ b/mercurial/util.py Fri Jan 19 20:51:35 2018 +0100
@@ -3865,3 +3865,12 @@
fn = '%s~%s~%s' % (f, tag, n)
if fn not in ctx and fn not in others:
return fn
+
+def readexactly(stream, n):
+ '''read n bytes from stream.read and abort if less was available'''
+ s = stream.read(n)
+ if len(s) < n:
+ raise error.Abort(_("stream ended unexpectedly"
+ " (got %d bytes, expected %d)")
+ % (len(s), n))
+ return s