def run(self, num_steps: Optional[int]=None) -> None:
    'Run the update loop; typically an infinite loop which calls step.'
    iterator = (range(num_steps) if (num_steps is not None) else itertools.count())
    for _ in iterator:
        self.step()
Run the update loop; typically an infinite loop which calls step.
def run(self, num_steps: Optional[int]=None) -> None:
    
    iterator = (range(num_steps) if (num_steps is not None) else itertools.count())
    for _ in iterator:
        self.step()