1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, importlib-metadata
5, numpy
6, pydantic
7, pytest-mypy-plugins
8, pytestCheckHook
9, pythonOlder
10, setuptools-scm
11, typing-extensions
12, wheel
13, wrapt
14}:
15
16buildPythonPackage rec {
17 pname = "psygnal";
18 version = "0.6.0";
19 format = "setuptools";
20
21 disabled = pythonOlder "3.7";
22
23 src = fetchFromGitHub {
24 owner = "tlambert03";
25 repo = pname;
26 rev = "refs/tags/v${version}";
27 hash = "sha256-KCdX+pMUAQxeQRZhkrdGCKGjBaB1Ode/r1W8LJQPxyM=";
28 };
29
30 SETUPTOOLS_SCM_PRETEND_VERSION = version;
31
32 buildInputs = [
33 setuptools-scm
34 wheel
35 ];
36
37 propagatedBuildInputs = [
38 typing-extensions
39 ] ++ lib.optionals (pythonOlder "3.8") [
40 importlib-metadata
41 ];
42
43 checkInputs = [
44 numpy
45 pydantic
46 pytest-mypy-plugins
47 pytestCheckHook
48 wrapt
49 ];
50
51 postPatch = ''
52 substituteInPlace pyproject.toml \
53 --replace " --cov=psygnal --cov-report=term-missing" ""
54 '';
55
56 pythonImportsCheck = [
57 "psygnal"
58 ];
59
60 meta = with lib; {
61 description = "Implementation of Qt Signals";
62 homepage = "https://github.com/tlambert03/psygnal";
63 license = licenses.bsd3;
64 maintainers = with maintainers; [ SomeoneSerge ];
65 };
66}