def composite_create(self, item): """ Create and return a Composite. The item may be a string, dict, list of dicts or a Composite. """ return Composite(item)
def build_composite(self, format_string, param_dict=None, composites=None, attr_getter=None): """ __deprecated in 3.3__ use safe_format(). Build a composite output using a format string. Takes a format_string and treats it the same way as `safe_format` but also takes a composites dict where each key/value is the name of the placeholder and either an output eg `{'full_text': 'something'}` or a list of outputs. """ if param_dict is None: param_dict = {} # merge any composites into the param_dict. # as they are no longer dealt with separately if composites: for key, value in composites.items(): param_dict[key] = Composite(value) try: return self._formatter.format( format_string, self._py3status_module, param_dict, force_composite=True, attr_getter=attr_getter, ) except Exception: self._report_exception( u'Invalid format `{}`'.format(format_string) ) return [{'full_text': 'invalid format'}]
def composite_join(self, separator, items): """ Join a list of items with a separator. This is used in joining strings, responses and Composites. A Composite object will be returned. """ return Composite.composite_join(separator, items)
def composite_update(self, item, update_dict, soft=False): """ Takes a Composite (item) if item is a type that can be converted into a Composite then this is done automatically. Updates all entries it the Composite with values from update_dict. Updates can be soft in which case existing values are not overwritten. A Composite object will be returned. """ return Composite.composite_update(item, update_dict, soft=False)