Skip to content
Snippets Groups Projects
Commit 99fdbb87 authored by Valerio Mariani's avatar Valerio Mariani
Browse files

Updates from OnDA, testing branch, 20/01/17

parent 01cb8852
No related branches found
No related tags found
No related merge requests found
......@@ -51,24 +51,24 @@ def read_cbf_from_stream(stream):
infile = stream
cbf_obj._readheader(infile)
if fabio.cbfimage.CIF_BINARY_BLOCK_KEY not in cbf_obj.cif:
err = "Not key %s in CIF, no CBF image in stream" % fabio.cbfimage.CIF_BINARY_BLOCK_KEY
if cbf_obj.CIF_BINARY_BLOCK_KEY not in cbf_obj.cif:
err = "Not key %s in CIF, no CBF image in stream" % fabio.cbfobj.CIF_BINARY_BLOCK_KEY
logger.error(err)
for kv in cbf_obj.cif.items():
print("%s: %s" % kv)
raise RuntimeError(err)
if cbf_obj.cif[fabio.cbfimage.CIF_BINARY_BLOCK_KEY] == "CIF Binary Section":
cbf_obj.cbs += infile.read(len(fabio.cbfimage.STARTER) + int(cbf_obj.header["X-Binary-Size"])
if cbf_obj.cif[cbf_obj.CIF_BINARY_BLOCK_KEY] == "CIF Binary Section":
cbf_obj.cbs += infile.read(len(cbf_obj.STARTER) + int(cbf_obj.header["X-Binary-Size"])
- len(cbf_obj.cbs) + cbf_obj.start_binary)
else:
if len(cbf_obj.cif[fabio.cbfimage.CIF_BINARY_BLOCK_KEY]) > int(
cbf_obj.header["X-Binary-Size"]) + cbf_obj.start_binary + len(fabio.cbfimage.STARTER):
cbf_obj.cbs = cbf_obj.cif[fabio.cbfimage.CIF_BINARY_BLOCK_KEY][:int(cbf_obj.header["X-Binary-Size"]) +
cbf_obj.start_binary +
len(fabio.cbfimage.STARTER)]
if len(cbf_obj.cif[cbf_obj.CIF_BINARY_BLOCK_KEY]) > int(
cbf_obj.header["X-Binary-Size"]) + cbf_obj.start_binary + len(cbf_obj.STARTER):
cbf_obj.cbs = cbf_obj.cif[cbf_obj.CIF_BINARY_BLOCK_KEY][:int(cbf_obj.header["X-Binary-Size"]) +
cbf_obj.start_binary +
len(cbf_obj.STARTER)]
else:
cbf_obj.cbs = cbf_obj.cif[fabio.cbfimage.CIF_BINARY_BLOCK_KEY]
binary_data = cbf_obj.cbs[cbf_obj.start_binary + len(fabio.cbfimage.STARTER):]
cbf_obj.cbs = cbf_obj.cif[cbf_obj.CIF_BINARY_BLOCK_KEY]
binary_data = cbf_obj.cbs[cbf_obj.start_binary + len(cbf_obj.STARTER):]
if "Content-MD5" in cbf_obj.header:
ref = numpy.string_(cbf_obj.header["Content-MD5"])
......
......@@ -12,14 +12,6 @@
#
# You should have received a copy of the GNU General Public License
# along with cfelpyutils. If not, see <http://www.gnu.org/licenses/>.
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
"""
Utilities for parsing command line options and configuration files.
......@@ -27,6 +19,10 @@ This module contains utilities for parsing of command line options and
configuration files.
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import ast
......@@ -76,6 +72,11 @@ def parse_parameters(config):
monitor_params[sect][op] = config.get(sect, op)
if monitor_params[sect][op].startswith("'") and monitor_params[sect][op].endswith("'"):
monitor_params[sect][op] = monitor_params[sect][op][1:-1]
try:
monitor_params[sect][op].encode('ascii')
except UnicodeEncodeError:
raise RuntimeError('Error parsing parameters. Only ASCII characters are allowed in parameter '
'names and values.')
continue
if monitor_params[sect][op].startswith('"') and monitor_params[sect][op].endswith('"'):
monitor_params[sect][op] = monitor_params[sect][op][1:-1]
......@@ -115,6 +116,8 @@ def parse_parameters(config):
monitor_params[sect][op] = float(monitor_params[sect][op])
continue
except ValueError:
pass
raise RuntimeError('Error parsing parameters. The parameter {0}/{1} parameter has an invalid type. '
'Allowed types are None, int, float, bool and str. Strings must be '
'single-quoted.'.format(sect, op))
return monitor_params
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment