code: def run(self):
          
          self._assure_output_dir(self.output)
          companies = self.read()
          print '%s CNPJs found' % len(companies)
  
          pbar = ProgressBar(
              widgets=[Counter(), ' ', Percentage(), ' ', Bar(), ' ', Timer()],
              maxval=len(companies)).start()
  
          resolved = 0
          runner = Runner(companies, self.days, self.token)
  
          try:
              for data in runner:
                  self.write(data)
                  resolved = resolved + 1
                  pbar.update(resolved)
          except KeyboardInterrupt:
              print '\naborted: waiting current requests to finish.'
              runner.stop()
              return
  
          pbar.finish()
docs: Reads data from CNPJ list and write results to output directory.