docs: def print_one_train(client, verbosity=0):
      """Retrieve data for one train and print it.
  
      Returns the (data, metadata) dicts from the client.
  
      This is used by the -glimpse and -monitor command line tools.
      """
      ts_before = time()
      data, meta = client.next()
      ts_after = time()
  
      if not data:
          print("Empty data")
          return
  
      train_id = list(meta.values())[0].get('timestamp.tid', 0)
      print("Train ID:", train_id, "--------------------------")
      delta = ts_after - ts_before
      print('Data from {} sources, REQ-REP took {:.2f} ms'
            .format(len(data), delta))
      print()
  
      for i, (source, src_data) in enumerate(sorted(data.items()), start=1):
          src_metadata = meta.get(source, {})
          tid = src_metadata.get('timestamp.tid', 0)
          print("Source {}: {!r} @ {}".format(i, source, tid))
          try:
              ts = src_metadata['timestamp']
          except KeyError:
              print("No timestamp")
          else:
              dt = strftime('%Y-%m-%d %H:%M:%S', localtime(ts))
  
              delay = (ts_after - ts) * 1000
              print('timestamp: {} ({}) | delay: {:.2f} ms'
                    .format(dt, ts, delay))
  
          if verbosity < 1:
              print("- data:", sorted(src_data))
              print("- metadata:", sorted(src_metadata))
          else:
              print('data:')
              pretty_print(src_data, verbosity=verbosity - 1)
              if src_metadata:
                  print('metadata:')
                  pretty_print(src_metadata)
          print()
  
      return data, meta