code: def init(self, dir_or_plan=None, backend_config=None,
               reconfigure=IsFlagged, backend=True, **kwargs):
          
          options = kwargs
          options['backend_config'] = backend_config
          options['reconfigure'] = reconfigure
          options['backend'] = backend
          options = self._generate_default_options(options)
          args = self._generate_default_args(dir_or_plan)
          return self.cmd('init', *args, **options)
docs: refer to https://www.terraform.io/docs/commands/init.html
  
          By default, this assumes you want to use backend config, and tries to
          init fresh. The flags -reconfigure and -backend=true are default.
  
          :param dir_or_plan: relative path to the folder want to init
          :param backend_config: a dictionary of backend config options. eg.
                  t = Terraform()
                  t.init(backend_config={'access_key': 'myaccesskey', 
                  'secret_key': 'mysecretkey', 'bucket': 'mybucketname'})
          :param reconfigure: whether or not to force reconfiguration of backend
          :param backend: whether or not to use backend settings for init
          :param kwargs: options
          :return: ret_code, stdout, stderr