def cmp(self, other):
if isinstance(other, Range):<EOL><INDENT>start = self.start.replace(tzinfo=other.start.tz) if other.start.tz and self.start.tz is None else self.start<EOL>end = self.end.replace(tzinfo=other.end.tz) if other.end.tz and self.end.tz is None else self.end<EOL>if start == other.start and end == other.end:<EOL><INDENT>return <NUM_LIT:0> <EOL><DEDENT>elif start < other.start:<EOL><INDENT>return -<NUM_LIT:1><EOL><DEDENT>else:<EOL><INDENT>return <NUM_LIT:1><EOL><DEDENT><DEDENT>elif isinstance(other, Date):<EOL><INDENT>if other.tz and self.start.tz is None:<EOL><INDENT>return <NUM_LIT:0> if other == self.start.replace(tzinfo=other.tz) else -<NUM_LIT:1> if other > self.start.replace(tzinfo=other.start.tz) else <NUM_LIT:1><EOL><DEDENT>return <NUM_LIT:0> if other == self.start else -<NUM_LIT:1> if other > self.start else <NUM_LIT:1><EOL><DEDENT>else:<EOL><INDENT>return self.cmp(Range(other, tz=self.start.tz))<EOL><DEDENT>
*Note: checks Range.start() only*
        Key: self = [], other = {}
            * [   {----]----} => -1
            * {---[---}  ] => 1
            * [---]  {---} => -1
            * [---] same as {---} => 0
            * [--{-}--] => -1