Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
7.8 kB · 399 lines
Nix
at flake-libs
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400{ lib, stdenv, buildPythonPackage, fetchFromGitHub, replaceVars, gitMinimal, portaudio, playwright-driver, pythonOlder, pythonAtLeast, setuptools-scm, aiohappyeyeballs, aiohttp, aiosignal, annotated-types, anyio, attrs, backoff, beautifulsoup4, cachetools, certifi, cffi, charset-normalizer, click, configargparse, diff-match-patch, diskcache, distro, filelock, flake8, frozenlist, fsspec, gitdb, gitpython, google-ai-generativelanguage, google-generativeai, grep-ast, h11, hf-xet, httpcore, httpx, huggingface-hub, idna, importlib-resources, jinja2, jiter, json5, jsonschema, jsonschema-specifications, litellm, markdown-it-py, markupsafe, mccabe, mdurl, multidict, networkx, numpy, openai, oslex, packaging, pathspec, pexpect, pillow, prompt-toolkit, psutil, ptyprocess, pycodestyle, pycparser, pydantic, pydantic-core, pydub, pyflakes, pygments, pypandoc, pyperclip, python-dotenv, pyyaml, referencing, regex, requests, rich, rpds-py, scipy, shtab, smmap, sniffio, sounddevice, socksio, soundfile, soupsieve, tiktoken, tokenizers, tqdm, tree-sitter, tree-sitter-language-pack, typing-extensions, typing-inspection, urllib3, watchfiles, wcwidth, yarl, zipp, pip, mixpanel, monotonic, posthog, propcache, python-dateutil, pytestCheckHook, greenlet, playwright, pyee, streamlit, llama-index-core, llama-index-embeddings-huggingface, torch, nltk, boto3, nix-update-script,}:
let aider-nltk-data = nltk.dataDir (d: [ d.punkt-tab d.stopwords ]);
version = "0.84.0"; aider-chat = buildPythonPackage { pname = "aider-chat"; inherit version; pyproject = true;
# dont support python 3.13 (Aider-AI/aider#3037) disabled = pythonOlder "3.10" || pythonAtLeast "3.13";
src = fetchFromGitHub { owner = "Aider-AI"; repo = "aider"; tag = "v${version}"; hash = "sha256-TOlqwJM9wIAURSimuh9mysYDwgH9AfFev8jY9elLNk8="; };
pythonRelaxDeps = true;
build-system = [ setuptools-scm ];
dependencies = [ aiohappyeyeballs aiohttp aiosignal annotated-types anyio attrs backoff beautifulsoup4 cachetools certifi cffi charset-normalizer click configargparse diff-match-patch diskcache distro filelock flake8 frozenlist fsspec gitdb gitpython google-ai-generativelanguage google-generativeai grep-ast h11 hf-xet httpcore httpx huggingface-hub idna importlib-resources jinja2 jiter json5 jsonschema jsonschema-specifications litellm markdown-it-py markupsafe mccabe mdurl multidict networkx numpy openai oslex packaging pathspec pexpect pillow prompt-toolkit psutil ptyprocess pycodestyle pycparser pydantic pydantic-core pydub pyflakes pygments pypandoc pyperclip python-dotenv pyyaml referencing regex requests rich rpds-py scipy shtab smmap sniffio sounddevice socksio soundfile soupsieve tiktoken tokenizers tqdm tree-sitter tree-sitter-language-pack typing-extensions typing-inspection urllib3 watchfiles wcwidth yarl zipp pip
# Not listed in requirements mixpanel monotonic posthog propcache python-dateutil ];
buildInputs = [ portaudio ];
nativeCheckInputs = [ pytestCheckHook gitMinimal ];
patches = [ (replaceVars ./fix-flake8-invoke.patch { flake8 = lib.getExe flake8; }) ];
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" # AssertionError: assert 2 == 1 "test_simple_send_non_retryable_error" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # Tests fails on darwin "test_dark_mode_sets_code_theme" "test_default_env_file_sets_automatic_variable" # FileNotFoundError: [Errno 2] No such file or directory: 'vim' "test_pipe_editor" ];
makeWrapperArgs = [ "--set" "AIDER_CHECK_UPDATE" "false" "--set" "AIDER_ANALYTICS" "false" ];
preCheck = '' export HOME=$(mktemp -d) export AIDER_ANALYTICS="false" '';
optional-dependencies = { playwright = [ greenlet playwright pyee typing-extensions ]; browser = [ streamlit ]; help = [ llama-index-core llama-index-embeddings-huggingface torch nltk ]; bedrock = [ boto3 ]; };
passthru = { withOptional = { withPlaywright ? false, withBrowser ? false, withHelp ? false, withBedrock ? false, withAll ? false, ... }: aider-chat.overridePythonAttrs ( { dependencies, makeWrapperArgs, propagatedBuildInputs ? [ ], ... }:
{ dependencies = dependencies ++ lib.optionals (withAll || withPlaywright) aider-chat.optional-dependencies.playwright ++ lib.optionals (withAll || withBrowser) aider-chat.optional-dependencies.browser ++ lib.optionals (withAll || withHelp) aider-chat.optional-dependencies.help ++ lib.optionals (withAll || withBedrock) aider-chat.optional-dependencies.bedrock;
propagatedBuildInputs = propagatedBuildInputs ++ lib.optionals (withAll || withPlaywright) [ playwright-driver.browsers ];
makeWrapperArgs = makeWrapperArgs ++ lib.optionals (withAll || withPlaywright) [ "--set" "PLAYWRIGHT_BROWSERS_PATH" "${playwright-driver.browsers}" "--set" "PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS" "true" ] ++ lib.optionals (withAll || withHelp) [ "--set" "NLTK_DATA" "${aider-nltk-data}" ]; } );
updateScript = nix-update-script { extraArgs = [ "--version-regex" "^v([0-9.]+)$" ]; }; };
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; [ happysalada yzx9 ]; mainProgram = "aider"; }; };inaider-chat