Attempt to validate URI and split into individual values

def uri(self, value):
        """Attempt to validate URI and split into individual values"""
        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)