diff --git a/lsmtool/tableio.py b/lsmtool/tableio.py index 9da5df2430f33e7676915ef3175a94480db1206e..1faaf7151c1060a10853b10024606c098a7096d2 100644 --- a/lsmtool/tableio.py +++ b/lsmtool/tableio.py @@ -24,6 +24,7 @@ from astropy.coordinates import Angle from astropy.io import registry import astropy.io.ascii as ascii import numpy as np +import numpy.ma as ma import re import logging import os @@ -255,7 +256,10 @@ def createTable(outlines, metaDict, colNames, colDefaults): table.add_column(DecCol, index=DecIndx) def fluxformat(val): - return '{0:0.3f}'.format(val) + if type(val) is ma.core.MaskedConstant: + return '{}'.format(val) + else: + return '{0:0.3f}'.format(val) table.columns['I'].format = fluxformat # Set column units and default values @@ -538,16 +542,19 @@ def skyModelIdentify(origin, *args, **kwargs): Identifies valid makesourcedb sky model files. """ # Search for a format line. If found, assume file is valid - if isinstance(args[0], basestring): - f = open(args[0]) - elif isinstance(args[0], file_types): - f = args[0] - else: + try: + if isinstance(args[0], basestring): + f = open(args[0]) + elif isinstance(args[0], file_types): + f = args[0] + else: + return False + for line in f: + if line.startswith("FORMAT") or line.startswith("format"): + return True + return False + except UnicodeDecodeError: return False - for line in f: - if line.startswith("FORMAT") or line.startswith("format"): - return True - return False def skyModelWriter(table, fileName):