diff --git a/cfel_fabio.py b/cfel_fabio.py index 7edc689eab8b36da91ad536a790858df059a0d9b..98c3373c1c817c064ce4f99de8a4e0f6e89d5522 100644 --- a/cfel_fabio.py +++ b/cfel_fabio.py @@ -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"]) diff --git a/cfel_optarg.py b/cfel_optarg.py index a06978f759a6af6a5cc2879919d641fd283f623b..218980fecbd9a5afc5e6d923bd17482f36e4de2d 100644 --- a/cfel_optarg.py +++ b/cfel_optarg.py @@ -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