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