code: def add_data_dict(self, dd):  # pragma: no cover - never used...
          
          if self.__data_lock.acquire():
              for k, v in list(dd.items()):
                  ts = v.get('ts', time.time())
                  value = v.get('value')
                  self.__data.append((k, (ts, value)))
              self.__data_lock.release()
              return True
          return False
docs: dd must be a dictionary where keys are the metric name,
          each key contains a dictionary which at least must have 'value' key (optionally 'ts')
  
          dd = {'experiment1.subsystem.block.metric1': {'value': 12.3, 'ts': 1379491605.55},
                'experiment1.subsystem.block.metric2': {'value': 1.35},
               ...}