Source
xxxxxxxxxx
logging.debug("Executing: compare_CASA_tables(referencetab = {}, testtab = {}, excludecols = {}, tolerance={}, mode={}, startrow = {}, nrow = {}, rowincr = {})".format(referencetab, testtab, excludecols, tolerance, mode, startrow, nrow , rowincr))
import logging
import sys
import filecmp
import os
import numpy
import numbers
import shutil
try:
# CASA 6
logging.debug("Importing CASAtools")
import casatools
_tb = casatools.table()
_tb2 = casatools.table()
# _casa6 = True
except ImportError:
# CASA 5
logging.debug("Import casa6 errors. Trying CASA5...")
from taskinit import tbtool
_tb = tbtool()
_tb2 = tbtool()
# _casa5 = True
#ignore_subversion = shutil.ignore_patterns('.svn')
################ ##################
################ ##################
################ ##################
#class TableCacheValidator(object):
# def __init__(self):
# self.original_cache = get_table_cache()
#
# def validate(self):
# cache = get_table_cache()
# #print 'original {} current {}'.format(self.original_cache, cache)
# return len(cache) == 0 or cache == self.original_cache
#class DictDiffer(object):
# """
# Calculate the difference between two dictionaries as:
# (1) items added
# (2) items removed
# (3) keys same in both but changed values
# (4) keys same in both and unchanged values
# Example:
# mydiff = DictDiffer(dict1, dict2)
# mydiff.changed() # to show what has changed
# """
# def __init__(self, current_dict, past_dict):
# self.current_dict, self.past_dict = current_dict, past_dict
# self.set_current, self.set_past = set(current_dict.keys()), set(past_dict.keys())
# self.intersect = self.set_current.intersection(self.set_past)
# def added(self):
# return self.set_current - self.intersect
# def removed(self):
# return self.set_past - self.intersect
# def changed(self):
# return set(o for o in self.intersect if self.past_dict[o] != self.current_dict[o])
# def unchanged(self):
# return set(o for o in self.intersect if self.past_dict[o] == self.current_dict[o])
################ ##################
################ ##################
################ ##################
def compare_CASA_var_col_tables(referencetab, testtab, varcol, tolerance=0.0):
'''
originally: compVarColTables(referencetab, testtab, varcol, tolerance=0.)
compare_CASA_variable_cols - Compare a variable column of two CASA tables.
@param referencetab --> a reference table
@param testtab --> a table to verify
@param varcol --> the name of a variable column (str)
@param tolerance --> Tolerance
@return: True if reference tab == test table else False
'''
logging.info("Comparing Column: {} within {} and {}".format(varcol,referencetab, testtab))
logging.debug("Executing: compare_CASA_variable_cols(referencetab={},testtab={}, varcol={}, tolerance={})".format(referencetab, testtab, varcol, tolerance))
retval = True
_tb.open(referencetab)
cnames = _tb.colnames()
_tb2.open(testtab)
col = varcol
if _tb.isvarcol(col) and _tb2.isvarcol(col):
try:
# First check