From 105bae2869e1a6390d938fb13b7f497d149bc3e9 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Sun, 2 Mar 2025 09:47:32 -0800 Subject: [PATCH] llm-jq: init at 0.1.1 --- .../python-modules/llm-jq/default.nix | 43 +++++++++++++++++++ .../llm-jq/tests/llm-plugin.nix | 23 ++++++++++ pkgs/top-level/python-packages.nix | 2 + 3 files changed, 68 insertions(+) create mode 100644 pkgs/development/python-modules/llm-jq/default.nix create mode 100644 pkgs/development/python-modules/llm-jq/tests/llm-plugin.nix diff --git a/pkgs/development/python-modules/llm-jq/default.nix b/pkgs/development/python-modules/llm-jq/default.nix new file mode 100644 index 000000000000..14ab4046712e --- /dev/null +++ b/pkgs/development/python-modules/llm-jq/default.nix @@ -0,0 +1,43 @@ +{ + lib, + callPackage, + buildPythonPackage, + fetchFromGitHub, + setuptools, + llm, + nix-update-script, +}: +buildPythonPackage rec { + pname = "llm-jq"; + version = "0.1.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "simonw"; + repo = "llm-jq"; + tag = version; + hash = "sha256-Mf/tbB9+UdmSRpulqv5Wagr8wjDcRrNs2741DNQZhO4="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + llm + ]; + + pythonImportsCheck = [ "llm_jq" ]; + + passthru.tests = { + llm-plugin = callPackage ./tests/llm-plugin.nix { }; + }; + + meta = { + description = "Write and execute jq programs with the help of LLM"; + homepage = "https://github.com/simonw/llm-jq"; + changelog = "https://github.com/simonw/llm-jq/releases/tag/${version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ josh ]; + }; +} diff --git a/pkgs/development/python-modules/llm-jq/tests/llm-plugin.nix b/pkgs/development/python-modules/llm-jq/tests/llm-plugin.nix new file mode 100644 index 000000000000..d659a2d52198 --- /dev/null +++ b/pkgs/development/python-modules/llm-jq/tests/llm-plugin.nix @@ -0,0 +1,23 @@ +{ + runCommand, + python, + yq, +}: +let + venv = python.withPackages (ps: [ + ps.llm + ps.llm-jq + ]); +in +runCommand "llm-jq-test-llm-plugin" + { + nativeBuildInputs = [ + venv + yq + ]; + } + '' + llm plugins | yq --exit-status 'any(.name == "llm-jq")' + llm jq --help + touch "$out" + '' diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9867ff038b73..312300f32e0a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7741,6 +7741,8 @@ self: super: with self; { llm-gguf = callPackage ../development/python-modules/llm-gguf { }; + llm-jq = callPackage ../development/python-modules/llm-jq { }; + llm-ollama = callPackage ../development/python-modules/llm-ollama { }; llmx = callPackage ../development/python-modules/llmx { };