[ARVADOS] updated: a9c427bdcdb215119bb28d2b53b0f8b462048e72
git at public.curoverse.com
git at public.curoverse.com
Fri Feb 14 19:56:14 EST 2014
Summary of changes:
sdk/python/arvados/collection.py | 23 ++++++++++++-----------
sdk/python/arvados/stream.py | 15 ++++++++-------
2 files changed, 20 insertions(+), 18 deletions(-)
via a9c427bdcdb215119bb28d2b53b0f8b462048e72 (commit)
from 27d6124d152f99fc8f26cd2c9fc99d24ab46a7ea (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit a9c427bdcdb215119bb28d2b53b0f8b462048e72
Author: Peter Amstutz <tetron at cosmos>
Date: Fri Feb 14 19:56:36 2014 -0500
Fixing things up
diff --git a/sdk/python/arvados/collection.py b/sdk/python/arvados/collection.py
index 96ae100..6727dce 100644
--- a/sdk/python/arvados/collection.py
+++ b/sdk/python/arvados/collection.py
@@ -35,7 +35,8 @@ def normalize(collection):
streams[streamname] = {}
if filename not in streams[streamname]:
streams[streamname][filename] = []
- streams[streamname][filename].extend(s.locators_and_ranges(f.stream_offset(), f.size()))
+ for r in f.segments:
+ streams[streamname][filename].extend(s.locators_and_ranges(r[0], r[1]))
normalized_streams = []
sortedstreams = list(streams.keys())
@@ -51,24 +52,24 @@ def normalize(collection):
streamoffset = 0L
for f in sortedfiles:
for b in stream[f]:
- if b[StreamReader.LOCATOR] not in blocks:
- stream_tokens.append(b[StreamReader.LOCATOR])
- blocks[b[StreamReader.LOCATOR]] = streamoffset
- streamoffset += b[StreamReader.BLOCKSIZE]
+ if b[arvados.LOCATOR] not in blocks:
+ stream_tokens.append(b[arvados.LOCATOR])
+ blocks[b[arvados.LOCATOR]] = streamoffset
+ streamoffset += b[arvados.BLOCKSIZE]
for f in sortedfiles:
current_span = None
fout = f.replace(' ', '\\040')
- for chunk in stream[f]:
- chunkoffset = blocks[chunk[StreamReader.LOCATOR]] + chunk[StreamReader.OFFSET]
+ for segment in stream[f]:
+ segmentoffset = blocks[segment[arvados.LOCATOR]] + segment[arvados.OFFSET]
if current_span == None:
- current_span = [chunkoffset, chunkoffset + chunk[StreamReader.CHUNKSIZE]]
+ current_span = [segmentoffset, segmentoffset + segment[arvados.SEGMENTSIZE]]
else:
- if chunkoffset == current_span[1]:
- current_span[1] += chunk[StreamReader.CHUNKSIZE]
+ if segmentoffset == current_span[1]:
+ current_span[1] += segment[arvados.SEGMENTSIZE]
else:
stream_tokens.append("{0}:{1}:{2}".format(current_span[0], current_span[1] - current_span[0], fout))
- current_span = [chunkoffset, chunkoffset + chunk[StreamReader.CHUNKSIZE]]
+ current_span = [segmentoffset, segmentoffset + segment[arvados.SEGMENTSIZE]]
if current_span != None:
stream_tokens.append("{0}:{1}:{2}".format(current_span[0], current_span[1] - current_span[0], fout))
diff --git a/sdk/python/arvados/stream.py b/sdk/python/arvados/stream.py
index 4a53324..3843411 100644
--- a/sdk/python/arvados/stream.py
+++ b/sdk/python/arvados/stream.py
@@ -27,7 +27,7 @@ BLOCKSIZE = 1
OFFSET = 2
SEGMENTSIZE = 3
-def locators_and_ranges(self, data_locators, range_start, range_size):
+def locators_and_ranges(data_locators, range_start, range_size):
'''returns list of [block locator, blocksize, segment offset, segment size] that satisfies the range'''
resp = []
range_start = long(range_start)
@@ -81,10 +81,10 @@ class StreamFileReader(object):
return self._filepos
def size(self):
- n = self.data_locators[-1]
- return n[self.OFFSET] + n[self.BLOCKSIZE]
+ n = self.segments[-1]
+ return n[OFFSET] + n[BLOCKSIZE]
- def read(self, size, **kwargs):
+ def read(self, size):
"""Read up to 'size' bytes from the stream, starting at the current file position"""
if size == 0:
return ''
@@ -96,9 +96,9 @@ class StreamFileReader(object):
self._filepos += len(data)
return data
- def readall(self, size=2**20, **kwargs):
+ def readall(self, size=2**20):
while True:
- data = self.read(size, **kwargs)
+ data = self.read(size)
if data == '':
break
yield data
@@ -204,7 +204,8 @@ class StreamReader(object):
n = self.data_locators[-1]
return n[self.OFFSET] + n[self.BLOCKSIZE]
- def locators_and_ranges(self.data_locators, self._pos, size)
+ def locators_and_ranges(self, range_start, range_size):
+ return locators_and_ranges(self.data_locators, range_start, range_size)
def read(self, size):
"""Read up to 'size' bytes from the stream, starting at the current file position"""
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list