docs: def _merge(self, constraint):
          """Wrapper for :func:`merge`.
  
          It merges `constraint` with current ones and returns the list of
          merged constraints.
          It does not modify the current object.
  
          :param constraint: The constraint(s) to merge with current constraints.
          :type: :class:`Constraint`, :class:`Constraints` or `str`
          :returns: List of :class:`Constraint` objects.
          :rtype: list
  
          """
          if isinstance(constraint, basestring):
              constraints = Constraints.parse(constraint).constraints
          elif isinstance(constraint, Constraint):
              constraints = [constraint]
          elif isinstance(constraint, Constraints):
              constraints = constraint.constraints
          else:
              raise TypeError(constraint)
  
          return merge(self.constraints + constraints)