@@ -65,7 +65,7 @@ public async IAsyncEnumerable<InteractiveDocument> GetImportsAsync(bool recursiv
65
65
{
66
66
EnsureImportFieldParserIsInitialized ( ) ;
67
67
68
- if ( ! TryGetKernelInfoFromMetadata ( Metadata , out var kernelInfos ) )
68
+ if ( ! TryGetKernelInfosFromMetadata ( out var kernelInfos ) )
69
69
{
70
70
kernelInfos = new ( ) ;
71
71
}
@@ -198,7 +198,7 @@ public static async Task<InteractiveDocument> LoadAsync(
198
198
199
199
public string ? GetDefaultKernelName ( )
200
200
{
201
- if ( TryGetKernelInfoFromMetadata ( Metadata , out var kernelInfo ) )
201
+ if ( TryGetKernelInfosFromMetadata ( Metadata , out var kernelInfo ) )
202
202
{
203
203
return kernelInfo . DefaultKernelName ;
204
204
}
@@ -208,16 +208,11 @@ public static async Task<InteractiveDocument> LoadAsync(
208
208
209
209
internal string ? GetDefaultKernelName ( KernelInfoCollection kernelInfos )
210
210
{
211
- if ( TryGetKernelInfoFromMetadata ( Metadata , out var kernelInfoCollection ) )
211
+ if ( TryGetKernelInfosFromMetadata ( Metadata , out var kernelInfoCollection ) )
212
212
{
213
213
return kernelInfoCollection . DefaultKernelName ;
214
214
}
215
215
216
- if ( Metadata is null )
217
- {
218
- return null ;
219
- }
220
-
221
216
if ( Metadata . TryGetValue ( "kernelspec" , out var kernelspecObj ) )
222
217
{
223
218
if ( kernelspecObj is IDictionary < string , object > kernelspecDict )
@@ -243,7 +238,7 @@ public static async Task<InteractiveDocument> LoadAsync(
243
238
244
239
internal static void MergeKernelInfos ( InteractiveDocument document , KernelInfoCollection kernelInfos )
245
240
{
246
- if ( TryGetKernelInfoFromMetadata ( document . Metadata , out var kernelInfoCollection ) )
241
+ if ( TryGetKernelInfosFromMetadata ( document . Metadata , out var kernelInfoCollection ) )
247
242
{
248
243
MergeKernelInfos ( kernelInfoCollection , kernelInfos ) ;
249
244
}
@@ -264,19 +259,23 @@ internal static void MergeKernelInfos(KernelInfoCollection destination, KernelIn
264
259
destination . AddRange ( source . Where ( ki => added . Add ( ki . Name ) ) ) ;
265
260
}
266
261
267
- internal static bool TryGetKernelInfoFromMetadata (
262
+ public bool TryGetKernelInfosFromMetadata (
263
+ [ NotNullWhen ( true ) ] out KernelInfoCollection ? kernelInfos ) =>
264
+ TryGetKernelInfosFromMetadata ( Metadata , out kernelInfos ) ;
265
+
266
+ internal static bool TryGetKernelInfosFromMetadata (
268
267
IDictionary < string , object > ? metadata ,
269
- [ NotNullWhen ( true ) ] out KernelInfoCollection ? kernelInfo )
268
+ [ NotNullWhen ( true ) ] out KernelInfoCollection ? kernelInfos )
270
269
{
271
270
if ( metadata is not null )
272
271
{
273
272
if ( metadata . TryGetValue ( "kernelInfo" , out var kernelInfoObj ) )
274
273
{
275
274
if ( kernelInfoObj is JsonElement kernelInfoJson &&
276
- JsonSerializer . Deserialize < KernelInfoCollection > ( kernelInfoJson , JsonSerializerOptions ) is
275
+ kernelInfoJson . Deserialize < KernelInfoCollection > ( JsonSerializerOptions ) is
277
276
{ } kernelInfoDeserialized )
278
277
{
279
- kernelInfo = kernelInfoDeserialized ;
278
+ kernelInfos = kernelInfoDeserialized ;
280
279
return true ;
281
280
}
282
281
@@ -319,15 +318,15 @@ internal static bool TryGetKernelInfoFromMetadata(
319
318
deserializedKernelInfo . Add ( new KernelInfo ( name , language , aliases ) ) ;
320
319
}
321
320
}
322
- kernelInfo = deserializedKernelInfo ;
321
+ kernelInfos = deserializedKernelInfo ;
323
322
return true ;
324
323
}
325
324
}
326
325
}
327
326
328
327
if ( kernelInfoObj is KernelInfoCollection kernelInfoCollection )
329
328
{
330
- kernelInfo = kernelInfoCollection ;
329
+ kernelInfos = kernelInfoCollection ;
331
330
return true ;
332
331
}
333
332
}
@@ -338,17 +337,17 @@ internal static bool TryGetKernelInfoFromMetadata(
338
337
{
339
338
case KernelInfoCollection kernelInfoCollection :
340
339
341
- kernelInfo = kernelInfoCollection ;
340
+ kernelInfos = kernelInfoCollection ;
342
341
return true ;
343
342
344
343
case IDictionary < string , object > dotnetInteractiveDict :
345
344
{
346
- kernelInfo = new ( ) ;
345
+ kernelInfos = new ( ) ;
347
346
348
347
if ( dotnetInteractiveDict . TryGetValue ( "defaultKernelName" , out var nameObj ) &&
349
348
nameObj is string name )
350
349
{
351
- kernelInfo . DefaultKernelName = name ;
350
+ kernelInfos . DefaultKernelName = name ;
352
351
}
353
352
354
353
return true ;
@@ -364,7 +363,7 @@ internal static bool TryGetKernelInfoFromMetadata(
364
363
if ( kernelspecDict . TryGetValue ( "language" , out var languageObj ) &&
365
364
languageObj is string defaultLanguage )
366
365
{
367
- kernelInfo = new KernelInfoCollection
366
+ kernelInfos = new KernelInfoCollection
368
367
{
369
368
DefaultKernelName = defaultLanguage
370
369
} ;
@@ -375,7 +374,7 @@ internal static bool TryGetKernelInfoFromMetadata(
375
374
}
376
375
377
376
// check if a KernelInfoCollection was directly serialized into the metadata
378
- kernelInfo = default ;
377
+ kernelInfos = default ;
379
378
return false ;
380
379
}
381
380
0 commit comments