Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / tiktoken / default.nix
blob3cf68063f1199f60c683b109370a300496161130
1 { lib
2 , stdenv
3 , buildPythonPackage
4 , fetchPypi
5 , pythonOlder
6 , rustPlatform
7 , cargo
8 , rustc
9 , setuptools
10 , setuptools-rust
11 , wheel
12 , libiconv
13 , requests
14 , regex
15 , blobfile
17 let
18   pname = "tiktoken";
19   version = "0.5.1";
20   src = fetchPypi {
21     inherit pname version;
22     hash = "sha256-J+dzVkIyAE9PgQ/R+FI2Zz7DpW7X8SBvye2GcOvtuXo=";
23   };
24   postPatch = ''
25     cp ${./Cargo.lock} Cargo.lock
26   '';
28 buildPythonPackage {
29   inherit pname version src postPatch;
30   format = "pyproject";
32   disabled = pythonOlder "3.8";
34   nativeBuildInput = [
35     setuptools
36     setuptools-rust
37     wheel
38   ];
40   cargoDeps = rustPlatform.fetchCargoTarball {
41     inherit src postPatch;
42     name = "${pname}-${version}";
43     hash = "sha256-Q7XO+auj4tKDAGbqNn9pmJg8EJvooN2ie0lWwZVrld4=";
44   };
46   nativeBuildInputs = [
47     rustPlatform.cargoSetupHook
48     setuptools-rust
49     cargo
50     rustc
51   ];
53   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
55   propagatedBuildInputs = [
56     requests
57     regex
58     blobfile
59   ];
61   # almost all tests require network access
62   doCheck = false;
64   pythonImportsCheck = [
65     "tiktoken"
66   ];
68   meta = with lib; {
69     description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models.";
70     homepage = "https://github.com/openai/tiktoken";
71     license = licenses.mit;
72     maintainers = with maintainers; [ happysalada ];
73   };