mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Documentation and cleanup for APIItem mixin.
This commit is contained in:
@@ -160,19 +160,34 @@ class UsesAnnotations:
|
||||
|
||||
class APIItem:
|
||||
""" Mixin for api representation. """
|
||||
#api_collection_visible_keys = ( 'id' )
|
||||
#api_element_visible_keys = ( 'id' )
|
||||
def get_api_value( self, view='collection', value_mapper = None ):
|
||||
|
||||
def get_api_value( self, view='collection', value_mapper=None ):
|
||||
"""
|
||||
Return item dictionary.
|
||||
"""
|
||||
|
||||
if not value_mapper:
|
||||
value_mapper = {}
|
||||
|
||||
def get_value( key, item ):
|
||||
"""
|
||||
Recursive helper function to get item values.
|
||||
"""
|
||||
# FIXME: why use exception here? Why not look for key in value_mapper
|
||||
# first and then default to get_api_value?
|
||||
try:
|
||||
return item.get_api_value( view=view, value_mapper=value_mapper )
|
||||
except:
|
||||
if key in value_mapper:
|
||||
return value_mapper.get( key )( item )
|
||||
return item
|
||||
if value_mapper is None:
|
||||
value_mapper = {}
|
||||
rval = {}
|
||||
|
||||
# Create dict to represent item.
|
||||
rval = dict(
|
||||
model_class=self.__class__.__name__
|
||||
)
|
||||
|
||||
# Fill item dict with visible keys.
|
||||
try:
|
||||
visible_keys = self.__getattribute__( 'api_' + view + '_visible_keys' )
|
||||
except AttributeError:
|
||||
@@ -181,13 +196,12 @@ class APIItem:
|
||||
try:
|
||||
item = self.__getattribute__( key )
|
||||
if type( item ) == InstrumentedList:
|
||||
rval[key] = []
|
||||
rval[ key ] = []
|
||||
for i in item:
|
||||
rval[key].append( get_value( key, i ) )
|
||||
rval[ key ].append( get_value( key, i ) )
|
||||
else:
|
||||
rval[key] = get_value( key, item )
|
||||
rval[ key ] = get_value( key, item )
|
||||
except AttributeError:
|
||||
rval[key] = None
|
||||
rval[ key ] = None
|
||||
|
||||
rval['model_class'] = self.__class__.__name__
|
||||
return rval
|
||||
|
||||
Reference in New Issue
Block a user