code: def run(self, args=None):
          
  
          args = args or self.parser.parse_args()
          super(Program, self).run(args)
  
          # Read configuration file if any
          if args.config is not None:
              filepath = args.config
              self.config.read(filepath)
  
          # Start workers then wait until they finish work
          [w.start() for w in self.workers]
          [w.join() for w in self.workers]
docs: Parse comand line arguments/flags and run program