2008-08-12 20:15:15 +02:00
|
|
|
# common.py - provides functions which are commonly used by the
|
|
|
|
# ubuntu-dev-tools package.
|
2008-08-11 21:48:40 +01:00
|
|
|
#
|
2010-12-20 01:19:09 +02:00
|
|
|
# Copyright (C) 2010, Stefano Rivera <stefanor@ubuntu.com>
|
2008-08-11 21:48:40 +01:00
|
|
|
#
|
2010-12-20 01:19:09 +02:00
|
|
|
# Permission to use, copy, modify, and/or distribute this software for any
|
|
|
|
# purpose with or without fee is hereby granted, provided that the above
|
|
|
|
# copyright notice and this permission notice appear in all copies.
|
2008-08-12 20:15:15 +02:00
|
|
|
#
|
2010-12-20 01:19:09 +02:00
|
|
|
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
|
|
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
|
|
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
|
|
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
|
|
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
|
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
|
|
# PERFORMANCE OF THIS SOFTWARE.
|
2008-08-11 21:48:40 +01:00
|
|
|
|
2010-12-19 20:47:01 +02:00
|
|
|
def memoize_noargs(func):
|
|
|
|
"Simple memoization wrapper, for functions without arguments"
|
|
|
|
func.cache = None
|
|
|
|
def wrapper():
|
|
|
|
if func.cache is None:
|
|
|
|
func.cache = func()
|
|
|
|
return func.cache
|
|
|
|
return wrapper
|