Something went wrong. Try again.
Nix Packages collection & NixOS github.com/NixOS/nixpkgs
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798{ lib, stdenv, buildPythonPackage,
# build-system pybind11, setuptools,
# dependencies ctranslate2-cpp, numpy, pyyaml,
# tests pytestCheckHook, torch, transformers, writableTmpDirAsHomeHook, wurlitzer,}:
buildPythonPackage (finalAttrs: { inherit (ctranslate2-cpp) pname version src; pyproject = true;
# https://github.com/OpenNMT/CTranslate2/tree/master/python sourceRoot = "${finalAttrs.src.name}/python";
postPatch = '' substituteInPlace pyproject.toml \ --replace-fail "pybind11==" "pybind11>=" '';
build-system = [ pybind11 setuptools ];
dependencies = [ numpy pyyaml ];
env.CTRANSLATE2_ROOT = ctranslate2-cpp.outPath;
cmakeFlags = [ (lib.cmakeFeature "CMAKE_POLICY_VERSION_MINIMUM" "3.5") ];
pythonImportsCheck = [ # https://opennmt.net/CTranslate2/python/overview.html "ctranslate2" "ctranslate2.converters" "ctranslate2.models" "ctranslate2.specs" ];
nativeCheckInputs = [ pytestCheckHook torch transformers writableTmpDirAsHomeHook wurlitzer ];
# run tests against build result, not sources preCheck = '' rm -rf ctranslate2 '';
disabledTests = lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [ # RuntimeError: Failed to initialize cpuinfo!" "test_torch_variables" "test_float32_float16_and_independent_chunks" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # Fatal Python error: Aborted "test_invalid_model_path" ];
disabledTestPaths = [ # TODO: ModuleNotFoundError: No module named 'opennmt' "tests/test_opennmt_tf.py" # OSError: We couldn't connect to 'https://huggingface.co' to load this file "tests/test_transformers.py" ];
meta = { description = "Fast inference engine for Transformer models"; homepage = "https://github.com/OpenNMT/CTranslate2"; changelog = "https://github.com/OpenNMT/CTranslate2/blob/${finalAttrs.src.rev}/CHANGELOG.md"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ hexa ]; };})