comparison venv/lib/python2.7/site-packages/github/ContentFile.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 Vincent Jacques <vincent@vincent-jacques.net> #
6 # Copyright 2012 Zearin <zearin@gonk.net> #
7 # Copyright 2013 AKFish <akfish@gmail.com> #
8 # Copyright 2013 Vincent Jacques <vincent@vincent-jacques.net> #
9 # #
10 # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #
11 # #
12 # PyGithub is free software: you can redistribute it and/or modify it under #
13 # the terms of the GNU Lesser General Public License as published by the Free #
14 # Software Foundation, either version 3 of the License, or (at your option) #
15 # any later version. #
16 # #
17 # PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY #
18 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #
19 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #
20 # details. #
21 # #
22 # You should have received a copy of the GNU Lesser General Public License #
23 # along with PyGithub. If not, see <http://www.gnu.org/licenses/>. #
24 # #
25 # ##############################################################################
26
27 import base64
28 import sys
29
30 import github.GithubObject
31 import github.Repository
32
33
34 atLeastPython3 = sys.hexversion >= 0x03000000
35
36
37 class ContentFile(github.GithubObject.CompletableGithubObject):
38 """
39 This class represents ContentFiles as returned for example by http://developer.github.com/v3/todo
40 """
41
42 @property
43 def content(self):
44 """
45 :type: string
46 """
47 self._completeIfNotSet(self._content)
48 return self._content.value
49
50 @property
51 def decoded_content(self):
52 assert self.encoding == "base64", "unsupported encoding: %s" % self.encoding
53 if atLeastPython3:
54 content = bytearray(self.content, "utf-8") # pragma no cover (covered by tests with Python 3.2)
55 else:
56 content = self.content
57 return base64.b64decode(content)
58
59 @property
60 def encoding(self):
61 """
62 :type: string
63 """
64 self._completeIfNotSet(self._encoding)
65 return self._encoding.value
66
67 @property
68 def git_url(self):
69 """
70 :type: string
71 """
72 self._completeIfNotSet(self._git_url)
73 return self._git_url.value
74
75 @property
76 def html_url(self):
77 """
78 :type: string
79 """
80 self._completeIfNotSet(self._html_url)
81 return self._html_url.value
82
83 @property
84 def name(self):
85 """
86 :type: string
87 """
88 self._completeIfNotSet(self._name)
89 return self._name.value
90
91 @property
92 def path(self):
93 """
94 :type: string
95 """
96 self._completeIfNotSet(self._path)
97 return self._path.value
98
99 @property
100 def repository(self):
101 """
102 :type: :class:`github.Repository.Repository`
103 """
104 if self._repository is github.GithubObject.NotSet:
105 # The repository was not set automatically, so it must be looked up by url.
106 repo_url = "/".join(self.url.split("/")[:6]) # pragma no cover (Should be covered)
107 self._repository = github.GithubObject._ValuedAttribute(github.Repository.Repository(self._requester, self._headers, {'url': repo_url}, completed=False)) # pragma no cover (Should be covered)
108 return self._repository.value
109
110 @property
111 def sha(self):
112 """
113 :type: string
114 """
115 self._completeIfNotSet(self._sha)
116 return self._sha.value
117
118 @property
119 def size(self):
120 """
121 :type: integer
122 """
123 self._completeIfNotSet(self._size)
124 return self._size.value
125
126 @property
127 def type(self):
128 """
129 :type: string
130 """
131 self._completeIfNotSet(self._type)
132 return self._type.value
133
134 @property
135 def url(self):
136 """
137 :type: string
138 """
139 self._completeIfNotSet(self._url)
140 return self._url.value
141
142 def _initAttributes(self):
143 self._content = github.GithubObject.NotSet
144 self._encoding = github.GithubObject.NotSet
145 self._git_url = github.GithubObject.NotSet
146 self._html_url = github.GithubObject.NotSet
147 self._name = github.GithubObject.NotSet
148 self._path = github.GithubObject.NotSet
149 self._repository = github.GithubObject.NotSet
150 self._sha = github.GithubObject.NotSet
151 self._size = github.GithubObject.NotSet
152 self._type = github.GithubObject.NotSet
153
154 def _useAttributes(self, attributes):
155 if "content" in attributes: # pragma no branch
156 self._content = self._makeStringAttribute(attributes["content"])
157 if "encoding" in attributes: # pragma no branch
158 self._encoding = self._makeStringAttribute(attributes["encoding"])
159 if "git_url" in attributes: # pragma no branch
160 self._git_url = self._makeStringAttribute(attributes["git_url"])
161 if "html_url" in attributes: # pragma no branch
162 self._html_url = self._makeStringAttribute(attributes["html_url"])
163 if "name" in attributes: # pragma no branch
164 self._name = self._makeStringAttribute(attributes["name"])
165 if "path" in attributes: # pragma no branch
166 self._path = self._makeStringAttribute(attributes["path"])
167 if "repository" in attributes: # pragma no branch
168 self._repository = self._makeClassAttribute(github.Repository.Repository, attributes["repository"])
169 if "sha" in attributes: # pragma no branch
170 self._sha = self._makeStringAttribute(attributes["sha"])
171 if "size" in attributes: # pragma no branch
172 self._size = self._makeIntAttribute(attributes["size"])
173 if "type" in attributes: # pragma no branch
174 self._type = self._makeStringAttribute(attributes["type"])
175 if "url" in attributes: # pragma no branch
176 self._url = self._makeStringAttribute(attributes["url"])