Module dempy.acquisitions.subject
Expand source code
from typing import List, Dict, Any
from dempy._base import Entity
from dempy._protofiles import SubjectMessage
class Subject(Entity):
"""Subject class"""
def __init__(self, type: str, id: str, tags: List[str], metadata: Dict[str, str], birthdate_timestamp: int, description: str,
first_name: str, last_name: str):
super().__init__(type, id, tags, metadata)
self.birthdate_timestamp = birthdate_timestamp
self.description = description
self.first_name = first_name
self.last_name = last_name
@staticmethod
def to_protobuf(obj: "Subject") -> SubjectMessage:
"""Encode an subject to a Protobuf message
Arguments:
obj {Subject} -- subject to be encoded
Returns:
SubjectMessage -- encoded subject
"""
subject_message = SubjectMessage()
subject_message.entity.CopyFrom(Entity.to_protobuf(obj))
subject_message.birthdate_timestamp = obj.birthdate_timestamp
if obj.description is not None:
subject_message.description = obj.description
if obj.first_name is not None:
subject_message.first_name = obj.first_name
if obj.last_name is not None:
subject_message.last_name = obj.last_name
return subject_message
@staticmethod
def from_protobuf(subject_message: SubjectMessage) -> "Subject":
"""Decode a Protobuf message to {Subject}
Arguments:
obj {SubjectMessage} -- message to be decoded
Returns:
Subject -- decoded subject
"""
return Subject(
type=subject_message.entity.type,
id=subject_message.entity.id,
tags=subject_message.entity.tags,
metadata=subject_message.entity.metadata,
birthdate_timestamp=subject_message.birthdate_timestamp if subject_message.HasField("birthdate_timestamp") else None,
description=subject_message.description if subject_message.HasField("description") else None,
first_name=subject_message.first_name if subject_message.HasField("first_name") else None,
last_name=subject_message.last_name if subject_message.HasField("last_name") else None,
)
@staticmethod
def from_json(obj: Dict[str, str]) -> Any:
"""Parse a JSON dictionary to {Subject}
Arguments:
obj {Dict[str, str]} -- JSON object
Returns:
Any -- parsed object and sub-objects
"""
if "type" in obj and obj["type"].endswith("Subject"):
return Subject(
type=obj["type"],
id=obj["id"],
metadata=obj["metadata"],
tags=obj["tags"],
birthdate_timestamp=obj["birthdateTimestamp"],
description=obj["description"],
first_name=obj["firstName"],
last_name=obj["lastName"]
)
return obj
__all__ = [
"Subject"
]
Classes
class Subject (type: str, id: str, tags: List[str], metadata: Dict[str, str], birthdate_timestamp: int, description: str, first_name: str, last_name: str)
-
Subject class
Expand source code
class Subject(Entity): """Subject class""" def __init__(self, type: str, id: str, tags: List[str], metadata: Dict[str, str], birthdate_timestamp: int, description: str, first_name: str, last_name: str): super().__init__(type, id, tags, metadata) self.birthdate_timestamp = birthdate_timestamp self.description = description self.first_name = first_name self.last_name = last_name @staticmethod def to_protobuf(obj: "Subject") -> SubjectMessage: """Encode an subject to a Protobuf message Arguments: obj {Subject} -- subject to be encoded Returns: SubjectMessage -- encoded subject """ subject_message = SubjectMessage() subject_message.entity.CopyFrom(Entity.to_protobuf(obj)) subject_message.birthdate_timestamp = obj.birthdate_timestamp if obj.description is not None: subject_message.description = obj.description if obj.first_name is not None: subject_message.first_name = obj.first_name if obj.last_name is not None: subject_message.last_name = obj.last_name return subject_message @staticmethod def from_protobuf(subject_message: SubjectMessage) -> "Subject": """Decode a Protobuf message to {Subject} Arguments: obj {SubjectMessage} -- message to be decoded Returns: Subject -- decoded subject """ return Subject( type=subject_message.entity.type, id=subject_message.entity.id, tags=subject_message.entity.tags, metadata=subject_message.entity.metadata, birthdate_timestamp=subject_message.birthdate_timestamp if subject_message.HasField("birthdate_timestamp") else None, description=subject_message.description if subject_message.HasField("description") else None, first_name=subject_message.first_name if subject_message.HasField("first_name") else None, last_name=subject_message.last_name if subject_message.HasField("last_name") else None, ) @staticmethod def from_json(obj: Dict[str, str]) -> Any: """Parse a JSON dictionary to {Subject} Arguments: obj {Dict[str, str]} -- JSON object Returns: Any -- parsed object and sub-objects """ if "type" in obj and obj["type"].endswith("Subject"): return Subject( type=obj["type"], id=obj["id"], metadata=obj["metadata"], tags=obj["tags"], birthdate_timestamp=obj["birthdateTimestamp"], description=obj["description"], first_name=obj["firstName"], last_name=obj["lastName"] ) return obj
Ancestors
- dempy._base.Entity
Static methods
def from_json(obj: Dict[str, str]) -> Any
-
Parse a JSON dictionary to {Subject}
Arguments
obj {Dict[str, str]} – JSON object
Returns
Any -- parsed object and sub-objects
Expand source code
@staticmethod def from_json(obj: Dict[str, str]) -> Any: """Parse a JSON dictionary to {Subject} Arguments: obj {Dict[str, str]} -- JSON object Returns: Any -- parsed object and sub-objects """ if "type" in obj and obj["type"].endswith("Subject"): return Subject( type=obj["type"], id=obj["id"], metadata=obj["metadata"], tags=obj["tags"], birthdate_timestamp=obj["birthdateTimestamp"], description=obj["description"], first_name=obj["firstName"], last_name=obj["lastName"] ) return obj
def from_protobuf(subject_message: dempy_pb2.Subject) -> Subject
-
Decode a Protobuf message to {Subject}
Arguments
obj {SubjectMessage} – message to be decoded
Returns
Subject -- decoded subject
Expand source code
@staticmethod def from_protobuf(subject_message: SubjectMessage) -> "Subject": """Decode a Protobuf message to {Subject} Arguments: obj {SubjectMessage} -- message to be decoded Returns: Subject -- decoded subject """ return Subject( type=subject_message.entity.type, id=subject_message.entity.id, tags=subject_message.entity.tags, metadata=subject_message.entity.metadata, birthdate_timestamp=subject_message.birthdate_timestamp if subject_message.HasField("birthdate_timestamp") else None, description=subject_message.description if subject_message.HasField("description") else None, first_name=subject_message.first_name if subject_message.HasField("first_name") else None, last_name=subject_message.last_name if subject_message.HasField("last_name") else None, )
def to_protobuf(obj: Subject) -> dempy_pb2.Subject
-
Encode an subject to a Protobuf message
Arguments
obj {Subject} – subject to be encoded
Returns
SubjectMessage -- encoded subject
Expand source code
@staticmethod def to_protobuf(obj: "Subject") -> SubjectMessage: """Encode an subject to a Protobuf message Arguments: obj {Subject} -- subject to be encoded Returns: SubjectMessage -- encoded subject """ subject_message = SubjectMessage() subject_message.entity.CopyFrom(Entity.to_protobuf(obj)) subject_message.birthdate_timestamp = obj.birthdate_timestamp if obj.description is not None: subject_message.description = obj.description if obj.first_name is not None: subject_message.first_name = obj.first_name if obj.last_name is not None: subject_message.last_name = obj.last_name return subject_message