diff --git a/rplugin/python3/molten/outputbuffer.py b/rplugin/python3/molten/outputbuffer.py index c343821..661bd4b 100644 --- a/rplugin/python3/molten/outputbuffer.py +++ b/rplugin/python3/molten/outputbuffer.py @@ -70,7 +70,7 @@ def _get_header_text(self, output: Output) -> str: else: old = "" - if not output.old and self.options.output_show_exec_time: + if not output.old and self.options.output_show_exec_time and output.start_time: start = output.start_time end = output.end_time if output.end_time is not None else datetime.now() diff = end - start diff --git a/rplugin/python3/molten/outputchunks.py b/rplugin/python3/molten/outputchunks.py index ecdb0bb..b7ae055 100644 --- a/rplugin/python3/molten/outputchunks.py +++ b/rplugin/python3/molten/outputchunks.py @@ -179,8 +179,8 @@ class Output: status: OutputStatus success: bool old: bool - start_time: datetime - end_time: datetime + start_time: datetime | None + end_time: datetime | None _should_clear: bool @@ -191,7 +191,7 @@ def __init__(self, execution_count: Optional[int]): self.success = True self.old = False - self.start_time = datetime.now() + self.start_time = None self.end_time = None self._should_clear = False diff --git a/rplugin/python3/molten/runtime.py b/rplugin/python3/molten/runtime.py index 490b202..34ff466 100644 --- a/rplugin/python3/molten/runtime.py +++ b/rplugin/python3/molten/runtime.py @@ -1,3 +1,4 @@ +from datetime import datetime from typing import Optional, Tuple, List, Dict, Generator, IO, Any from enum import Enum from contextlib import contextmanager @@ -142,6 +143,7 @@ def copy_on_demand(content_ctor): return False if output.status == OutputStatus.HOLD: output.status = OutputStatus.RUNNING + output.start_time = datetime.now() elif output.status == OutputStatus.RUNNING: output.status = OutputStatus.DONE else: