    def get_full_uri(self) -> str:
        """
        Get the full uri.

        Returns:
            (`str`)
                The full uri from self._uri.
        """
        result = urlsplit(self._uri)
        path = result.path
        query = dict(parse_qsl(result.query))
        if not result.scheme:
            result = result._replace(scheme=self._scheme)
        if not result.netloc:
            result = result._replace(netloc=self._netloc)
        if 'ref' not in query:
            result = result._replace(query=f'{result.query}&ref={self._ref}')
        if path.endswith(']'):
            path = self.mapping(path)
        if '/' not in path:
            self._has_ns = False
            result = result._replace(path=f'/{self._author}/{path}')
        elif len(path.split('/')) == 2:
            result = result._replace(path=f'/{path}')

        full_uri = result.geturl()
        return full_uri
Get the full uri.

Returns:
(`str`)
The full uri from self._uri.
towhee/utils/repo_normalize.py