uranusjr opened a new issue #17931:
URL: https://github.com/apache/airflow/issues/17931


   Currently (as implemented in #17414), timetables are serialised by their 
classes’ full import path. This works most of the time, but not in some cases, 
including:
   
   * Nested in class or function
   * Declared directly in a DAG file without a valid import name (e.g. 
`12345.py`)
   
   It’s fundamentally impossible to fix some of the cases (e.g. function-local 
class declaration) due to how Python works, but by requiring the user to 
explicitly register the timetable class, we can at least expose that problem so 
users don’t attempt to do that.
   
   However, since the timetable actually would work a lot of times without any 
additional mechanism, I’m also wondering if we should _require_ registration.
   
   1. Always require registration. A DAG using an unregistered timetable class 
fails to serialise.
   2. Only require registration when the timetable class has wonky import path. 
“Normal” classes work out of the box without registering, and user sees a 
serialisation error asking for registration otherwise.
   3. Don’t require registration. If a class cannot be correctly serialised, 
tell the user we can’t do it and the timetable must be declared another way.


-- 
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