diff --git a/pkgs/development/tools/memray/default.nix b/pkgs/development/tools/memray/default.nix new file mode 100644 index 000000000000..d352622d53b4 --- /dev/null +++ b/pkgs/development/tools/memray/default.nix @@ -0,0 +1,63 @@ +{ lib +, fetchFromGitHub +, libunwind +, lz4 +, pkg-config +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "memray"; + version = "1.2.0"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "bloomberg"; + repo = pname; + rev = "v${version}"; + hash = "sha256-MZOKo0VaCJM/YyvCByM5Yg7H/8onDKNSufBzr+GsFlo="; + }; + + buildInputs = [ + libunwind + lz4 + pkg-config + ] ++ (with python3.pkgs; [ + cython + ]); + + propagatedBuildInputs = with python3.pkgs; [ + jinja2 + rich + ]; + + checkInputs = with python3.pkgs; [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "memray" + ]; + + pytestFlagsArray = [ + "tests" + ]; + + disabledTests = [ + # Import issue + "test_header_allocator" + ]; + + disabledTestPaths = [ + # Very time-consuming and some tests fails (performance-related?) + "tests/integration/test_main.py" + ]; + + meta = with lib; { + description = "Memory profiler for Python"; + homepage = "https://bloomberg.github.io/memray/"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ef5d4c921aa3..ee5c0d3251a8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20165,6 +20165,8 @@ with pkgs; deps = [ memorymapping ]; } ../development/libraries/memorymapping/setup-hook.sh; + memray = callPackage ../development/tools/memray { }; + memstream = callPackage ../development/libraries/memstream { }; memstreamHook = makeSetupHook { deps = [ memstream ];