def __init__(self, token_required=True, service_name=None, **kwargs):
self._data = None<EOL>self._coveralls_host = '<STR_LIT>'<EOL>self._token_required = token_required<EOL>self.config = self.load_config_from_file()<EOL>self.config.update(kwargs)<EOL>if service_name:<EOL><INDENT>self.config['<STR_LIT>'] = service_name<EOL><DEDENT>if self.config.get('<STR_LIT>'):<EOL><INDENT>self._coveralls_host = self.config['<STR_LIT>']<EOL>del self.config['<STR_LIT>']<EOL><DEDENT>self.load_config_from_environment()<EOL>name, job, pr = self.load_config_from_ci_environment()<EOL>self.config['<STR_LIT>'] = self.config.get('<STR_LIT>', name)<EOL>if job:<EOL><INDENT>self.config['<STR_LIT>'] = job<EOL><DEDENT>if pr:<EOL><INDENT>self.config['<STR_LIT>'] = pr<EOL><DEDENT>self.ensure_token()<EOL>
* repo_token
  The secret token for your repository, found at the bottom of your
  repository's page on Coveralls.

* service_name
  The CI service or other environment in which the test suite was run.
  This can be anything, but certain services have special features
  (travis-ci, travis-pro, or coveralls-ruby).

* [service_job_id]
  A unique identifier of the job on the service specified by
  service_name.