guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#42465] [PATCH 05/10] gnu: Add python-libcst.


From: Marius Bakke
Subject: [bug#42465] [PATCH 05/10] gnu: Add python-libcst.
Date: Sat, 25 Jul 2020 18:03:42 +0200

Tanguy Le Carrour <tanguy@bioneland.org> writes:

> * gnu/packages/python-xyz.scm (python-libcst): New variable.

[...]
  
> +(define-public python-libcst
> +  (package
> +    (name "python-libcst")
> +    (version "0.3.7")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (pypi-uri "libcst" version))
> +              (sha256
> +               (base32
> +                "1wfd5m9jhk5x2qpz29pjhm9ypp5h3nlbk6xv4vzn4f45xdf5bv9x"))))
> +    (build-system python-build-system)
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'remove-failing-tests
> +           (lambda _
> +             ;; Reported upstream: 
> <https://github.com/Instagram/LibCST/issues/346>.
> +             (delete-file "libcst/tests/test_fuzz.py")
> +             ;; Reported upstream: 
> <https://github.com/Instagram/LibCST/issues/347>.
> +             (delete-file "libcst/tests/test_pyre_integration.py")
> +             (delete-file "libcst/codemod/tests/test_codemod_cli.py")
> +             (delete-file "libcst/metadata/tests/test_full_repo_manager.py")
> +             (delete-file 
> "libcst/metadata/tests/test_type_inference_provider.py")
> +             #t))
> +         (replace 'check
> +           (lambda _
> +             (setenv "PYTHONPATH" (string-append (getcwd) ":" (getenv 
> "PYTHONPATH")))
> +             (invoke "python" "-m" "libcst.codegen.generate" "visitors")
> +             (invoke "python" "-m" "libcst.codegen.generate" "return_types")
> +             (invoke "python" "-m" "unittest")
> +             #t)))))

Nice.  :-)

> +    (native-inputs
> +     `(("python-black" ,python-black)
> +       ("python-hypothesis" ,python-hypothesis)
> +       ("python-isort" ,python-isort)))
> +    (propagated-inputs
> +     `(("python-typing-extensions" ,python-typing-extensions)
> +       ("python-typing-inspect" ,python-typing-inspect)
> +       ("python-pyyaml" ,python-pyyaml)))
> +    (home-page "https://github.com/Instagram/LibCST";)
> +    (synopsis "A Concrete Syntax Tree (CST) parser and serializer library 
> for Python")

No article in the start of synopsis (guix lint will warn about this).
So this becomes: "Concrete Syntax Tree (CST) parser and serializer
library for Python".

> +    (description
> +     "LibCST parses Python 3.0, 3.1, 3.3, 3.5, 3.6, 3.7 or 3.8 source code 
> as a CST tree
> +that keeps all formatting details (comments, whitespaces, parentheses, etc). 
>  It's useful
> +for building automated refactoring (codemod) applications and linters.  
> LibCST creates
> +a compromise between an Abstract Syntax Tree (AST) and a traditional 
> Concrete Syntax
> +Tree (CST).  By carefully reorganizing and naming node types and fields, 
> we've created
> +a lossless CST that looks and feels like an AST.")

Maybe the versions can be omitted so we don't have to update the
description for every update.  Also, the "we've created" sentence feels
weird, maybe s/we've created/LibCST creates/ ?

> +    (license (list license:expat
> +                   ;; Some files unde libcst/_parser/ are under Python 
> Software
> +                   ;; Foundation license (see LICENSE file for details)
> +                   license:psfl
> +                   ;; libcst/_add_slots.py
> +                   license:asl2.0))))

Great!  :-)

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]