1{ lib
2, buildPythonPackage
3, fetchPypi
4, fetchFromGitHub
5, mock
6, psutil
7, six
8, future
9}:
10
11let
12 mock' = mock.overridePythonAttrs (old: rec {
13 version = "2.0.0";
14 src = fetchPypi {
15 inherit (old) pname;
16 inherit version;
17 sha256 = "1flbpksir5sqrvq2z0dp8sl4bzbadg21sj4d42w3klpdfvgvcn5i";
18 };
19 });
20in buildPythonPackage rec {
21 pname = "pylink-square";
22 version = "0.8.1";
23
24 src = fetchFromGitHub {
25 owner = "square";
26 repo = "pylink";
27 rev = "v${version}";
28 sha256 = "1q5sm1017pcqcgwhsliiiv1wh609lrjdlc8f5ihlschk1d0qidpd";
29 };
30
31 buildInputs = [ mock' ];
32 propagatedBuildInputs = [ psutil six future ];
33
34 preCheck = ''
35 # For an unknown reason, `pylink --version` output is different
36 # inside the nix build environment across different python versions
37 substituteInPlace tests/unit/test_main.py --replace \
38 "expected = 'pylink %s' % pylink.__version__" \
39 "return"
40 '';
41
42 pythonImportsCheck = [ "pylink" ];
43
44 meta = with lib; {
45 description = "Python interface for the SEGGER J-Link";
46 homepage = "https://github.com/Square/pylink";
47 maintainers = with maintainers; [ dump_stack ];
48 license = licenses.asl20;
49 };
50}