code: def info(self):
          
          if (len(self.values()) > 0):
              info_str = self.__class__.__name__ +\
                         " containing %d items of type %s\n" % (len(self.keys()),
                                                                type(self.values()[0]).__name__)
          else:
              info_str = self.__class__.__name__ + " containing no items\n"
          info_str += ('-' * (len(info_str)-1)) + "\n\n"
          aliases = {v: k for k, v in self._dim_aliases.items()}
          for group in self._dim_groups:
              dimensions = getattr(self, group)
              if dimensions:
                  group = aliases[group].split('_')[0]
                  info_str += '%s Dimensions: \n' % group.capitalize()
              for d in dimensions:
                  dmin, dmax = self.range(d.name)
                  if d.value_format:
                      dmin, dmax = d.value_format(dmin), d.value_format(dmax)
                  info_str += '\t %s: %s...%s \n' % (d.pprint_label, dmin, dmax)
          print(info_str)
docs: Prints information about the Dimensioned object, including the
          number and type of objects contained within it and information
          about its dimensions.