{
  lib,
  buildPythonPackage,
  fetchFromGitHub,
  cpyparsing,
  ipykernel,
  mypy,
  pexpect,
  pygments,
  pytestCheckHook,
  prompt-toolkit,
  tkinter,
  watchdog,
  pkgs,
}: let
  pygments = pkgs.python310Packages.callPackage ./pygments.nix {};
in
  buildPythonPackage rec {
    pname = "coconut";
    version = "3.0.2";

    src = fetchFromGitHub {
      owner = "evhub";
      repo = "coconut";
      rev = "v${version}";
      sha256 = lib.fakeSha256;
    };

    propagatedBuildInputs = [cpyparsing ipykernel mypy pygments prompt-toolkit watchdog];

    checkInputs = [pexpect pytestCheckHook tkinter];

    # Currently most tests have performance issues
    pytestFlagsArray = [
      "coconut/tests/constants_test.py"
    ];

    pythonImportsCheck = ["coconut"];

    meta = with lib; {
      homepage = "http://coconut-lang.org/";
      description = "Simple, elegant, Pythonic functional programming";
      license = licenses.asl20;
      maintainers = with maintainers; [fabianhjr];
    };
  }
