diff --git a/src/caoscrawler/crawl.py b/src/caoscrawler/crawl.py index 79fd72b0b54d132b2ea35b7047448c03fbfc390f..9e271c73553498f59669026c12fe780459a87af6 100644 --- a/src/caoscrawler/crawl.py +++ b/src/caoscrawler/crawl.py @@ -26,7 +26,7 @@ """ Crawl a file structure using a yaml cfood definition and synchronize -the acuired data with CaosDB. +the acuired data with LinkAhead. """ from __future__ import annotations @@ -44,18 +44,18 @@ from datetime import datetime from enum import Enum from typing import Any, Optional, Union -import caosdb as db +import linkahead as db import yaml from caosadvancedtools.cache import UpdateCache from caosadvancedtools.crawler import Crawler as OldCrawler from caosadvancedtools.serverside.helper import send_mail from caosadvancedtools.utils import create_entity_link -from caosdb.apiutils import (EntityMergeConflictError, compare_entities, +from linkahead.apiutils import (EntityMergeConflictError, compare_entities, merge_entities) -from caosdb.cached import cache_clear, cached_get_entity_by -from caosdb.exceptions import EmptyUniqueQueryError +from linkahead.cached import cache_clear, cached_get_entity_by +from linkahead.exceptions import EmptyUniqueQueryError from linkahead.common.datatype import get_list_datatype, is_reference -from linkahead.utils.escape import escape_quoted_text +from linkahead.utils.escape import escape_squoted_text from .config import get_config_setting from .converters import Converter, ConverterValidationError @@ -900,8 +900,8 @@ class Crawler(object): @staticmethod def _get_property_id_for_datatype(rtname: str, name: str): return cached_get_entity_by( - query=f"FIND Entity '{escape_quoted_text(rtname)}' " - f"with name='{escape_quoted_text(name)}'").id + query=f"FIND Entity '{escape_squoted_text(rtname)}' " + f"with name='{escape_squoted_text(name)}'").id @staticmethod def replace_name_with_referenced_entity_id(prop: db.Property): diff --git a/src/caoscrawler/debug_tree.py b/src/caoscrawler/debug_tree.py index 9983981c69e3df7c58ddfda4b6977944eac54999..f9387a8ad8c889f60a1ff48fe4389af0f94a0006 100644 --- a/src/caoscrawler/debug_tree.py +++ b/src/caoscrawler/debug_tree.py @@ -45,13 +45,13 @@ from importlib_resources import files from jsonschema import validate from typing import Any, Optional, Type, Union -import caosdb as db +import linkahead as db from caosadvancedtools.cache import UpdateCache, Cache from caosadvancedtools.crawler import Crawler as OldCrawler -from caosdb.apiutils import (compare_entities, EntityMergeConflictError, +from linkahead.apiutils import (compare_entities, EntityMergeConflictError, merge_entities) -from caosdb.common.datatype import is_reference +from linkahead.common.datatype import is_reference from .converters import Converter, DirectoryConverter, ConverterValidationError diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py index 7cc40ccc7aa32ef02d6ec08e87538f5395ae9f91..2ab9bdff07c857f37a5f646e7b3b337dc3a65832 100644 --- a/src/caoscrawler/identifiable_adapters.py +++ b/src/caoscrawler/identifiable_adapters.py @@ -34,8 +34,8 @@ from typing import Any import linkahead as db import yaml -from caosdb.cached import cached_get_entity_by, cached_query -from caosdb.utils.escape import escape_quoted_text +from linkahead.cached import cached_get_entity_by, cached_query +from linkahead.utils.escape import escape_squoted_text from .identifiable import Identifiable from .utils import has_parent @@ -46,22 +46,24 @@ logger = logging.getLogger(__name__) def get_children_of_rt(rtname): """Supply the name of a recordtype. This name and the name of all children RTs are returned in a list""" - escaped = escape_quoted_text(rtname) + escaped = escape_squoted_text(rtname) return [p.name for p in cached_query(f"FIND RECORDTYPE '{escaped}'")] -def convert_value(value: Any): - """ Returns a string representation of the value that is suitable - to be used in the query - looking for the identified record. +def convert_value(value: Any) -> str: + """ Return a string representation of the value suitable for the search query. + + This is for search queries looking for the identified record. Parameters ---------- - value : Any type, the value that shall be returned and potentially converted. + value: Any + The value to be converted. Returns ------- - out : the string reprensentation of the value + out: str + the string reprensentation of the value. """ @@ -72,7 +74,7 @@ def convert_value(value: Any): elif isinstance(value, bool): return str(value).upper() elif isinstance(value, str): - return escape_quoted_text(value) + return escape_squoted_text(value) else: return str(value) @@ -115,7 +117,7 @@ identifiabel, identifiable and identified record) for a Record. query_string = "FIND RECORD " if ident.record_type is not None: - escaped_rt = escape_quoted_text(ident.record_type) + escaped_rt = escape_squoted_text(ident.record_type) query_string += f"'{escaped_rt}'" for ref in ident.backrefs: eid = ref @@ -126,7 +128,7 @@ identifiabel, identifiable and identified record) for a Record. query_string += " WITH " if ident.name is not None: - query_string += "name='{}'".format(escape_quoted_text(ident.name)) + query_string += "name='{}'".format(escape_squoted_text(ident.name)) if len(ident.properties) > 0: query_string += " AND " @@ -142,10 +144,10 @@ identifiabel, identifiable and identified record) for a Record. query_string = "" for pname, pvalue in entity.properties.items(): if pvalue is None: - query_string += "'" + escape_quoted_text(pname) + "' IS NULL AND " + query_string += "'" + escape_squoted_text(pname) + "' IS NULL AND " elif isinstance(pvalue, list): for v in pvalue: - query_string += ("'" + escape_quoted_text(pname) + "'='" + + query_string += ("'" + escape_squoted_text(pname) + "'='" + convert_value(v) + "' AND ") # TODO: (for review) @@ -159,7 +161,7 @@ identifiabel, identifiable and identified record) for a Record. # IdentifiableAdapter.create_property_query(p.value) + # ") AND ") else: - query_string += ("'" + escape_quoted_text(pname) + "'='" + + query_string += ("'" + escape_squoted_text(pname) + "'='" + convert_value(pvalue) + "' AND ") # remove the last AND return query_string[:-4]