[ https://issues.apache.org/jira/browse/AIRFLOW-2231?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16409452#comment-16409452 ]
Kyle Brooks commented on AIRFLOW-2231: -------------------------------------- Thanks Joy, I was able to get relativedelta to work by making some slight changes to the model.py code. I do think there's a use case for using relativedelta instead of cron syntax because it is more powerful. I will submit a PR if and when I get approval to share the modifications. Regarding not being able to reproduce the bug. I would guess that the version of dateutil.relativedelta.relativedelta that you have implements __hash__ and so the class DAG __init__ does not fail like mine. I have seen the same issue where the DAG will never be scheduled for classes that are hashable due to issues in the section of code you identified in your link above. > DAG with a relativedelta schedule_interval fails > ------------------------------------------------ > > Key: AIRFLOW-2231 > URL: https://issues.apache.org/jira/browse/AIRFLOW-2231 > Project: Apache Airflow > Issue Type: Bug > Components: DAG > Reporter: Kyle Brooks > Priority: Major > Attachments: test_reldel.py > > > The documentation for the DAG class says using > dateutil.relativedelta.relativedelta as a schedule_interval is supported but > it fails: > > Traceback (most recent call last): > File "/usr/local/lib/python3.6/site-packages/airflow/models.py", line 285, > in process_file > m = imp.load_source(mod_name, filepath) > File > "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/imp.py", > line 172, in load_source > module = _load(spec) > File "<frozen importlib._bootstrap>", line 675, in _load > File "<frozen importlib._bootstrap>", line 655, in _load_unlocked > File "<frozen importlib._bootstrap_external>", line 678, in exec_module > File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed > File "/Users/k398995/airflow/dags/test_reldel.py", line 33, in <module> > dagrun_timeout=timedelta(minutes=60)) > File "/usr/local/lib/python3.6/site-packages/airflow/models.py", line 2914, > in __init__ > if schedule_interval in cron_presets: > TypeError: unhashable type: 'relativedelta' > > It looks like the __init__ function for class DAG assumes the > schedule_interval is hashable. -- This message was sent by Atlassian JIRA (v7.6.3#76005)