1{
2 lib,
3 anyio,
4 async-generator,
5 buildPythonPackage,
6 fetchFromGitHub,
7 cpyparsing,
8 ipykernel,
9 mypy,
10 pexpect,
11 pygments,
12 pytestCheckHook,
13 pythonAtLeast,
14 prompt-toolkit,
15 setuptools,
16 tkinter,
17 watchdog,
18}:
19
20buildPythonPackage rec {
21 pname = "coconut";
22 version = "3.1.2";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "evhub";
27 repo = "coconut";
28 tag = "v${version}";
29 hash = "sha256-Vd6ZY3PlbPOy63/0/0YJ1U2PpsVdctOoInyKftj//cM=";
30 };
31
32 disabled = pythonAtLeast "3.13";
33
34 nativeBuildInputs = [ setuptools ];
35
36 propagatedBuildInputs = [
37 anyio
38 async-generator
39 cpyparsing
40 ipykernel
41 mypy
42 pygments
43 prompt-toolkit
44 setuptools
45 watchdog
46 ];
47
48 nativeCheckInputs = [
49 pexpect
50 pytestCheckHook
51 tkinter
52 ];
53
54 # Currently most tests have performance issues
55 enabledTestPaths = [ "coconut/tests/constants_test.py" ];
56
57 pythonImportsCheck = [ "coconut" ];
58
59 meta = with lib; {
60 description = "Simple, elegant, Pythonic functional programming";
61 homepage = "http://coconut-lang.org/";
62 changelog = "https://github.com/evhub/coconut/releases/tag/v${version}";
63 license = licenses.asl20;
64 maintainers = with maintainers; [ fabianhjr ];
65 };
66}