1{
2 lib,
3 buildPythonPackage,
4 pythonAtLeast,
5 fetchFromGitHub,
6
7 # build-system
8 setuptools,
9
10 # propagates
11 distutils,
12 pyyaml,
13
14 # optionals
15 boto3,
16 botocore,
17 google-cloud-dataproc,
18 google-cloud-logging,
19 google-cloud-storage,
20 python-rapidjson,
21 simplejson,
22 ujson,
23
24 # tests
25 pyspark,
26 unittestCheckHook,
27 warcio,
28}:
29
30buildPythonPackage rec {
31 pname = "mrjob";
32 version = "0.7.4";
33 pyproject = true;
34
35 src = fetchFromGitHub {
36 owner = "Yelp";
37 repo = "mrjob";
38 rev = "refs/tags/v${version}";
39 hash = "sha256-Yp4yUx6tkyGB622I9y+AWK2AkIDVGKQPMM+LtB/M3uo=";
40 };
41
42 build-system = [
43 setuptools
44 ];
45
46 dependencies = [
47 distutils
48 pyyaml
49 ];
50
51 optional-dependencies = {
52 aws = [
53 boto3
54 botocore
55 ];
56 google = [
57 google-cloud-dataproc
58 google-cloud-logging
59 google-cloud-storage
60 ];
61 rapidjson = [ python-rapidjson ];
62 simplejson = [ simplejson ];
63 ujson = [ ujson ];
64 };
65
66 doCheck = false; # failing tests
67
68 nativeCheckInputs = [
69 pyspark
70 unittestCheckHook
71 warcio
72 ] ++ lib.flatten (builtins.attrValues optional-dependencies);
73
74 unittestFlagsArray = [ "-v" ];
75
76 meta = with lib; {
77 changelog = "https://github.com/Yelp/mrjob/blob/v${version}/CHANGES.txt";
78 description = "Run MapReduce jobs on Hadoop or Amazon Web Services";
79 homepage = "https://github.com/Yelp/mrjob";
80 license = licenses.asl20;
81 maintainers = [ ];
82 };
83}