def get_mapping_definitions(cls, object_class): """Get column definitions for allowed (un)mappings for object_class. For an Audit-scope object, generates snapshot mappings for all allowed mappings with snapshottable objects and direct mappings with all allowed mappings with non-snapshottable objects. For a normal object, generates direct mappings with all allowed mappings. For every direct mapping column generated it also generates an unmapping column. """ definitions = {} definitions.update(cls._generate_mapping_definition( rules.get_mapping_rules().get(object_class.__name__, set()), cls.MAPPING_PREFIX, "map:{}", )) definitions.update(cls._generate_mapping_definition( rules.get_snapshot_mapping_rules().get(object_class.__name__, set()), cls.SNAPSHOT_MAPPING_PREFIX, "map:{} versions", )) definitions.update(cls._generate_mapping_definition( rules.get_unmapping_rules().get(object_class.__name__, set()), cls.UNMAPPING_PREFIX, "unmap:{}", )) return definitions
def get_mapping_names(class_name): """Get mapping, unmapping and snapshot mapping column names.""" map_rules = rules.get_mapping_rules().get(class_name) or set() unmap_rules = rules.get_unmapping_rules().get(class_name) or set() unmap_sn_rules = rules.get_snapshot_mapping_rules().get( class_name) or set() format_rules = [("map:{}", map_rules), ("unmap:{}", unmap_rules), ("map:{} versions", unmap_sn_rules)] column_names = set() for format_, rule_set in format_rules: pretty_rules = (title_from_camelcase(r) for r in rule_set) column_names.update(format_.format(r) for r in pretty_rules) return column_names
def get_mapping_names(class_name): """Get mapping, unmapping and snapshot mapping column names.""" map_rules = rules.get_mapping_rules().get(class_name) or set() unmap_rules = rules.get_unmapping_rules().get(class_name) or set() unmap_sn_rules = rules.get_snapshot_mapping_rules().get(class_name) or set() format_rules = [("map:{}", map_rules), ("unmap:{}", unmap_rules), ("map:{} versions", unmap_sn_rules)] column_names = set() for format_, rule_set in format_rules: pretty_rules = (title_from_camelcase(r) for r in rule_set) column_names.update(format_.format(r) for r in pretty_rules) return column_names