{
  lib,
  sources,
  buildPythonPackage,
  beartype,
  cloudpickle,
  icontract,
  pbr,
}:
buildPythonPackage rec {
  pname = "perscache";
  version = sources.perscache.rev;

  src = sources.perscache;

  propagatedBuildInputs = [beartype cloudpickle icontract pbr];
  PBR_VERSION = version;

  doCheck = false; # no tests currently
  pythonImportsCheck = ["perscache"];

  meta = with lib; {
    description = ''
      An easy to use decorator for persistent memoization: like
      `functools.lrucache`, but results can be saved in any format to any
      storage.
    '';
    homepage = "https://github.com/leshchenko1979/perscache";
    license = licenses.mit;
    maintainers = with maintainers; [bsima];
  };
}