<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create(self, name, **params):
 """Creates a new role. This function makes two roundtrips to the server, plus at most two more if the ``autologin`` field of :func:`connect` is set to ``True``. :param name: Name for the role. :type name: ``string`` :param params: Additional arguments (optional). For a list of available parameters, see `Roles parameters <http://dev.splunk.com/view/SP-CAAAEJ6#rolesparams>`_ on Splunk Developer Portal. :type params: ``dict`` :return: The new role. :rtype: :class:`Role` **Example**:: import splunklib.client as client roles = c.roles paltry = roles.create("paltry", imported_roles="user", defaultApp="search") """

        if not isinstance(name, six.string_types):
            raise ValueError("Invalid role name: %s" % str(name))
        name = name.lower()
        self.post(name=name, **params)
        # splunkd doesn't return the user in the POST response body,
        # so we have to make a second round trip to fetch it.
        response = self.get(name)
        entry = _load_atom(response, XNAME_ENTRY).entry
        state = _parse_atom_entry(entry)
        entity = self.item(
            self.service,
            urllib.parse.unquote(state.links.alternate),
            state=state)
        return entity