def edit(self, description=github.GithubObject.NotSet, files=github.GithubObject.NotSet):
assert description is github.GithubObject.NotSet or isinstance(description, (str, unicode)), description<EOL>assert files is github.GithubObject.NotSet or all(element is None or isinstance(element, github.InputFileContent) for element in files.itervalues()), files<EOL>post_parameters = dict()<EOL>if description is not github.GithubObject.NotSet:<EOL><INDENT>post_parameters["<STR_LIT:description>"] = description<EOL><DEDENT>if files is not github.GithubObject.NotSet:<EOL><INDENT>post_parameters["<STR_LIT>"] = {key: None if value is None else value._identity for key, value in files.iteritems()}<EOL><DEDENT>headers, data = self._requester.requestJsonAndCheck(<EOL>"<STR_LIT>",<EOL>self.url,<EOL>input=post_parameters<EOL>)<EOL>self._useAttributes(data)<EOL>
:calls: `PATCH /gists/:id <http://developer.github.com/v3/gists>`_
:param description: string
:param files: dict of string to :class:`github.InputFileContent.InputFileContent`
:rtype: None