Commit c7eeda74 authored by Aldo Borrero's avatar Aldo Borrero Committed by Jörg Thalheim
Browse files

python311Packages.llm: init at version 0.12

parent 65481ecf
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
diff --git a/llm/cli.py b/llm/cli.py
index af37feb..18b078a 100644
--- a/llm/cli.py
+++ b/llm/cli.py
@@ -1014,18 +1014,7 @@ def templates_path():
 )
 def install(packages, upgrade, editable, force_reinstall, no_cache_dir):
     """Install packages from PyPI into the same environment as LLM"""
-    args = ["pip", "install"]
-    if upgrade:
-        args += ["--upgrade"]
-    if editable:
-        args += ["--editable", editable]
-    if force_reinstall:
-        args += ["--force-reinstall"]
-    if no_cache_dir:
-        args += ["--no-cache-dir"]
-    args += list(packages)
-    sys.argv = args
-    run_module("pip", run_name="__main__")
+    click.echo("Install command has been disabled for Nix. If you want to install extra llm plugins, use llm.withPlugins([]) expression.")
 
 
 @cli.command()
@@ -1033,8 +1022,7 @@ def install(packages, upgrade, editable, force_reinstall, no_cache_dir):
 @click.option("-y", "--yes", is_flag=True, help="Don't ask for confirmation")
 def uninstall(packages, yes):
     """Uninstall Python packages from the LLM environment"""
-    sys.argv = ["pip", "uninstall"] + list(packages) + (["-y"] if yes else [])
-    run_module("pip", run_name="__main__")
+    click.echo("Uninstall command has been disabled for Nix. If you want to uninstall extra llm plugins, just remove them from llm.withPlugins([]) list expression.")
 
 
 @cli.command()
+107 −0
Original line number Diff line number Diff line
{
  buildPythonApplication,
  buildPythonPackage,
  fetchFromGitHub,
  lib,
  makeWrapper,
  pytestCheckHook,
  python3,
  pythonOlder,
  ruff,
  setuptools,
}: let
  llm = buildPythonPackage rec {
    pname = "llm";
    version = "0.12";
    pyproject = true;

    disabled = pythonOlder "3.8";

    src = fetchFromGitHub {
      owner = "simonw";
      repo = pname;
      rev = "refs/tags/${version}";
      hash = "sha256-aCqdw2co/cXrBwVY/k/aSLl3C22nlH5LvU2yir1/NnQ=";
    };

    patches = [
      ./001-disable-install-uninstall-commands.patch
    ];

    nativeBuildInputs = [
      setuptools
    ];

    propagatedBuildInputs = with python3.pkgs; [
      click-default-group
      numpy
      openai
      pluggy
      pydantic
      python-ulid
      pyyaml
      setuptools # for pkg_resources
      sqlite-migrate
      sqlite-utils
    ];

    nativeCheckInputs = with python3.pkgs; [
      cogapp
      numpy
      pytestCheckHook
      requests-mock
    ];

    doCheck = true;

    pytestFlagsArray = [
      "-svv"
      "tests/"
    ];

    pythonImportsCheck = [
      "llm"
    ];

    passthru = {inherit withPlugins;};

    meta = with lib; {
      homepage = "https://github.com/simonw/llm";
      description = "Access large language models from the command-line";
      changelog = "https://github.com/simonw/llm/releases/tag/${version}";
      license = licenses.asl20;
      mainProgram = "llm";
      maintainers = with maintainers; [aldoborrero];
    };
  };

  withPlugins = plugins: buildPythonApplication {
    inherit (llm) pname version;
    format = "other";

    disabled = pythonOlder "3.8";

    dontUnpack = true;
    dontBuild = true;
    doCheck = false;

    nativeBuildInputs = [
      makeWrapper
    ];

    installPhase = ''
      makeWrapper ${llm}/bin/llm $out/bin/llm \
        --prefix PYTHONPATH : "${llm}/${python3.sitePackages}:$PYTHONPATH"
      ln -sfv ${llm}/lib $out/lib
    '';

    propagatedBuildInputs = llm.propagatedBuildInputs ++ plugins;

    passthru = llm.passthru // {
      withPlugins = morePlugins: withPlugins (morePlugins ++ plugins);
    };

    inherit (llm) meta;
  };
in
  llm
+2 −0
Original line number Diff line number Diff line
@@ -9990,6 +9990,8 @@ with pkgs;
  lldpd = callPackage ../tools/networking/lldpd { };
  llm = with python3Packages; toPythonApplication llm;
  lnav = callPackage ../tools/misc/lnav { };
  lnch = callPackage ../tools/misc/lnch { };
+2 −0
Original line number Diff line number Diff line
@@ -6390,6 +6390,8 @@ self: super: with self; {
    inherit (pkgs) fuse;
  };
  llm = callPackage ../development/python-modules/llm { };
  llvmlite = callPackage ../development/python-modules/llvmlite {
    # llvmlite always requires a specific version of llvm.
    llvm = pkgs.llvm_14;