code: def _parse_limit(self, element):
          
          # Is this a Global or User limit?
          limit_type = attribute(element, 'type', 'user')
  
          # Time unit conversions
          unit_conversions = {
              'seconds': 1,
              'minutes': 60,
              'hours':   3600,
              'days':    86400,
              'weeks':   604800,
              'months':  2592000,
              'years':   31536000
          }
          units = attribute(element, 'unit', 'seconds')
          if units not in unit_conversions:
              self._log.warn('Unrecognized time unit: {unit}'.format(unit=units))
              return
  
          try:
              limit = float(element.text)
          except (ValueError, TypeError):
              self._log.warn('Limit must contain a valid integer or float (Invalid limit: "{limit}")'
                             .format(limit=element.text))
              return
  
          if limit_type == 'global':
              self.global_limit = limit * unit_conversions[units]
              self.glimit_blocking = bool_attribute(element, 'blocking', self.glimit_blocking)
          elif limit_type == 'user':
              self.user_limit = limit * unit_conversions[units]
              self.ulimit_blocking = bool_attribute(element, 'blocking', self.ulimit_blocking)
  
          return
docs: Parse a limit element
          :param element: The XML Element object
          :type  element: etree._Element