class_docstr: Small container to keep useful information on a ARFF dataset.
  
  Knows about attributes names and types.
  
  Examples
  --------
  ::
  
      data, meta = loadarff('iris.arff')
      # This will print the attributes names of the iris.arff dataset
      for i in meta:
          print(i)
      # This works too
      meta.names()
      # Getting attribute type
      types = meta.types()
  
  Notes
  -----
  Also maintains the list of attributes in order, i.e. doing for i in
  meta, where meta is an instance of MetaData, will return the
  different attribute names in the order they were defined.
code: def __init__(self, rel, attr):
      self.name = rel
      # We need the dictionary to be ordered
      # XXX: may be better to implement an ordered dictionary
      self._attributes = {}
      self._attrnames = []
      for name, value in attr:
          tp = parse_type(value)
          self._attrnames.append(name)
          if tp == "nominal":
              self._attributes[name] = (tp, get_nom_val(value))
          elif tp == "date":
              self._attributes[name] = (tp, get_date_format(value)[0])
          else:
              self._attributes[name] = (tp, None)
  
imports: from __future__ import division, print_function, absolute_import
  import re
  import itertools
  import datetime
  from functools import partial
  import numpy
  from scipy._lib.six import next
label_desc: Use image node_id 1 to create a new MetaData object from inherited base classes: object with example: obj = MetaData(rel, attr)