def reftag_from_defstring(ref, in_group, ref_type): # Build a reftag from a definition string component names = split_noempties(ref, '=') if len(names) == 1: role_name, ref_name = None, names[0] else: # Note: if we had a=b=c=...=y=z, discard all but first + last role_name, ref_name = names[0], names[-1] ref = ncg.find_named_definition(in_group, ref_name, ref_type) return _RefTag(role_name, ref)
def _make_variable(ds, var_name, group): var = ds.variables[var_name] dims = [] for dim_name in var.dimensions: dim = ncg.find_named_definition(group, dim_name, nco.Dimension) if dim is None: # TODO: this error could use a group-path-string adding. raise ValueError('Dimension "{}" of variable "{}" not found in ' 'input file.'.format(dim_name, var_name)) dims.append(dim) attrs = [nco.Attribute(attr_name, value=var.getncattr(attr_name)) for attr_name in var.ncattrs()] new_var = nco.Variable(name=var_name, attributes=attrs, data=var, dtype=None) # N.B. for now, types are not working.. for dim in dims: new_var.dimensions.append(dim) return new_var