code: def union(self, other):
          
          if not hasattr(other, "__iter__"):
              other = [other]
          bounds = self.bounds[:]
          for range in other:
              bounds += range.bounds
  
          bounds = self._union(bounds)
          range = VersionRange(None)
          range.bounds = bounds
          return range
docs: OR together version ranges.
  
          Calculates the union of this range with one or more other ranges.
  
          Args:
              other: VersionRange object (or list of) to OR with.
  
          Returns:
              New VersionRange object representing the union.