#NEWLINE# def get_project( self , name ) : #NEWLINE# #INDENT# '\n        For a given project, get a dictionary mapping available versions to Distribution\n        instances.\n\n        This calls _get_project to do all the work, and just implements a caching layer on top.\n        ' #NEWLINE# if ( self . _cache is None ) : #NEWLINE# #INDENT# result = self . _get_project ( name ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( name in self . _cache ) : #NEWLINE# #INDENT# result = self . _cache [ name ] #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# result = self . _get_project ( name ) #NEWLINE# self . _cache [ name ] = result #NEWLINE# #UNINDENT# #UNINDENT# return result