1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 boto3,
6 requests,
7 setuptools,
8 python,
9}:
10
11buildPythonPackage rec {
12 pname = "metaflow";
13 version = "2.18.9";
14 pyproject = true;
15
16 src = fetchFromGitHub {
17 owner = "Netflix";
18 repo = "metaflow";
19 tag = version;
20 hash = "sha256-TqS+bF4lyLin16YEH/CnmXLVYzdtv/8jjAsuuT1pYKo=";
21 };
22
23 build-system = [
24 setuptools
25 ];
26
27 dependencies = [
28 boto3
29 requests
30 ];
31
32 checkPhase = ''
33 runHook preCheck
34
35 export HOME="$TMPDIR"
36 export USER="metaflow-test-user"
37
38 pushd test/core
39 ${python.interpreter} run_tests.py --num-parallel $NIX_BUILD_CORES \
40 --tests FlowOptionsTest,BasicLogTest
41 popd
42
43 runHook postCheck
44 '';
45
46 pythonImportsCheck = [ "metaflow" ];
47
48 meta = {
49 description = "Open Source AI/ML Platform";
50 homepage = "https://metaflow.org/";
51 changelog = "https://github.com/Netflix/metaflow/releases/tag/${src.tag}";
52 license = lib.licenses.asl20;
53 maintainers = with lib.maintainers; [ kr7x ];
54 };
55}