lib/torch-version-utils.nix (12 lines of code) (raw):
{ lib }:
{
# Expand { systems = [ a b ]; .. } to [ { system = a; ..} { system = b; .. } ]
flattenSystems = lib.foldl' (
acc: version:
acc
++ map (system: (builtins.removeAttrs version [ "systems" ]) // { inherit system; }) version.systems
) [ ];
isCuda = version: version ? cudaVersion;
isMetal = version: version.metal or false;
isRocm = version: version ? rocmVersion;
}