code: def unit(u):
      '''
      unit(u) yields the pimms-library unit object for the given unit object u (which may be from a
        separate pint.UnitRegistry instance).
      unit(uname) yields the unit object for the given unit name uname.
      unit(None) yields None.
      unit(q) yields the unit of the given quantity q.
      '''
      if u is None:    return None
      elif is_unit(u): return getattr(units, str(u))
      elif is_quantity(u):
          if isinstance(u, tuple): return getattr(units, str(u[1]))
          else: return getattr(units, str(u.u))
      else:
          raise ValueError('unrecotnized unit argument'f unit(u):
      '''
      unit(u) yields the pimms-library unit object for the given unit object u (which may be from a
        separate pint.UnitRegistry instance).
      unit(uname) yields the unit object for the given unit name uname.
      unit(None) yields None.
      unit(q) yields the unit of the given quantity q.
      '''
      if u is None:    return None
      elif is_unit(u): return getattr(units, str(u))
      elif is_quantity(u):
          if isinstance(u, tuple): return getattr(units, str(u[1]))
          else: return getattr(units, str(u.u))
      else:
          raise ValueError('unrecotnized unit argument')
docs: unit(u) yields the pimms-library unit object for the given unit object u (which may be from a
        separate pint.UnitRegistry instance).
      unit(uname) yields the unit object for the given unit name uname.
      unit(None) yields None.
      unit(q) yields the unit of the given quantity q.