1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 fetchpatch,
6 gevent,
7 pytestCheckHook,
8 setuptools,
9 pythonOlder,
10 watchdog,
11}:
12
13buildPythonPackage rec {
14 pname = "watchdog-gevent";
15 version = "0.1.1";
16 pyproject = true;
17
18 disabled = pythonOlder "3.7";
19
20 src = fetchFromGitHub {
21 owner = "Bogdanp";
22 repo = "watchdog_gevent";
23 rev = "refs/tags/v${version}";
24 hash = "sha256-FESm3fNuLmOg2ilI/x8U9LuAimHLnahcTHYzW/nzOVY=";
25 };
26
27 patches = [
28 # Add new event_filter argument to GeventEmitter
29 (fetchpatch {
30 name = "new-event_filter-argument.patch";
31 url = "https://github.com/Bogdanp/watchdog_gevent/commit/a98b6599aefb6f1ea6f9682485ed460c52f6e55f.patch";
32 hash = "sha256-lbUtl8IbnJjlsIpbC+wXLvYB+ZtUuHWqFtf31Bfqc2I=";
33 })
34 ];
35
36 postPatch = ''
37 sed -i setup.cfg \
38 -e 's:--cov watchdog_gevent::' \
39 -e 's:--cov-report html::'
40 '';
41
42 build-system = [ setuptools ];
43
44 dependencies = [
45 gevent
46 watchdog
47 ];
48
49 nativeCheckInputs = [ pytestCheckHook ];
50
51 pythonImportsCheck = [ "watchdog_gevent" ];
52
53 meta = with lib; {
54 description = "Gevent-based observer for watchdog";
55 homepage = "https://github.com/Bogdanp/watchdog_gevent";
56 license = licenses.asl20;
57 maintainers = with maintainers; [ traxys ];
58 };
59}