{ 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 ];
  };
}