mirror of
https://github.com/apple/pkl.git
synced 2026-04-24 09:18:35 +02:00
Adds traceMode evaluator setting to support trace() pretty printing (#1100)
This commit is contained in:
@@ -20,6 +20,7 @@ import java.time.Duration
|
||||
import org.msgpack.core.MessagePacker
|
||||
import org.pkl.core.*
|
||||
import org.pkl.core.ast.member.ObjectMember
|
||||
import org.pkl.core.evaluatorSettings.TraceMode
|
||||
import org.pkl.core.http.HttpClient
|
||||
import org.pkl.core.module.ModuleKeyFactory
|
||||
import org.pkl.core.project.DeclaredDependencies
|
||||
@@ -39,6 +40,7 @@ internal class BinaryEvaluator(
|
||||
moduleCacheDir: Path?,
|
||||
declaredDependencies: DeclaredDependencies?,
|
||||
outputFormat: String?,
|
||||
traceMode: TraceMode?,
|
||||
) :
|
||||
EvaluatorImpl(
|
||||
transformer,
|
||||
@@ -54,6 +56,7 @@ internal class BinaryEvaluator(
|
||||
moduleCacheDir,
|
||||
declaredDependencies,
|
||||
outputFormat,
|
||||
traceMode,
|
||||
) {
|
||||
fun evaluate(moduleSource: ModuleSource, expression: String?): ByteArray {
|
||||
return doEvaluate(moduleSource) { module ->
|
||||
|
||||
@@ -227,6 +227,7 @@ class Server(private val transport: MessageTransport) : AutoCloseable {
|
||||
cacheDir,
|
||||
dependencies,
|
||||
message.outputFormat,
|
||||
message.traceMode,
|
||||
)
|
||||
} catch (e: IllegalArgumentException) {
|
||||
throw ProtocolException(e.message ?: "Failed to create an evalutor. $e", e)
|
||||
|
||||
@@ -22,6 +22,7 @@ import java.time.Duration
|
||||
import org.msgpack.core.MessagePack
|
||||
import org.msgpack.core.MessageUnpacker
|
||||
import org.msgpack.value.Value
|
||||
import org.pkl.core.evaluatorSettings.TraceMode
|
||||
import org.pkl.core.messaging.BaseMessagePackDecoder
|
||||
import org.pkl.core.messaging.Message
|
||||
import org.pkl.core.packages.Checksums
|
||||
@@ -50,6 +51,7 @@ class ServerMessagePackDecoder(unpacker: MessageUnpacker) : BaseMessagePackDecod
|
||||
map.unpackHttp(),
|
||||
unpackStringMapOrNull(map, "externalModuleReaders", ::unpackExternalReader),
|
||||
unpackStringMapOrNull(map, "externalResourceReaders", ::unpackExternalReader),
|
||||
unpackStringOrNull(map, "traceMode") { TraceMode.valueOf(it.uppercase()) },
|
||||
)
|
||||
Message.Type.CREATE_EVALUATOR_RESPONSE ->
|
||||
CreateEvaluatorResponse(
|
||||
|
||||
@@ -110,6 +110,7 @@ class ServerMessagePackEncoder(packer: MessagePacker) : BaseMessagePackEncoder(p
|
||||
msg.http,
|
||||
msg.externalModuleReaders,
|
||||
msg.externalResourceReaders,
|
||||
msg.traceMode,
|
||||
)
|
||||
packKeyValue("requestId", msg.requestId())
|
||||
packKeyValue("allowedModules", msg.allowedModules)
|
||||
@@ -159,6 +160,9 @@ class ServerMessagePackEncoder(packer: MessagePacker) : BaseMessagePackEncoder(p
|
||||
packExternalReader(spec)
|
||||
}
|
||||
}
|
||||
if (msg.traceMode != null) {
|
||||
packKeyValue("traceMode", msg.traceMode.toString())
|
||||
}
|
||||
return
|
||||
}
|
||||
Message.Type.CREATE_EVALUATOR_RESPONSE -> {
|
||||
|
||||
@@ -19,6 +19,7 @@ import java.net.URI
|
||||
import java.nio.file.Path
|
||||
import java.time.Duration
|
||||
import java.util.*
|
||||
import org.pkl.core.evaluatorSettings.TraceMode
|
||||
import org.pkl.core.messaging.Message
|
||||
import org.pkl.core.messaging.Messages
|
||||
import org.pkl.core.packages.Checksums
|
||||
@@ -40,6 +41,7 @@ data class CreateEvaluatorRequest(
|
||||
val http: Http?,
|
||||
val externalModuleReaders: Map<String, ExternalReader>?,
|
||||
val externalResourceReaders: Map<String, ExternalReader>?,
|
||||
val traceMode: TraceMode?,
|
||||
) : Message.Client.Request {
|
||||
|
||||
override fun type(): Message.Type = Message.Type.CREATE_EVALUATOR_REQUEST
|
||||
|
||||
@@ -78,6 +78,7 @@ abstract class AbstractServerTest {
|
||||
project = null,
|
||||
externalModuleReaders = null,
|
||||
externalResourceReaders = null,
|
||||
traceMode = null,
|
||||
)
|
||||
|
||||
@Test
|
||||
@@ -1025,6 +1026,7 @@ abstract class AbstractServerTest {
|
||||
http,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
)
|
||||
|
||||
send(message)
|
||||
|
||||
@@ -56,6 +56,7 @@ class BinaryEvaluatorSnippetTestEngine : InputOutputTestEngine() {
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
)
|
||||
|
||||
private fun String.stripFilePaths() =
|
||||
|
||||
@@ -45,6 +45,7 @@ class BinaryEvaluatorTest {
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
)
|
||||
|
||||
private fun evaluate(text: String, expression: String?) =
|
||||
|
||||
@@ -23,6 +23,7 @@ import java.time.Duration
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.msgpack.core.MessagePack
|
||||
import org.pkl.core.evaluatorSettings.TraceMode
|
||||
import org.pkl.core.messaging.Message
|
||||
import org.pkl.core.messaging.MessageDecoder
|
||||
import org.pkl.core.messaging.MessageEncoder
|
||||
@@ -100,6 +101,7 @@ class ServerMessagePackCodecTest {
|
||||
),
|
||||
externalModuleReaders = mapOf("external" to externalReader, "external2" to externalReader),
|
||||
externalResourceReaders = mapOf("external" to externalReader),
|
||||
traceMode = TraceMode.PRETTY,
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user