Creates a new user on the local system.

        Creating users requires either a secret (password) or the nopassword
        keyword to be specified.

        Args:
            name (str): The name of the user to craete

            nopassword (bool): Configures the user to be able to authenticate
                without a password challenage

            secret (str): The secret (password) to assign to this user

            encryption (str): Specifies how the secret is encoded.  Valid
                values are "cleartext", "md5", "sha512".  The default is
                "cleartext"

        Returns:
            True if the operation was successful otherwise False

        Raises:
            TypeError: if the required arguments are not satisfied

def create(self, name, nopassword=None, secret=None, encryption=None):
        """Creates a new user on the local system.

        Creating users requires either a secret (password) or the nopassword
        keyword to be specified.

        Args:
            name (str): The name of the user to craete

            nopassword (bool): Configures the user to be able to authenticate
                without a password challenage

            secret (str): The secret (password) to assign to this user

            encryption (str): Specifies how the secret is encoded.  Valid
                values are "cleartext", "md5", "sha512".  The default is
                "cleartext"

        Returns:
            True if the operation was successful otherwise False

        Raises:
            TypeError: if the required arguments are not satisfied
        """
        if secret is not None:
            return self.create_with_secret(name, secret, encryption)
        elif nopassword is True:
            return self.create_with_nopassword(name)
        else:
            raise TypeError('either "nopassword" or "secret" must be '
                            'specified to create a user')