Make sure only three class definitions are distributed

This commit is contained in:
Vincent Jacques
2012-03-14 22:56:12 +01:00
parent 85eef75635
commit 69cc298fd1
8 changed files with 143 additions and 129 deletions
+30
View File
@@ -5,6 +5,8 @@ from UserKey import UserKey
from Event import Event
from NamedUser import NamedUser
from Organization import Organization
from Repository import Repository
from Gist import Gist
def __getOrganizationEvents( user, org ):
return [
@@ -13,6 +15,16 @@ def __getOrganizationEvents( user, org ):
in user._github._dataRequest( "GET", "/users/" + user.login + "/events/orgs/" + org.login, None, None )
]
def __createFork( user, repo ):
assert isinstance( repo, Repository )
return Repository( user._github, user._github._dataRequest( "POST", repo._baseUrl() + "/forks", None, None ), lazy = True )
def __getStaredGists( user ):
return [
Gist( user._github, attributes, lazy = True )
for attributes in user._github._dataRequest( "GET", "/gists/starred", None, None )
]
AuthenticatedUser = GithubObject(
"AuthenticatedUser",
BaseUrl( lambda obj: "/user" ),
@@ -58,4 +70,22 @@ AuthenticatedUser = GithubObject(
ListGetable( [], [] )
),
MethodFromCallable( "get_organization_events", [ "org" ], [], __getOrganizationEvents, SimpleTypePolicy( "list of `Event`" ) ),
ExternalListOfObjects( "repos", "repo", Repository,
ListGetable( [], [ "type" ] ),
ElementGetable( [ "name" ], [], { "owner" : lambda user: { "login": user.login } } ),
ElementCreatable( [ "name" ], [ "description", "homepage", "private", "has_issues", "has_wiki", "has_downloads", "team_id", ] )
),
ExternalListOfObjects( "watched", "watched", Repository,
ListGetable( [], [] ),
ElementAddable(),
ElementRemovable(),
ElementHasable()
),
SeveralAttributePolicies( [ MethodFromCallable( "create_fork", [ "repo" ], [], __createFork, ObjectTypePolicy( Repository ) ) ], "Forking" ),
ExternalListOfObjects( "gists", "gist", Gist,
ListGetable( [], [] ),
ElementCreatable( [ "public", "files", ], [ "description" ] ),
url = "/gists",
),
MethodFromCallable( "get_starred_gists", [], [], __getStaredGists, SimpleTypePolicy( "list of `Gist`" ) ),
)
+8 -1
View File
@@ -1,9 +1,16 @@
from GithubObject import *
from Repository import Repository
from NamedUser import NamedUser
from Organization import Organization
Event = GithubObject(
"Event",
InternalSimpleAttributes(
"type", "public", "payload", "created_at", "id", "commit_id", "url",
"event", "issue",
),
)
InternalObjectAttribute( "repo", Repository ),
InternalObjectAttribute( "actor", NamedUser ),
InternalObjectAttribute( "org", Organization ),
)
-23
View File
@@ -1,20 +1,5 @@
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",
@@ -31,14 +16,6 @@ NamedUser = GithubObject(
"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(
-4
View File
@@ -1,7 +1,6 @@
from GithubObject import *
from NamedUser import NamedUser
from Event import Event
Organization = GithubObject(
"Organization",
@@ -27,7 +26,4 @@ Organization = GithubObject(
ElementRemovable(),
ElementHasable()
),
ExternalListOfObjects( "events", "event", Event,
ListGetable( [], [] )
),
)
-15
View File
@@ -1,7 +1,6 @@
from GithubObject import *
from NamedUser import NamedUser
from Event import Event
from IssueEvent import IssueEvent
from RepositoryKey import RepositoryKey
from Hook import Hook
@@ -39,20 +38,6 @@ Repository = GithubObject(
)
Repository._addAttributePolicy( InternalObjectAttribute( "parent", Repository ) )
Repository._addAttributePolicy( InternalObjectAttribute( "source", Repository ) )
Repository._addAttributePolicy(
ExternalListOfObjects( "events", "event", Event,
ListGetable( [], [] )
),
)
def __getNetworkEvents( repo ):
return [
Event( repo._github, attributes, lazy = True )
for attributes
in repo._github._dataRequest( "GET", "/networks/" + repo.owner.login + "/" + repo.name + "/events", None, None )
]
Repository._addAttributePolicy(
MethodFromCallable( "get_network_events", [], [], __getNetworkEvents, SimpleTypePolicy( "list of `Event`" ) )
)
Repository._addAttributePolicy(
ExternalListOfObjects( "issues/events", "issues_event", IssueEvent,
ListGetable( [], [], __modifyAttributesForObjectsReferingRepo ),
+86 -66
View File
@@ -31,58 +31,109 @@ from Team import Team
from GistComment import GistComment
from Gist import Gist
#### Complete NamedUser
NamedUser._addAttributePolicy(
ExternalListOfObjects( "orgs", "org", Organization,
ListGetable( [], [] )
)
)
__repoElementCreatable = ElementCreatable( [ "name" ], [ "description", "homepage", "private", "has_issues", "has_wiki", "has_downloads", "team_id", ] )
__repoElementGetable = ElementGetable( [ "name" ], [], { "owner" : lambda user: { "login": user.login } } )
__repoListGetable = ListGetable( [], [ "type" ] )
AuthenticatedUser._addAttributePolicy(
ExternalListOfObjects( "repos", "repo", Repository,
__repoListGetable,
__repoElementGetable,
__repoElementCreatable
)
)
NamedUser._addAttributePolicy(
ExternalListOfObjects( "repos", "repo", Repository,
__repoListGetable,
__repoElementGetable
)
)
Organization._addAttributePolicy(
ExternalListOfObjects( "repos", "repo", Repository,
__repoListGetable,
__repoElementGetable,
__repoElementCreatable
ExternalListOfObjects( "events", "event", Event,
ListGetable( [], [] )
)
)
AuthenticatedUser._addAttributePolicy(
ExternalListOfObjects( "watched", "watched", Repository,
ListGetable( [], [] ),
ElementAddable(),
ElementRemovable(),
ElementHasable()
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`" ) )
)
NamedUser._addAttributePolicy(
ExternalListOfObjects( "repos", "repo", Repository,
ListGetable( [], [ "type" ] ),
ElementGetable( [ "name" ], [], { "owner" : lambda user: { "login": user.login } } )
)
)
NamedUser._addAttributePolicy(
ExternalListOfObjects( "watched", "watched", Repository,
ListGetable( [], [] )
)
)
def __createForkForUser( user, repo ):
assert isinstance( repo, Repository )
return Repository( user._github, user._github._dataRequest( "POST", repo._baseUrl() + "/forks", None, None ), lazy = True )
AuthenticatedUser._addAttributePolicy( SeveralAttributePolicies( [ MethodFromCallable( "create_fork", [ "repo" ], [], __createForkForUser, ObjectTypePolicy( Repository ) ) ], "Forking" ) )
NamedUser._addAttributePolicy(
ExternalListOfObjects( "gists", "gist", Gist,
ListGetable( [], [] ),
)
)
#### Complete Repository
Repository._addAttributePolicy(
ExternalListOfObjects( "teams", "team", Team,
ListGetable( [], [] )
)
)
Repository._addAttributePolicy(
ExternalListOfObjects( "events", "event", Event,
ListGetable( [], [] )
),
)
def __getNetworkEvents( repo ):
return [
Event( repo._github, attributes, lazy = True )
for attributes
in repo._github._dataRequest( "GET", "/networks/" + repo.owner.login + "/" + repo.name + "/events", None, None )
]
Repository._addAttributePolicy(
MethodFromCallable( "get_network_events", [], [], __getNetworkEvents, SimpleTypePolicy( "list of `Event`" ) )
)
#### Complete Organization
Organization._addAttributePolicy(
ExternalListOfObjects( "repos", "repo", Repository,
ListGetable( [], [ "type" ] ),
ElementGetable( [ "name" ], [], { "owner" : lambda user: { "login": user.login } } ),
ElementCreatable( [ "name" ], [ "description", "homepage", "private", "has_issues", "has_wiki", "has_downloads", "team_id", ] )
)
)
def __createForkForOrg( org, repo ):
assert isinstance( repo, Repository )
return Repository( org._github, org._github._dataRequest( "POST", repo._baseUrl() + "/forks", { "org": org.login }, None ), lazy = True )
Organization._addAttributePolicy( SeveralAttributePolicies( [ MethodFromCallable( "create_fork", [ "repo" ], [], __createForkForOrg, ObjectTypePolicy( Repository ) ) ], "Forking" ) )
Organization._addAttributePolicy(
SeveralAttributePolicies( [ MethodFromCallable( "create_fork", [ "repo" ], [], __createForkForOrg, ObjectTypePolicy( Repository ) ) ], "Forking" )
)
Organization._addAttributePolicy(
ExternalListOfObjects( "teams", "team", Team,
@@ -90,40 +141,9 @@ Organization._addAttributePolicy(
ElementCreatable( [ "name" ], [ "repo_names", "permission" ] )
)
)
Repository._addAttributePolicy(
ExternalListOfObjects( "teams", "team", Team,
Organization._addAttributePolicy(
ExternalListOfObjects( "events", "event", Event,
ListGetable( [], [] )
)
)
NamedUser._addAttributePolicy(
ExternalListOfObjects( "gists", "gist", Gist,
ListGetable( [], [] ),
)
)
AuthenticatedUser._addAttributePolicy(
ExternalListOfObjects( "gists", "gist", Gist,
ListGetable( [], [] ),
ElementCreatable( [ "public", "files", ], [ "description" ] ),
url = "/gists",
)
)
def __getStaredGists( user ):
return [
Gist( user._github, attributes, lazy = True )
for attributes in user._github._dataRequest( "GET", "/gists/starred", None, None )
]
AuthenticatedUser._addAttributePolicy(
MethodFromCallable( "get_starred_gists", [], [], __getStaredGists, SimpleTypePolicy( "list of `Gist`" ) ),
)
Event._addAttributePolicy(
InternalObjectAttribute( "repo", Repository ),
)
Event._addAttributePolicy(
InternalObjectAttribute( "actor", NamedUser ),
)
Event._addAttributePolicy(
InternalObjectAttribute( "org", Organization ),
),
)