code: def setup(self,  # pylint: disable=arguments-differ
              endpoint=None,
              username=None,
              password=None,
              incident_id=None,
              sketch_id=None):
      
      self.timesketch_api = timesketch_utils.TimesketchApiClient(
          endpoint, username, password)
      self.incident_id = None
      self.sketch_id = int(sketch_id) if sketch_id else None
  
      # Check that we have a timesketch session
      if not self.timesketch_api.session:
        message = 'Could not connect to Timesketch server at ' + endpoint
        self.state.add_error(message, critical=True)
        return
  
      if not self.sketch_id:  # No sketch id is provided, create it
        if incident_id:
          sketch_name = 'Sketch for incident ID: ' + incident_id
        else:
          sketch_name = 'Untitled sketch'
        sketch_description = 'Sketch generated by dfTimewolf'
  
        self.sketch_id = self.timesketch_api.create_sketch(
            sketch_name, sketch_description)
        print('Sketch {0:d} created'.format(self.sketch_id))
docs: Setup a connection to a Timesketch server and create a sketch if needed.
  
      Args:
        endpoint: str, Timesketch endpoint (e.g. http://timesketch.com/)
        username: str, Username to authenticate against the Timesketch endpoint.
        password: str, Password to authenticate against the Timesketch endpoint.
        incident_id: str, Incident ID or reference. Used in sketch description.
        sketch_id: int, Sketch ID to add the resulting timeline to. If not
            provided, a new sketch is created.