def post_init(self):
    # Do all of this work here rather than in __init__
    #  so it can include the effects of any pymodel config modules

    # recognize PEP-8 style names (all lowercase) if present
    if hasattr(self.module, 'testsuite'):
      self.module.testSuite = self.module.testsuite
    if hasattr(self.module, 'test_suite'):
      self.module.testSuite = self.module.test_suite

    if hasattr(self.module, 'actions'):
      self.actions = list(self.module.actions) # copy, actions from cmd line
    else:
      self.actions = list(self.actions_in_suite()) # default, copy
    Model.post_init(self) # uses self.actions
    # Revise the test suite to account for excluded, included actions
    self.test_suite = list()
    for run in self.module.testSuite:
       new_run = list() # list not tuple, must mutable
       for action in run:
         if action[0] in self.actions:
           new_run.append(action)
         else:
           break # truncate the run before the excluded action
       self.test_suite.append(new_run)
    # prepare for first run
    self.irun = 0 # index of current test run in test suite
    self.pc = 0 # program counter
Now that all modules have been imported and executed their __init__
dataset/ETHPy150Open jon-jacky/PyModel/pymodel/TestSuite.py/TestSuite.post_init