mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-19 02:44:17 +03:00
pyflame: init at 1.6.7
This commit is contained in:
parent
7041972128
commit
330fbbeb73
57
pkgs/development/tools/profiling/pyflame/default.nix
Normal file
57
pkgs/development/tools/profiling/pyflame/default.nix
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, autoreconfHook, coreutils, pkgconfig
|
||||||
|
# pyflame needs one python version per ABI
|
||||||
|
# are currently supported
|
||||||
|
# * 2.6 or 2.7 for 2.x ABI
|
||||||
|
# * 3.4 or 3.5 for 3.{4,5} ABI
|
||||||
|
# * 3.6 for 3.6+ ABI
|
||||||
|
# if you want to disable support for some ABI, make the corresponding argument null
|
||||||
|
, python2, python35, python36
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "pyflame";
|
||||||
|
version = "1.6.7";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "uber";
|
||||||
|
repo = "pyflame";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0hz1ryimh0w8zyxx4y8chcn54d6b02spflj5k9rcg26an2chkg2w";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||||
|
buildInputs = [ python36 python2 python35 ];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
patchShebangs .
|
||||||
|
# some tests will fail in the sandbox
|
||||||
|
substituteInPlace tests/test_end_to_end.py \
|
||||||
|
--replace 'skipif(IS_DOCKER' 'skipif(True'
|
||||||
|
'';
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
# reproduces the logic of their test script, but without downloading pytest
|
||||||
|
# from the internet with pip
|
||||||
|
checkPhase = with stdenv.lib; concatMapStringsSep "\n" (python: ''
|
||||||
|
set -x
|
||||||
|
PYMAJORVERSION=${head (strings.stringToCharacters python.version)} \
|
||||||
|
PATH=${makeBinPath [ coreutils ]}\
|
||||||
|
PYTHONPATH= \
|
||||||
|
${python.pkgs.pytest}/bin/pytest tests/
|
||||||
|
set +x
|
||||||
|
'') (filter (x: x!=null) buildInputs);
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A ptracing profiler for Python ";
|
||||||
|
longDescription = ''
|
||||||
|
Pyflame is a high performance profiling tool that generates flame graphs for
|
||||||
|
Python. Pyflame uses the Linux ptrace(2) system call to collect profiling
|
||||||
|
information. It can take snapshots of the Python call stack without
|
||||||
|
explicit instrumentation, meaning you can profile a program without
|
||||||
|
modifying its source code.
|
||||||
|
'';
|
||||||
|
homepage = https://github.com/uber/pyflame;
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = [ maintainers.symphorien ];
|
||||||
|
# arm: https://github.com/uber/pyflame/issues/136
|
||||||
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
}
|
@ -8850,6 +8850,8 @@ with pkgs;
|
|||||||
|
|
||||||
puppet-lint = callPackage ../development/tools/puppet/puppet-lint { };
|
puppet-lint = callPackage ../development/tools/puppet/puppet-lint { };
|
||||||
|
|
||||||
|
pyflame = callPackage ../development/tools/profiling/pyflame { };
|
||||||
|
|
||||||
pyrseas = callPackage ../development/tools/database/pyrseas { };
|
pyrseas = callPackage ../development/tools/database/pyrseas { };
|
||||||
|
|
||||||
qtcreator = libsForQt5.callPackage ../development/tools/qtcreator { };
|
qtcreator = libsForQt5.callPackage ../development/tools/qtcreator { };
|
||||||
|
Loading…
Reference in New Issue
Block a user