You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by GitBox <gi...@apache.org> on 2022/02/23 05:20:53 UTC

[GitHub] [airflow] uranusjr commented on a change in pull request #21715: Fix incorrect data_interval_start due to scheduling time change

uranusjr commented on a change in pull request #21715:
URL: https://github.com/apache/airflow/pull/21715#discussion_r812567103



##########
File path: airflow/timetables/interval.py
##########
@@ -211,6 +217,17 @@ def _align(self, current: DateTime) -> DateTime:
             return next_time
         return current
 
+    def _prev_align(self, current: DateTime) -> DateTime:
+        """Get the prev scheduled time.
+
+        This is ``current - interval``, unless ``current`` falls right on the
+        interval boundary, when ``current`` is returned.
+        """
+        prev_time = self._get_prev(current)
+        if self._get_next(prev_time) != current:
+            return prev_time
+        return current

Review comment:
       This seems to be always the same as `self._get_prev(self._get_next(current))`?
   
   Say a schedule runs one every midnight. For this implementation:
   
   * If `current` is at midnight, the return value is at midnight
   * If `current` is on 1am, the return value is at midnight
   
   For `self._get_prev(self._get_next(current))`:
   
   * If `current` is at midnight, `_get_next` returns the next midnight, and `_get_prev` returns _this_ midnight
   * If `current` is at 1am, `_get_next` returns the next midnight, and `_get_prev` returns _this_ midnight
   
   And for the timedelta interval, `self._get_prev(self._get_next(current))` is always `current`.
   
   So if I’m not mistaken, this function is not needed.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org