Home | History | Annotate | Download | only in json_schema_compiler
      1 # Copyright 2013 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 def memoize(fn):
      6   '''Decorates |fn| to memoize.
      7   '''
      8   memory = {}
      9   def impl(*args, **optargs):
     10     full_args = args + tuple(optargs.iteritems())
     11     if full_args not in memory:
     12       memory[full_args] = fn(*args, **optargs)
     13     return memory[full_args]
     14   return impl
     15