Lines Matching refs:self

31     def __init__(self, family, yaml):  argument
32 self.yaml = yaml
33 self.family = family
35 if 'name' in self.yaml:
36 self.name = self.yaml['name']
37 self.ident_name = self.name.replace('-', '_')
39 self._super_resolved = False
40 family.add_unresolved(self)
42 def __getitem__(self, key): argument
43 return self.yaml[key]
45 def __contains__(self, key): argument
46 return key in self.yaml
48 def get(self, key, default=None): argument
49 return self.yaml.get(key, default)
51 def resolve_up(self, up): argument
52 if not self._super_resolved:
54 self._super_resolved = True
56 def resolve(self): argument
72 def __init__(self, enum_set, yaml, prev, value_start): argument
77 self.doc = yaml.get('doc', '')
78 self.enum_set = enum_set
81 self.value = yaml['value']
83 self.value = prev.value + 1
85 self.value = value_start
87 def has_doc(self): argument
88 return bool(self.doc)
90 def raw_value(self): argument
91 return self.value
93 def user_value(self): argument
94 if self.enum_set['type'] == 'flags':
95 return 1 << self.value
97 return self.value
113 def __init__(self, family, yaml): argument
116 self.type = yaml['type']
119 value_start = self.yaml.get('value-start', 0)
120 self.entries = dict()
121 self.entries_by_val = dict()
122 for entry in self.yaml['entries']:
123 e = self.new_entry(entry, prev_entry, value_start)
124 self.entries[e.name] = e
125 self.entries_by_val[e.raw_value()] = e
128 def new_entry(self, entry, prev_entry, value_start): argument
129 return SpecEnumEntry(self, entry, prev_entry, value_start)
131 def has_doc(self): argument
132 if 'doc' in self.yaml:
134 for entry in self.entries.values():
139 def get_mask(self): argument
141 idx = self.yaml.get('value-start', 0)
142 for _ in self.entries.values():
157 def __init__(self, family, attr_set, yaml, value): argument
160 self.value = value
161 self.attr_set = attr_set
162 self.is_multi = yaml.get('multi-attr', False)
178 def __init__(self, family, yaml): argument
181 self.subset_of = self.yaml.get('subset-of', None)
183 self.attrs = collections.OrderedDict()
184 self.attrs_by_val = collections.OrderedDict()
186 if self.subset_of is None:
188 for elem in self.yaml['attributes']:
192 attr = self.new_attr(elem, val)
193 self.attrs[attr.name] = attr
194 self.attrs_by_val[attr.value] = attr
197 real_set = family.attr_sets[self.subset_of]
198 for elem in self.yaml['attributes']:
200 self.attrs[attr.name] = attr
201 self.attrs_by_val[attr.value] = attr
203 def new_attr(self, elem, value): argument
204 return SpecAttr(self.family, self, elem, value)
206 def __getitem__(self, key): argument
207 return self.attrs[key]
209 def __contains__(self, key): argument
210 return key in self.attrs
212 def __iter__(self): argument
213 yield from self.attrs
215 def items(self): argument
216 return self.attrs.items()
236 def __init__(self, family, yaml, req_value, rsp_value): argument
239 self.value = req_value if req_value == rsp_value else None
240 self.req_value = req_value
241 self.rsp_value = rsp_value
243 self.is_call = 'do' in yaml or 'dump' in yaml
244 self.is_async = 'notify' in yaml or 'event' in yaml
245 self.is_resv = not self.is_async and not self.is_call
248 self.attr_set = None
249 delattr(self, "attr_set")
251 def resolve(self): argument
252 self.resolve_up(super())
254 if 'attribute-set' in self.yaml:
255 attr_set_name = self.yaml['attribute-set']
256 elif 'notify' in self.yaml:
257 msg = self.family.msgs[self.yaml['notify']]
259 elif self.is_resv:
264 self.attr_set = self.family.attr_sets[attr_set_name]
286 def __init__(self, spec_path, schema_path=None): argument
290 self._resolution_list = []
292 super().__init__(self, spec)
294 self.proto = self.yaml.get('protocol', 'genetlink')
307 jsonschema.validate(self.yaml, schema)
309 self.attr_sets = collections.OrderedDict()
310 self.msgs = collections.OrderedDict()
311 self.req_by_value = collections.OrderedDict()
312 self.rsp_by_value = collections.OrderedDict()
313 self.ops = collections.OrderedDict()
314 self.consts = collections.OrderedDict()
317 while len(self._resolution_list) > 0:
319 unresolved = self._resolution_list
320 self._resolution_list = []
326 self._resolution_list.append(elem)
335 def new_enum(self, elem): argument
336 return SpecEnumSet(self, elem)
338 def new_attr_set(self, elem): argument
339 return SpecAttrSet(self, elem)
341 def new_operation(self, elem, req_val, rsp_val): argument
342 return SpecOperation(self, elem, req_val, rsp_val)
344 def add_unresolved(self, elem): argument
345 self._resolution_list.append(elem)
347 def _dictify_ops_unified(self): argument
349 for elem in self.yaml['operations']['list']:
353 op = self.new_operation(elem, val, val)
356 self.msgs[op.name] = op
358 def _dictify_ops_directional(self): argument
360 for elem in self.yaml['operations']['list']:
383 op = self.new_operation(elem, req_val, rsp_val)
387 self.msgs[op.name] = op
389 def resolve(self): argument
390 self.resolve_up(super())
392 for elem in self.yaml['definitions']:
394 self.consts[elem['name']] = self.new_enum(elem)
396 self.consts[elem['name']] = elem
398 for elem in self.yaml['attribute-sets']:
399 attr_set = self.new_attr_set(elem)
400 self.attr_sets[elem['name']] = attr_set
402 msg_id_model = self.yaml['operations'].get('enum-model', 'unified')
404 self._dictify_ops_unified()
406 self._dictify_ops_directional()
408 for op in self.msgs.values():
410 self.req_by_value[op.req_value] = op
412 self.rsp_by_value[op.rsp_value] = op
414 self.ops[op.name] = op