async def fetch_user_profile(self, user_id):
state = self._connection<EOL>data = await self.http.get_user_profile(user_id)<EOL>def transform(d):<EOL><INDENT>return state._get_guild(int(d['<STR_LIT:id>']))<EOL><DEDENT>since = data.get('<STR_LIT>')<EOL>mutual_guilds = list(filter(None, map(transform, data.get('<STR_LIT>', []))))<EOL>user = data['<STR_LIT:user>']<EOL>return Profile(flags=user.get('<STR_LIT>', <NUM_LIT:0>),<EOL>premium_since=utils.parse_time(since),<EOL>mutual_guilds=mutual_guilds,<EOL>user=User(data=user, state=state),<EOL>connected_accounts=data['<STR_LIT>'])<EOL>
|coro|

        Gets an arbitrary user's profile. This can only be used by non-bot accounts.

        Parameters
        ------------
        user_id: :class:`int`
            The ID of the user to fetch their profile for.

        Raises
        -------
        Forbidden
            Not allowed to fetch profiles.
        HTTPException
            Fetching the profile failed.

        Returns
        --------
        :class:`.Profile`
            The profile of the user.