Files
PyGithub/src/github/Team.py
T
2012-05-12 15:00:23 +02:00

187 lines
5.6 KiB
Python

# WARNING: this file is generated automaticaly.
# Do not modify it manually, your work would be lost.
import PaginatedList
from GithubObject import *
import Repository
import NamedUser
class Team( object ):
def __init__( self, requester, attributes, lazy ):
self.__requester = requester
self.__completed = False
self.__initAttributes()
self.__useAttributes( attributes )
if not lazy:
self.__complete()
@property
def id( self ):
self.__completeIfNeeded( self.__id )
return self.__id
@property
def members_count( self ):
self.__completeIfNeeded( self.__members_count )
return self.__members_count
@property
def name( self ):
self.__completeIfNeeded( self.__name )
return self.__name
@property
def permission( self ):
self.__completeIfNeeded( self.__permission )
return self.__permission
@property
def repos_count( self ):
self.__completeIfNeeded( self.__repos_count )
return self.__repos_count
@property
def url( self ):
self.__completeIfNeeded( self.__url )
return self.__url
def add_to_members( self, member ):
status, headers, data = self.__requester.request(
"PUT",
str( self.url ) + "/members" + "/" + str( member._identity ),
None,
None
)
def add_to_repos( self, repo ):
status, headers, data = self.__requester.request(
"PUT",
str( self.url ) + "/repos" + "/" + str( repo._identity ),
None,
None
)
def delete( self ):
status, headers, data = self.__requester.request(
"DELETE",
str( self.url ),
None,
None
)
def edit( self, name, permission = DefaultValueForOptionalParameters ):
post_parameters = {
"name": name,
}
if permission is not DefaultValueForOptionalParameters:
post_parameters[ "permission" ] = permission
status, headers, data = self.__requester.request(
"PATCH",
str( self.url ),
None,
post_parameters
)
self.__useAttributes( data )
def get_members( self ):
status, headers, data = self.__requester.request(
"GET",
str( self.url ) + "/members",
None,
None
)
return PaginatedList.PaginatedList(
NamedUser.NamedUser,
self.__requester,
headers,
data
)
def get_repos( self ):
status, headers, data = self.__requester.request(
"GET",
str( self.url ) + "/repos",
None,
None
)
return PaginatedList.PaginatedList(
Repository.Repository,
self.__requester,
headers,
data
)
def has_in_members( self, member ):
status, headers, data = self.__requester.request(
"GET",
str( self.url ) + "/members" + "/" + str( member._identity ),
None,
None
)
return status == 204
def has_in_repos( self, repo ):
status, headers, data = self.__requester.request(
"GET",
str( self.url ) + "/repos" + "/" + str( repo._identity ),
None,
None
)
return status == 204
def remove_from_members( self, member ):
status, headers, data = self.__requester.request(
"DELETE",
str( self.url ) + "/members" + "/" + str( member._identity ),
None,
None
)
def remove_from_repos( self, repo ):
status, headers, data = self.__requester.request(
"DELETE",
str( self.url ) + "/repos" + "/" + str( repo._identity ),
None,
None
)
def __initAttributes( self ):
self.__id = None
self.__members_count = None
self.__name = None
self.__permission = None
self.__repos_count = None
self.__url = None
def __completeIfNeeded( self, testedAttribute ):
if not self.__completed and testedAttribute is None:
self.__complete()
def __complete( self ):
status, headers, data = self.__requester.request(
"GET",
self.__url,
None,
None
)
self.__useAttributes( data )
self.__completed = True
def __useAttributes( self, attributes ):
# @todo Remove this debug weakness: we shall assume that github will add new attributes
for attribute in attributes:
assert attribute in [ "id", "members_count", "name", "permission", "repos_count", "url", ]
# @todo No need to check if attribute is in attributes when attribute is mandatory
if "id" in attributes and attributes[ "id" ] is not None:
self.__id = attributes[ "id" ]
if "members_count" in attributes and attributes[ "members_count" ] is not None:
self.__members_count = attributes[ "members_count" ]
if "name" in attributes and attributes[ "name" ] is not None:
self.__name = attributes[ "name" ]
if "permission" in attributes and attributes[ "permission" ] is not None:
self.__permission = attributes[ "permission" ]
if "repos_count" in attributes and attributes[ "repos_count" ] is not None:
self.__repos_count = attributes[ "repos_count" ]
if "url" in attributes and attributes[ "url" ] is not None:
self.__url = attributes[ "url" ]