| |
| { |
| python312, |
| lib, |
| callPackage, |
| uv2nix, |
| pyproject-nix, |
| pyproject-build-systems, |
| stdenv, |
| }: |
| let |
| workspace = uv2nix.lib.workspace.loadWorkspace { workspaceRoot = ./..; }; |
| hacks = callPackage pyproject-nix.build.hacks { }; |
|
|
| overlay = workspace.mkPyprojectOverlay { |
| sourcePreference = "wheel"; |
| }; |
|
|
| isAarch64Darwin = stdenv.hostPlatform.system == "aarch64-darwin"; |
|
|
| |
| |
| mkPrebuiltPassthru = dependencies: { |
| inherit dependencies; |
| optional-dependencies = { }; |
| dependency-groups = { }; |
| }; |
|
|
| mkPrebuiltOverride = final: from: dependencies: |
| hacks.nixpkgsPrebuilt { |
| inherit from; |
| prev = { |
| nativeBuildInputs = [ final.pyprojectHook ]; |
| passthru = mkPrebuiltPassthru dependencies; |
| }; |
| }; |
|
|
| |
| |
| buildSystemOverrides = final: prev: builtins.mapAttrs |
| (name: _: prev.${name}.overrideAttrs (old: { |
| nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ final.setuptools ]; |
| })) |
| (lib.genAttrs [ |
| "alibabacloud-credentials-api" |
| "alibabacloud-endpoint-util" |
| "alibabacloud-gateway-dingtalk" |
| "alibabacloud-gateway-spi" |
| "alibabacloud-tea" |
| ] (_: null)); |
|
|
| pythonPackageOverrides = final: _prev: |
| if isAarch64Darwin then { |
| numpy = mkPrebuiltOverride final python312.pkgs.numpy { }; |
|
|
| pyarrow = mkPrebuiltOverride final python312.pkgs.pyarrow { }; |
|
|
| av = mkPrebuiltOverride final python312.pkgs.av { }; |
|
|
| humanfriendly = mkPrebuiltOverride final python312.pkgs.humanfriendly { }; |
|
|
| coloredlogs = mkPrebuiltOverride final python312.pkgs.coloredlogs { |
| humanfriendly = [ ]; |
| }; |
|
|
| onnxruntime = mkPrebuiltOverride final python312.pkgs.onnxruntime { |
| coloredlogs = [ ]; |
| numpy = [ ]; |
| packaging = [ ]; |
| }; |
|
|
| ctranslate2 = mkPrebuiltOverride final python312.pkgs.ctranslate2 { |
| numpy = [ ]; |
| pyyaml = [ ]; |
| }; |
|
|
| faster-whisper = mkPrebuiltOverride final python312.pkgs.faster-whisper { |
| av = [ ]; |
| ctranslate2 = [ ]; |
| huggingface-hub = [ ]; |
| onnxruntime = [ ]; |
| tokenizers = [ ]; |
| tqdm = [ ]; |
| }; |
| } else {}; |
|
|
| pythonSet = |
| (callPackage pyproject-nix.build.packages { |
| python = python312; |
| }).overrideScope |
| (lib.composeManyExtensions [ |
| pyproject-build-systems.overlays.default |
| overlay |
| buildSystemOverrides |
| pythonPackageOverrides |
| ]); |
| in |
| pythonSet.mkVirtualEnv "hermes-agent-env" { |
| hermes-agent = [ "all" ]; |
| } |
|
|