code: def uri(self, value):
          
          if value == self.__uri:
              return
  
          match = URI_REGEX.match(value)
          if match is None:
              raise ValueError('Unable to match URI from `{}`'.format(value))
  
          for key, value in match.groupdict().items():
              setattr(self, key, value)
docs: Attempt to validate URI and split into individual values