mirror of
https://github.com/status-im/PyGithub.git
synced 2026-08-31 19:01:15 +00:00
64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
class AttributeFromCallable:
|
|
class AttributeDefinition:
|
|
def __init__( self, name, callable ):
|
|
self.__name = name
|
|
self.__callable = callable
|
|
|
|
def getValueFromRawValue( self, obj, rawValue ):
|
|
return rawValue
|
|
|
|
def updateAttributes( self, obj ):
|
|
obj._updateAttributes( { self.__name: self.__callable( obj ) } )
|
|
|
|
def isLazy( self ):
|
|
return False
|
|
|
|
def __init__( self, name, callable ):
|
|
self.__name = name
|
|
self.__callable = callable
|
|
|
|
def apply( self, cls ):
|
|
cls._addAttribute( self.__name, AttributeFromCallable.AttributeDefinition( self.__name, self.__callable ) )
|
|
|
|
class MethodFromCallable:
|
|
def __init__( self, name, callable ):
|
|
self.__name = name
|
|
self.__callable = callable
|
|
|
|
def apply( self, cls ):
|
|
cls._addMethod( self.__name, self.__callable )
|
|
|
|
class InternalAttribute:
|
|
class AttributeDefinition:
|
|
def __init__( self, typePolicy ):
|
|
self.__typePolicy = typePolicy
|
|
|
|
def getValueFromRawValue( self, obj, rawValue ):
|
|
if rawValue is None:
|
|
return None
|
|
else:
|
|
return self.__typePolicy.create( obj, rawValue )
|
|
|
|
def updateAttributes( self, obj ):
|
|
attributes = obj._github._dataRequest( "GET", obj._baseUrl, None, None )
|
|
obj._updateAttributes( attributes )
|
|
obj._markAsCompleted()
|
|
|
|
def isLazy( self ):
|
|
return True
|
|
|
|
def __init__( self, attributeName, typePolicy ):
|
|
self.__attributeName = attributeName
|
|
self.__typePolicy = typePolicy
|
|
|
|
def apply( self, cls ):
|
|
cls._addAttribute( self.__attributeName, InternalAttribute.AttributeDefinition( self.__typePolicy ) )
|
|
|
|
class SeveralAttributes:
|
|
def __init__( self, attributePolicies ):
|
|
self.__attributePolicies = attributePolicies
|
|
|
|
def apply( self, cls ):
|
|
for attributePolicy in self.__attributePolicies:
|
|
attributePolicy.apply( cls )
|