MCPcopy
hub / github.com/apache/caldera / Relationship

Class Relationship

app/objects/secondclass/c_relationship.py:31–75  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29
30
31class Relationship(BaseObject):
32
33 schema = RelationshipSchema()
34 load_schema = RelationshipSchema(exclude=['unique'])
35
36 @property
37 def unique(self):
38 return '%s%s%s' % (self.source, self.edge, self.target)
39
40 @classmethod
41 def from_json(cls, json):
42 return cls(source=json['source'], edge=json.get('edge'), target=json.get('target'), score=json.get('score'))
43
44 @property
45 def display(self):
46 return self.clean(dict(source=self.source, edge=self.edge,
47 target=[self.target if self.target else 'Not Used'][0], score=self.score))
48
49 @property
50 def flat_display(self):
51 temp = self.display
52 temp['source'] = temp['source'].display
53 if self.target:
54 temp['target'] = temp['target'].display
55 if self.origin:
56 temp['origin'] = self.origin
57 return temp
58
59 @property
60 def shorthand(self):
61 # compute a visual representation of a relationship for recording purposes
62 stub = f"{self.source.name}({self.source.value})"
63 if self.edge:
64 stub += f" : {self.edge}"
65 if self.target and self.target.name:
66 stub += f" : {self.target.name}({self.target.value})"
67 return stub
68
69 def __init__(self, source, edge=None, target=None, score=1, origin=None):
70 super().__init__()
71 self.source = source
72 self.edge = edge
73 self.target = target
74 self.score = score
75 self.origin = origin

Calls 1

RelationshipSchemaClass · 0.85