def create_dataset(self, name=None, description=None, public=False):
data = {<EOL>"<STR_LIT>": _convert_bool_to_public_value(public)<EOL>}<EOL>if name:<EOL><INDENT>data["<STR_LIT:name>"] = name<EOL><DEDENT>if description:<EOL><INDENT>data["<STR_LIT:description>"] = description<EOL><DEDENT>dataset = {"<STR_LIT>": data}<EOL>failure_message = "<STR_LIT>"<EOL>result = self._get_success_json(self._post_json(routes.create_dataset(), dataset, failure_message=failure_message))<EOL>return _dataset_from_response_dict(result)<EOL>
Create a new data set.

:param name: name of the dataset
:type name: str
:param description: description for the dataset
:type description: str
:param public: A boolean indicating whether or not the dataset should be public.
:type public: bool
:return: The newly created dataset.
:rtype: :class:`Dataset`