Lines Matching refs:extra
42 def from_raw(cls, raw, **extra):
44 if extra:
46 raise NotImplementedError((raw, extra))
47 #return cls(raw.item, raw.typedecl, **raw._extra, **extra)
51 return cls(raw, **extra)
53 raise NotImplementedError((raw, extra))
56 def from_resolved(cls, item, resolved, **extra):
58 return cls(item, typedecl=resolved, **extra)
60 typedeps, extra = cls._parse_raw_resolved(item, resolved, extra)
63 raise NotImplementedError((item, resolved, extra))
65 raise NotImplementedError((item, resolved, extra))
66 return cls(item, typedeps, **extra or {})
73 typedeps, extra = resolved
75 typedeps = extra = None
76 if extra:
78 extra = dict(extra_extra, **extra)
80 return typedeps, extra
83 return UNKNOWN, extra
86 return typedeps, extra
88 raise NotImplementedError((item, typedeps, extra))
89 return typedeps, extra
91 def __init__(self, item, typedecl=None, **extra):
111 self._extra = extra
118 extra = self._extra
122 # Check extra.
123 for key, value in extra.items():
125 raise ValueError(f'extra items starting with {"_"!r} not allowed, got {extra!r}')
127 raise ValueError(f'extra cannot override item, got {value!r} for key {key!r}')
176 # The item takes precedence over the extra data (except if callable).
248 extra = self._render_extra(fmt)
249 if not extra:
253 extra, = extra
254 yield f'{rendered}\t{extra}'
259 for line in extra:
276 def build_item(cls, info, resolved=None, **extra):
278 return cls._item_class.from_raw(info, **extra)
280 return cls._item_class.from_resolved(info, resolved, **extra)