def apply_alias(project, author, canonical_name, alias_name): """ Given two names, find out if there are existing entities for one or both of them. If so, merge them into a single entity - or, if only the entity associated with the alias exists - re-name the entity. """ canonical_name = canonical_name.strip() # Don't import meaningless aliases. if canonical_name == alias_name or not len(canonical_name): return log.info("No alias: %s", canonical_name) canonical = Entity.by_name(project, canonical_name) alias = Entity.by_name(project, alias_name) schema = Schema.by_name(project, 'base') # Don't artificially increase entity counts. if canonical is None and alias is None: return log.info("Neither alias nor canonical exist: %s", canonical_name) # Rename an alias to its new, canonical name. if canonical is None: properties_logic.set(alias, author, 'name', schema, canonical_name, active=True, source_url=None) _entity_changed.delay(alias.id) return log.info("Renamed: %s", alias_name) # Already done, thanks. if canonical == alias: return log.info("Already aliased: %s", canonical_name) # Merge two existing entities, declare one as "same_as" if canonical is not None and alias is not None: _merge_entities(alias, canonical) _entity_changed.delay(canonical.id) return log.info("Mapped: %s -> %s", alias.id, canonical.id)
def apply_alias(project, author, canonical_name, alias_name): """ Given two names, find out if there are existing entities for one or both of them. If so, merge them into a single entity - or, if only the entity associated with the alias exists - re-name the entity. """ canonical_name = canonical_name.strip() # Don't import meaningless aliases. if canonical_name == alias_name or not len(canonical_name): return log.info("No alias: %s", canonical_name) canonical = Entity.by_name(project, canonical_name) alias = Entity.by_name(project, alias_name) schema = Schema.by_name(project, 'base') # Don't artificially increase entity counts. if canonical is None and alias is None: return log.info("Neither alias nor canonical exist: %s", canonical_name) # Rename an alias to its new, canonical name. if canonical is None: properties_logic.set(alias, author, 'name', schema, canonical_name, active=True, source_url=None) _entity_changed.delay(alias.id) return log.info("Renamed: %s", alias_name) # Already done, thanks. if canonical == alias: return log.info("Already aliased: %s", canonical_name) # Merge two existing entities, declare one as "same_as" if canonical is not None and alias is not None: _merge_entities(alias, canonical) _entity_changed.delay(canonical.id) return log.info("Mapped: %s -> %s", alias.id, canonical.id)
def check(name): entity = Entity.by_name(project, name) if entity is not None: if obj is None or obj.id != entity.id: return False return True
def check(name): entity = Entity.by_name(project, name) if entity is not None: if obj is None or obj.id != entity.id: return False return True