1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pythonOlder
5, python
6
7 # python dependencies
8, awacs
9, cfn-flip
10, typing-extensions
11}:
12
13buildPythonPackage rec {
14 pname = "troposphere";
15 version = "4.1.0";
16
17 disabled = pythonOlder "3.7";
18
19 src = fetchFromGitHub {
20 owner = "cloudtools";
21 repo = pname;
22 rev = version;
23 hash = "sha256-cAn4Hty5f/RsCnUA59CxtGrhRgzVyaHe5PuQOM6lwEQ=";
24 };
25
26 propagatedBuildInputs = [
27 cfn-flip
28 ] ++ lib.lists.optionals (pythonOlder "3.8") [
29 typing-extensions
30 ];
31
32 checkInputs = [
33 awacs
34 ];
35
36 passthru.optional-dependencies = {
37 policy = [ awacs ];
38 };
39
40 checkPhase = ''
41 ${python.interpreter} -m unittest discover
42 '';
43
44 pythonImportsCheck = [ "troposphere" ];
45
46 meta = with lib; {
47 description = "Library to create AWS CloudFormation descriptions";
48 maintainers = with maintainers; [ jlesquembre ];
49 license = licenses.bsd2;
50 homepage = "https://github.com/cloudtools/troposphere";
51 };
52}