From 1a2ae15e23307de4b3c017c037c88a186037a738 Mon Sep 17 00:00:00 2001 From: Alexander Schlemmer <alexander@mail-schlemmer.de> Date: Fri, 18 Feb 2022 11:13:58 +0100 Subject: [PATCH] MAINT: added module namespace for caosdb to avoid confusion of base classes --- src/caosdb/high_level_api.py | 44 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/caosdb/high_level_api.py b/src/caosdb/high_level_api.py index 001fe9a2..e253460a 100644 --- a/src/caosdb/high_level_api.py +++ b/src/caosdb/high_level_api.py @@ -30,16 +30,13 @@ A high level API for accessing CaosDB entities from within python. This is refactored from apiutils. """ -import sys - from caosdb.common.datatype import (BOOLEAN, DATETIME, DOUBLE, FILE, INTEGER, - REFERENCE, TEXT, is_reference) -from caosdb.common.models import (Container, Entity, File, Property, Query, - Record, RecordType, execute_query, - get_config) + REFERENCE, TEXT) +import caosdb as db from .apiutils import get_type_of_entity_with + class CaosDBPythonEntity(object): _last_id = 0 @@ -70,7 +67,7 @@ class CaosDBPythonEntity(object): return CaosDBPythonEntity._last_id - def _set_property_from_entity(self, ent): + def _set_property_from_entity(self, ent: db.Entity): name = ent.name val = ent.value pr = ent.datatype @@ -84,7 +81,7 @@ class CaosDBPythonEntity(object): """ self._datatypes[name] = datatype - if isinstance(name, Entity): + if isinstance(name, db.Entity): name = name.name if name in self._forbidden: @@ -166,7 +163,7 @@ class CaosDBPythonEntity(object): return (val, False) elif pr[0:4] == "LIST": return self._type_converted_list(val, pr) - elif isinstance(val, Entity): + elif isinstance(val, db.Entity): return (convert_to_python_object(val), False) else: return (int(val), True) @@ -270,6 +267,7 @@ class CaosDBPythonRecordType(CaosDBPythonEntity): class CaosDBPythonProperty(CaosDBPythonEntity): pass + class CaosDBPythonParent(object): """ Parents can be either given by name or by ID. @@ -281,14 +279,16 @@ class CaosDBPythonParent(object): self.id = id self.name = name + class CaosDBPythonUnresolvedReference(object): def __init__(self, id=None): self.id = id + class CaosDBPythonFile(CaosDBPythonEntity): def get_File(self, target=None): - f = File(id=self._id).retrieve() + f = db.File(id=self._id).retrieve() self._file = f.download(target) @@ -398,20 +398,20 @@ def _single_convert_to_entity(entity, robj, recursive_depth, **kwargs): def convert_to_entity(python_object, **kwargs): - if isinstance(python_object, Container): + if isinstance(python_object, db.Container): # Create a list of objects: return [convert_to_python_object(i, **kwargs) for i in python_object] elif isinstance(python_object, CaosDBPythonRecord): - return _single_convert_to_entity(Record(), python_object, **kwargs) + return _single_convert_to_entity(db.Record(), python_object, **kwargs) elif isinstance(python_object, CaosDBPythonFile): - return _single_convert_to_entity(File(), python_object, **kwargs) + return _single_convert_to_entity(db.File(), python_object, **kwargs) elif isinstance(python_object, CaosDBPythonRecordType): - return _single_convert_to_entity(RecordType(), python_object, **kwargs) + return _single_convert_to_entity(db.RecordType(), python_object, **kwargs) elif isinstance(python_object, CaosDBPythonProperty): - return _single_convert_to_entity(Property(), python_object, **kwargs) + return _single_convert_to_entity(db.Property(), python_object, **kwargs) elif isinstance(python_object, CaosDBPythonEntity): - return _single_convert_to_entity(Entity(), python_object, **kwargs) + return _single_convert_to_entity(db.Entity(), python_object, **kwargs) else: raise ValueError("Cannot convert an object of this type.") @@ -419,20 +419,20 @@ def convert_to_entity(python_object, **kwargs): def convert_to_python_object(entity): """""" - if isinstance(entity, Container): + if isinstance(entity, db.Container): # Create a list of objects: return [convert_to_python_object(i) for i in entity] - elif isinstance(entity, Record): + elif isinstance(entity, db.Record): return _single_convert_to_python_object(CaosDBPythonRecord(), entity) - elif isinstance(entity, RecordType): + elif isinstance(entity, db.RecordType): return _single_convert_to_python_object( CaosDBPythonRecordType(), entity) - elif isinstance(entity, File): + elif isinstance(entity, db.File): return _single_convert_to_python_object(CaosDBPythonFile(), entity) - elif isinstance(entity, Property): + elif isinstance(entity, db.Property): return _single_convert_to_python_object(CaosDBPythonProperty(), entity) - elif isinstance(entity, Entity): + elif isinstance(entity, db.Entity): return _single_convert_to_python_object(CaosDBPythonEntity(), entity) else: raise ValueError("Cannot convert an object of this type.") -- GitLab