'Returns `True` if there exists a line
that contains `self` and `points`.  Returns `False` otherwise.
A trivially True value is returned if no points are given.
Parameters
args : sequence of Points
Returns
is_collinear : boolean
See Also
sympy.geometry.line.Line
Examples
>>> from sympy import Point
>>> from sympy.abc import x
>>> p1, p2 = Point(0, 0), Point(1, 1)
>>> p3, p4, p5 = Point(2, 2), Point(x, x), Point(1, 2)
>>> Point.is_collinear(p1, p2, p3, p4)
True
>>> Point.is_collinear(p1, p2, p3, p5)
False'

def is_collinear(self, *args):

    points = ((self,) + args)
    points = Point._normalize_dimension(*[Point(i) for i in points])
    points = list(uniq(points))
    return (Point.affine_rank(*points) <= 1)
