Mercurial > repos > bcclaywell > argo_navis
diff venv/lib/python2.7/site-packages/github/AuthenticatedUser.py @ 0:d67268158946 draft
planemo upload commit a3f181f5f126803c654b3a66dd4e83a48f7e203b
author | bcclaywell |
---|---|
date | Mon, 12 Oct 2015 17:43:33 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/venv/lib/python2.7/site-packages/github/AuthenticatedUser.py Mon Oct 12 17:43:33 2015 -0400 @@ -0,0 +1,1158 @@ +# -*- coding: utf-8 -*- + +# ########################## Copyrights and license ############################ +# # +# Copyright 2012 Steve English <steve.english@navetas.com> # +# Copyright 2012 Vincent Jacques <vincent@vincent-jacques.net> # +# Copyright 2012 Zearin <zearin@gonk.net> # +# Copyright 2013 AKFish <akfish@gmail.com> # +# Copyright 2013 Vincent Jacques <vincent@vincent-jacques.net> # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see <http://www.gnu.org/licenses/>. # +# # +# ############################################################################## + +import datetime + +import github.GithubObject +import github.PaginatedList + +import github.Gist +import github.Repository +import github.NamedUser +import github.Plan +import github.Organization +import github.UserKey +import github.Issue +import github.Event +import github.Authorization +import github.Notification + + +class AuthenticatedUser(github.GithubObject.CompletableGithubObject): + """ + This class represents AuthenticatedUsers as returned for example by http://developer.github.com/v3/todo + """ + + @property + def avatar_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._avatar_url) + return self._avatar_url.value + + @property + def bio(self): + """ + :type: string + """ + self._completeIfNotSet(self._bio) + return self._bio.value + + @property + def blog(self): + """ + :type: string + """ + self._completeIfNotSet(self._blog) + return self._blog.value + + @property + def collaborators(self): + """ + :type: integer + """ + self._completeIfNotSet(self._collaborators) + return self._collaborators.value + + @property + def company(self): + """ + :type: string + """ + self._completeIfNotSet(self._company) + return self._company.value + + @property + def created_at(self): + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._created_at) + return self._created_at.value + + @property + def disk_usage(self): + """ + :type: integer + """ + self._completeIfNotSet(self._disk_usage) + return self._disk_usage.value + + @property + def email(self): + """ + :type: string + """ + self._completeIfNotSet(self._email) + return self._email.value + + @property + def events_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._events_url) + return self._events_url.value + + @property + def followers(self): + """ + :type: integer + """ + self._completeIfNotSet(self._followers) + return self._followers.value + + @property + def followers_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._followers_url) + return self._followers_url.value + + @property + def following(self): + """ + :type: integer + """ + self._completeIfNotSet(self._following) + return self._following.value + + @property + def following_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._following_url) + return self._following_url.value + + @property + def gists_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._gists_url) + return self._gists_url.value + + @property + def gravatar_id(self): + """ + :type: string + """ + self._completeIfNotSet(self._gravatar_id) + return self._gravatar_id.value + + @property + def hireable(self): + """ + :type: bool + """ + self._completeIfNotSet(self._hireable) + return self._hireable.value + + @property + def html_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._html_url) + return self._html_url.value + + @property + def id(self): + """ + :type: integer + """ + self._completeIfNotSet(self._id) + return self._id.value + + @property + def location(self): + """ + :type: string + """ + self._completeIfNotSet(self._location) + return self._location.value + + @property + def login(self): + """ + :type: string + """ + self._completeIfNotSet(self._login) + return self._login.value + + @property + def name(self): + """ + :type: string + """ + self._completeIfNotSet(self._name) + return self._name.value + + @property + def organizations_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._organizations_url) + return self._organizations_url.value + + @property + def owned_private_repos(self): + """ + :type: integer + """ + self._completeIfNotSet(self._owned_private_repos) + return self._owned_private_repos.value + + @property + def plan(self): + """ + :type: :class:`github.Plan.Plan` + """ + self._completeIfNotSet(self._plan) + return self._plan.value + + @property + def private_gists(self): + """ + :type: integer + """ + self._completeIfNotSet(self._private_gists) + return self._private_gists.value + + @property + def public_gists(self): + """ + :type: integer + """ + self._completeIfNotSet(self._public_gists) + return self._public_gists.value + + @property + def public_repos(self): + """ + :type: integer + """ + self._completeIfNotSet(self._public_repos) + return self._public_repos.value + + @property + def received_events_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._received_events_url) + return self._received_events_url.value + + @property + def repos_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._repos_url) + return self._repos_url.value + + @property + def site_admin(self): + """ + :type: bool + """ + self._completeIfNotSet(self._site_admin) + return self._site_admin.value + + @property + def starred_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._starred_url) + return self._starred_url.value + + @property + def subscriptions_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._subscriptions_url) + return self._subscriptions_url.value + + @property + def total_private_repos(self): + """ + :type: integer + """ + self._completeIfNotSet(self._total_private_repos) + return self._total_private_repos.value + + @property + def type(self): + """ + :type: string + """ + self._completeIfNotSet(self._type) + return self._type.value + + @property + def updated_at(self): + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._updated_at) + return self._updated_at.value + + @property + def url(self): + """ + :type: string + """ + self._completeIfNotSet(self._url) + return self._url.value + + def add_to_emails(self, *emails): + """ + :calls: `POST /user/emails <http://developer.github.com/v3/users/emails>`_ + :param email: string + :rtype: None + """ + assert all(isinstance(element, (str, unicode)) for element in emails), emails + post_parameters = emails + headers, data = self._requester.requestJsonAndCheck( + "POST", + "/user/emails", + input=post_parameters + ) + + def add_to_following(self, following): + """ + :calls: `PUT /user/following/:user <http://developer.github.com/v3/users/followers>`_ + :param following: :class:`github.NamedUser.NamedUser` + :rtype: None + """ + assert isinstance(following, github.NamedUser.NamedUser), following + headers, data = self._requester.requestJsonAndCheck( + "PUT", + "/user/following/" + following._identity + ) + + def add_to_starred(self, starred): + """ + :calls: `PUT /user/starred/:owner/:repo <http://developer.github.com/v3/activity/starring>`_ + :param starred: :class:`github.Repository.Repository` + :rtype: None + """ + assert isinstance(starred, github.Repository.Repository), starred + headers, data = self._requester.requestJsonAndCheck( + "PUT", + "/user/starred/" + starred._identity + ) + + def add_to_subscriptions(self, subscription): + """ + :calls: `PUT /user/subscriptions/:owner/:repo <http://developer.github.com/v3/activity/watching>`_ + :param subscription: :class:`github.Repository.Repository` + :rtype: None + """ + assert isinstance(subscription, github.Repository.Repository), subscription + headers, data = self._requester.requestJsonAndCheck( + "PUT", + "/user/subscriptions/" + subscription._identity + ) + + def add_to_watched(self, watched): + """ + :calls: `PUT /user/watched/:owner/:repo <http://developer.github.com/v3/activity/starring>`_ + :param watched: :class:`github.Repository.Repository` + :rtype: None + """ + assert isinstance(watched, github.Repository.Repository), watched + headers, data = self._requester.requestJsonAndCheck( + "PUT", + "/user/watched/" + watched._identity + ) + + def create_authorization(self, scopes=github.GithubObject.NotSet, note=github.GithubObject.NotSet, note_url=github.GithubObject.NotSet, client_id=github.GithubObject.NotSet, client_secret=github.GithubObject.NotSet, onetime_password=None): + """ + :calls: `POST /authorizations <http://developer.github.com/v3/oauth>`_ + :param scopes: list of string + :param note: string + :param note_url: string + :param client_id: string + :param client_secret: string + :param onetime_password: string + :rtype: :class:`github.Authorization.Authorization` + """ + assert scopes is github.GithubObject.NotSet or all(isinstance(element, (str, unicode)) for element in scopes), scopes + assert note is github.GithubObject.NotSet or isinstance(note, (str, unicode)), note + assert note_url is github.GithubObject.NotSet or isinstance(note_url, (str, unicode)), note_url + assert client_id is github.GithubObject.NotSet or isinstance(client_id, (str, unicode)), client_id + assert client_secret is github.GithubObject.NotSet or isinstance(client_secret, (str, unicode)), client_secret + assert onetime_password is None or isinstance(onetime_password, (str, unicode)), onetime_password + post_parameters = dict() + if scopes is not github.GithubObject.NotSet: + post_parameters["scopes"] = scopes + if note is not github.GithubObject.NotSet: + post_parameters["note"] = note + if note_url is not github.GithubObject.NotSet: + post_parameters["note_url"] = note_url + if client_id is not github.GithubObject.NotSet: + post_parameters["client_id"] = client_id + if client_secret is not github.GithubObject.NotSet: + post_parameters["client_secret"] = client_secret + if onetime_password is not None: + request_header = {'X-GitHub-OTP': onetime_password} # pragma no cover (Should be covered) + else: + request_header = None + headers, data = self._requester.requestJsonAndCheck( + "POST", + "/authorizations", + input=post_parameters, + headers=request_header, + ) + return github.Authorization.Authorization(self._requester, headers, data, completed=True) + + def create_fork(self, repo): + """ + :calls: `POST /repos/:owner/:repo/forks <http://developer.github.com/v3/repos/forks>`_ + :param repo: :class:`github.Repository.Repository` + :rtype: :class:`github.Repository.Repository` + """ + assert isinstance(repo, github.Repository.Repository), repo + headers, data = self._requester.requestJsonAndCheck( + "POST", + "/repos/" + repo.owner.login + "/" + repo.name + "/forks" + ) + return github.Repository.Repository(self._requester, headers, data, completed=True) + + def create_gist(self, public, files, description=github.GithubObject.NotSet): + """ + :calls: `POST /gists <http://developer.github.com/v3/gists>`_ + :param public: bool + :param files: dict of string to :class:`github.InputFileContent.InputFileContent` + :param description: string + :rtype: :class:`github.Gist.Gist` + """ + assert isinstance(public, bool), public + assert all(isinstance(element, github.InputFileContent) for element in files.itervalues()), files + assert description is github.GithubObject.NotSet or isinstance(description, (str, unicode)), description + post_parameters = { + "public": public, + "files": dict((key, value._identity) for key, value in files.iteritems()), + } + if description is not github.GithubObject.NotSet: + post_parameters["description"] = description + headers, data = self._requester.requestJsonAndCheck( + "POST", + "/gists", + input=post_parameters + ) + return github.Gist.Gist(self._requester, headers, data, completed=True) + + def create_key(self, title, key): + """ + :calls: `POST /user/keys <http://developer.github.com/v3/users/keys>`_ + :param title: string + :param key: string + :rtype: :class:`github.UserKey.UserKey` + """ + assert isinstance(title, (str, unicode)), title + assert isinstance(key, (str, unicode)), key + post_parameters = { + "title": title, + "key": key, + } + headers, data = self._requester.requestJsonAndCheck( + "POST", + "/user/keys", + input=post_parameters + ) + return github.UserKey.UserKey(self._requester, headers, data, completed=True) + + def create_repo(self, name, description=github.GithubObject.NotSet, homepage=github.GithubObject.NotSet, private=github.GithubObject.NotSet, has_issues=github.GithubObject.NotSet, has_wiki=github.GithubObject.NotSet, has_downloads=github.GithubObject.NotSet, auto_init=github.GithubObject.NotSet, gitignore_template=github.GithubObject.NotSet): + """ + :calls: `POST /user/repos <http://developer.github.com/v3/repos>`_ + :param name: string + :param description: string + :param homepage: string + :param private: bool + :param has_issues: bool + :param has_wiki: bool + :param has_downloads: bool + :param auto_init: bool + :param gitignore_template: string + :rtype: :class:`github.Repository.Repository` + """ + assert isinstance(name, (str, unicode)), name + assert description is github.GithubObject.NotSet or isinstance(description, (str, unicode)), description + assert homepage is github.GithubObject.NotSet or isinstance(homepage, (str, unicode)), homepage + assert private is github.GithubObject.NotSet or isinstance(private, bool), private + assert has_issues is github.GithubObject.NotSet or isinstance(has_issues, bool), has_issues + assert has_wiki is github.GithubObject.NotSet or isinstance(has_wiki, bool), has_wiki + assert has_downloads is github.GithubObject.NotSet or isinstance(has_downloads, bool), has_downloads + assert auto_init is github.GithubObject.NotSet or isinstance(auto_init, bool), auto_init + assert gitignore_template is github.GithubObject.NotSet or isinstance(gitignore_template, (str, unicode)), gitignore_template + post_parameters = { + "name": name, + } + if description is not github.GithubObject.NotSet: + post_parameters["description"] = description + if homepage is not github.GithubObject.NotSet: + post_parameters["homepage"] = homepage + if private is not github.GithubObject.NotSet: + post_parameters["private"] = private + if has_issues is not github.GithubObject.NotSet: + post_parameters["has_issues"] = has_issues + if has_wiki is not github.GithubObject.NotSet: + post_parameters["has_wiki"] = has_wiki + if has_downloads is not github.GithubObject.NotSet: + post_parameters["has_downloads"] = has_downloads + if auto_init is not github.GithubObject.NotSet: + post_parameters["auto_init"] = auto_init + if gitignore_template is not github.GithubObject.NotSet: + post_parameters["gitignore_template"] = gitignore_template + headers, data = self._requester.requestJsonAndCheck( + "POST", + "/user/repos", + input=post_parameters + ) + return github.Repository.Repository(self._requester, headers, data, completed=True) + + def edit(self, name=github.GithubObject.NotSet, email=github.GithubObject.NotSet, blog=github.GithubObject.NotSet, company=github.GithubObject.NotSet, location=github.GithubObject.NotSet, hireable=github.GithubObject.NotSet, bio=github.GithubObject.NotSet): + """ + :calls: `PATCH /user <http://developer.github.com/v3/users>`_ + :param name: string + :param email: string + :param blog: string + :param company: string + :param location: string + :param hireable: bool + :param bio: string + :rtype: None + """ + assert name is github.GithubObject.NotSet or isinstance(name, (str, unicode)), name + assert email is github.GithubObject.NotSet or isinstance(email, (str, unicode)), email + assert blog is github.GithubObject.NotSet or isinstance(blog, (str, unicode)), blog + assert company is github.GithubObject.NotSet or isinstance(company, (str, unicode)), company + assert location is github.GithubObject.NotSet or isinstance(location, (str, unicode)), location + assert hireable is github.GithubObject.NotSet or isinstance(hireable, bool), hireable + assert bio is github.GithubObject.NotSet or isinstance(bio, (str, unicode)), bio + post_parameters = dict() + if name is not github.GithubObject.NotSet: + post_parameters["name"] = name + if email is not github.GithubObject.NotSet: + post_parameters["email"] = email + if blog is not github.GithubObject.NotSet: + post_parameters["blog"] = blog + if company is not github.GithubObject.NotSet: + post_parameters["company"] = company + if location is not github.GithubObject.NotSet: + post_parameters["location"] = location + if hireable is not github.GithubObject.NotSet: + post_parameters["hireable"] = hireable + if bio is not github.GithubObject.NotSet: + post_parameters["bio"] = bio + headers, data = self._requester.requestJsonAndCheck( + "PATCH", + "/user", + input=post_parameters + ) + self._useAttributes(data) + + def get_authorization(self, id): + """ + :calls: `GET /authorizations/:id <http://developer.github.com/v3/oauth>`_ + :param id: integer + :rtype: :class:`github.Authorization.Authorization` + """ + assert isinstance(id, (int, long)), id + headers, data = self._requester.requestJsonAndCheck( + "GET", + "/authorizations/" + str(id) + ) + return github.Authorization.Authorization(self._requester, headers, data, completed=True) + + def get_authorizations(self): + """ + :calls: `GET /authorizations <http://developer.github.com/v3/oauth>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Authorization.Authorization` + """ + return github.PaginatedList.PaginatedList( + github.Authorization.Authorization, + self._requester, + "/authorizations", + None + ) + + def get_emails(self): + """ + :calls: `GET /user/emails <http://developer.github.com/v3/users/emails>`_ + :rtype: list of string + """ + headers, data = self._requester.requestJsonAndCheck( + "GET", + "/user/emails" + ) + return data + + def get_events(self): + """ + :calls: `GET /events <http://developer.github.com/v3/activity/events>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` + """ + return github.PaginatedList.PaginatedList( + github.Event.Event, + self._requester, + "/events", + None + ) + + def get_followers(self): + """ + :calls: `GET /user/followers <http://developer.github.com/v3/users/followers>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` + """ + return github.PaginatedList.PaginatedList( + github.NamedUser.NamedUser, + self._requester, + "/user/followers", + None + ) + + def get_following(self): + """ + :calls: `GET /user/following <http://developer.github.com/v3/users/followers>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` + """ + return github.PaginatedList.PaginatedList( + github.NamedUser.NamedUser, + self._requester, + "/user/following", + None + ) + + def get_gists(self): + """ + :calls: `GET /gists <http://developer.github.com/v3/gists>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Gist.Gist` + """ + return github.PaginatedList.PaginatedList( + github.Gist.Gist, + self._requester, + "/gists", + None + ) + + def get_issues(self, filter=github.GithubObject.NotSet, state=github.GithubObject.NotSet, labels=github.GithubObject.NotSet, sort=github.GithubObject.NotSet, direction=github.GithubObject.NotSet, since=github.GithubObject.NotSet): + """ + :calls: `GET /issues <http://developer.github.com/v3/issues>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` + :param filter: string + :param state: string + :param labels: list of :class:`github.Label.Label` + :param sort: string + :param direction: string + :param since: datetime.datetime + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` + """ + assert filter is github.GithubObject.NotSet or isinstance(filter, (str, unicode)), filter + assert state is github.GithubObject.NotSet or isinstance(state, (str, unicode)), state + assert labels is github.GithubObject.NotSet or all(isinstance(element, github.Label.Label) for element in labels), labels + assert sort is github.GithubObject.NotSet or isinstance(sort, (str, unicode)), sort + assert direction is github.GithubObject.NotSet or isinstance(direction, (str, unicode)), direction + assert since is github.GithubObject.NotSet or isinstance(since, datetime.datetime), since + url_parameters = dict() + if filter is not github.GithubObject.NotSet: + url_parameters["filter"] = filter + if state is not github.GithubObject.NotSet: + url_parameters["state"] = state + if labels is not github.GithubObject.NotSet: + url_parameters["labels"] = ",".join(label.name for label in labels) + if sort is not github.GithubObject.NotSet: + url_parameters["sort"] = sort + if direction is not github.GithubObject.NotSet: + url_parameters["direction"] = direction + if since is not github.GithubObject.NotSet: + url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") + return github.PaginatedList.PaginatedList( + github.Issue.Issue, + self._requester, + "/issues", + url_parameters + ) + + def get_user_issues(self, filter=github.GithubObject.NotSet, state=github.GithubObject.NotSet, labels=github.GithubObject.NotSet, sort=github.GithubObject.NotSet, direction=github.GithubObject.NotSet, since=github.GithubObject.NotSet): + """ + :calls: `GET /user/issues <http://developer.github.com/v3/issues>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` + :param filter: string + :param state: string + :param labels: list of :class:`github.Label.Label` + :param sort: string + :param direction: string + :param since: datetime.datetime + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` + """ + assert filter is github.GithubObject.NotSet or isinstance(filter, (str, unicode)), filter + assert state is github.GithubObject.NotSet or isinstance(state, (str, unicode)), state + assert labels is github.GithubObject.NotSet or all(isinstance(element, github.Label.Label) for element in labels), labels + assert sort is github.GithubObject.NotSet or isinstance(sort, (str, unicode)), sort + assert direction is github.GithubObject.NotSet or isinstance(direction, (str, unicode)), direction + assert since is github.GithubObject.NotSet or isinstance(since, datetime.datetime), since + url_parameters = dict() + if filter is not github.GithubObject.NotSet: + url_parameters["filter"] = filter + if state is not github.GithubObject.NotSet: + url_parameters["state"] = state + if labels is not github.GithubObject.NotSet: + url_parameters["labels"] = ",".join(label.name for label in labels) + if sort is not github.GithubObject.NotSet: + url_parameters["sort"] = sort + if direction is not github.GithubObject.NotSet: + url_parameters["direction"] = direction + if since is not github.GithubObject.NotSet: + url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") + return github.PaginatedList.PaginatedList( + github.Issue.Issue, + self._requester, + "/issues", + url_parameters + ) + + def get_key(self, id): + """ + :calls: `GET /user/keys/:id <http://developer.github.com/v3/users/keys>`_ + :param id: integer + :rtype: :class:`github.UserKey.UserKey` + """ + assert isinstance(id, (int, long)), id + headers, data = self._requester.requestJsonAndCheck( + "GET", + "/user/keys/" + str(id) + ) + return github.UserKey.UserKey(self._requester, headers, data, completed=True) + + def get_keys(self): + """ + :calls: `GET /user/keys <http://developer.github.com/v3/users/keys>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.UserKey.UserKey` + """ + return github.PaginatedList.PaginatedList( + github.UserKey.UserKey, + self._requester, + "/user/keys", + None + ) + + def get_notification(self, id): + """ + :calls: `GET /notifications/threads/:id <http://developer.github.com/v3/activity/notifications>`_ + :rtype: :class:`github.Notification.Notification` + """ + + assert isinstance(id, (str, unicode)), id + headers, data = self._requester.requestJsonAndCheck( + "GET", + "/notifications/threads/" + id + ) + return github.Notification.Notification(self._requester, headers, data, completed=True) + + def get_notifications(self, all=github.GithubObject.NotSet, participating=github.GithubObject.NotSet): + """ + :calls: `GET /notifications <http://developer.github.com/v3/activity/notifications>`_ + :param all: bool + :param participating: bool + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Notification.Notification` + """ + + assert all is github.GithubObject.NotSet or isinstance(all, bool), all + assert participating is github.GithubObject.NotSet or isinstance(participating, bool), participating + + params = dict() + if all is not github.GithubObject.NotSet: + params["all"] = all + if participating is not github.GithubObject.NotSet: + params["participating"] = participating + # TODO: implement parameter "since" + + return github.PaginatedList.PaginatedList( + github.Notification.Notification, + self._requester, + "/notifications", + params + ) + + def get_organization_events(self, org): + """ + :calls: `GET /users/:user/events/orgs/:org <http://developer.github.com/v3/activity/events>`_ + :param org: :class:`github.Organization.Organization` + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` + """ + assert isinstance(org, github.Organization.Organization), org + return github.PaginatedList.PaginatedList( + github.Event.Event, + self._requester, + "/users/" + self.login + "/events/orgs/" + org.login, + None + ) + + def get_orgs(self): + """ + :calls: `GET /user/orgs <http://developer.github.com/v3/orgs>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Organization.Organization` + """ + return github.PaginatedList.PaginatedList( + github.Organization.Organization, + self._requester, + "/user/orgs", + None + ) + + def get_repo(self, name): + """ + :calls: `GET /repos/:owner/:repo <http://developer.github.com/v3/repos>`_ + :param name: string + :rtype: :class:`github.Repository.Repository` + """ + assert isinstance(name, (str, unicode)), name + headers, data = self._requester.requestJsonAndCheck( + "GET", + "/repos/" + self.login + "/" + name + ) + return github.Repository.Repository(self._requester, headers, data, completed=True) + + def get_repos(self, type=github.GithubObject.NotSet, sort=github.GithubObject.NotSet, direction=github.GithubObject.NotSet): + """ + :calls: `GET /user/repos <http://developer.github.com/v3/repos>`_ + :param type: string + :param sort: string + :param direction: string + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` + """ + assert type is github.GithubObject.NotSet or isinstance(type, (str, unicode)), type + assert sort is github.GithubObject.NotSet or isinstance(sort, (str, unicode)), sort + assert direction is github.GithubObject.NotSet or isinstance(direction, (str, unicode)), direction + url_parameters = dict() + if type is not github.GithubObject.NotSet: + url_parameters["type"] = type + if sort is not github.GithubObject.NotSet: + url_parameters["sort"] = sort + if direction is not github.GithubObject.NotSet: + url_parameters["direction"] = direction + return github.PaginatedList.PaginatedList( + github.Repository.Repository, + self._requester, + "/user/repos", + url_parameters + ) + + def get_starred(self): + """ + :calls: `GET /user/starred <http://developer.github.com/v3/activity/starring>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` + """ + return github.PaginatedList.PaginatedList( + github.Repository.Repository, + self._requester, + "/user/starred", + None + ) + + def get_starred_gists(self): + """ + :calls: `GET /gists/starred <http://developer.github.com/v3/gists>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Gist.Gist` + """ + return github.PaginatedList.PaginatedList( + github.Gist.Gist, + self._requester, + "/gists/starred", + None + ) + + def get_subscriptions(self): + """ + :calls: `GET /user/subscriptions <http://developer.github.com/v3/activity/watching>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` + """ + return github.PaginatedList.PaginatedList( + github.Repository.Repository, + self._requester, + "/user/subscriptions", + None + ) + + def get_teams(self): + """ + :calls: `GET /user/teams <http://developer.github.com/v3/orgs/teams>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Team.Team` + """ + return github.PaginatedList.PaginatedList( + github.Team.Team, + self._requester, + "/user/teams", + None + ) + + def get_watched(self): + """ + :calls: `GET /user/watched <http://developer.github.com/v3/activity/starring>`_ + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` + """ + return github.PaginatedList.PaginatedList( + github.Repository.Repository, + self._requester, + "/user/watched", + None + ) + + def has_in_following(self, following): + """ + :calls: `GET /user/following/:user <http://developer.github.com/v3/users/followers>`_ + :param following: :class:`github.NamedUser.NamedUser` + :rtype: bool + """ + assert isinstance(following, github.NamedUser.NamedUser), following + status, headers, data = self._requester.requestJson( + "GET", + "/user/following/" + following._identity + ) + return status == 204 + + def has_in_starred(self, starred): + """ + :calls: `GET /user/starred/:owner/:repo <http://developer.github.com/v3/activity/starring>`_ + :param starred: :class:`github.Repository.Repository` + :rtype: bool + """ + assert isinstance(starred, github.Repository.Repository), starred + status, headers, data = self._requester.requestJson( + "GET", + "/user/starred/" + starred._identity + ) + return status == 204 + + def has_in_subscriptions(self, subscription): + """ + :calls: `GET /user/subscriptions/:owner/:repo <http://developer.github.com/v3/activity/watching>`_ + :param subscription: :class:`github.Repository.Repository` + :rtype: bool + """ + assert isinstance(subscription, github.Repository.Repository), subscription + status, headers, data = self._requester.requestJson( + "GET", + "/user/subscriptions/" + subscription._identity + ) + return status == 204 + + def has_in_watched(self, watched): + """ + :calls: `GET /user/watched/:owner/:repo <http://developer.github.com/v3/activity/starring>`_ + :param watched: :class:`github.Repository.Repository` + :rtype: bool + """ + assert isinstance(watched, github.Repository.Repository), watched + status, headers, data = self._requester.requestJson( + "GET", + "/user/watched/" + watched._identity + ) + return status == 204 + + def remove_from_emails(self, *emails): + """ + :calls: `DELETE /user/emails <http://developer.github.com/v3/users/emails>`_ + :param email: string + :rtype: None + """ + assert all(isinstance(element, (str, unicode)) for element in emails), emails + post_parameters = emails + headers, data = self._requester.requestJsonAndCheck( + "DELETE", + "/user/emails", + input=post_parameters + ) + + def remove_from_following(self, following): + """ + :calls: `DELETE /user/following/:user <http://developer.github.com/v3/users/followers>`_ + :param following: :class:`github.NamedUser.NamedUser` + :rtype: None + """ + assert isinstance(following, github.NamedUser.NamedUser), following + headers, data = self._requester.requestJsonAndCheck( + "DELETE", + "/user/following/" + following._identity + ) + + def remove_from_starred(self, starred): + """ + :calls: `DELETE /user/starred/:owner/:repo <http://developer.github.com/v3/activity/starring>`_ + :param starred: :class:`github.Repository.Repository` + :rtype: None + """ + assert isinstance(starred, github.Repository.Repository), starred + headers, data = self._requester.requestJsonAndCheck( + "DELETE", + "/user/starred/" + starred._identity + ) + + def remove_from_subscriptions(self, subscription): + """ + :calls: `DELETE /user/subscriptions/:owner/:repo <http://developer.github.com/v3/activity/watching>`_ + :param subscription: :class:`github.Repository.Repository` + :rtype: None + """ + assert isinstance(subscription, github.Repository.Repository), subscription + headers, data = self._requester.requestJsonAndCheck( + "DELETE", + "/user/subscriptions/" + subscription._identity + ) + + def remove_from_watched(self, watched): + """ + :calls: `DELETE /user/watched/:owner/:repo <http://developer.github.com/v3/activity/starring>`_ + :param watched: :class:`github.Repository.Repository` + :rtype: None + """ + assert isinstance(watched, github.Repository.Repository), watched + headers, data = self._requester.requestJsonAndCheck( + "DELETE", + "/user/watched/" + watched._identity + ) + + def _initAttributes(self): + self._avatar_url = github.GithubObject.NotSet + self._bio = github.GithubObject.NotSet + self._blog = github.GithubObject.NotSet + self._collaborators = github.GithubObject.NotSet + self._company = github.GithubObject.NotSet + self._created_at = github.GithubObject.NotSet + self._disk_usage = github.GithubObject.NotSet + self._email = github.GithubObject.NotSet + self._events_url = github.GithubObject.NotSet + self._followers = github.GithubObject.NotSet + self._followers_url = github.GithubObject.NotSet + self._following = github.GithubObject.NotSet + self._following_url = github.GithubObject.NotSet + self._gists_url = github.GithubObject.NotSet + self._gravatar_id = github.GithubObject.NotSet + self._hireable = github.GithubObject.NotSet + self._html_url = github.GithubObject.NotSet + self._id = github.GithubObject.NotSet + self._location = github.GithubObject.NotSet + self._login = github.GithubObject.NotSet + self._name = github.GithubObject.NotSet + self._organizations_url = github.GithubObject.NotSet + self._owned_private_repos = github.GithubObject.NotSet + self._plan = github.GithubObject.NotSet + self._private_gists = github.GithubObject.NotSet + self._public_gists = github.GithubObject.NotSet + self._public_repos = github.GithubObject.NotSet + self._received_events_url = github.GithubObject.NotSet + self._repos_url = github.GithubObject.NotSet + self._site_admin = github.GithubObject.NotSet + self._starred_url = github.GithubObject.NotSet + self._subscriptions_url = github.GithubObject.NotSet + self._total_private_repos = github.GithubObject.NotSet + self._type = github.GithubObject.NotSet + self._updated_at = github.GithubObject.NotSet + self._url = github.GithubObject.NotSet + + def _useAttributes(self, attributes): + if "avatar_url" in attributes: # pragma no branch + self._avatar_url = self._makeStringAttribute(attributes["avatar_url"]) + if "bio" in attributes: # pragma no branch + self._bio = self._makeStringAttribute(attributes["bio"]) + if "blog" in attributes: # pragma no branch + self._blog = self._makeStringAttribute(attributes["blog"]) + if "collaborators" in attributes: # pragma no branch + self._collaborators = self._makeIntAttribute(attributes["collaborators"]) + if "company" in attributes: # pragma no branch + self._company = self._makeStringAttribute(attributes["company"]) + if "created_at" in attributes: # pragma no branch + self._created_at = self._makeDatetimeAttribute(attributes["created_at"]) + if "disk_usage" in attributes: # pragma no branch + self._disk_usage = self._makeIntAttribute(attributes["disk_usage"]) + if "email" in attributes: # pragma no branch + self._email = self._makeStringAttribute(attributes["email"]) + if "events_url" in attributes: # pragma no branch + self._events_url = self._makeStringAttribute(attributes["events_url"]) + if "followers" in attributes: # pragma no branch + self._followers = self._makeIntAttribute(attributes["followers"]) + if "followers_url" in attributes: # pragma no branch + self._followers_url = self._makeStringAttribute(attributes["followers_url"]) + if "following" in attributes: # pragma no branch + self._following = self._makeIntAttribute(attributes["following"]) + if "following_url" in attributes: # pragma no branch + self._following_url = self._makeStringAttribute(attributes["following_url"]) + if "gists_url" in attributes: # pragma no branch + self._gists_url = self._makeStringAttribute(attributes["gists_url"]) + if "gravatar_id" in attributes: # pragma no branch + self._gravatar_id = self._makeStringAttribute(attributes["gravatar_id"]) + if "hireable" in attributes: # pragma no branch + self._hireable = self._makeBoolAttribute(attributes["hireable"]) + if "html_url" in attributes: # pragma no branch + self._html_url = self._makeStringAttribute(attributes["html_url"]) + if "id" in attributes: # pragma no branch + self._id = self._makeIntAttribute(attributes["id"]) + if "location" in attributes: # pragma no branch + self._location = self._makeStringAttribute(attributes["location"]) + if "login" in attributes: # pragma no branch + self._login = self._makeStringAttribute(attributes["login"]) + if "name" in attributes: # pragma no branch + self._name = self._makeStringAttribute(attributes["name"]) + if "organizations_url" in attributes: # pragma no branch + self._organizations_url = self._makeStringAttribute(attributes["organizations_url"]) + if "owned_private_repos" in attributes: # pragma no branch + self._owned_private_repos = self._makeIntAttribute(attributes["owned_private_repos"]) + if "plan" in attributes: # pragma no branch + self._plan = self._makeClassAttribute(github.Plan.Plan, attributes["plan"]) + if "private_gists" in attributes: # pragma no branch + self._private_gists = self._makeIntAttribute(attributes["private_gists"]) + if "public_gists" in attributes: # pragma no branch + self._public_gists = self._makeIntAttribute(attributes["public_gists"]) + if "public_repos" in attributes: # pragma no branch + self._public_repos = self._makeIntAttribute(attributes["public_repos"]) + if "received_events_url" in attributes: # pragma no branch + self._received_events_url = self._makeStringAttribute(attributes["received_events_url"]) + if "repos_url" in attributes: # pragma no branch + self._repos_url = self._makeStringAttribute(attributes["repos_url"]) + if "site_admin" in attributes: # pragma no branch + self._site_admin = self._makeBoolAttribute(attributes["site_admin"]) + if "starred_url" in attributes: # pragma no branch + self._starred_url = self._makeStringAttribute(attributes["starred_url"]) + if "subscriptions_url" in attributes: # pragma no branch + self._subscriptions_url = self._makeStringAttribute(attributes["subscriptions_url"]) + if "total_private_repos" in attributes: # pragma no branch + self._total_private_repos = self._makeIntAttribute(attributes["total_private_repos"]) + if "type" in attributes: # pragma no branch + self._type = self._makeStringAttribute(attributes["type"]) + if "updated_at" in attributes: # pragma no branch + self._updated_at = self._makeDatetimeAttribute(attributes["updated_at"]) + if "url" in attributes: # pragma no branch + self._url = self._makeStringAttribute(attributes["url"])