nav: init at 1.2.1 (#356071)
[NixPkgs.git] / pkgs / development / python-modules / watchfiles / default.nix
blob3b09081249b0ac6d09ba102d261708bffc7fea90
2   lib,
3   stdenv,
4   anyio,
5   buildPythonPackage,
6   cargo,
7   fetchFromGitHub,
8   rustPlatform,
9   rustc,
10   pythonOlder,
11   dirty-equals,
12   pytest-mock,
13   pytest-timeout,
14   pytestCheckHook,
15   CoreServices,
16   libiconv,
19 buildPythonPackage rec {
20   pname = "watchfiles";
21   version = "0.22.0";
22   format = "pyproject";
24   disabled = pythonOlder "3.7";
26   src = fetchFromGitHub {
27     owner = "samuelcolvin";
28     repo = pname;
29     rev = "refs/tags/v${version}";
30     hash = "sha256-TtRSRgtMOqsnhdvsic3lg33xlA+r/DcYHlzewSOu/44=";
31   };
33   cargoDeps = rustPlatform.fetchCargoTarball {
34     inherit src;
35     name = "${pname}-${version}";
36     hash = "sha256-n9yN/VRNQWCxh+BoliIMkKqJC51inpB9DQ9WtqR4oA0=";
37   };
39   buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
40     CoreServices
41     libiconv
42   ];
44   nativeBuildInputs = [
45     rustPlatform.cargoSetupHook
46     rustPlatform.maturinBuildHook
47     cargo
48     rustc
49   ];
51   propagatedBuildInputs = [ anyio ];
53   # Tests need these permissions in order to use the FSEvents API on macOS.
54   sandboxProfile = ''
55     (allow mach-lookup (global-name "com.apple.FSEvents"))
56   '';
58   nativeCheckInputs = [
59     dirty-equals
60     pytest-mock
61     pytest-timeout
62     pytestCheckHook
63   ];
65   postPatch = ''
66     sed -i "/^requires-python =.*/a version = '${version}'" pyproject.toml
67   '';
69   preCheck = ''
70     rm -rf watchfiles
71   '';
73   disabledTests = [
74     #  BaseExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
75     "test_awatch_interrupt_raise"
76   ];
78   pythonImportsCheck = [ "watchfiles" ];
80   meta = with lib; {
81     description = "File watching and code reload";
82     mainProgram = "watchfiles";
83     homepage = "https://watchfiles.helpmanual.io/";
84     license = licenses.mit;
85     maintainers = with maintainers; [ fab ];
86   };