refactor
This commit is contained in:
@ -16,16 +16,16 @@ def typechecked(func):
|
||||
return typechecked_call
|
||||
|
||||
|
||||
def property_maker(name, type_name):
|
||||
def property_maker(name, dtype):
|
||||
storage_name = '_' + name
|
||||
|
||||
@property
|
||||
def prop(self) -> type_name:
|
||||
def prop(self) -> dtype:
|
||||
return getattr(self, storage_name)
|
||||
|
||||
@prop.setter
|
||||
@typechecked
|
||||
def prop(self, value: type_name) -> None:
|
||||
def prop(self, value: dtype) -> None:
|
||||
setattr(self, storage_name, value)
|
||||
|
||||
return prop
|
||||
@ -34,16 +34,17 @@ def property_maker(name, type_name):
|
||||
|
||||
class Snippet:
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
def __init__(self, snippetType="snippet", **kwargs):
|
||||
self._properties = []
|
||||
self.snippetType = snippetType
|
||||
self.set_properties(**kwargs)
|
||||
|
||||
def set_properties(self, **kwargs):
|
||||
for key, value in kwargs.items():
|
||||
storage_name = '_' + key
|
||||
for name, dtype in kwargs.items():
|
||||
storage_name = '_' + name
|
||||
setattr(Snippet, storage_name, None)
|
||||
setattr(Snippet, key, property_maker(key, value))
|
||||
self._properties.append(key)
|
||||
setattr(Snippet, name, property_maker(name, dtype))
|
||||
self._properties.append(name)
|
||||
|
||||
def to_dict(self, include_none=True):
|
||||
if include_none:
|
||||
@ -52,8 +53,7 @@ class Snippet:
|
||||
return {key: getattr(self, key) for key in self._properties if getattr(self, key) is not None}
|
||||
|
||||
def import_dict(self, properties):
|
||||
for key in properties.keys():
|
||||
setattr(self, key, properties[key])
|
||||
self.__dict__.update(properties)
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, properties):
|
||||
@ -74,9 +74,9 @@ class Snippet:
|
||||
|
||||
|
||||
class Basesnippet(Snippet):
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.set_properties(
|
||||
props = dict(
|
||||
id=str,
|
||||
parentId=str,
|
||||
ownerGroup=str,
|
||||
@ -97,15 +97,18 @@ class Basesnippet(Snippet):
|
||||
versionable=bool,
|
||||
deleted=bool
|
||||
)
|
||||
self.snippetType = "basesnippet"
|
||||
super().__init__(snippetType="basesnippet", **props)
|
||||
|
||||
|
||||
|
||||
class Paragraph(Basesnippet):
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.set_properties(textcontent=str, isMessage=str)
|
||||
self.snippetType = "paragraph"
|
||||
props = dict(
|
||||
textcontent=str,
|
||||
isMessage=str
|
||||
)
|
||||
super().__init__(snippetType="paragraph", **props)
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user