code: def save_settings(cls, project=None, user=None, settings=None):
          
  
          if (isinstance(settings, dict)):
              _to_update = settings
              if (
                  isinstance(user, User)
                  and isinstance(project, Project)
              ):
                  _user_id = user.id
                  _project_id = project.id
              elif (
                  isinstance(user, (int, str,))
                  and isinstance(project, (int, str,))
              ):
                  _user_id = user
                  _project_id = project
              else:
                  raise TypeError
              cls.http_post(
                  'update_settings',
                  json={
                      'project_preferences': {
                          'user_id': _user_id,
                          'project_id': _project_id,
                          'settings': _to_update,
                      }
                  }
              )
          else:
              raise TypeError
docs: Save settings for a user without first fetching their preferences.
  
          - **user** and **project** can be either a :py:class:`.User` and
            :py:class:`.Project` instance respectively, or they can be given as
            IDs. If either argument is given, the other is also required.
          - **settings** is a :py:class:`dict` containing the settings to be
            saved.