From a691459e218299d753c328de984e51fa906f442b Mon Sep 17 00:00:00 2001 From: Tristan Druyen Date: Thu, 10 Oct 2024 17:03:53 +0200 Subject: [PATCH] [feat]: Add aider-chat package to nixpkgs --- pkgs/aider-chat.nix | 122 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 pkgs/aider-chat.nix diff --git a/pkgs/aider-chat.nix b/pkgs/aider-chat.nix new file mode 100644 index 0000000..215279c --- /dev/null +++ b/pkgs/aider-chat.nix @@ -0,0 +1,122 @@ +{ lib +, stdenv +, python311 +, fetchFromGitHub +, gitMinimal +, portaudio +, +}: + +let + python3 = python311.override { + self = python3; + packageOverrides = _: super: { tree-sitter = super.tree-sitter_0_21; }; + }; + version = "0.59.1"; +in +python3.pkgs.buildPythonApplication { + pname = "aider-chat"; + inherit version; + pyproject = true; + + src = fetchFromGitHub { + owner = "paul-gauthier"; + repo = "aider"; + rev = "refs/tags/v${version}"; + hash = "sha256-20LicYj1j5gGzhF+SxPUKu858nHZgwDF1JxXeHRtYe0="; + }; + + pythonRelaxDeps = true; + + build-system = with python3.pkgs; [ setuptools-scm ]; + + dependencies = + with python3.pkgs; + [ + aiohappyeyeballs + backoff + beautifulsoup4 + configargparse + diff-match-patch + diskcache + flake8 + gitpython + grep-ast + importlib-resources + json5 + jsonschema + jiter + litellm + networkx + numpy + packaging + pathspec + pexpect + pillow + playwright + prompt-toolkit + ptyprocess + pypager + pypandoc + pyperclip + pyyaml + psutil + rich + scipy + sounddevice + soundfile + streamlit + tokenizers + watchdog + pydub + ] + ++ lib.optionals (!tensorflow.meta.broken) [ + llama-index-core + llama-index-embeddings-huggingface + ]; + + buildInputs = [ portaudio ]; + + nativeCheckInputs = (with python3.pkgs; [ pytestCheckHook ]) ++ [ gitMinimal ]; + + disabledTestPaths = [ + # Tests require network access + "tests/scrape/test_scrape.py" + # Expected 'mock' to have been called once + "tests/help/test_help.py" + ]; + + disabledTests = + [ + # Tests require network + "test_urls" + "test_get_commit_message_with_custom_prompt" + # FileNotFoundError + "test_get_commit_message" + # Expected 'launch_gui' to have been called once + "test_browser_flag_imports_streamlit" + # AttributeError + "test_simple_send_with_retries" + # Expected 'check_version' to have been called once + "test_main_exit_calls_version_check" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # Tests fails on darwin + "test_dark_mode_sets_code_theme" + "test_default_env_file_sets_automatic_variable" + ]; + + preCheck = '' + export HOME=$(mktemp -d) + export AIDER_CHECK_UPDATE=false + ''; + + meta = { + description = "AI pair programming in your terminal"; + homepage = "https://github.com/paul-gauthier/aider"; + changelog = "https://github.com/paul-gauthier/aider/blob/v${version}/HISTORY.md"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ taha-yassine ]; + mainProgram = "aider"; + }; +}