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/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c334f9ab1a3b..2bf7edcb31f8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3309,6 +3309,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 {