diff --git a/github/CodeScanAlert.py b/github/CodeScanAlert.py index f31c77e8..1d675a76 100644 --- a/github/CodeScanAlert.py +++ b/github/CodeScanAlert.py @@ -45,7 +45,7 @@ class CodeScanAlert(NonCompletableGithubObject): self._tool: Attribute[github.CodeScanTool.CodeScanTool] = NotSet self._created_at: Attribute[datetime] = NotSet self._dismissed_at: Attribute[datetime | None] = NotSet - self._dismissed_by: Attribute[dict | None] = NotSet + self._dismissed_by: Attribute[github.NamedUser.NamedUser | None] = NotSet self._dismissed_reason: Attribute[str | None] = NotSet self._url: Attribute[str] = NotSet self._html_url: Attribute[str] = NotSet @@ -77,7 +77,7 @@ class CodeScanAlert(NonCompletableGithubObject): return self._dismissed_at.value @property - def dismissed_by(self) -> dict | None: + def dismissed_by(self) -> github.NamedUser.NamedUser | None: return self._dismissed_by.value @property diff --git a/github/GithubObject.py b/github/GithubObject.py index 969cc503..1ad7475e 100644 --- a/github/GithubObject.py +++ b/github/GithubObject.py @@ -236,7 +236,7 @@ class GithubObject: def _makeDatetimeAttribute(value: Optional[str]) -> Attribute[datetime]: return GithubObject.__makeTransformedAttribute(value, str, parser.parse) # type: ignore - def _makeClassAttribute(self, klass: Any, value: Any) -> Attribute: + def _makeClassAttribute(self, klass: Type[T_gh], value: Any) -> Attribute[T_gh]: return GithubObject.__makeTransformedAttribute( value, dict, diff --git a/github/NamedUser.py b/github/NamedUser.py index ad4fb623..e76e976d 100644 --- a/github/NamedUser.py +++ b/github/NamedUser.py @@ -34,21 +34,33 @@ # along with PyGithub. If not, see . # # # ################################################################################ +from __future__ import annotations from datetime import datetime -from typing import Any, Dict +from typing import TYPE_CHECKING, Any import github.Event import github.Gist import github.GithubObject -import github.NamedUser import github.Organization import github.PaginatedList import github.Permissions import github.Plan import github.Repository +from github import Consts +from github.GithubObject import Attribute, NotSet, Opt, is_defined +from github.PaginatedList import PaginatedList -from . import Consts +if TYPE_CHECKING: + from github.Event import Event + from github.Gist import Gist + from github.Membership import Membership + from github.Organization import Organization + from github.Permissions import Permissions + from github.Plan import Plan + from github.Project import Project + from github.Repository import Repository + from github.UserKey import UserKey class NamedUser(github.GithubObject.CompletableGithubObject): @@ -56,431 +68,334 @@ class NamedUser(github.GithubObject.CompletableGithubObject): This class represents NamedUsers. The reference can be found here https://docs.github.com/en/rest/reference/users#get-a-user """ + def _initAttributes(self) -> None: + self._avatar_url: Attribute[str] = NotSet + self._bio: Attribute[str | None] = NotSet + self._blog: Attribute[str | None] = NotSet + self._collaborators: Attribute[int] = NotSet + self._company: Attribute[str | None] = NotSet + self._contributions: Attribute[int] = NotSet + self._created_at: Attribute[datetime] = NotSet + self._disk_usage: Attribute[int] = NotSet + self._email: Attribute[str | None] = NotSet + self._events_url: Attribute[str] = NotSet + self._followers: Attribute[int] = NotSet + self._followers_url: Attribute[str] = NotSet + self._following: Attribute[int] = NotSet + self._following_url: Attribute[str] = NotSet + self._gists_url: Attribute[str] = NotSet + self._gravatar_id: Attribute[str | None] = NotSet + self._hireable: Attribute[bool | None] = NotSet + self._html_url: Attribute[str] = NotSet + self._id: Attribute[int] = NotSet + self._invitation_teams_url: Attribute[str] = NotSet + self._inviter: Attribute[NamedUser] = NotSet + self._location: Attribute[str | None] = NotSet + self._login: Attribute[str] = NotSet + self._name: Attribute[str] = NotSet + self._node_id: Attribute[str] = NotSet + self._organizations_url: Attribute[str] = NotSet + self._owned_private_repos: Attribute[int] = NotSet + self._permissions: Attribute[Permissions] = NotSet + self._plan: Attribute[Plan] = NotSet + self._private_gists: Attribute[int] = NotSet + self._public_gists: Attribute[int] = NotSet + self._public_repos: Attribute[int] = NotSet + self._received_events_url: Attribute[str] = NotSet + self._repos_url: Attribute[str] = NotSet + self._role: Attribute[str] = NotSet + self._site_admin: Attribute[bool] = NotSet + self._starred_url: Attribute[str] = NotSet + self._subscriptions_url: Attribute[str] = NotSet + self._suspended_at: Attribute[datetime | None] = NotSet + self._team_count: Attribute[int] = NotSet + self._total_private_repos: Attribute[int] = NotSet + self._twitter_username: Attribute[str | None] = NotSet + self._type: Attribute[str] = NotSet + self._updated_at: Attribute[datetime] = NotSet + self._url: Attribute[str] = NotSet + def __repr__(self) -> str: return self.get__repr__({"login": self._login.value}) @property - def node_id(self): - """ - :type: string - """ + def node_id(self) -> str: self._completeIfNotSet(self._node_id) return self._node_id.value @property - def twitter_username(self): - """ - :type: string - """ + def twitter_username(self) -> str | None: self._completeIfNotSet(self._twitter_username) return self._twitter_username.value - def __hash__(self): + def __hash__(self) -> int: return hash((self.id, self.login)) - def __eq__(self, other): + def __eq__(self, other: Any) -> bool: return isinstance(other, type(self)) and self.login == other.login and self.id == other.id @property - def avatar_url(self): - """ - :type: string - """ + def avatar_url(self) -> str: self._completeIfNotSet(self._avatar_url) return self._avatar_url.value @property - def bio(self): - """ - :type: string - """ + def bio(self) -> str | None: self._completeIfNotSet(self._bio) return self._bio.value @property - def blog(self): - """ - :type: string - """ + def blog(self) -> str | None: self._completeIfNotSet(self._blog) return self._blog.value @property - def collaborators(self): - """ - :type: integer - """ + def collaborators(self) -> int | None: self._completeIfNotSet(self._collaborators) return self._collaborators.value @property - def company(self): - """ - :type: string - """ + def company(self) -> str | None: self._completeIfNotSet(self._company) return self._company.value @property - def contributions(self): - """ - :type: integer - """ + def contributions(self) -> int: self._completeIfNotSet(self._contributions) return self._contributions.value @property - def created_at(self): - """ - :type: datetime - """ + def created_at(self) -> datetime: self._completeIfNotSet(self._created_at) return self._created_at.value @property - def disk_usage(self): - """ - :type: integer - """ + def disk_usage(self) -> int: self._completeIfNotSet(self._disk_usage) return self._disk_usage.value @property - def email(self): - """ - :type: string - """ + def email(self) -> str | None: self._completeIfNotSet(self._email) return self._email.value @property - def events_url(self): - """ - :type: string - """ + def events_url(self) -> str: self._completeIfNotSet(self._events_url) return self._events_url.value @property - def followers(self): - """ - :type: integer - """ + def followers(self) -> int: self._completeIfNotSet(self._followers) return self._followers.value @property - def followers_url(self): - """ - :type: string - """ + def followers_url(self) -> str: self._completeIfNotSet(self._followers_url) return self._followers_url.value @property - def following(self): - """ - :type: integer - """ + def following(self) -> int: self._completeIfNotSet(self._following) return self._following.value @property - def following_url(self): - """ - :type: string - """ + def following_url(self) -> str: self._completeIfNotSet(self._following_url) return self._following_url.value @property - def gists_url(self): - """ - :type: string - """ + def gists_url(self) -> str: self._completeIfNotSet(self._gists_url) return self._gists_url.value @property - def gravatar_id(self): - """ - :type: string - """ + def gravatar_id(self) -> str | None: self._completeIfNotSet(self._gravatar_id) return self._gravatar_id.value @property - def hireable(self): - """ - :type: bool - """ + def hireable(self) -> bool | None: self._completeIfNotSet(self._hireable) return self._hireable.value @property - def html_url(self): - """ - :type: string - """ + def html_url(self) -> str: self._completeIfNotSet(self._html_url) return self._html_url.value @property - def id(self): - """ - :type: integer - """ + def id(self) -> int: self._completeIfNotSet(self._id) return self._id.value @property - def invitation_teams_url(self): - """ - :type: string - """ + def invitation_teams_url(self) -> str: self._completeIfNotSet(self._invitation_teams_url) return self._invitation_teams_url.value @property - def inviter(self): - """ - :type: github.NamedUser.NamedUser - """ + def inviter(self) -> NamedUser: self._completeIfNotSet(self._inviter) return self._inviter.value @property - def location(self): - """ - :type: string - """ + def location(self) -> str | None: self._completeIfNotSet(self._location) return self._location.value @property - def login(self): - """ - :type: string - """ + def login(self) -> str: self._completeIfNotSet(self._login) return self._login.value @property - def name(self): - """ - :type: string - """ + def name(self) -> str | None: self._completeIfNotSet(self._name) return self._name.value @property - def organizations_url(self): - """ - :type: string - """ + def organizations_url(self) -> str: self._completeIfNotSet(self._organizations_url) return self._organizations_url.value @property - def owned_private_repos(self): - """ - :type: integer - """ + def owned_private_repos(self) -> int | None: self._completeIfNotSet(self._owned_private_repos) return self._owned_private_repos.value @property - def permissions(self): - """ - :type: :class:`github.Permissions.Permissions` - """ + def permissions(self) -> Permissions: self._completeIfNotSet(self._permissions) return self._permissions.value @property - def plan(self): - """ - :type: :class:`github.Plan.Plan` - """ + def plan(self) -> Plan | None: self._completeIfNotSet(self._plan) return self._plan.value @property - def private_gists(self): - """ - :type: integer - """ + def private_gists(self) -> int | None: self._completeIfNotSet(self._private_gists) return self._private_gists.value @property - def public_gists(self): - """ - :type: integer - """ + def public_gists(self) -> int: self._completeIfNotSet(self._public_gists) return self._public_gists.value @property - def public_repos(self): - """ - :type: integer - """ + def public_repos(self) -> int: self._completeIfNotSet(self._public_repos) return self._public_repos.value @property - def received_events_url(self): - """ - :type: string - """ + def received_events_url(self) -> str: self._completeIfNotSet(self._received_events_url) return self._received_events_url.value @property - def repos_url(self): - """ - :type: string - """ + def repos_url(self) -> str: self._completeIfNotSet(self._repos_url) return self._repos_url.value @property - def role(self): - """ - :type: string - """ + def role(self) -> str: self._completeIfNotSet(self._role) return self._role.value @property - def site_admin(self): - """ - :type: bool - """ + def site_admin(self) -> bool: self._completeIfNotSet(self._site_admin) return self._site_admin.value @property - def starred_url(self): - """ - :type: string - """ + def starred_url(self) -> str: self._completeIfNotSet(self._starred_url) return self._starred_url.value @property - def subscriptions_url(self): - """ - :type: string - """ + def subscriptions_url(self) -> str: self._completeIfNotSet(self._subscriptions_url) return self._subscriptions_url.value @property - def suspended_at(self): - """ - :type: datetime - """ + def suspended_at(self) -> datetime | None: self._completeIfNotSet(self._suspended_at) return self._suspended_at.value @property - def team_count(self): - """ - :type: integer - """ + def team_count(self) -> int: self._completeIfNotSet(self._team_count) return self._team_count.value @property - def total_private_repos(self): - """ - :type: integer - """ + def total_private_repos(self) -> int | None: self._completeIfNotSet(self._total_private_repos) return self._total_private_repos.value @property - def type(self): - """ - :type: string - """ + def type(self) -> str: self._completeIfNotSet(self._type) return self._type.value @property - def updated_at(self): - """ - :type: datetime - """ + def updated_at(self) -> datetime: self._completeIfNotSet(self._updated_at) return self._updated_at.value @property - def url(self): - """ - :type: string - """ + def url(self) -> str: self._completeIfNotSet(self._url) return self._url.value - def get_events(self): + def get_events(self) -> PaginatedList[Event]: """ :calls: `GET /users/{user}/events `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` """ return github.PaginatedList.PaginatedList(github.Event.Event, self._requester, f"{self.url}/events", None) - def get_followers(self): + def get_followers(self) -> PaginatedList[NamedUser]: """ :calls: `GET /users/{user}/followers `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ return github.PaginatedList.PaginatedList(NamedUser, self._requester, f"{self.url}/followers", None) - def get_following(self): + def get_following(self) -> PaginatedList[NamedUser]: """ :calls: `GET /users/{user}/following `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.NamedUser.NamedUser` """ return github.PaginatedList.PaginatedList(NamedUser, self._requester, f"{self.url}/following", None) - def get_gists(self, since=github.GithubObject.NotSet): + def get_gists(self, since: Opt[datetime] = NotSet) -> PaginatedList[Gist]: """ :calls: `GET /users/{user}/gists `_ - :param since: datetime format YYYY-MM-DDTHH:MM:SSZ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Gist.Gist` """ - assert since is github.GithubObject.NotSet or isinstance(since, datetime), since + assert since is NotSet or isinstance(since, datetime), since url_parameters = dict() - if since is not github.GithubObject.NotSet: + if is_defined(since): url_parameters["since"] = since.strftime("%Y-%m-%dT%H:%M:%SZ") return github.PaginatedList.PaginatedList( github.Gist.Gist, self._requester, f"{self.url}/gists", url_parameters ) - def get_keys(self): + def get_keys(self) -> PaginatedList[UserKey]: """ :calls: `GET /users/{user}/keys `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.UserKey.UserKey` """ return github.PaginatedList.PaginatedList(github.UserKey.UserKey, self._requester, f"{self.url}/keys", None) - def get_orgs(self): + def get_orgs(self) -> PaginatedList[Organization]: """ :calls: `GET /users/{user}/orgs `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Organization.Organization` """ return github.PaginatedList.PaginatedList( github.Organization.Organization, self._requester, f"{self.url}/orgs", None ) - def get_projects(self, state="open"): + def get_projects(self, state: str = "open") -> PaginatedList[Project]: """ :calls: `GET /users/{user}/projects `_ - :param state: string - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Project.Project` """ assert isinstance(state, str), state url_parameters = {"state": state} @@ -492,19 +407,17 @@ class NamedUser(github.GithubObject.CompletableGithubObject): headers={"Accept": Consts.mediaTypeProjectsPreview}, ) - def get_public_events(self): + def get_public_events(self) -> PaginatedList[Event]: """ :calls: `GET /users/{user}/events/public `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` """ return github.PaginatedList.PaginatedList( github.Event.Event, self._requester, f"{self.url}/events/public", None ) - def get_public_received_events(self): + def get_public_received_events(self) -> PaginatedList[Event]: """ :calls: `GET /users/{user}/received_events/public `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` """ return github.PaginatedList.PaginatedList( github.Event.Event, @@ -513,20 +426,17 @@ class NamedUser(github.GithubObject.CompletableGithubObject): None, ) - def get_received_events(self): + def get_received_events(self) -> PaginatedList[Event]: """ :calls: `GET /users/{user}/received_events `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Event.Event` """ return github.PaginatedList.PaginatedList( github.Event.Event, self._requester, f"{self.url}/received_events", None ) - def get_repo(self, name): + def get_repo(self, name: str) -> Repository: """ :calls: `GET /repos/{owner}/{repo} `_ - :param name: string - :rtype: :class:`github.Repository.Repository` """ assert isinstance(name, str), name headers, data = self._requester.requestJsonAndCheck("GET", f"/repos/{self.login}/{name}") @@ -534,26 +444,22 @@ class NamedUser(github.GithubObject.CompletableGithubObject): def get_repos( self, - type=github.GithubObject.NotSet, - sort=github.GithubObject.NotSet, - direction=github.GithubObject.NotSet, - ): + type: Opt[str] = NotSet, + sort: Opt[str] = NotSet, + direction: Opt[str] = NotSet, + ) -> PaginatedList[Repository]: """ :calls: `GET /users/{user}/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), type - assert sort is github.GithubObject.NotSet or isinstance(sort, str), sort - assert direction is github.GithubObject.NotSet or isinstance(direction, str), direction + assert type is NotSet or isinstance(type, str), type + assert sort is NotSet or isinstance(sort, str), sort + assert direction is NotSet or isinstance(direction, str), direction url_parameters = dict() - if type is not github.GithubObject.NotSet: + if type is not NotSet: url_parameters["type"] = type - if sort is not github.GithubObject.NotSet: + if sort is not NotSet: url_parameters["sort"] = sort - if direction is not github.GithubObject.NotSet: + if direction is not NotSet: url_parameters["direction"] = direction return github.PaginatedList.PaginatedList( github.Repository.Repository, @@ -562,19 +468,17 @@ class NamedUser(github.GithubObject.CompletableGithubObject): url_parameters, ) - def get_starred(self): + def get_starred(self) -> PaginatedList[Repository]: """ :calls: `GET /users/{user}/starred `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ return github.PaginatedList.PaginatedList( github.Repository.Repository, self._requester, f"{self.url}/starred", None ) - def get_subscriptions(self): + def get_subscriptions(self) -> PaginatedList[Repository]: """ :calls: `GET /users/{user}/subscriptions `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ return github.PaginatedList.PaginatedList( github.Repository.Repository, @@ -583,89 +487,37 @@ class NamedUser(github.GithubObject.CompletableGithubObject): None, ) - def get_watched(self): + def get_watched(self) -> PaginatedList[Repository]: """ :calls: `GET /users/{user}/watched `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` """ return github.PaginatedList.PaginatedList( github.Repository.Repository, self._requester, f"{self.url}/watched", None ) - def has_in_following(self, following): + def has_in_following(self, following: NamedUser) -> bool: """ :calls: `GET /users/{user}/following/{target_user} `_ - :param following: :class:`github.NamedUser.NamedUser` - :rtype: bool """ assert isinstance(following, github.NamedUser.NamedUser), following status, headers, data = self._requester.requestJson("GET", f"{self.url}/following/{following._identity}") return status == 204 @property - def _identity(self): + def _identity(self) -> str: return self.login - def get_organization_membership(self, org): + def get_organization_membership(self, org: str | Organization) -> Membership: """ :calls: `GET /orgs/{org}/memberships/{username} `_ - :param org: string or :class:`github.Organization.Organization` - :rtype: :class:`github.Membership.Membership` """ assert isinstance(org, str) or isinstance(org, github.Organization.Organization), org if isinstance(org, github.Organization.Organization): - org = org.login + org = org.login # type: ignore headers, data = self._requester.requestJsonAndCheck("GET", f"/orgs/{org}/memberships/{self.login}") return github.Membership.Membership(self._requester, headers, data, completed=True) - def _initAttributes(self) -> None: - 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._contributions = 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._invitation_teams_url = github.GithubObject.NotSet - self._inviter = github.GithubObject.NotSet - self._location = github.GithubObject.NotSet - self._login = github.GithubObject.NotSet - self._name = github.GithubObject.NotSet - self._node_id = github.GithubObject.NotSet - self._organizations_url = github.GithubObject.NotSet - self._owned_private_repos = github.GithubObject.NotSet - self._permissions = 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._role = github.GithubObject.NotSet - self._site_admin = github.GithubObject.NotSet - self._starred_url = github.GithubObject.NotSet - self._subscriptions_url = github.GithubObject.NotSet - self._suspended_at = github.GithubObject.NotSet - self._team_count = github.GithubObject.NotSet - self._total_private_repos = github.GithubObject.NotSet - self._twitter_username = github.GithubObject.NotSet - self._type = github.GithubObject.NotSet - self._updated_at = github.GithubObject.NotSet - self._url = github.GithubObject.NotSet - - def _useAttributes(self, attributes: Dict[str, Any]) -> None: + def _useAttributes(self, attributes: dict[str, Any]) -> None: if "avatar_url" in attributes: # pragma no branch self._avatar_url = self._makeStringAttribute(attributes["avatar_url"]) if "bio" in attributes: # pragma no branch diff --git a/github/NamedUser.pyi b/github/NamedUser.pyi deleted file mode 100644 index 4b514058..00000000 --- a/github/NamedUser.pyi +++ /dev/null @@ -1,135 +0,0 @@ -from datetime import datetime -from typing import Any, Dict, Optional, Union - -from github.Event import Event -from github.Gist import Gist -from github.GithubObject import CompletableGithubObject, _NotSetType -from github.Membership import Membership -from github.Organization import Organization -from github.PaginatedList import PaginatedList -from github.Permissions import Permissions -from github.Plan import Plan -from github.Project import Project -from github.Repository import Repository -from github.UserKey import UserKey - -class NamedUser(CompletableGithubObject): - def __eq__(self, other: Any) -> bool: ... - def __hash__(self) -> int: ... - def __repr__(self) -> str: ... - @property - def _identity(self) -> str: ... - def _initAttributes(self) -> None: ... - def _useAttributes(self, attributes: Dict[str, Any]) -> None: ... - @property - def avatar_url(self) -> str: ... - @property - def bio(self) -> Optional[str]: ... - @property - def blog(self) -> str: ... - @property - def collaborators(self) -> Optional[int]: ... - @property - def company(self) -> str: ... - @property - def contributions(self) -> int: ... - @property - def created_at(self) -> datetime: ... - @property - def disk_usage(self) -> Optional[int]: ... - @property - def email(self) -> str: ... - @property - def events_url(self) -> str: ... - @property - def followers(self) -> int: ... - @property - def followers_url(self) -> str: ... - @property - def following(self) -> int: ... - @property - def following_url(self) -> str: ... - def get_events(self) -> PaginatedList[Event]: ... - def get_followers(self) -> PaginatedList[NamedUser]: ... - def get_following(self) -> PaginatedList[NamedUser]: ... - def get_gists(self, since: Union[_NotSetType, datetime] = ...) -> PaginatedList[Gist]: ... - def get_keys(self) -> PaginatedList[UserKey]: ... - def get_organization_membership(self, org: int) -> Membership: ... - def get_orgs(self) -> PaginatedList[Organization]: ... - def get_projects(self, state: str = ...) -> PaginatedList[Project]: ... - def get_public_events(self) -> PaginatedList[Event]: ... - def get_public_received_events(self) -> PaginatedList[Event]: ... - def get_received_events(self) -> PaginatedList[Event]: ... - def get_repo(self, name: str) -> Repository: ... - def get_repos( - self, - type: Union[str, _NotSetType] = ..., - sort: Union[str, _NotSetType] = ..., - direction: Union[str, _NotSetType] = ..., - ) -> PaginatedList[Repository]: ... - def get_starred(self) -> PaginatedList[Repository]: ... - def get_subscriptions(self) -> PaginatedList[Repository]: ... - def get_watched(self) -> PaginatedList[Repository]: ... - @property - def gists_url(self) -> str: ... - @property - def gravatar_id(self) -> str: ... - def has_in_following(self, following: NamedUser) -> bool: ... - @property - def hireable(self) -> bool: ... - @property - def html_url(self) -> str: ... - @property - def id(self) -> int: ... - @property - def invitation_teams_url(self) -> str: ... - @property - def inviter(self) -> NamedUser: ... - @property - def location(self) -> str: ... - @property - def login(self) -> str: ... - @property - def name(self) -> Optional[str]: ... - @property - def node_id(self) -> str: ... - @property - def organizations_url(self) -> str: ... - @property - def owned_private_repos(self) -> Optional[int]: ... - @property - def permissions(self) -> Permissions: ... - @property - def plan(self) -> Optional[Plan]: ... - @property - def private_gists(self) -> Optional[int]: ... - @property - def public_gists(self) -> int: ... - @property - def public_repos(self) -> int: ... - @property - def received_events_url(self) -> str: ... - @property - def repos_url(self) -> str: ... - @property - def role(self) -> str: ... - @property - def site_admin(self) -> bool: ... - @property - def starred_url(self) -> str: ... - @property - def subscriptions_url(self) -> str: ... - @property - def suspended_at(self) -> Optional[datetime]: ... - @property - def team_count(self) -> int: ... - @property - def total_private_repos(self) -> Optional[int]: ... - @property - def twitter_username(self) -> str: ... - @property - def type(self) -> str: ... - @property - def updated_at(self) -> datetime: ... - @property - def url(self) -> str: ...