1{
2 lib,
3 atpublic,
4 buildPythonPackage,
5 fetchPypi,
6 hatchling,
7 psutil,
8 pytest-cov-stub,
9 pytestCheckHook,
10 pythonOlder,
11 sybil,
12}:
13
14buildPythonPackage rec {
15 pname = "flufl-lock";
16 version = "8.2.0";
17 pyproject = true;
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchPypi {
22 pname = "flufl_lock";
23 inherit version;
24 hash = "sha256-FbMzw1+rGjayI4QAVyWK60zXnw+6+CwUTyPN9s8U1eM=";
25 };
26
27 build-system = [ hatchling ];
28
29 dependencies = [
30 atpublic
31 psutil
32 ];
33
34 nativeCheckInputs = [
35 pytestCheckHook
36 pytest-cov-stub
37 sybil
38 ];
39
40 # disable code coverage checks for all OS. Upstream does not enforce these
41 # checks on Darwin, and code coverage cannot be improved downstream nor is it
42 # relevant to the user.
43 pytestFlags = [ "--no-cov" ];
44
45 pythonImportsCheck = [ "flufl.lock" ];
46
47 pythonNamespaces = [ "flufl" ];
48
49 meta = with lib; {
50 description = "NFS-safe file locking with timeouts for POSIX and Windows";
51 homepage = "https://flufllock.readthedocs.io/";
52 changelog = "https://gitlab.com/warsaw/flufl.lock/-/blob/${version}/docs/NEWS.rst";
53 license = licenses.asl20;
54 maintainers = with maintainers; [ qyliss ];
55 };
56}