From b56aa09011378b014221f86dffb8304957a9e6bd Mon Sep 17 00:00:00 2001 From: Vincent Jacques Date: Tue, 13 Mar 2012 19:26:13 +0100 Subject: [PATCH] Spliting GithubObjects.py --- ReferenceOfClasses.md | 16 ++++----- github/AuthenticatedUser.py | 16 +++++++++ github/GithubObjects.py | 71 +------------------------------------ github/NamedUser.py | 54 ++++++++++++++++++++++++++++ 4 files changed, 79 insertions(+), 78 deletions(-) create mode 100644 github/NamedUser.py diff --git a/ReferenceOfClasses.md b/ReferenceOfClasses.md index 0dbd9ac9..b050afdf 100644 --- a/ReferenceOfClasses.md +++ b/ReferenceOfClasses.md @@ -549,14 +549,6 @@ Attributes * `owned_private_repos` * `private_gists` -Followers ---------- -* `get_followers()`: list of `NamedUser` - -Following ---------- -* `get_following()`: list of `NamedUser` - Events ------ * `get_events()`: list of `Event` @@ -567,6 +559,14 @@ Received events * `get_received_events()`: list of `Event` * `get_public_received_events()`: list of `Event` +Followers +--------- +* `get_followers()`: list of `NamedUser` + +Following +--------- +* `get_following()`: list of `NamedUser` + Orgs ---- * `get_orgs()`: list of `Organization` diff --git a/github/AuthenticatedUser.py b/github/AuthenticatedUser.py index e126c313..d57295d8 100644 --- a/github/AuthenticatedUser.py +++ b/github/AuthenticatedUser.py @@ -3,6 +3,7 @@ from GithubObject import * from Authorization import Authorization from UserKey import UserKey from Event import Event +from NamedUser import NamedUser AuthenticatedUser = GithubObject( "AuthenticatedUser", @@ -37,3 +38,18 @@ AuthenticatedUser = GithubObject( url = "/events" ), ) + +AuthenticatedUser._addAttributePolicy( + ExternalListOfObjects( "followers", "follower", NamedUser, + ListGetable( [], [] ) + ) +) + +AuthenticatedUser._addAttributePolicy( + ExternalListOfObjects( "following", "following", NamedUser, + ListGetable( [], [] ), + ElementAddable(), + ElementRemovable(), + ElementHasable() + ) +) diff --git a/github/GithubObjects.py b/github/GithubObjects.py index 8e40d10f..e4af79a6 100644 --- a/github/GithubObjects.py +++ b/github/GithubObjects.py @@ -7,76 +7,7 @@ from Hook import Hook from Authorization import Authorization from UserKey import UserKey from AuthenticatedUser import AuthenticatedUser - -NamedUser = GithubObject( - "NamedUser", - BaseUrl( lambda obj: "/users/" + obj.login ), - Identity( lambda obj: obj.login ), - InternalSimpleAttributes( - "login", "id", "avatar_url", "gravatar_id", "url", "name", "company", - "blog", "location", "email", "hireable", "bio", "public_repos", - "public_gists", "followers", "following", "html_url", "created_at", - "type", - # Only in Repository.get_contributors() - "contributions", - # Seen only by user herself - "disk_usage", "collaborators", "plan", "total_private_repos", - "owned_private_repos", "private_gists", - ), -) - -AuthenticatedUser._addAttributePolicy( - ExternalListOfObjects( "followers", "follower", NamedUser, - ListGetable( [], [] ) - ) -) -NamedUser._addAttributePolicy( - ExternalListOfObjects( "followers", "follower", NamedUser, - ListGetable( [], [] ) - ) -) - -AuthenticatedUser._addAttributePolicy( - ExternalListOfObjects( "following", "following", NamedUser, - ListGetable( [], [] ), - ElementAddable(), - ElementRemovable(), - ElementHasable() - ) -) -NamedUser._addAttributePolicy( - ExternalListOfObjects( "following", "following", NamedUser, - ListGetable( [], [] ) - ) -) -NamedUser._addAttributePolicy( - ExternalListOfObjects( "events", "event", Event, - ListGetable( [], [] ) - ), -) -def __getPublicEvents( user ): - return [ - Event( user._github, attributes, lazy = True ) - for attributes - in user._github._dataRequest( "GET", user._baseUrl() + "/events/public", None, None ) - ] -NamedUser._addAttributePolicy( - MethodFromCallable( "get_public_events", [], [], __getPublicEvents, SimpleTypePolicy( "list of `Event`" ) ) -) -NamedUser._addAttributePolicy( - ExternalListOfObjects( "received_events", "received_event", Event, - ListGetable( [], [] ) - ) -) -def __getPublicReceivedEvents( user ): - return [ - Event( user._github, attributes, lazy = True ) - for attributes - in user._github._dataRequest( "GET", user._baseUrl() + "/received_events/public", None, None ) - ] -NamedUser._addAttributePolicy( - MethodFromCallable( "get_public_received_events", [], [], __getPublicReceivedEvents, SimpleTypePolicy( "list of `Event`" ) ) -) +from NamedUser import NamedUser Organization = GithubObject( "Organization", diff --git a/github/NamedUser.py b/github/NamedUser.py new file mode 100644 index 00000000..0d28b88c --- /dev/null +++ b/github/NamedUser.py @@ -0,0 +1,54 @@ +from GithubObject import * + +from Event import Event + +def __getPublicEvents( user ): + return [ + Event( user._github, attributes, lazy = True ) + for attributes + in user._github._dataRequest( "GET", user._baseUrl() + "/events/public", None, None ) + ] + +def __getPublicReceivedEvents( user ): + return [ + Event( user._github, attributes, lazy = True ) + for attributes + in user._github._dataRequest( "GET", user._baseUrl() + "/received_events/public", None, None ) + ] + +NamedUser = GithubObject( + "NamedUser", + BaseUrl( lambda obj: "/users/" + obj.login ), + Identity( lambda obj: obj.login ), + InternalSimpleAttributes( + "login", "id", "avatar_url", "gravatar_id", "url", "name", "company", + "blog", "location", "email", "hireable", "bio", "public_repos", + "public_gists", "followers", "following", "html_url", "created_at", + "type", + # Only in Repository.get_contributors() + "contributions", + # Seen only by user herself + "disk_usage", "collaborators", "plan", "total_private_repos", + "owned_private_repos", "private_gists", + ), + ExternalListOfObjects( "events", "event", Event, + ListGetable( [], [] ) + ), + MethodFromCallable( "get_public_events", [], [], __getPublicEvents, SimpleTypePolicy( "list of `Event`" ) ), + ExternalListOfObjects( "received_events", "received_event", Event, + ListGetable( [], [] ) + ), + MethodFromCallable( "get_public_received_events", [], [], __getPublicReceivedEvents, SimpleTypePolicy( "list of `Event`" ) ), +) + +NamedUser._addAttributePolicy( + ExternalListOfObjects( "followers", "follower", NamedUser, + ListGetable( [], [] ) + ) +) + +NamedUser._addAttributePolicy( + ExternalListOfObjects( "following", "following", NamedUser, + ListGetable( [], [] ) + ) +)