nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 cython,
4 async-timeout,
5 buildPythonPackage,
6 fetchFromGitHub,
7 ifaddr,
8 poetry-core,
9 pytest-asyncio,
10 pytest-codspeed,
11 pytest-cov-stub,
12 pytest-timeout,
13 pythonOlder,
14 pytestCheckHook,
15 setuptools,
16}:
17
18buildPythonPackage rec {
19 pname = "zeroconf";
20 version = "0.148.0";
21 pyproject = true;
22
23 src = fetchFromGitHub {
24 owner = "jstasiak";
25 repo = "python-zeroconf";
26 tag = version;
27 hash = "sha256-odjuJrUXQXn3WeF/oS8DLO937p2nHpSk9QGO4Tgsd8o=";
28 };
29
30 build-system = [
31 cython
32 poetry-core
33 setuptools
34 ];
35
36 dependencies = [ ifaddr ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
37
38 nativeCheckInputs = [
39 pytest-asyncio
40 pytest-codspeed
41 pytest-cov-stub
42 pytest-timeout
43 pytestCheckHook
44 ];
45
46 disabledTests = [
47 # OSError: [Errno 19] No such device
48 "test_close_multiple_times"
49 "test_integration_with_listener_ipv6"
50 "test_launch_and_close"
51 "test_launch_and_close_context_manager"
52 "test_launch_and_close_v4_v6"
53 ];
54
55 __darwinAllowLocalNetworking = true;
56
57 pythonImportsCheck = [
58 "zeroconf"
59 "zeroconf.asyncio"
60 ];
61
62 meta = {
63 description = "Python implementation of multicast DNS service discovery";
64 homepage = "https://github.com/python-zeroconf/python-zeroconf";
65 changelog = "https://github.com/python-zeroconf/python-zeroconf/blob/${src.tag}/CHANGELOG.md";
66 license = lib.licenses.lgpl21Only;
67 maintainers = [ ];
68 };
69}