diff --git a/pkgs/development/python-modules/google_cloud_dataproc/default.nix b/pkgs/development/python-modules/google_cloud_dataproc/default.nix index 3db04fb7d4ba..c7d0bf1b730b 100644 --- a/pkgs/development/python-modules/google_cloud_dataproc/default.nix +++ b/pkgs/development/python-modules/google_cloud_dataproc/default.nix @@ -4,6 +4,8 @@ , google_api_core , pytest , mock +, libcst +, proto-plus }: buildPythonPackage rec { @@ -16,7 +18,7 @@ buildPythonPackage rec { }; checkInputs = [ pytest mock ]; - propagatedBuildInputs = [ google_api_core ]; + propagatedBuildInputs = [ google_api_core libcst proto-plus ]; checkPhase = '' pytest tests/unit diff --git a/pkgs/development/python-modules/libcst/default.nix b/pkgs/development/python-modules/libcst/default.nix new file mode 100644 index 000000000000..5f4fec2612a0 --- /dev/null +++ b/pkgs/development/python-modules/libcst/default.nix @@ -0,0 +1,36 @@ +{ stdenv +, buildPythonPackage +, fetchPypi +, typing-inspect +, pyyaml +, isPy3k +}: + +buildPythonPackage rec { + pname = "libcst"; + version = "0.3.12"; + + src = fetchPypi { + inherit pname version; + sha256 = "1zgwxdbhz2ljl0yzbrn1f4f464rjphx0j6r4qq0csax3m4wp50x1"; + }; + + # The library uses type annotation syntax. + disabled = !isPy3k; + + propagatedBuildInputs = [ typing-inspect pyyaml ]; + + # Test fails with ValueError: No data_provider tests were created for + # test_type_availability! Please double check your data. + # The tests appear to be doing some dynamic introspection, not sure what is + # going on there. + doCheck = false; + pythonImportsCheck = [ "libcst" ]; + + meta = with stdenv.lib; { + description = "A concrete syntax tree parser and serializer library for Python that preserves many aspects of Python's abstract syntax tree"; + homepage = "https://libcst.readthedocs.io/en/latest/"; + license = with licenses; [mit asl20 psfl]; + maintainers = [ maintainers.ruuda ]; + }; +} diff --git a/pkgs/development/python-modules/proto-plus/default.nix b/pkgs/development/python-modules/proto-plus/default.nix new file mode 100644 index 000000000000..6048f393d87e --- /dev/null +++ b/pkgs/development/python-modules/proto-plus/default.nix @@ -0,0 +1,24 @@ +{ stdenv +, buildPythonPackage +, fetchPypi +, protobuf +}: + +buildPythonPackage rec { + pname = "proto-plus"; + version = "1.10.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "0n8ia51jg2dkab2sf0qnh39bssqhz65ybcqr78f3zzf7ja923lkr"; + }; + + propagatedBuildInputs = [ protobuf ]; + + meta = with stdenv.lib; { + description = "Beautiful, idiomatic protocol buffers in Python"; + homepage = "https://github.com/googleapis/proto-plus-python"; + license = licenses.asl20; + maintainers = [ maintainers.ruuda ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 4d441a59f62e..515ce7931b54 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3275,6 +3275,8 @@ in { else callPackage ../development/python-modules/libcloud { }; + libcst = callPackage ../development/python-modules/libcst { }; + libevdev = callPackage ../development/python-modules/libevdev { }; libfdt = toPythonModule (pkgs.dtc.override { @@ -4616,6 +4618,8 @@ in { protego = callPackage ../development/python-modules/protego { }; + proto-plus = callPackage ../development/python-modules/proto-plus { }; + protobuf = callPackage ../development/python-modules/protobuf { disabled = isPyPy; doCheck =