code: def findChangelist(self, description=None):
          
          if description is None:
              change = Default(self)
          else:
              if isinstance(description, six.integer_types):
                  change = Changelist(description, self)
              else:
                  pending = self.run(['changes', '-l', '-s', 'pending', '-c', str(self._client), '-u', self._user])
                  for cl in pending:
                      if cl['desc'].strip() == description.strip():
                          LOGGER.debug('Changelist found: {}'.format(cl['change']))
                          change = Changelist(int(cl['change']), self)
                          break
                  else:
                      LOGGER.debug('No changelist found, creating one')
                      change = Changelist.create(description, self)
                      change.client = self._client
                      change.save()
  
          return change
docs: Gets or creates a Changelist object with a description
  
          :param description: The description to set or lookup
          :type description: str
          :returns: :class:`.Changelist`