Commit 1845dc9c authored by Ivan Tyagov's avatar Ivan Tyagov

Visualisation

See merge request nexedi/wendelin!54
parents 81c776d0 d9b8a4ae
...@@ -179,7 +179,6 @@ class DataArray(BigFile): ...@@ -179,7 +179,6 @@ class DataArray(BigFile):
ranges = HTTPRangeSupport.parseRange(range) ranges = HTTPRangeSupport.parseRange(range)
array = self.getArray() array = self.getArray()
factor = array.nbytes / array.shape[0]
if if_range is not None: if if_range is not None:
# Only send ranges if the data isn't modified, otherwise send # Only send ranges if the data isn't modified, otherwise send
...@@ -241,8 +240,10 @@ class DataArray(BigFile): ...@@ -241,8 +240,10 @@ class DataArray(BigFile):
'bytes %d-%d/%d' % (start, end - 1, self.getSize())) 'bytes %d-%d/%d' % (start, end - 1, self.getSize()))
RESPONSE.setStatus(206) # Partial content RESPONSE.setStatus(206) # Partial content
# convert ranges from bytes to array indices # convert array to bytes
RESPONSE.write(array[start/factor:end/factor].tobytes()) data = array[:].view('<b').reshape((-1,))[start:end].tobytes()
RESPONSE.setBody(data, lock=True)
else: else:
boundary = choose_boundary() boundary = choose_boundary()
...@@ -268,16 +269,19 @@ class DataArray(BigFile): ...@@ -268,16 +269,19 @@ class DataArray(BigFile):
draftprefix, boundary)) draftprefix, boundary))
RESPONSE.setStatus(206) # Partial content RESPONSE.setStatus(206) # Partial content
data = ''
for start, end in ranges: for start, end in ranges:
RESPONSE.write('\r\n--%s\r\n' % boundary) data = '{data}\r\n--{boundary}\r\n'\
RESPONSE.write('Content-Type: %s\r\n' % 'Content-Type: {content_type}\r\n'\
self.content_type) 'Content-Range: bytes {start:d}-{end:d}/{size:d}\r\n\r\n'\
RESPONSE.write( '{array}'.format(data=data,
'Content-Range: bytes %d-%d/%d\r\n\r\n' % ( boundary=boundary,
start, end - 1, self.getSize())) content_type=self.content_type,
start=start,
# convert ranges from bytes to array indices end=end-1,
RESPONSE.write(array[start/factor:end/factor].tobytes()) size=self.getSize(),
array=array[:].view('<b').reshape((-1,))[start:end].tobytes())
RESPONSE.write('\r\n--%s--\r\n' % boundary)
data = '{}\r\n--{}--\r\n'.format(data, boundary)
RESPONSE.setBody(data, lock=True)
return True return True
...@@ -80,6 +80,8 @@ ...@@ -80,6 +80,8 @@
<string>my_reference</string> <string>my_reference</string>
<string>my_version</string> <string>my_version</string>
<string>my_publication_section_list</string> <string>my_publication_section_list</string>
<string>my_array_dtype</string>
<string>my_array_shape</string>
</list> </list>
</value> </value>
</item> </item>
......
web_page_module/wendelin_information_gadget.html web_page_module/wendelin_information_gadget.html
web_page_module/wendelin_js
portal_gadgets/WendelinInformationGadget portal_gadgets/WendelinInformationGadget
portal_ingestion_policies/default_http_json portal_ingestion_policies/default_http_json
portal_ingestion_policies/default_http_json/** portal_ingestion_policies/default_http_json/**
......
...@@ -19,4 +19,5 @@ portal_gadgets/WendelinInformationGadget ...@@ -19,4 +19,5 @@ portal_gadgets/WendelinInformationGadget
portal_gadgets/WendelinInformationGadget/** portal_gadgets/WendelinInformationGadget/**
portal_ingestion_policies/default_http_json portal_ingestion_policies/default_http_json
portal_ingestion_policies/default_http_json/** portal_ingestion_policies/default_http_json/**
web_page_module/wendelin_information_gadget.html web_page_module/wendelin_information_gadget.html
\ No newline at end of file web_page_module/wendelin_js
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment