Source
raise RuntimeError('wrong type of applytable item ({0}). it should be string'.format(type(table)))
from __future__ import absolute_import
import sys
import os
import numpy
import numpy.random as random
import shutil
from casatasks.private.casa_transition import is_CASA6
if is_CASA6:
from casatools import calibrater
from casatasks import casalog, applycal
else:
from taskinit import casalog
from taskinit import cbtool as calibrater
from applycal import applycal
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