On Thursday, December 16, 2021 at 5:56:51 AM UTC-5, lucas wrote:
> Hi !
>
> Maybe RedBaron may help you ?
>
> https://github.com/PyCQA/redbaron
>
> IIRC, it aims to conserve the exact same representation of the source
> code, including comments and empty lines.
>
> --lucas
> On 16/12/2021 04:37, samue...@gmail.com wrote:
> > I wrote a little open-source tool to expose internal constructs in OpenAPI.
> > Along the way, I added related functionality to:
> > - Generate/update a function prototype to/from a class
> > - JSON schema
> > - Automatically add type annotations to all function arguments, class
> > attributes, declarations, and assignments
> >
> > alongside a bunch of other features. All implemented using just the builtin
> > modules (plus astor on Python < 3.9; and optionally black).
> >
> > Now I'm almost at the point where I can run it—without issue—against, e.g.,
> > the entire TensorFlow codebase. Unfortunately this is causing huge `diff`s
> > because the comments aren't preserved (and there are some whitespace
> > issues… but I should be able to resolve the latter).
> >
> > Is the only viable solution available to rewrite around redbaron | libcst?
> > - I don't need to parse the comments just dump them out unedited whence
> > they're found…
> >
> > Thanks for any suggestions
> >
> > PS: Library is https://github.com/SamuelMarks/cdd-python (might relicense
> > with CC0… anyway too early for others to use; wait for the 0.1.0 release ;])
Ended up writing my own CST and added it to that library of mine (link above).
My target is adding/removing/changing of: docstrings, function return types,
function arguments, and Assign/AnnAssign. All but the last are now implemented.
I was careful not to replace code elsewhere in my codebase, so everything
except my new CST code (in its own files) stays, and everything else works
exclusively with the builtin `ast` module as before.
--
https://mail.python.org/mailman/listinfo/python-list