Mercurial > repos > bcclaywell > argo_navis
comparison venv/lib/python2.7/site-packages/github/Gist.py @ 0:d67268158946 draft
planemo upload commit a3f181f5f126803c654b3a66dd4e83a48f7e203b
author | bcclaywell |
---|---|
date | Mon, 12 Oct 2015 17:43:33 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:d67268158946 |
---|---|
1 # -*- coding: utf-8 -*- | |
2 | |
3 # ########################## Copyrights and license ############################ | |
4 # # | |
5 # Copyright 2012 Steve English <steve.english@navetas.com> # | |
6 # Copyright 2012 Vincent Jacques <vincent@vincent-jacques.net> # | |
7 # Copyright 2012 Zearin <zearin@gonk.net> # | |
8 # Copyright 2013 AKFish <akfish@gmail.com> # | |
9 # Copyright 2013 Vincent Jacques <vincent@vincent-jacques.net> # | |
10 # # | |
11 # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # | |
12 # # | |
13 # PyGithub is free software: you can redistribute it and/or modify it under # | |
14 # the terms of the GNU Lesser General Public License as published by the Free # | |
15 # Software Foundation, either version 3 of the License, or (at your option) # | |
16 # any later version. # | |
17 # # | |
18 # PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # | |
19 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # | |
20 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # | |
21 # details. # | |
22 # # | |
23 # You should have received a copy of the GNU Lesser General Public License # | |
24 # along with PyGithub. If not, see <http://www.gnu.org/licenses/>. # | |
25 # # | |
26 # ############################################################################## | |
27 | |
28 import github.GithubObject | |
29 import github.PaginatedList | |
30 | |
31 import github.GistComment | |
32 import github.NamedUser | |
33 import github.GistFile | |
34 import github.GistHistoryState | |
35 | |
36 | |
37 class Gist(github.GithubObject.CompletableGithubObject): | |
38 """ | |
39 This class represents Gists as returned for example by http://developer.github.com/v3/todo | |
40 """ | |
41 | |
42 @property | |
43 def comments(self): | |
44 """ | |
45 :type: integer | |
46 """ | |
47 self._completeIfNotSet(self._comments) | |
48 return self._comments.value | |
49 | |
50 @property | |
51 def comments_url(self): | |
52 """ | |
53 :type: string | |
54 """ | |
55 self._completeIfNotSet(self._comments_url) | |
56 return self._comments_url.value | |
57 | |
58 @property | |
59 def commits_url(self): | |
60 """ | |
61 :type: string | |
62 """ | |
63 self._completeIfNotSet(self._commits_url) | |
64 return self._commits_url.value | |
65 | |
66 @property | |
67 def created_at(self): | |
68 """ | |
69 :type: datetime.datetime | |
70 """ | |
71 self._completeIfNotSet(self._created_at) | |
72 return self._created_at.value | |
73 | |
74 @property | |
75 def description(self): | |
76 """ | |
77 :type: string | |
78 """ | |
79 self._completeIfNotSet(self._description) | |
80 return self._description.value | |
81 | |
82 @property | |
83 def files(self): | |
84 """ | |
85 :type: dict of string to :class:`github.GistFile.GistFile` | |
86 """ | |
87 self._completeIfNotSet(self._files) | |
88 return self._files.value | |
89 | |
90 @property | |
91 def fork_of(self): | |
92 """ | |
93 :type: :class:`github.Gist.Gist` | |
94 """ | |
95 self._completeIfNotSet(self._fork_of) | |
96 return self._fork_of.value | |
97 | |
98 @property | |
99 def forks(self): | |
100 """ | |
101 :type: list of :class:`github.Gist.Gist` | |
102 """ | |
103 self._completeIfNotSet(self._forks) | |
104 return self._forks.value | |
105 | |
106 @property | |
107 def forks_url(self): | |
108 """ | |
109 :type: string | |
110 """ | |
111 self._completeIfNotSet(self._forks_url) | |
112 return self._forks_url.value | |
113 | |
114 @property | |
115 def git_pull_url(self): | |
116 """ | |
117 :type: string | |
118 """ | |
119 self._completeIfNotSet(self._git_pull_url) | |
120 return self._git_pull_url.value | |
121 | |
122 @property | |
123 def git_push_url(self): | |
124 """ | |
125 :type: string | |
126 """ | |
127 self._completeIfNotSet(self._git_push_url) | |
128 return self._git_push_url.value | |
129 | |
130 @property | |
131 def history(self): | |
132 """ | |
133 :type: list of :class:`github.GistHistoryState.GistHistoryState` | |
134 """ | |
135 self._completeIfNotSet(self._history) | |
136 return self._history.value | |
137 | |
138 @property | |
139 def html_url(self): | |
140 """ | |
141 :type: string | |
142 """ | |
143 self._completeIfNotSet(self._html_url) | |
144 return self._html_url.value | |
145 | |
146 @property | |
147 def id(self): | |
148 """ | |
149 :type: string | |
150 """ | |
151 self._completeIfNotSet(self._id) | |
152 return self._id.value | |
153 | |
154 @property | |
155 def owner(self): | |
156 """ | |
157 :type: :class:`github.NamedUser.NamedUser` | |
158 """ | |
159 self._completeIfNotSet(self._owner) | |
160 return self._owner.value | |
161 | |
162 @property | |
163 def public(self): | |
164 """ | |
165 :type: bool | |
166 """ | |
167 self._completeIfNotSet(self._public) | |
168 return self._public.value | |
169 | |
170 @property | |
171 def updated_at(self): | |
172 """ | |
173 :type: datetime.datetime | |
174 """ | |
175 self._completeIfNotSet(self._updated_at) | |
176 return self._updated_at.value | |
177 | |
178 @property | |
179 def url(self): | |
180 """ | |
181 :type: string | |
182 """ | |
183 self._completeIfNotSet(self._url) | |
184 return self._url.value | |
185 | |
186 @property | |
187 def user(self): | |
188 """ | |
189 :type: :class:`github.NamedUser.NamedUser` | |
190 """ | |
191 self._completeIfNotSet(self._user) | |
192 return self._user.value | |
193 | |
194 def create_comment(self, body): | |
195 """ | |
196 :calls: `POST /gists/:gist_id/comments <http://developer.github.com/v3/gists/comments>`_ | |
197 :param body: string | |
198 :rtype: :class:`github.GistComment.GistComment` | |
199 """ | |
200 assert isinstance(body, (str, unicode)), body | |
201 post_parameters = { | |
202 "body": body, | |
203 } | |
204 headers, data = self._requester.requestJsonAndCheck( | |
205 "POST", | |
206 self.url + "/comments", | |
207 input=post_parameters | |
208 ) | |
209 return github.GistComment.GistComment(self._requester, headers, data, completed=True) | |
210 | |
211 def create_fork(self): | |
212 """ | |
213 :calls: `POST /gists/:id/forks <http://developer.github.com/v3/gists>`_ | |
214 :rtype: :class:`github.Gist.Gist` | |
215 """ | |
216 headers, data = self._requester.requestJsonAndCheck( | |
217 "POST", | |
218 self.url + "/forks" | |
219 ) | |
220 return Gist(self._requester, headers, data, completed=True) | |
221 | |
222 def delete(self): | |
223 """ | |
224 :calls: `DELETE /gists/:id <http://developer.github.com/v3/gists>`_ | |
225 :rtype: None | |
226 """ | |
227 headers, data = self._requester.requestJsonAndCheck( | |
228 "DELETE", | |
229 self.url | |
230 ) | |
231 | |
232 def edit(self, description=github.GithubObject.NotSet, files=github.GithubObject.NotSet): | |
233 """ | |
234 :calls: `PATCH /gists/:id <http://developer.github.com/v3/gists>`_ | |
235 :param description: string | |
236 :param files: dict of string to :class:`github.InputFileContent.InputFileContent` | |
237 :rtype: None | |
238 """ | |
239 assert description is github.GithubObject.NotSet or isinstance(description, (str, unicode)), description | |
240 assert files is github.GithubObject.NotSet or all(element is None or isinstance(element, github.InputFileContent) for element in files.itervalues()), files | |
241 post_parameters = dict() | |
242 if description is not github.GithubObject.NotSet: | |
243 post_parameters["description"] = description | |
244 if files is not github.GithubObject.NotSet: | |
245 post_parameters["files"] = dict((key, None if value is None else value._identity) for key, value in files.iteritems()) | |
246 headers, data = self._requester.requestJsonAndCheck( | |
247 "PATCH", | |
248 self.url, | |
249 input=post_parameters | |
250 ) | |
251 self._useAttributes(data) | |
252 | |
253 def get_comment(self, id): | |
254 """ | |
255 :calls: `GET /gists/:gist_id/comments/:id <http://developer.github.com/v3/gists/comments>`_ | |
256 :param id: integer | |
257 :rtype: :class:`github.GistComment.GistComment` | |
258 """ | |
259 assert isinstance(id, (int, long)), id | |
260 headers, data = self._requester.requestJsonAndCheck( | |
261 "GET", | |
262 self.url + "/comments/" + str(id) | |
263 ) | |
264 return github.GistComment.GistComment(self._requester, headers, data, completed=True) | |
265 | |
266 def get_comments(self): | |
267 """ | |
268 :calls: `GET /gists/:gist_id/comments <http://developer.github.com/v3/gists/comments>`_ | |
269 :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.GistComment.GistComment` | |
270 """ | |
271 return github.PaginatedList.PaginatedList( | |
272 github.GistComment.GistComment, | |
273 self._requester, | |
274 self.url + "/comments", | |
275 None | |
276 ) | |
277 | |
278 def is_starred(self): | |
279 """ | |
280 :calls: `GET /gists/:id/star <http://developer.github.com/v3/gists>`_ | |
281 :rtype: bool | |
282 """ | |
283 status, headers, data = self._requester.requestJson( | |
284 "GET", | |
285 self.url + "/star" | |
286 ) | |
287 return status == 204 | |
288 | |
289 def reset_starred(self): | |
290 """ | |
291 :calls: `DELETE /gists/:id/star <http://developer.github.com/v3/gists>`_ | |
292 :rtype: None | |
293 """ | |
294 headers, data = self._requester.requestJsonAndCheck( | |
295 "DELETE", | |
296 self.url + "/star" | |
297 ) | |
298 | |
299 def set_starred(self): | |
300 """ | |
301 :calls: `PUT /gists/:id/star <http://developer.github.com/v3/gists>`_ | |
302 :rtype: None | |
303 """ | |
304 headers, data = self._requester.requestJsonAndCheck( | |
305 "PUT", | |
306 self.url + "/star" | |
307 ) | |
308 | |
309 def _initAttributes(self): | |
310 self._comments = github.GithubObject.NotSet | |
311 self._comments_url = github.GithubObject.NotSet | |
312 self._commits_url = github.GithubObject.NotSet | |
313 self._created_at = github.GithubObject.NotSet | |
314 self._description = github.GithubObject.NotSet | |
315 self._files = github.GithubObject.NotSet | |
316 self._fork_of = github.GithubObject.NotSet | |
317 self._forks = github.GithubObject.NotSet | |
318 self._forks_url = github.GithubObject.NotSet | |
319 self._git_pull_url = github.GithubObject.NotSet | |
320 self._git_push_url = github.GithubObject.NotSet | |
321 self._history = github.GithubObject.NotSet | |
322 self._html_url = github.GithubObject.NotSet | |
323 self._id = github.GithubObject.NotSet | |
324 self._owner = github.GithubObject.NotSet | |
325 self._public = github.GithubObject.NotSet | |
326 self._updated_at = github.GithubObject.NotSet | |
327 self._url = github.GithubObject.NotSet | |
328 self._user = github.GithubObject.NotSet | |
329 | |
330 def _useAttributes(self, attributes): | |
331 if "comments" in attributes: # pragma no branch | |
332 self._comments = self._makeIntAttribute(attributes["comments"]) | |
333 if "comments_url" in attributes: # pragma no branch | |
334 self._comments_url = self._makeStringAttribute(attributes["comments_url"]) | |
335 if "commits_url" in attributes: # pragma no branch | |
336 self._commits_url = self._makeStringAttribute(attributes["commits_url"]) | |
337 if "created_at" in attributes: # pragma no branch | |
338 self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) | |
339 if "description" in attributes: # pragma no branch | |
340 self._description = self._makeStringAttribute(attributes["description"]) | |
341 if "files" in attributes: # pragma no branch | |
342 self._files = self._makeDictOfStringsToClassesAttribute(github.GistFile.GistFile, attributes["files"]) | |
343 if "fork_of" in attributes: # pragma no branch | |
344 self._fork_of = self._makeClassAttribute(Gist, attributes["fork_of"]) | |
345 if "forks" in attributes: # pragma no branch | |
346 self._forks = self._makeListOfClassesAttribute(Gist, attributes["forks"]) | |
347 if "forks_url" in attributes: # pragma no branch | |
348 self._forks_url = self._makeStringAttribute(attributes["forks_url"]) | |
349 if "git_pull_url" in attributes: # pragma no branch | |
350 self._git_pull_url = self._makeStringAttribute(attributes["git_pull_url"]) | |
351 if "git_push_url" in attributes: # pragma no branch | |
352 self._git_push_url = self._makeStringAttribute(attributes["git_push_url"]) | |
353 if "history" in attributes: # pragma no branch | |
354 self._history = self._makeListOfClassesAttribute(github.GistHistoryState.GistHistoryState, attributes["history"]) | |
355 if "html_url" in attributes: # pragma no branch | |
356 self._html_url = self._makeStringAttribute(attributes["html_url"]) | |
357 if "id" in attributes: # pragma no branch | |
358 self._id = self._makeStringAttribute(attributes["id"]) | |
359 if "owner" in attributes: # pragma no branch | |
360 self._owner = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["owner"]) | |
361 if "public" in attributes: # pragma no branch | |
362 self._public = self._makeBoolAttribute(attributes["public"]) | |
363 if "updated_at" in attributes: # pragma no branch | |
364 self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) | |
365 if "url" in attributes: # pragma no branch | |
366 self._url = self._makeStringAttribute(attributes["url"]) | |
367 if "user" in attributes: # pragma no branch | |
368 self._user = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["user"]) |