potiuk commented on a change in pull request #20482:
URL: https://github.com/apache/airflow/pull/20482#discussion_r776885534



##########
File path: airflow/utils/timezone.py
##########
@@ -195,11 +201,11 @@ def coerce_datetime(v: None) -> None:
 
 
 @overload
-def coerce_datetime(v: dt.datetime) -> DateTime:
+def coerce_datetime(v: dt.datetime) -> dt.datetime:
     ...
 
 
-def coerce_datetime(v: Optional[dt.datetime]) -> Optional[DateTime]:
+def coerce_datetime(v: Optional[dt.datetime]) -> Optional[dt.datetime]:

Review comment:
       OK. I figured it out. The preoblm is that DateTime derives from 
dt.datetime. And we have to specify DateTime overloads before datetimes ones. 
   
   What worked for me:
   
   * make_aware overloads:
   
   ```
   @overload
   def make_aware(value: None, timezone: Optional[dt.tzinfo] = None) -> None:
       ...
   
   
   @overload
   def make_aware(value: DateTime, timezone: Optional[dt.tzinfo] = None) -> 
DateTime:
       ...
   
   
   @overload
   def make_aware(value: dt.datetime, timezone: Optional[dt.tzinfo] = None) -> 
dt.datetime:
       ...
   
   
   def make_aware(value: Optional[dt.datetime], timezone: Optional[dt.tzinfo] = 
None) -> Optional[dt.datetime]:
   ```
   
   * coerce_datetime overloads:
   
   ```
   @overload
   def coerce_datetime(v: None) -> None:
       ...
   
   
   @overload
   def coerce_datetime(v: DateTime) -> DateTime:
       ...
   
   
   @overload
   def coerce_datetime(v: dt.datetime) -> DateTime:
       ...
   
   
   def coerce_datetime(v: Optional[dt.datetime]) -> Optional[DateTime]:
   ```




-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to