Handling library modifications before the IDE is loaded

Hello,

I’m working on a plugin for Jetbrains IDEs that adds support for working with MicroPython. One of the plugin’s features is a built-in stub package manager that let’s the users select and activate board and version specific stub packages for better code analysis.

In order to achieve this I have to work with the library table. However, I’ve ran into a problem. If the library is modified too early, before the IDE is fully loaded/indexed the library change might have no effect and instead an different package that was attached previously will get applied.

In order to prevent this I tried to use DumbService.getInstance(project).smartInvokeLater but this seems to have changed nothing.

I’m considering creating a start-up activity and having it repeatedly check the library every 5-10 seconds and then calling the updateLibrary() method whenever there is a mismatch between the library selected by the user and between the library that is actually loaded. But I want to ask, is there a better way to work with the libraries in order to solve this problem?

Here is the the function I have currently:

fun updateLibrary() {
    val settings = project.service<MpySettingsService>()
    val activeStubPackage = settings.state.activeStubsPackage
    val availableStubs = getAvailableStubs()

    DumbService.getInstance(project).smartInvokeLater {
        ApplicationManager.getApplication().runWriteAction {
            val projectLibraryTable = LibraryTablesRegistrar.getInstance().getLibraryTable(project)
            val projectLibraryModel = projectLibraryTable.modifiableModel

            for (library in projectLibraryModel.libraries) {
                if (library.name == LIBRARY_NAME) {
                    projectLibraryTable.removeLibrary(library)
                    projectLibraryModel.removeLibrary(library)
                }
            }

            if (settings.state.areStubsEnabled &&
                !activeStubPackage.isNullOrBlank() &&
                availableStubs.contains(activeStubPackage)
            ) {
                val newLibrary = projectLibraryModel.createLibrary(LIBRARY_NAME, PythonLibraryType.getInstance().kind)
                val newModel = newLibrary.modifiableModel

                val rootUrl = "$stubsPath/$activeStubPackage"
                val virtualFile = LocalFileSystem.getInstance().findFileByPath(rootUrl)

                newModel.addRoot(virtualFile!!, OrderRootType.CLASSES)

                val module = ModuleManager.getInstance(project).modules.first()
                val moduleModel = ModifiableModelsProvider.getInstance().getModuleModifiableModel(module)
                moduleModel.addLibraryEntry(newLibrary)

                newModel.commit()
                projectLibraryModel.commit()
                ModifiableModelsProvider.getInstance().commitModuleModifiableModel(moduleModel)
            } else {
                projectLibraryModel.commit()
            }
        }
    }
}

This is an incorrect approach, in cases when library depends on settings you should contribute to workspace model instead via pull semantics, not push.

There are 2 approaches:

Thank you for the response! AdditionalLibraryRootsProvider seems exactly like what I was looking for. However, I’m running into some issues implementing it.

class MpyAdditionalLibraryRootsProvider : AdditionalLibraryRootsProvider() {
    override fun getAdditionalProjectLibraries(project: Project): Collection<SyntheticLibrary> {
        val settings = project.service<MpySettingsService>()
        val pythonService = project.service<MpyPythonService>()

        if (!settings.state.areStubsEnabled || settings.state.activeStubsPackage.isNullOrBlank()) {
            println("return 1")
            return emptyList()
        }

        val availableStubs = pythonService.getAvailableStubs()
        val activeStubPackage = settings.state.activeStubsPackage

        if (!availableStubs.contains(activeStubPackage) || activeStubPackage == null) {
            println("return 2")
            return emptyList()
        }

        val rootPath = "${MpyPythonService.stubsPath}/$activeStubPackage"
        val virtualFile = LocalFileSystem.getInstance().findFileByPath(rootPath)

        if (virtualFile == null) {
            println("return 3")
            return emptyList()
        }

        println("Attaching stub package: $virtualFile")

        return listOf(
            SyntheticLibrary.newImmutableLibrary(
                listOf(virtualFile),
                emptyList(),
                emptySet(),
                null
            )
        )
    }
}
fun notifyStubsChanged(project: Project, oldStubPackage: String, newStubPackage: String) {
    val settings = project.service<MpySettingsService>()
    val pythonService = project.service<MpyPythonService>()

    val oldRoots = if (pythonService.getAvailableStubs().contains(oldStubPackage)) {
        println("got into old condition")
        val oldVirtualFile = LocalFileSystem.getInstance().findFileByPath("${MpyPythonService.stubsPath}/$oldStubPackage")
        println(oldVirtualFile)
        if (oldVirtualFile != null) listOf(oldVirtualFile) else emptyList()
    } else emptyList()

    val stubsEnabled = settings.state.areStubsEnabled

    val newRoots = if (stubsEnabled && pythonService.getAvailableStubs().contains(newStubPackage)) {
        println("got into new condition")
        val newVirtualFile = LocalFileSystem.getInstance().findFileByPath("${MpyPythonService.stubsPath}/$newStubPackage")
        println(newVirtualFile)
        if (newVirtualFile != null) listOf(newVirtualFile) else emptyList()
    } else emptyList()

    println("Removing old roots: $oldRoots")
    println("Adding new roots: $newRoots")

    ApplicationManager.getApplication().runWriteAction {
        AdditionalLibraryRootsListener.fireAdditionalLibraryChanged(
            project,
            "MicroPython Stubs",
            oldRoots,
            newRoots,
            "MicroPythonLibraryProvider"
        )
    }
}

I have implemented the AdditionalLibraryRootsProvider like this and then I have added the notifyStubsChanged method. The notify method is called from my BoundSearchableConfigurable implementation each time the settings are applied.

Judging from what the debug prints show the VirtualFiles are being located correctly and the AdditionalLibraryRootsProvider seems to be firing as well, however, the IDE doesn’t recognize the attached libraries as MicroPython stubs like it did with my original method.

Have I made a mistake in my implementation or am I missing some important detail that’s preventing the IDE from recognizing the stubs?

The virtual files I retrieve as stub packages are directories which contain .pyi files with type hints for the MicroPython specific libraries. And here are the debug prints, hopefully the formatting won’t be too bad:

Debug Prints

15:25:23: Executing ‘runPyCharmProfessional’…

Task :initializeIntellijPlatformPlugin
Task :patchPluginXml UP-TO-DATE
Task :generateManifest UP-TO-DATE
Task :checkKotlinGradlePluginConfigurationErrors SKIPPED
Task :verifyPluginProjectConfiguration UP-TO-DATE
Task :processResources UP-TO-DATE
Task :compileKotlin
Task :compileJava NO-SOURCE
Task :classes UP-TO-DATE
Task :instrumentCode SKIPPED
Task :jar
Task :composedJar
Task :prepareSandbox_runPyCharmProfessional

Task :runPyCharmProfessional
[0.004s][warning][cds] Archived non-system classes are disabled because the java.system.class.loader property is specified (value = “com.intellij.util.lang.PathClassLoader”). To use archived non-system classes, this property must not be set
2025-03-16 15:25:31,231 [ 614] WARN - #c.i.o.a.Application - No URL bundle (CFBundleURLTypes) is defined in the main bundle.
To be able to open external links, specify protocols in the app layout section of the build file.
Example: args.urlSchemes = [“your-protocol”] will handle following links: your-protocol://open?file=file&line=line
2025-03-16 15:25:31.232 java[41757:20820210] +[IMKClient subclass]: chose IMKClient_Modern
2025-03-16 15:25:31.232 java[41757:20820210] +[IMKInputSession subclass]: chose IMKInputSession_Modern
2025-03-16 15:25:31,317 [ 700] WARN - #c.i.o.e.i.FontFamilyServiceImpl - Couldn’t access required runtime API, will fall back to basic logic of font selection
2025-03-16 15:25:31,405 [ 788] WARN - #c.i.u.n.s.ConfirmingTrustManager - Received an empty list of custom trusted root certificates from the system. Check log above for possible errors, enable debug logging in category ‘org.jetbrains.nativecerts’ for more information
2025-03-16 15:25:32,368 [ 1751] WARN - #c.i.s.ComponentManagerImpl - preload=NOT_HEADLESS must be used only for core services (service=com.jetbrains.rdserver.toolWindow.BackendServerToolWindowManager, plugin=com.jetbrains.codeWithMe)
2025-03-16 15:25:32,368 [ 1751] WARN - #c.i.s.ComponentManagerImpl - preload=TRUE must be used only for core services (service=com.intellij.cwm.plugin.users.BackendUserManager, plugin=com.jetbrains.codeWithMe)
2025-03-16 15:25:32,368 [ 1751] WARN - #c.i.s.ComponentManagerImpl - preload=TRUE must be used only for core services (service=com.intellij.cwm.plugin.ports.CwmPortForwardingToolWindowManager, plugin=com.jetbrains.codeWithMe)
2025-03-16 15:25:32,368 [ 1751] WARN - #c.i.s.ComponentManagerImpl - preload=TRUE must be used only for core services (service=com.intellij.cwm.plugin.following.FollowMeManagerService, plugin=com.jetbrains.codeWithMe)
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
2025-03-16 15:25:33,024 [ 2407] WARN - #c.i.u.j.JBCefApp - JCefAppConfig.class is not from a JBR module, url: jar:file:/Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/lib/lib-client.jar!/com/jetbrains/cef/JCefAppConfig.class (Use JBR bundled with the IDE)
2025-03-16 15:25:33,819 [ 3202] WARN - com.jediterm.terminal.TerminalMode - Mode ANSI is not implemented, setting to true
2025-03-16 15:25:34,274 [ 3657] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
2025-03-16 15:25:35,204 [ 4587] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:35,206 [ 4589] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:35,793 [ 5176] WARN - #c.i.i.a.WhatsNewAction - EapWhatsNew: can’t be shown. JBCefApp isn’t supported
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
2025-03-16 15:25:36,789 [ 6172] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,100 [ 6483] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,100 [ 6483] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,100 [ 6483] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,101 [ 6484] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,101 [ 6484] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,101 [ 6484] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,101 [ 6484] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,101 [ 6484] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,102 [ 6485] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,102 [ 6485] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,102 [ 6485] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,102 [ 6485] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,102 [ 6485] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,102 [ 6485] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,103 [ 6486] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,103 [ 6486] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,103 [ 6486] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,103 [ 6486] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,103 [ 6486] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,103 [ 6486] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,104 [ 6487] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,104 [ 6487] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,104 [ 6487] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,104 [ 6487] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,104 [ 6487] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,104 [ 6487] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,105 [ 6488] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,105 [ 6488] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,105 [ 6488] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,105 [ 6488] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,105 [ 6488] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,105 [ 6488] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,106 [ 6489] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,106 [ 6489] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,106 [ 6489] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,106 [ 6489] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,106 [ 6489] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,107 [ 6490] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,107 [ 6490] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,107 [ 6490] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,107 [ 6490] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,107 [ 6490] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,108 [ 6491] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,108 [ 6491] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,108 [ 6491] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,108 [ 6491] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,108 [ 6491] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,108 [ 6491] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,108 [ 6491] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,109 [ 6492] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,109 [ 6492] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,109 [ 6492] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,109 [ 6492] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,109 [ 6492] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,109 [ 6492] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,109 [ 6492] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,109 [ 6492] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,110 [ 6493] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,110 [ 6493] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:37,110 [ 6493] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:40,431 [ 9814] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:40,469 [ 9852] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:40,478 [ 9861] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:42,391 [ 11774] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:42,464 [ 11847] WARN - #c.j.p.PythonHelpersLocator - Helpers pro root does not exist /Users/admin/.gradle/caches/8.10/transforms/4efd32bf32a8f154e2ca02031c7c11f6/transformed/pycharmPY-2024.3/plugins/python-ce/helpers-pro
2025-03-16 15:25:50,974 [ 20357] WARN - #c.i.u.Alarm - Do not create alarm without coroutineScope: com.intellij.codeInsight.template.postfix.settings.PostfixTemplatesConfigurable.(PostfixTemplatesConfigurable.java:54)
got into old condition
file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1
got into new condition
file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-pybv11-stubs_1.24.1
Removing old roots: [file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-stubs_1.24.1]
Adding new roots: [file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-pybv11-stubs_1.24.1]
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-pybv11-stubs_1.24.1
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-pybv11-stubs_1.24.1
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-pybv11-stubs_1.24.1
Attaching stub package: file:///Users/admin/SoftwareDevelopment/Java/micropython-tools-jetbrains/build/idea-sandbox/PC-2024.3/plugins_runPyCharmProfessional/micropython-tools-jetbrains/stubs/micropython-stm32-pybv11-stubs_1.24.1
2025-03-16 15:26:02,092 [ 31475] WARN - #c.i.i.f.i.FTManager - Duplicate bundled template HTML File.html