All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlinx.jupyter.repl.ReplConfig.kt Maven / Gradle / Ivy

Go to download

Implementation of REPL compiler and preprocessor for Jupyter dialect of Kotlin (IDE-compatible)

There is a newer version: 0.12.0-333
Show newest version
package org.jetbrains.kotlinx.jupyter.repl

import org.jetbrains.kotlinx.jupyter.api.KernelLoggerFactory
import org.jetbrains.kotlinx.jupyter.api.KernelRunMode
import org.jetbrains.kotlinx.jupyter.api.StandaloneKernelRunMode
import org.jetbrains.kotlinx.jupyter.config.DefaultKernelLoggerFactory
import org.jetbrains.kotlinx.jupyter.config.defaultRepositoriesCoordinates
import org.jetbrains.kotlinx.jupyter.libraries.LibraryHttpUtil
import org.jetbrains.kotlinx.jupyter.libraries.LibraryResolver
import org.jetbrains.kotlinx.jupyter.libraries.ResolutionInfoProvider
import org.jetbrains.kotlinx.jupyter.libraries.createLibraryHttpUtil
import org.jetbrains.kotlinx.jupyter.libraries.getStandardResolver
import java.io.File

data class ReplConfig(
    val mavenRepositories: List = listOf(),
    val libraryResolver: LibraryResolver? = null,
    val httpUtil: LibraryHttpUtil,
    val resolutionInfoProvider: ResolutionInfoProvider,
    val kernelRunMode: KernelRunMode,
) {
    companion object {
        fun create(
            resolutionInfoProviderFactory: (LibraryHttpUtil, KernelLoggerFactory) -> ResolutionInfoProvider,
            loggerFactory: KernelLoggerFactory = DefaultKernelLoggerFactory,
            httpUtil: LibraryHttpUtil = createLibraryHttpUtil(loggerFactory),
            homeDir: File? = null,
            kernelRunMode: KernelRunMode = StandaloneKernelRunMode,
        ): ReplConfig {
            val resolutionInfoProvider = resolutionInfoProviderFactory(httpUtil, loggerFactory)

            return ReplConfig(
                mavenRepositories = defaultRepositoriesCoordinates,
                libraryResolver =
                    getStandardResolver(
                        loggerFactory,
                        homeDir?.toString(),
                        resolutionInfoProvider,
                        httpUtil.httpClient,
                        httpUtil.libraryDescriptorsManager,
                    ),
                httpUtil = httpUtil,
                resolutionInfoProvider = resolutionInfoProvider,
                kernelRunMode = kernelRunMode,
            )
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy