Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / json-stream-rs-tokenizer / default.nix
blob9609d68c696140de1f44ca6bf76fd9410827d63a
1 { lib
2 , stdenv
3 , buildPythonPackage
4 , cargo
5 , darwin
6 , fetchFromGitHub
7 , json-stream
8 , json-stream-rs-tokenizer
9 , pythonOlder
10 , rustc
11 , rustPlatform
12 , setuptools
13 , setuptools-rust
14 , wheel
17 buildPythonPackage rec {
18   pname = "json-stream-rs-tokenizer";
19   version = "0.4.25";
20   pyproject = true;
22   disabled = pythonOlder "3.7";
24   src = fetchFromGitHub {
25     owner = "smheidrich";
26     repo = "py-json-stream-rs-tokenizer";
27     rev = "refs/tags/v${version}";
28     hash = "sha256-zo/jRAWSwcOnO8eU4KhDNz44P6xDGcrZf9CflwsSvF0=";
29   };
31   cargoDeps = rustPlatform.importCargoLock {
32     lockFile = ./Cargo.lock;
33     outputHashes = {
34       "utf8-read-0.4.0" = "sha256-L/NcgbB+2Rwtc+1e39fQh1D9S4RqQY6CCFOTh8CI8Ts=";
35     };
36   };
38   nativeBuildInputs = [
39     cargo
40     rustPlatform.cargoSetupHook
41     rustc
42     setuptools
43     setuptools-rust
44     wheel
45   ];
47   buildInputs = lib.optionals stdenv.isDarwin [
48     darwin.libiconv
49   ];
51   # Tests depend on json-stream, which depends on this package.
52   # To avoid infinite recursion, we only enable tests when building passthru.tests.
53   doCheck = false;
55   checkInputs = [
56     json-stream
57   ];
59   pythonImportsCheck = [
60     "json_stream_rs_tokenizer"
61   ];
63   passthru.tests = {
64     runTests = json-stream-rs-tokenizer.overrideAttrs (_: { doCheck = true; });
65   };
67   meta = with lib; {
68     description = "A faster tokenizer for the json-stream Python library";
69     homepage = "https://github.com/smheidrich/py-json-stream-rs-tokenizer";
70     license = licenses.mit;
71     maintainers = with maintainers; [ winter ];
72   };