[
https://issues.apache.org/jira/browse/AIRFLOW-4982?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16888153#comment-16888153
]
Ryan Pennell commented on AIRFLOW-4982:
---------------------------------------
alembic 0.9.10
apache-airflow 1.10.3
asn1crypto 0.24.0
attrs 18.2.0
Automat 0.7.0
Babel 2.6.0
bcrypt 3.1.6
bleach 2.1.4
certifi 2018.11.29
cffi 1.11.5
chardet 3.0.4
Click 7.0
colorama 0.4.1
configparser 3.5.0
constantly 15.1.0
croniter 0.3.26
cryptography 2.4.2
defusedxml 0.5.0
dill 0.2.8.2
docutils 0.14
entrypoints 0.3
epdb 0.15.1
Flask 1.0
Flask-Admin 1.5.3
Flask-AppBuilder 1.12.3
Flask-Babel 0.12.2
Flask-Bcrypt 0.7.1
Flask-Caching 1.3.3
Flask-Login 0.4.1
Flask-OpenID 1.2.5
Flask-SQLAlchemy 2.3.2
flask-swagger 0.2.13
Flask-WTF 0.14.2
funcsigs 1.0.0
future 0.16.0
gitdb2 2.0.5
GitPython 2.1.11
glob2 0.6
gunicorn 19.9.0
html5lib 1.0.1
hyperlink 18.0.0
idna 2.8
incremental 17.5.0
iso8601 0.1.12
itsdangerous 1.1.0
jeepney 0.4
Jinja2 2.10
json-merge-patch 0.2
keyring 17.1.1
lockfile 0.12.2
luigi 2.8.2
lxml 4.3.0
Mako 1.0.7
Markdown 2.6.11
MarkupSafe 1.1.0
monotonic 1.5
more-itertools 5.0.0
mysqlclient 1.3.14
numpy 1.15.4
nutils 1.4.5
ordereddict 1.1
pandas 0.23.4
paramiko 2.4.2
pendulum 1.4.4
pip 10.0.1
psutil 4.4.2
psycopg2-binary 2.7.6.1
pyasn1 0.4.5
pycparser 2.19
Pygments 2.3.1
PyHamcrest 1.9.0
PyMySQL 0.9.3
PyNaCl 1.3.0
pysftp 0.2.9
python-daemon 2.1.2
python-dateutil 2.7.5
python-editor 1.0.3
python-nvd3 0.15.0
python-slugify 2.0.1
python3-openid 3.1.0
pytz 2018.9
pytzdata 2018.7
PyYAML 3.13
requests 2.21.0
SecretStorage 3.1.0
setproctitle 1.1.10
setuptools 39.1.0
six 1.12.0
smmap2 2.0.5
SQLAlchemy 1.1.18
sshtunnel 0.1.4
stickybar 1.0b2
tabulate 0.8.2
tenacity 4.12.0
text-unidecode 1.2
thrift 0.11.0
tornado 4.5.3
tqdm 4.29.0
treelog 1.0b4
Twisted 18.9.0
tzlocal 1.5.1
unicodecsv 0.14.1
Unidecode 1.0.23
urllib3 1.24.1
webencodings 0.5.1
Werkzeug 0.14.1
wheel 0.31.1
WTForms 2.2.1
xlwt 1.3.0
zope.deprecation 4.4.0
zope.interface 4.6.0
> New entry_point load causes circular dependency
> -----------------------------------------------
>
> Key: AIRFLOW-4982
> URL: https://issues.apache.org/jira/browse/AIRFLOW-4982
> Project: Apache Airflow
> Issue Type: Bug
> Components: plugins
> Affects Versions: 1.10.3
> Reporter: Ryan Pennell
> Priority: Minor
>
> I believe there is a bug with the current method used to load airflow plugins
> with setuptools entry_points.
> When creating a plugin, the current recommended method is (in myplugin.py):
> {code:python}
> from airflow.plugin_manager import AirflowPlugin
> class MyCustomPlugin(AirflowPlugin):
> name='myplugin'
> hooks = []
> {code}
> Also in plugins manager (~line 149) is the code to load the entry point.
> Unless I'm missing something, doesn't this lead to a circular load? If I try
> to use import airflow.operators.myplugin, the entry point will be loaded. So
> the entry point loads myplugin.py, which imports airflow.plugin_manager
> because it needs to inherit from AirflowPlugin. But when myplugin.py imports
> plugin_manager, it tries to load the entry points again. An because it
> hasn't completed the import of AirflowPlugin, the class MyCustomPlugin does
> not exists yet, so the import fails.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)