`if data is not None:` kannst du einfacher als `if data` schreiben. `is not None` ist eine doppelte Verneinung und damit das gleiche.
Das ist einfach Falsch! if data is not None: liefert auch 'True' wenn data = 0. if data: liefert in diesem Fall aber 'False'.
Deswegen sollte man so etwas immer im Kontext sehen, vor allem, wenn '0' ein gültiges Datum ist.