Skip to content
Snippets Groups Projects

Use cached_get_entity_by

Merged Henrik tom Wörden requested to merge f-get-by into dev
All threads resolved!
Files
2
+ 6
20
@@ -38,6 +38,7 @@ import logging
import os
import sys
import uuid
from caosdb.cached import cached_get_entity_by
import warnings
import yaml
@@ -573,7 +574,7 @@ class Crawler(object):
del flat[i]
# 2. Can it be identified via a path?
elif record.path is not None:
existing = self._get_entity_by_path(record.path)
existing = cached_get_entity_by(path=record.path)
if existing is None:
to_be_inserted.append(record)
self.add_to_remote_missing_cache(record, identifiable)
@@ -728,7 +729,7 @@ class Crawler(object):
parent_updates = db.Container()
for entity in to_be_updated:
old_entity = Crawler._get_entity_by_id(entity.id)
old_entity = cached_get_entity_by(id=entity.id)
# Check whether the parents have been changed and add them if missing
# in the old entity:
@@ -757,28 +758,13 @@ class Crawler(object):
"mode. This might lead to a failure of inserts that follow.")
logger.info(parent_updates)
@staticmethod
def _get_entity_by_name(name):
return db.Entity(name=name).retrieve()
@staticmethod
def _get_entity_by_path(path):
try:
return db.execute_query(f"FIND FILE WHICH IS STORED AT '{path}'", unique=True)
except db.exceptions.EmptyUniqueQueryError:
return None
@staticmethod
def _get_entity_by_id(id):
return db.Entity(id=id).retrieve()
@staticmethod
def execute_inserts_in_list(to_be_inserted, securityMode,
run_id: Optional[uuid.UUID] = None,
unique_names=True):
for record in to_be_inserted:
for prop in record.properties:
entity = Crawler._get_entity_by_name(prop.name)
entity = cached_get_entity_by(name=prop.name)
_resolve_datatype(prop, entity)
logger.debug("INSERT")
logger.debug(to_be_inserted)
@@ -794,10 +780,10 @@ class Crawler(object):
for record in rec_list:
for parent in record.parents:
if parent.id is None:
parent.id = Crawler._get_entity_by_name(parent.name).id
parent.id = cached_get_entity_by(name=parent.name).id
for prop in record.properties:
if prop.id is None:
entity = Crawler._get_entity_by_name(prop.name)
entity = cached_get_entity_by(name=prop.name)
prop.id = entity.id
_resolve_datatype(prop, entity)
Loading