private void OnLogEvent( DiagnosticLogEntryProduced logEvent, ZeroMQMessage request, IJupyterMessageSender jupyterMessageSender) { var transient = CreateTransient(); var span = _textSpanFormatter.ParseToSpan($"{Ansi.Color.Foreground.DarkGray}{logEvent.Message}{Ansi.Text.AttributesOff}"); var message = span.ToString(OutputMode.Ansi); var dataMessage = new DisplayData( transient: transient, data: new Dictionary <string, object> { [PlainTextFormatter.MimeType] = message }); var isSilent = ((ExecuteRequest)request.Content).Silent; if (!isSilent) { // send on io jupyterMessageSender.Send(dataMessage); } }
private void DeserializeAndSendEvent(string line) { try { var kernelEventEnvelope = KernelEventEnvelope.Deserialize(line); _kernelEvents.OnNext(kernelEventEnvelope.Event); } catch (JsonReaderException ex) { var diagnosticEvent = new DiagnosticLogEntryProduced( $"Error while parsing command: {ex.Message}\n{line}"); _kernelEvents.OnNext(diagnosticEvent); } }
public async IAsyncEnumerable <CommandOrEvent> CommandsOrEventsAsync([EnumeratorCancellation] CancellationToken cancellationToken) { while (!cancellationToken.IsCancellationRequested) { KernelCommand kernelCommand = null; KernelEvent kernelEvent = null; var message = await ReadMessageAsync(cancellationToken); if (string.IsNullOrWhiteSpace(message)) { continue; } var isParseError = false; try { var jsonObject = JsonDocument.Parse(message).RootElement; if (IsEventEnvelope(jsonObject)) { var kernelEventEnvelope = KernelEventEnvelope.Deserialize(jsonObject); kernelEvent = kernelEventEnvelope.Event; } else if (IsCommandEnvelope(jsonObject)) { var kernelCommandEnvelope = KernelCommandEnvelope.Deserialize(jsonObject); kernelCommand = kernelCommandEnvelope.Command; } else { kernelEvent = new DiagnosticLogEntryProduced( $"Expected {nameof(KernelCommandEnvelope)} or {nameof(KernelEventEnvelope)} but received: \n{message}", KernelCommand.None); isParseError = true; } } catch (Exception ex) { kernelEvent = new DiagnosticLogEntryProduced( $"Error while parsing Envelope: {message} \n{ex.Message}", KernelCommand.None); isParseError = true; } yield return(kernelCommand is null ? new CommandOrEvent(kernelEvent, isParseError) : new CommandOrEvent(kernelCommand)); } }
protected override async Task <CommandOrEvent> ReadCommandOrEventAsync(CancellationToken cancellationToken) { KernelCommand kernelCommand = null; KernelEvent kernelEvent = null; var message = await ReadMessageAsync(cancellationToken); if (string.IsNullOrWhiteSpace(message)) { return(null); } var isParseError = false; try { var jsonObject = JsonDocument.Parse(message).RootElement; if (IsEventEnvelope(jsonObject)) { var kernelEventEnvelope = KernelEventEnvelope.Deserialize(jsonObject); kernelEvent = kernelEventEnvelope.Event; } else if (IsCommandEnvelope(jsonObject)) { var kernelCommandEnvelope = KernelCommandEnvelope.Deserialize(jsonObject); kernelCommand = kernelCommandEnvelope.Command; } else { kernelEvent = new DiagnosticLogEntryProduced( $"Expected {nameof(KernelCommandEnvelope)} or {nameof(KernelEventEnvelope)} but received: \n{message}", KernelCommand.None); isParseError = true; } } catch (Exception ex) { kernelEvent = new DiagnosticLogEntryProduced( $"Error while parsing Envelope: {message} \n{ex.Message}", KernelCommand.None); isParseError = true; } return(kernelCommand is null ? new CommandOrEvent(kernelEvent, isParseError) : new CommandOrEvent(kernelCommand)); }
private void DeserializeAndSendEvent(string line) { IKernelEventEnvelope kernelEventEnvelope = null; try { kernelEventEnvelope = KernelEventEnvelope.Deserialize(line); } catch (Exception ex) { var diagnosticEvent = new DiagnosticLogEntryProduced( $"Error while parsing command: {ex.Message}\n{line}", KernelCommand.None); _kernelEvents.OnNext(diagnosticEvent); } if (kernelEventEnvelope is not null) { _kernelEvents.OnNext(kernelEventEnvelope.Event); } }