add missing module

This commit is contained in:
Manuel Barkhau 2020-09-24 19:22:32 +00:00
parent f31a172dcb
commit e237c4a7e2

24
src/pycalver/utils.py Normal file
View file

@ -0,0 +1,24 @@
# This file is part of the pycalver project
# https://github.com/mbarkhau/pycalver
#
# Copyright (c) 2018-2020 Manuel Barkhau (mbarkhau@gmail.com) - MIT License
# SPDX-License-Identifier: MIT
import typing as typ
import functools
# NOTE (mb 2020-09-24): The main use of the memo function is
# not as a performance optimization, but to reduce logging
# spam.
def memo(func: typ.Callable) -> typ.Callable:
cache = {}
@functools.wraps(func)
def wrapper(*args):
key = str(args)
if key not in cache:
cache[key] = func(*args)
return cache[key]
return wrapper