1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hatch-vcs,
6 hatchling,
7 mypy-extensions,
8 numpy,
9 pydantic,
10 pytest-asyncio,
11 pytestCheckHook,
12 pythonOlder,
13 toolz,
14 typing-extensions,
15 wrapt,
16 attrs,
17}:
18
19buildPythonPackage rec {
20 pname = "psygnal";
21 version = "0.14.0";
22 format = "pyproject";
23
24 disabled = pythonOlder "3.8";
25
26 src = fetchFromGitHub {
27 owner = "pyapp-kit";
28 repo = "psygnal";
29 tag = "v${version}";
30 hash = "sha256-RQ53elonwvna5UDVell3JI1dcZSMHREyB51r+ddsW2M=";
31 };
32
33 build-system = [
34 hatch-vcs
35 hatchling
36 ];
37
38 dependencies = [
39 mypy-extensions
40 typing-extensions
41 ];
42
43 nativeCheckInputs = [
44 numpy
45 pydantic
46 pytest-asyncio
47 pytestCheckHook
48 toolz
49 wrapt
50 attrs
51 ];
52
53 pytestFlags = [
54 "-Wignore::pydantic.warnings.PydanticDeprecatedSince211"
55 ];
56
57 pythonImportsCheck = [ "psygnal" ];
58
59 meta = with lib; {
60 description = "Implementation of Qt Signals";
61 homepage = "https://github.com/pyapp-kit/psygnal";
62 changelog = "https://github.com/pyapp-kit/psygnal/blob/${src.tag}/CHANGELOG.md";
63 license = licenses.bsd3;
64 maintainers = with maintainers; [ SomeoneSerge ];
65 };
66}