PY-91306: Clean .pyc files with CleanPycAction, add test.

This action was broken after `4a9367ab4520d3daecd72bf4c53094f8768faa85`, see:

https://youtrack.jetbrains.com/issue/PY-91306/Function-Clean-Python-Compiled-Files-does-not-work-in-2026.2#focus=Comments-27-14150113.0-0

We restored it and added a test.

GitOrigin-RevId: 21f11e22bffe890e42420c5b0897f96a80b06bd2
This commit is contained in:
Ilya.Kazakevich
2026-08-28 00:09:52 +00:00
committed by intellij-monorepo-bot
parent 4ef95291ca
commit fd8f1c606f
@@ -36,9 +36,10 @@ final class CleanPycAction extends AnAction {
ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> {
try {
for (PsiElement element : elements) {
var dir = Path.of(((PsiDirectory)element).getVirtualFile().getName());
if (!Files.isDirectory(dir)) continue;
Files.walkFileTree(dir, new SimpleFileVisitor<>() {
var vfsDir = ((PsiDirectory)element).getVirtualFile();
var nioDir = vfsDir.getFileSystem().getNioPath(vfsDir);
if (nioDir == null || !Files.isDirectory(nioDir)) continue;
Files.walkFileTree(nioDir, new SimpleFileVisitor<>() {
@Override
public @NotNull FileVisitResult preVisitDirectory(@NotNull Path dir, @NotNull BasicFileAttributes attrs) throws IOException {
if (PyNames.PYCACHE.equals(NioFiles.getFileName(dir))) {