Source
casalog.post('thisinterp="{0}" thisspwmap={1}'.format(thisinterp, thisspwmap))
import os
from casatasks import casalog
from . import sdutil
from .sdutil import calibrater_manager
DEFAULT_VALUE = {'interp': 'linear',
'spwmap': [-1]}
def parse_interp_item(interp):
assert isinstance(interp, str)
if len(interp) == 0:
return DEFAULT_VALUE['interp']
else:
return interp
def parse_interp(interp, index):
assert index >= 0
if isinstance(interp, str):
# interp is a string that is valid to all applytables
return parse_interp_item(interp)
elif hasattr(interp, '__iter__'):
# interp is a list of strings
if index >= len(interp):
# wrong index or empty list
return DEFAULT_VALUE['interp']
else:
# interp is a list of strings
return parse_interp_item(interp[index])
assert False
def parse_spwmap_item(spwmap):
assert hasattr(spwmap, '__iter__')
if len(spwmap) == 0:
return DEFAULT_VALUE['spwmap']
else:
return spwmap
def parse_spwmap(spwmap, index):
assert hasattr(spwmap, '__iter__')
assert index >= 0
if len(spwmap) == 0:
# empty list
return DEFAULT_VALUE['spwmap']
elif all(map(lambda x: hasattr(x, '__iter__'), spwmap)):
# spwmap is list-of-list
if index >= len(spwmap):
# maybe wrong index
return DEFAULT_VALUE['spwmap']
else:
return parse_spwmap_item(spwmap[index])
elif all(map(lambda x: isinstance(x, int), spwmap)):
# maybe single spwmap that is valid to all applytables
return spwmap
assert False
sdtask_decorator .