code: def load_or_create(cls, filename=None, no_input=False, create_new=False, **kwargs):
          parser = argparse.ArgumentParser()
          parser.add_argument('--no_input', action='store_true')
          parser.add_argument('--create_new', action='store_true')
          args = parser.parse_args()
          if args.no_input:
              print('Parameter --no_input was given')
              no_input = True
          if args.create_new:
              print('Parameter --create_new was given')
              create_new = True
              no_input = True
          def savefile_more_recent():
              time_savefile = os.path.getmtime(filename)
              time_program = os.path.getmtime(sys.argv[0])
              return time_savefile > time_program
          def load_pickle():
              with open(filename, 'rb') as of:
                  statefile_version, data = pickle.load(of)
              if statefile_version != STATEFILE_VERSION:
                  raise RuntimeError(f'Wrong statefile version, please remove state file {filename}')
              return data
          def load():
              print('Loading %s' % filename)
              obj_list, config = load_pickle()
              system = System(load_state=obj_list, filename=filename, **kwargs)
              return system
          def create():
              print('Creating new system')
              config = None
              if filename:
                  try:
                      obj_list, config = load_pickle()
                  except FileNotFoundError:
                      config = None
              return cls(filename=filename, load_config=config, **kwargs)
          if filename and os.path.isfile(filename):
              if savefile_more_recent() and not create_new:
                  return load()
              else:
                  if no_input:
                      print('Program file more recent. Loading that instead.')
                      return create()
                  while True:
                      answer = input('Program file more recent. Do you want to load it? (y/n) ')
                      if answer == 'y':
                          return create()
                      elif answer == 'n':
                          return load()
          else:
              return create()