datamanager.py 50.7 KB
Newer Older
    def get_variable(cls, original_name):
        try:
            return Variable._dict_variables[original_name.lower()]

        except AttributeError:
            Variable._dict_variables = dict()
            with open(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'cmor_table.csv'), 'rb') as csvfile:
                reader = csv.reader(csvfile, dialect='excel')
                for line in reader:
                    if line[0] == 'variable':
                        continue
                    var = Variable(line)
                    if not var.short_name:
                        continue
                    for old_name in line[0].split(':'):
                        Variable._dict_variables[old_name] = var
                    Variable._dict_variables[var.short_name] = var
            return Variable.get_variable(original_name)

        except KeyError:
            Log.error('Variable {0} is not defined'.format(original_name))
            return None