Adds traceMode evaluator setting to support trace() pretty printing (#1100)

This commit is contained in:
Steve Salevan
2025-10-07 15:31:16 -04:00
committed by GitHub
parent d03a074f63
commit cecaf39aff
43 changed files with 383 additions and 27 deletions
@@ -0,0 +1,5 @@
amends "pkl:Project"
evaluatorSettings {
traceMode = "default"
}
@@ -0,0 +1,18 @@
amends ".../snippetTest.pkl"
examples {
["traceMode = 'default' results in single-line trace() values"] {
trace(new {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings = new {
kicked = true
["fjordConfig"] = new {
isPining = true
}
}
}
})
}
}
@@ -0,0 +1,18 @@
amends ".../snippetTest.pkl"
examples {
["traceMode = null results in single-line trace() values"] {
trace(new {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings = new {
kicked = true
["fjordConfig"] = new {
isPining = true
}
}
}
})
}
}
@@ -0,0 +1,5 @@
amends "pkl:Project"
evaluatorSettings {
traceMode = "hidden"
}
@@ -0,0 +1,18 @@
amends ".../snippetTest.pkl"
examples {
["traceMode = 'hidden' results in no trace output"] {
trace(new {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings = new {
kicked = true
["fjordConfig"] = new {
isPining = true
}
}
}
})
}
}
@@ -0,0 +1,5 @@
amends "pkl:Project"
evaluatorSettings {
traceMode = "pretty"
}
@@ -0,0 +1,18 @@
amends ".../snippetTest.pkl"
examples {
["traceMode = 'pretty' results in indented, multi-line output"] {
trace(new {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings = new {
kicked = true
["fjordConfig"] = new {
isPining = true
}
}
}
})
}
}
@@ -0,0 +1,28 @@
examples {
["traceMode = 'default' results in single-line trace() values"] {
new {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings {
kicked = true
["fjordConfig"] {
isPining = true
}
}
}
}
}
}
pkl: TRACE: new {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings = new {
kicked = true
["fjordConfig"] = new {
isPining = true
}
}
}
} = new Dynamic { ["Parrot"] { name = "Parrot"; age = 1234; bucketSettings { kicked = true; ["fjordConfig"] { isPining = true } } } } (file:///$snippetsDir/input/projects/defaultTraceMode/defaultTraceMode.pkl)
@@ -0,0 +1,28 @@
examples {
["traceMode = null results in single-line trace() values"] {
new {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings {
kicked = true
["fjordConfig"] {
isPining = true
}
}
}
}
}
}
pkl: TRACE: new {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings = new {
kicked = true
["fjordConfig"] = new {
isPining = true
}
}
}
} = new Dynamic { ["Parrot"] { name = "Parrot"; age = 1234; bucketSettings { kicked = true; ["fjordConfig"] { isPining = true } } } } (file:///$snippetsDir/input/projects/evaluatorSettings/nullTraceMode.pkl)
@@ -0,0 +1,16 @@
examples {
["traceMode = 'hidden' results in no trace output"] {
new {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings {
kicked = true
["fjordConfig"] {
isPining = true
}
}
}
}
}
}
@@ -0,0 +1,39 @@
examples {
["traceMode = 'pretty' results in indented, multi-line output"] {
new {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings {
kicked = true
["fjordConfig"] {
isPining = true
}
}
}
}
}
}
pkl: TRACE: new {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings = new {
kicked = true
["fjordConfig"] = new {
isPining = true
}
}
}
} = new Dynamic {
["Parrot"] {
name = "Parrot"
age = 1234
bucketSettings {
kicked = true
["fjordConfig"] {
isPining = true
}
}
}
} (file:///$snippetsDir/input/projects/prettyTraceMode/prettyTraceMode.pkl)
@@ -37,6 +37,7 @@ class AnalyzerTest {
null,
null,
HttpClient.dummyClient(),
null,
)
@Test
@@ -115,6 +116,7 @@ class AnalyzerTest {
tempDir.resolve("packages"),
null,
HttpClient.dummyClient(),
null,
)
PackageServer.populateCacheDir(tempDir.resolve("packages"))
val file1 =
@@ -190,6 +192,7 @@ class AnalyzerTest {
tempDir.resolve("packages"),
project.dependencies,
HttpClient.dummyClient(),
null,
)
val file1 =
tempDir
@@ -302,6 +305,7 @@ class AnalyzerTest {
tempDir.resolve("packages"),
project.dependencies,
HttpClient.dummyClient(),
null,
)
val result = analyzer.importGraph(mainPkl.toUri())
val birdUri = URI("projectpackage://localhost:0/birds@1.0.0#/bird.pkl")
@@ -45,6 +45,7 @@ class ReplServerTest {
"/".toPath(),
StackFrameTransformers.defaultTransformer,
false,
null,
)
@Test
@@ -74,6 +74,7 @@ class ProjectTest {
null,
null,
null,
null,
)
val expectedAnnotations =
listOf(