This rule raises an issue when trying to perform comparison or arithmetic operations between `datetime.date` and `datetime.datetime` objects. == Why is this an issue? Despite the fact that the `datetime.datetime` is inherited from the `datetime.date` they are not compatible from comparison and arithmetical operations perspective. Trying to compare a `datetime.datetime` with a `datetime.date` objects leads to a `TypeError`. == How to fix it Make sure that comparison or arithmetic operations are performed between compatible types e.g. convert `datetime.datetime` to `datetime.date` or vice versa. === Code examples ==== Noncompliant code example [source,python,diff-id=1,diff-type=noncompliant] ---- from datetime import datetime, date dt = datetime.now() d = date.today() if dt < d: # Noncompliant: TypeError: can't compare datetime.datetime to datetime.date ... ---- ==== Compliant solution [source,python,diff-id=1,diff-type=compliant] ---- from datetime import datetime, date dt = datetime.now() d = date.today() if dt.date() < d: # OK ... ---- //=== How does this work? //=== Pitfalls //=== Going the extra mile == Resources === Documentation * Python documentation - https://docs.python.org/3/library/datetime.html#datetime-objects[Datetime Objects] * Python documentation - https://docs.python.org/3/library/datetime.html#date-objects[Date Objects] //=== Articles & blog posts //=== Conference presentations //=== Standards //=== External coding guidelines //=== Benchmarks