nodes: 0, module; 1, function_definition; 2, function_name:get_submission; 3, parameters; 4, block; 5, identifier:self; 6, default_parameter; 7, default_parameter; 8, default_parameter; 9, default_parameter; 10, default_parameter; 11, expression_statement; 12, if_statement; 13, if_statement; 14, return_statement; 15, identifier:url; 16, None; 17, identifier:submission_id; 18, None; 19, identifier:comment_limit; 20, integer:0; 21, identifier:comment_sort; 22, None; 23, identifier:params; 24, None; 25, comment:"""Return a Submission object for the given url or submission_id.
  
          :param comment_limit: The desired number of comments to fetch. If <= 0
              fetch the default number for the session's user. If None, fetch the
              maximum possible.
          :param comment_sort: The sort order for retrieved comments. When None
              use the default for the session's user.
          :param params: Dictionary containing extra GET data to put in the url.
  
          """; 26, comparison_operator:bool(url) == bool(submission_id); 27, block; 28, identifier:submission_id; 29, block; 30, call; 31, call; 32, call; 33, raise_statement; 34, expression_statement; 35, attribute; 36, argument_list; 37, identifier:bool; 38, argument_list; 39, identifier:bool; 40, argument_list; 41, call; 42, assignment; 43, attribute; 44, identifier:from_url; 45, identifier:self; 46, identifier:url; 47, keyword_argument; 48, keyword_argument; 49, keyword_argument; 50, identifier:url; 51, identifier:submission_id; 52, identifier:TypeError; 53, argument_list; 54, identifier:url; 55, call; 56, identifier:objects; 57, identifier:Submission; 58, identifier:comment_limit; 59, identifier:comment_limit; 60, identifier:comment_sort; 61, identifier:comment_sort; 62, identifier:params; 63, identifier:params; 64, string; 65, identifier:urljoin; 66, argument_list; 67, string_content:One (and only one) of id or url is required!; 68, subscript; 69, identifier:submission_id; 70, attribute; 71, string; 72, identifier:self; 73, identifier:config; 74, string_content:comments
code: def get_submission(self, url=None, submission_id=None, comment_limit=0,
                         comment_sort=None, params=None):
          """Return a Submission object for the given url or submission_id.
  
          :param comment_limit: The desired number of comments to fetch. If <= 0
              fetch the default number for the session's user. If None, fetch the
              maximum possible.
          :param comment_sort: The sort order for retrieved comments. When None
              use the default for the session's user.
          :param params: Dictionary containing extra GET data to put in the url.
  
          """
          if bool(url) == bool(submission_id):
              raise TypeError('One (and only one) of id or url is required!')
          if submission_id:
              url = urljoin(self.config['comments'], submission_id)
          return objects.Submission.from_url(self, url,
                                             comment_limit=comment_limit,
                                             comment_sort=comment_sort,
                                             params=params)