def user_create(self, email, username, restricted=True):
params = {<EOL>"<STR_LIT:email>": email,<EOL>"<STR_LIT:username>": username,<EOL>"<STR_LIT>": restricted,<EOL>}<EOL>result = self.client.post('<STR_LIT>', data=params)<EOL>if not '<STR_LIT:email>' and '<STR_LIT>' and '<STR_LIT:username>' in result:<EOL><INDENT>raise UnexpectedResponseError('<STR_LIT>', json=result)<EOL><DEDENT>u = User(self.client, result['<STR_LIT:username>'], result)<EOL>return u<EOL>
Creates a new user on your account.  If you create an unrestricted user,
they will immediately be able to access everything on your account.  If
you create a restricted user, you must grant them access to parts of your
account that you want to allow them to manage (see :any:`User.grants` for
details).

The new user will receive an email inviting them to set up their password.
This must be completed before they can log in.

:param email: The new user's email address.  This is used to finish setting
              up their user account.
:type email: str
:param username: The new user's unique username.  They will use this username
                 to log in.
:type username: str
:param restricted: If True, the new user must be granted access to parts of
                   the account before they can do anything.  If False, the
                   new user will immediately be able to manage the entire
                   account.  Defaults to True.
:type restricted: True

:returns The new User.
:rtype: User