docs: def create_assignment(  # pylint: disable=too-many-arguments
              self,
              name,
              short_name,
              weight,
              max_points,
              due_date_str,
              gradebook_id='',
              **kwargs
      ):
          """Create a new assignment.
  
          Create a new assignment. By default, assignments are created
          under the `Uncategorized` category.
  
          Args:
              name (str): descriptive assignment name,
                  i.e. ``new NUMERIC SIMPLE ASSIGNMENT``
              short_name (str): short name of assignment, one word of
                  no more than 5 characters,  i.e. ``SAnew``
              weight (str): floating point value for weight, i.e. ``1.0``
              max_points (str): floating point value for maximum point
                  total, i.e. ``100.0``
              due_date_str (str): due date as string in ``mm-dd-yyyy``
                  format, i.e. ``08-21-2011``
              gradebook_id (str): unique identifier for gradebook, i.e. ``2314``
              kwargs (dict): dictionary containing additional parameters,
                  i.e. ``graderVisible``, ``totalAverage``, and ``categoryId``.
  
                  For example:
  
                  .. code-block:: python
  
                      {
                          u'graderVisible': True,
                          u'totalAverage': None
                          u'categoryId': 1007964,
                      }
  
          Raises:
              requests.RequestException: Exception connection error
              ValueError: Unable to decode response content
  
          Returns:
              dict: dictionary containing ``data``, ``status`` and ``message``
                  for example:
  
              .. code-block:: python
  
                  {
                      u'data':
                      {
                          u'assignmentId': 18490492,
                          u'categoryId': 1293820,
                          u'description': u'',
                          u'dueDate': 1312171200000,
                          u'dueDateString': u'08-01-2011',
                          u'gradebookId': 1293808,
                          u'graderVisible': False,
                          u'gradingSchemeId': 18490493,
                          u'gradingSchemeType': u'NUMERIC',
                          u'isComposite': False,
                          u'isHomework': False,
                          u'maxPointsTotal': 100.0,
                          u'name': u'new NUMERIC SIMPLE ASSIGNMENT',
                          u'numStudentGradesToBeApproved': 0,
                          u'numStudentsToBeGraded': 614,
                          u'shortName': u'SAnew',
                          u'userDeleted': False,
                          u'weight': 1.0
                      },
                      u'message': u'assignment is created successfully',
                      u'status': 1
                  }
  
          """
          data = {
              'name': name,
              'shortName': short_name,
              'weight': weight,
              'graderVisible': False,
              'gradingSchemeType': 'NUMERIC',
              'gradebookId': gradebook_id or self.gradebook_id,
              'maxPointsTotal': max_points,
              'dueDateString': due_date_str
          }
          data.update(kwargs)
          log.info("Creating assignment %s", name)
          response = self.post('assignment', data)
          log.debug('Received response data: %s', response)
          return response