Docs
[osm/N2VC.git] / juju / client / overrides.py
1 from collections import namedtuple
2
3 from .facade import Type
4
5 __all__ = [
6 'Delta',
7 ]
8
9
10 class Delta(Type):
11 """A single websocket delta.
12
13 :ivar entity: The entity name, e.g. 'unit', 'application'
14 :vartype entity: str
15
16 :ivar type: The delta type, e.g. 'add', 'change', 'remove'
17 :vartype type: str
18
19 :ivar data: The raw delta data
20 :vartype data: dict
21
22 NOTE: The 'data' variable above is being incorrectly cross-linked by a
23 Sphinx bug: https://github.com/sphinx-doc/sphinx/issues/2549
24
25 """
26 _toSchema = {'deltas': 'deltas'}
27 _toPy = {'deltas': 'deltas'}
28
29 def __init__(self, deltas=None):
30 """
31 :param deltas: [str, str, object]
32
33 """
34 self.deltas = deltas
35
36 Change = namedtuple('Change', 'entity type data')
37 change = Change(*self.deltas)
38
39 self.entity = change.entity
40 self.type = change.type
41 self.data = change.data
42
43 @classmethod
44 def from_json(cls, data):
45 return cls(deltas=data)