Added bnf when adding a new concept + Started logging filtering
This commit is contained in:
@@ -10,7 +10,7 @@ from sdp.sheerkaSerializer import Serializer, SerializerContext
|
||||
import logging
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
init_log = logging.getLogger(__name__ + ".init")
|
||||
|
||||
def json_default_converter(o):
|
||||
"""
|
||||
@@ -278,7 +278,7 @@ class SheerkaDataProvider:
|
||||
REF_PREFIX = "##REF##:"
|
||||
|
||||
def __init__(self, root=None):
|
||||
log.debug("Initializing sdp.")
|
||||
init_log.debug("Initializing sdp.")
|
||||
|
||||
self.io = SheerkaDataProviderIO.get(root)
|
||||
self.first_time = self.io.first_time
|
||||
@@ -312,6 +312,20 @@ class SheerkaDataProvider:
|
||||
else obj.get_digest() if hasattr(obj, "get_digest") \
|
||||
else None
|
||||
|
||||
@staticmethod
|
||||
def get_obj_origin(obj):
|
||||
"""
|
||||
Get the digest used to save obj if set
|
||||
"""
|
||||
if isinstance(obj, dict) and Serializer.ORIGIN in obj:
|
||||
return obj[Serializer.ORIGIN]
|
||||
|
||||
if hasattr(obj, Serializer.ORIGIN):
|
||||
return getattr(obj, Serializer.ORIGIN)
|
||||
|
||||
return None
|
||||
|
||||
|
||||
@staticmethod
|
||||
def get_stream_digest(stream):
|
||||
sha256_hash = hashlib.sha256()
|
||||
@@ -460,10 +474,10 @@ class SheerkaDataProvider:
|
||||
obj_key = self.get_obj_key(obj) or key
|
||||
|
||||
if isinstance(state.data[entry][key], list):
|
||||
if not hasattr(obj, Serializer.ORIGIN):
|
||||
obj_origin = self.get_obj_origin(obj)
|
||||
if obj_origin is None:
|
||||
raise (SheerkaDataProviderError(f"Multiple entries under '{entry}.{key}'", obj))
|
||||
|
||||
obj_origin = getattr(obj, Serializer.ORIGIN)
|
||||
state.modify_in_list(entry, key, obj, obj_key, obj_origin, self.load_ref_if_needed, self.save_ref_if_needed)
|
||||
|
||||
else:
|
||||
@@ -674,7 +688,9 @@ class SheerkaDataProvider:
|
||||
obj = self.serializer.deserialize(f, SerializerContext(origin=digest))
|
||||
|
||||
# set the origin of the object
|
||||
if not isinstance(obj, str):
|
||||
if isinstance(obj, dict):
|
||||
obj[Serializer.ORIGIN] = digest
|
||||
elif not isinstance(obj, str):
|
||||
setattr(obj, Serializer.ORIGIN, digest)
|
||||
return obj
|
||||
|
||||
|
||||
Reference in New Issue
Block a user