Conversation
31a8c84 to
00ab3af
Compare
This was referenced Feb 22, 2025
Merged
ngoldbaum
pushed a commit
to ngoldbaum/LibCST
that referenced
this pull request
Apr 1, 2025
This PR: 1. marks the `libcst.native` module as free-threading-compatible 2. replaces the use of ProcessPoolExecutor with ThreadPoolExecutor if free-threaded CPython is detected at runtime This depends on Instagram#1294 and Instagram#1289.
ngoldbaum
pushed a commit
to ngoldbaum/LibCST
that referenced
this pull request
Apr 8, 2025
This PR: 1. marks the `libcst.native` module as free-threading-compatible 2. replaces the use of ProcessPoolExecutor with ThreadPoolExecutor if free-threaded CPython is detected at runtime This depends on Instagram#1294 and Instagram#1289.
ngoldbaum
pushed a commit
to ngoldbaum/LibCST
that referenced
this pull request
Apr 10, 2025
This PR: 1. marks the `libcst.native` module as free-threading-compatible 2. replaces the use of ProcessPoolExecutor with ThreadPoolExecutor if free-threaded CPython is detected at runtime This depends on Instagram#1294 and Instagram#1289.
Instead of relying on `multiprocessing.Pool`, this PR replaces the implementation of `parallel_exec_transform_with_prettyprint` with `concurrent.futures.ProcessPoolExecutor`
amyreese
approved these changes
May 21, 2025
Contributor
amyreese
left a comment
There was a problem hiding this comment.
Seems reasonable.
Do you think it would be worth dumping the custom "walk paths" and "run things on a executor" bits in favor of using trailrunner. This is what we use for usort/ufmt/fixit/etc, and it ensures consistent behavior across OS (ie, spawn-only, no fork on Linux), obeys gitignore, etc. The "dummy pool" stuff could just be a matter of passing ThreadPoolExecutor as the default executor if needed, but we could also add an optimization in trailrunner instead.
Contributor
Author
|
I don't know if it's worth the effort - I found it's really nice not to have any dependencies. On the other hand, this frontend piece could use a lot of rework to make it easier to bootstrap your own single purpose codemod tool |
5 tasks
jorenham
pushed a commit
to jorenham/LibCST
that referenced
this pull request
Feb 3, 2026
Instead of relying on `multiprocessing.Pool`, this PR replaces the implementation of `parallel_exec_transform_with_prettyprint` with `concurrent.futures.ProcessPoolExecutor`
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace multiprocessing with ProcessPoolExecutor
Instead of relying on
multiprocessing.Pool, this PR replaces the implementation ofparallel_exec_transform_with_prettyprintwithconcurrent.futures.ProcessPoolExecutor