Re: Flask-AppBuilder has pinned versions of Click & Flask-Login in 1.10.0
Thank for this Ash. Pipenv works very well in 99% of cases and is vastly better than managing requirements files. Also, PYPA (Python Packaging Authority) officially recommends Pipenv. I gave poetry a try and it seems like it has a lot of potential. I did run into two errors, a max recursion depth when installing Airflow with a lot of extras, and when installing Airflow without any extras an issue installing lxml. On Fri, Oct 5, 2018 at 4:29 AM Ash Berlin-Taylor wrote: > Oh I meant FAB 1.11.1. > > And it looks like the Jinja issue is a bug in pip-tools, where it treats a > dep of "jina" as actually being "jinja>=CURRENT" > https://github.com/pypa/pipenv/issues/2596 < > https://github.com/pypa/pipenv/issues/2596> > > In short: pip-env isn't ready for real-world use yet? (I'm guessing and > extrapolating, but I haven't used it myself so don't trust my word on this) > > -ash > > On 4 Oct 2018, at 16:38, Kyle Hamlin wrote: > > > > If I remove the Flask-AppBuild pinning to 1.11.0 then it uncovers a > Jinja2 > > conflict which is baffling because I don't see anywhere in the graph that > > jinja2 >=2.10 is required. > > > > Could not find a version that matches > > jinja2<2.9.0,>=2.10,>=2.4,>=2.5,>=2.7.3,>=2.8 > > Tried: 2.0, 2.1, 2.1.1, 2.2, 2.2.1, 2.3, 2.3.1, 2.4, 2.4.1, 2.5, 2.5.1, > > 2.5.2, 2.5.3, 2.5.4, 2.5.5, 2.6, 2.7, 2.7.1, 2.7.2, 2.7.3, 2.8, 2.8, > 2.8.1, > > 2.8.1, 2.9, 2.9, 2.9.1, 2.9.1, 2.9.2, 2.9.2, 2.9.3, 2.9.3, 2.9.4, 2.9.4, > > 2.9.5, 2.9.5, 2.9.6, 2.9.6, 2.10, 2.10 > > > > I highlighted why the dep fails there one dep that requires Jinjs2 < > 2.9.0 > > but I still have not idea where the 2.10.0 comes from. > > > > apache-airflow==2.0.0.dev0+incubating > > - alembic [required: >=0.9,<1.0, installed: 0.9.10] > >- Mako [required: Any, installed: 1.0.7] > > - MarkupSafe [required: >=0.9.2, installed: 1.0] > >- python-dateutil [required: Any, installed: 2.7.3] > > - six [required: >=1.5, installed: 1.11.0] > >- python-editor [required: >=0.3, installed: 1.0.3] > >- SQLAlchemy [required: >=0.7.6, installed: 1.1.18] > > - bleach [required: ~=2.1.3, installed: 2.1.4] > >- html5lib [required: > >> > =0.pre,!=1.0b8,!=1.0b7,!=1.0b6,!=1.0b5,!=1.0b4,!=1.0b3,!=1.0b2,!=1.0b1, > > installed: 1.0.1] > > - six [required: >=1.9, installed: 1.11.0] > > - webencodings [required: Any, installed: 0.5.1] > >- six [required: Any, installed: 1.11.0] > > - configparser [required: >=3.5.0,<3.6.0, installed: 3.5.0] > > - croniter [required: >=0.3.17,<0.4, installed: 0.3.25] > >- python-dateutil [required: Any, installed: 2.7.3] > > - six [required: >=1.5, installed: 1.11.0] > > - dill [required: >=0.2.2,<0.3, installed: 0.2.8.2] > > - flask [required: >=0.12.4,<0.13, installed: 0.12.4] > >- click [required: >=2.0, installed: 7.0] > >- itsdangerous [required: >=0.21, installed: 0.24] > >- Jinja2 [required: >=2.4, installed: 2.8.1] > > - MarkupSafe [required: Any, installed: 1.0] > >- Werkzeug [required: >=0.7, installed: 0.14.1] > > - flask-admin [required: ==1.4.1, installed: 1.4.1] > >- Flask [required: >=0.7, installed: 0.12.4] > > - click [required: >=2.0, installed: 7.0] > > - itsdangerous [required: >=0.21, installed: 0.24] > > - Jinja2 [required: >=2.4, installed: 2.8.1] > >- MarkupSafe [required: Any, installed: 1.0] > > - Werkzeug [required: >=0.7, installed: 0.14.1] > >- wtforms [required: Any, installed: 2.2.1] > > - flask-appbuilder [required: >=1.12,<2.0.0, installed: 1.12.0] > >- click [required: ==6.7, installed: 7.0] > >- colorama [required: ==0.3.9, installed: 0.3.9] > >- Flask [required: >=0.10.0,<0.12.99, installed: 0.12.4] > > - click [required: >=2.0, installed: 7.0] > > - itsdangerous [required: >=0.21, installed: 0.24] > > - Jinja2 [required: >=2.4, installed: 2.8.1] > >- MarkupSafe [required: Any, installed: 1.0] > > - Werkzeug [required: >=0.7, installed: 0.14.1] > >- Flask-Babel [required: ==0.11.1, installed: 0.11.1] > > - Babel [required: >=2.3, installed: 2.6.0] > >- pytz [required: >=0a, installed: 2018.5] > > - Flask [required: Any, installed: 0.12.4] > >- click [required: >=2.0, installed: 7.0] > >- itsdangerous [required: >=0.21, installed: 0.24] > >- Jinja2 [required: >=2.4, installed: 2.8.1] > > - MarkupSafe [required: Any, installed: 1.0] > >- Werkzeug [required: >=0.7, installed: 0.14.1] > > - Jinja2 [required: >=2.5, installed: 2.8.1] > >- MarkupSafe [required: Any, installed: 1.0] > >- Flask-Login [required: >=0.3,<0.5, installed: 0.4.1] > > - Flask [required: Any, installed: 0.12.4] > >- click [required: >=2.0, installed: 7.0] > >- itsdangerous [required: >=0.21, installed: 0.24] > >- Jinja2 [required: >=2.4, installed: 2.8.1] > > - MarkupSafe [required: Any, installed: 1.0] > >- Werkzeug
Re: Flask-AppBuilder has pinned versions of Click & Flask-Login in 1.10.0
If I remove the Flask-AppBuild pinning to 1.11.0 then it uncovers a Jinja2 conflict which is baffling because I don't see anywhere in the graph that jinja2 >=2.10 is required. Could not find a version that matches jinja2<2.9.0,>=2.10,>=2.4,>=2.5,>=2.7.3,>=2.8 Tried: 2.0, 2.1, 2.1.1, 2.2, 2.2.1, 2.3, 2.3.1, 2.4, 2.4.1, 2.5, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.5.5, 2.6, 2.7, 2.7.1, 2.7.2, 2.7.3, 2.8, 2.8, 2.8.1, 2.8.1, 2.9, 2.9, 2.9.1, 2.9.1, 2.9.2, 2.9.2, 2.9.3, 2.9.3, 2.9.4, 2.9.4, 2.9.5, 2.9.5, 2.9.6, 2.9.6, 2.10, 2.10 I highlighted why the dep fails there one dep that requires Jinjs2 < 2.9.0 but I still have not idea where the 2.10.0 comes from. apache-airflow==2.0.0.dev0+incubating - alembic [required: >=0.9,<1.0, installed: 0.9.10] - Mako [required: Any, installed: 1.0.7] - MarkupSafe [required: >=0.9.2, installed: 1.0] - python-dateutil [required: Any, installed: 2.7.3] - six [required: >=1.5, installed: 1.11.0] - python-editor [required: >=0.3, installed: 1.0.3] - SQLAlchemy [required: >=0.7.6, installed: 1.1.18] - bleach [required: ~=2.1.3, installed: 2.1.4] - html5lib [required: >=0.pre,!=1.0b8,!=1.0b7,!=1.0b6,!=1.0b5,!=1.0b4,!=1.0b3,!=1.0b2,!=1.0b1, installed: 1.0.1] - six [required: >=1.9, installed: 1.11.0] - webencodings [required: Any, installed: 0.5.1] - six [required: Any, installed: 1.11.0] - configparser [required: >=3.5.0,<3.6.0, installed: 3.5.0] - croniter [required: >=0.3.17,<0.4, installed: 0.3.25] - python-dateutil [required: Any, installed: 2.7.3] - six [required: >=1.5, installed: 1.11.0] - dill [required: >=0.2.2,<0.3, installed: 0.2.8.2] - flask [required: >=0.12.4,<0.13, installed: 0.12.4] - click [required: >=2.0, installed: 7.0] - itsdangerous [required: >=0.21, installed: 0.24] - Jinja2 [required: >=2.4, installed: 2.8.1] - MarkupSafe [required: Any, installed: 1.0] - Werkzeug [required: >=0.7, installed: 0.14.1] - flask-admin [required: ==1.4.1, installed: 1.4.1] - Flask [required: >=0.7, installed: 0.12.4] - click [required: >=2.0, installed: 7.0] - itsdangerous [required: >=0.21, installed: 0.24] - Jinja2 [required: >=2.4, installed: 2.8.1] - MarkupSafe [required: Any, installed: 1.0] - Werkzeug [required: >=0.7, installed: 0.14.1] - wtforms [required: Any, installed: 2.2.1] - flask-appbuilder [required: >=1.12,<2.0.0, installed: 1.12.0] - click [required: ==6.7, installed: 7.0] - colorama [required: ==0.3.9, installed: 0.3.9] - Flask [required: >=0.10.0,<0.12.99, installed: 0.12.4] - click [required: >=2.0, installed: 7.0] - itsdangerous [required: >=0.21, installed: 0.24] - Jinja2 [required: >=2.4, installed: 2.8.1] - MarkupSafe [required: Any, installed: 1.0] - Werkzeug [required: >=0.7, installed: 0.14.1] - Flask-Babel [required: ==0.11.1, installed: 0.11.1] - Babel [required: >=2.3, installed: 2.6.0] - pytz [required: >=0a, installed: 2018.5] - Flask [required: Any, installed: 0.12.4] - click [required: >=2.0, installed: 7.0] - itsdangerous [required: >=0.21, installed: 0.24] - Jinja2 [required: >=2.4, installed: 2.8.1] - MarkupSafe [required: Any, installed: 1.0] - Werkzeug [required: >=0.7, installed: 0.14.1] - Jinja2 [required: >=2.5, installed: 2.8.1] - MarkupSafe [required: Any, installed: 1.0] - Flask-Login [required: >=0.3,<0.5, installed: 0.4.1] - Flask [required: Any, installed: 0.12.4] - click [required: >=2.0, installed: 7.0] - itsdangerous [required: >=0.21, installed: 0.24] - Jinja2 [required: >=2.4, installed: 2.8.1] - MarkupSafe [required: Any, installed: 1.0] - Werkzeug [required: >=0.7, installed: 0.14.1] - Flask-OpenID [required: ==1.2.5, installed: 1.2.5] - Flask [required: >=0.10.1, installed: 0.12.4] - click [required: >=2.0, installed: 7.0] - itsdangerous [required: >=0.21, installed: 0.24] - Jinja2 [required: >=2.4, installed: 2.8.1] - MarkupSafe [required: Any, installed: 1.0] - Werkzeug [required: >=0.7, installed: 0.14.1] - python3-openid [required: >=2.0, installed: 3.1.0] - defusedxml [required: Any, installed: 0.5.0] - Flask-SQLAlchemy [required: ==2.1, installed: 2.1] - Flask [required: >=0.10, installed: 0.12.4] - click [required: >=2.0, installed: 7.0] - itsdangerous [required: >=0.21, installed: 0.24] - Jinja2 [required: >=2.4, installed: 2.8.1] - MarkupSafe [required: Any, installed: 1.0] - Werkzeug [required: >=0.7, installed: 0.14.1] - SQLAlchemy [required: >=0.7, installed: 1.1.18] - Flask-WTF [required: ==0.14.2, installed: 0.14.2] - Flask [required: Any, installed: 0.12.4] - click [required: >=2.0, installed: 7.0] - itsdangerous [required: >=0.21, installed: 0.24]
Re: Flask-AppBuilder has pinned versions of Click & Flask-Login in 1.10.0
Thank you for the response Ash. Even with your suggestion, there appear to be version conflicts all over the place. Can you get this Pipfile to install because I cannot? *Pipfile:* [[source]] url = "https://pypi.python.org/simple; [[source]] verify_ssl = true name = "pypi" [packages] apache-airflow = {editable = true, ref = "fb5ffd146a5a33820cfa7541e5ce09098f3d541a", git = " https://github.com/apache/incubator-airflow.git;, extras = ["s3", "slack", "kubernetes", "celery", "postgres", "mongo", "crypto"]} Flask-AppBuilder="==1.11.0" [requires] python_version = "3.6" On Thu, Oct 4, 2018 at 10:50 AM Ash Berlin-Taylor wrote: > We've committed a fix for this to master and will include it in a 1.10.1 > https://github.com/apache/incubator-airflow/commit/fb5ffd146a5a33820cfa7541e5ce09098f3d541a > > > For installing in the mea time pin `Flask-AppBuilder=1.11.0' > > > On 4 Oct 2018, at 00:41, Kyle Hamlin wrote: > > > > Hi, > > > > Today I was trying to upgrade Airflow to 1.10.0 and it appears that there > > are some version conflicts with click and flask-login. I uncovered these > > because I use Pipenv to manage our project's dependencies. You can see > here > > that Flask-AppBuilder pins click==6.7 and flask-login>=0.3,<0.5 > > > > > https://github.com/dpgaspar/Flask-AppBuilder/blob/master/setup.py#L37-L47 > > > > I'm able to force pipenv to install click==6.7 because that is not pinned > > in Airflow's setup.py, but I can do nothing about flask-login because > > Airflow pins the flask-login version: > > https://github.com/apache/incubator-airflow/blob/master/setup.py#L304 > > > > This prevents me from being able to upgrade to 1.10.0. > > > > *Pipenv's Graphed project dependencies (conflicts highlighted):* > > > > apache-airflow==1.10.0 > > - alembic [required: >=0.8.3,<0.9, installed: 0.8.10] > >- Mako [required: Any, installed: 1.0.7] > > - MarkupSafe [required: >=0.9.2, installed: 1.0] > >- python-editor [required: >=0.3, installed: 1.0.3] > >- SQLAlchemy [required: >=0.7.6, installed: 1.2.12] > > - bleach [required: ==2.1.2, installed: 2.1.2] > >- html5lib [required: > >> > =0.pre,!=1.0b8,!=1.0b7,!=1.0b6,!=1.0b5,!=1.0b4,!=1.0b3,!=1.0b2,!=1.0b1, > > installed: 1.0.1] > > - six [required: >=1.9, installed: 1.11.0] > > - webencodings [required: Any, installed: 0.5.1] > >- six [required: Any, installed: 1.11.0] > > - configparser [required: >=3.5.0,<3.6.0, installed: 3.5.0] > > - croniter [required: >=0.3.17,<0.4, installed: 0.3.25] > >- python-dateutil [required: Any, installed: 2.7.3] > > - six [required: >=1.5, installed: 1.11.0] > > - dill [required: >=0.2.2,<0.3, installed: 0.2.8.2] > > - flask [required: >=0.12.4,<0.13, installed: 0.12.4] > >- click [required: >=2.0, installed: 7.0] > >- itsdangerous [required: >=0.21, installed: 0.24] > >- Jinja2 [required: >=2.4, installed: 2.8.1] > > - MarkupSafe [required: Any, installed: 1.0] > >- Werkzeug [required: >=0.7, installed: 0.14.1] > > - flask-admin [required: ==1.4.1, installed: 1.4.1] > >- Flask [required: >=0.7, installed: 0.12.4] > > - click [required: >=2.0, installed: 7.0] > > - itsdangerous [required: >=0.21, installed: 0.24] > > - Jinja2 [required: >=2.4, installed: 2.8.1] > >- MarkupSafe [required: Any, installed: 1.0] > > - Werkzeug [required: >=0.7, installed: 0.14.1] > >- wtforms [required: Any, installed: 2.2.1] > > - flask-appbuilder [required: >=1.11.1,<2.0.0, installed: 1.12.0] > >- click [required: ==6.7, installed: 7.0] > >- colorama [required: ==0.3.9, installed: 0.3.9] > >- Flask [required: >=0.10.0,<0.12.99, installed: 0.12.4] > > - click [required: >=2.0, installed: 7.0] > > - itsdangerous [required: >=0.21, installed: 0.24] > > - Jinja2 [required: >=2.4, installed: 2.8.1] > >- MarkupSafe [required: Any, installed: 1.0] > > - Werkzeug [required: >=0.7, installed: 0.14.1] > >- Flask-Babel [required: ==0.11.1, installed: 0.11.1] > > - Babel [required: >=2.3, installed: 2.6.0] > >- pytz [required: >=0a, installed: 2018.5] > > - Flask [required: Any, installed: 0.12.4] > >- click [required: >=2.0, installed: 7.0] > >- itsdangerous [required: >=0.21, installed: 0.24] > >- Jinja2 [required: >=2.4, installed: 2.8.1] > > - MarkupSafe [required: Any, installed: 1.0] > >- Werkzeug [required: >=0.7, installed: 0.14.1] > > - Jinja2 [required: >=2.5, installed: 2.8.1] > >- MarkupSafe [required: Any, installed: 1.0] > >- Flask-Login [required: >=0.3,<0.5, installed: 0.2.11] > > - Flask [required: Any, installed: 0.12.4] > >- click [required: >=2.0, installed: 7.0] > >- itsdangerous [required: >=0.21, installed: 0.24] > >- Jinja2 [required: >=2.4, installed: 2.8.1] > > - MarkupSafe [required: Any, installed: 1.0] > >- Werkzeug [required: >=0.7, installed:
Re: Flask-AppBuilder has pinned versions of Click & Flask-Login in 1.10.0
whoops remove the [[source]] at the end of the url = " https://pypi.python.org/simple; that is a typo. On Thu, Oct 4, 2018 at 11:26 AM Kyle Hamlin wrote: > Thank you for the response Ash. > > Even with your suggestion, there appear to be version conflicts all over > the place. Can you get this Pipfile to install because I cannot? > > *Pipfile:* > > [[source]] > url = "https://pypi.python.org/simple; [[source]] > verify_ssl = true > name = "pypi" > > [packages] > apache-airflow = {editable = true, ref = > "fb5ffd146a5a33820cfa7541e5ce09098f3d541a", git = " > https://github.com/apache/incubator-airflow.git;, extras = ["s3", > "slack", "kubernetes", "celery", "postgres", "mongo", "crypto"]} > Flask-AppBuilder="==1.11.0" > > [requires] > python_version = "3.6" > > > > > > > On Thu, Oct 4, 2018 at 10:50 AM Ash Berlin-Taylor wrote: > >> We've committed a fix for this to master and will include it in a 1.10.1 >> https://github.com/apache/incubator-airflow/commit/fb5ffd146a5a33820cfa7541e5ce09098f3d541a >> >> >> For installing in the mea time pin `Flask-AppBuilder=1.11.0' >> >> > On 4 Oct 2018, at 00:41, Kyle Hamlin wrote: >> > >> > Hi, >> > >> > Today I was trying to upgrade Airflow to 1.10.0 and it appears that >> there >> > are some version conflicts with click and flask-login. I uncovered these >> > because I use Pipenv to manage our project's dependencies. You can see >> here >> > that Flask-AppBuilder pins click==6.7 and flask-login>=0.3,<0.5 >> > >> > >> https://github.com/dpgaspar/Flask-AppBuilder/blob/master/setup.py#L37-L47 >> > >> > I'm able to force pipenv to install click==6.7 because that is not >> pinned >> > in Airflow's setup.py, but I can do nothing about flask-login because >> > Airflow pins the flask-login version: >> > https://github.com/apache/incubator-airflow/blob/master/setup.py#L304 >> > >> > This prevents me from being able to upgrade to 1.10.0. >> > >> > *Pipenv's Graphed project dependencies (conflicts highlighted):* >> > >> > apache-airflow==1.10.0 >> > - alembic [required: >=0.8.3,<0.9, installed: 0.8.10] >> >- Mako [required: Any, installed: 1.0.7] >> > - MarkupSafe [required: >=0.9.2, installed: 1.0] >> >- python-editor [required: >=0.3, installed: 1.0.3] >> >- SQLAlchemy [required: >=0.7.6, installed: 1.2.12] >> > - bleach [required: ==2.1.2, installed: 2.1.2] >> >- html5lib [required: >> >> >> =0.pre,!=1.0b8,!=1.0b7,!=1.0b6,!=1.0b5,!=1.0b4,!=1.0b3,!=1.0b2,!=1.0b1, >> > installed: 1.0.1] >> > - six [required: >=1.9, installed: 1.11.0] >> > - webencodings [required: Any, installed: 0.5.1] >> >- six [required: Any, installed: 1.11.0] >> > - configparser [required: >=3.5.0,<3.6.0, installed: 3.5.0] >> > - croniter [required: >=0.3.17,<0.4, installed: 0.3.25] >> >- python-dateutil [required: Any, installed: 2.7.3] >> > - six [required: >=1.5, installed: 1.11.0] >> > - dill [required: >=0.2.2,<0.3, installed: 0.2.8.2] >> > - flask [required: >=0.12.4,<0.13, installed: 0.12.4] >> >- click [required: >=2.0, installed: 7.0] >> >- itsdangerous [required: >=0.21, installed: 0.24] >> >- Jinja2 [required: >=2.4, installed: 2.8.1] >> > - MarkupSafe [required: Any, installed: 1.0] >> >- Werkzeug [required: >=0.7, installed: 0.14.1] >> > - flask-admin [required: ==1.4.1, installed: 1.4.1] >> >- Flask [required: >=0.7, installed: 0.12.4] >> > - click [required: >=2.0, installed: 7.0] >> > - itsdangerous [required: >=0.21, installed: 0.24] >> > - Jinja2 [required: >=2.4, installed: 2.8.1] >> >- MarkupSafe [required: Any, installed: 1.0] >> > - Werkzeug [required: >=0.7, installed: 0.14.1] >> >- wtforms [required: Any, installed: 2.2.1] >> > - flask-appbuilder [required: >=1.11.1,<2.0.0, installed: 1.12.0] >> >- click [required: ==6.7, installed: 7.0] >> >- colorama [required: ==0.3.9, installed: 0.3.9] >> >- Flask [required: >=0.10.0,<0.12.99, installed: 0.12.4] >> > - click [required: >=2.0, installed: 7.0] >> > - itsdangerous [required: >=0.21, installed: 0.24] >> > - Jinja2 [required: >=2.4, installed: 2.8.1] >> >- MarkupSafe [required: Any, installed: 1.0] >> > - Werkzeug [required: >=0.7, installed: 0.14.1] >> >- Flask-Babel [required: ==0.11.1, installed: 0.11.1] >> > - Babel [required: >=2.3, installed: 2.6.0] >> >- pytz [required: >=0a, installed: 2018.5] >> > - Flask [required: Any, installed: 0.12.4] >> >- click [required: >=2.0, installed: 7.0] >> >- itsdangerous [required: >=0.21, installed: 0.24] >> >- Jinja2 [required: >=2.4, installed: 2.8.1] >> > - MarkupSafe [required: Any, installed: 1.0] >> >- Werkzeug [required: >=0.7, installed: 0.14.1] >> > - Jinja2 [required: >=2.5, installed: 2.8.1] >> >- MarkupSafe [required: Any, installed: 1.0] >> >- Flask-Login [required: >=0.3,<0.5, installed: 0.2.11] >> > - Flask [required: Any, installed:
Re: Flask-AppBuilder has pinned versions of Click & Flask-Login in 1.10.0
We've committed a fix for this to master and will include it in a 1.10.1 https://github.com/apache/incubator-airflow/commit/fb5ffd146a5a33820cfa7541e5ce09098f3d541a For installing in the mea time pin `Flask-AppBuilder=1.11.0' > On 4 Oct 2018, at 00:41, Kyle Hamlin wrote: > > Hi, > > Today I was trying to upgrade Airflow to 1.10.0 and it appears that there > are some version conflicts with click and flask-login. I uncovered these > because I use Pipenv to manage our project's dependencies. You can see here > that Flask-AppBuilder pins click==6.7 and flask-login>=0.3,<0.5 > > https://github.com/dpgaspar/Flask-AppBuilder/blob/master/setup.py#L37-L47 > > I'm able to force pipenv to install click==6.7 because that is not pinned > in Airflow's setup.py, but I can do nothing about flask-login because > Airflow pins the flask-login version: > https://github.com/apache/incubator-airflow/blob/master/setup.py#L304 > > This prevents me from being able to upgrade to 1.10.0. > > *Pipenv's Graphed project dependencies (conflicts highlighted):* > > apache-airflow==1.10.0 > - alembic [required: >=0.8.3,<0.9, installed: 0.8.10] >- Mako [required: Any, installed: 1.0.7] > - MarkupSafe [required: >=0.9.2, installed: 1.0] >- python-editor [required: >=0.3, installed: 1.0.3] >- SQLAlchemy [required: >=0.7.6, installed: 1.2.12] > - bleach [required: ==2.1.2, installed: 2.1.2] >- html5lib [required: >> =0.pre,!=1.0b8,!=1.0b7,!=1.0b6,!=1.0b5,!=1.0b4,!=1.0b3,!=1.0b2,!=1.0b1, > installed: 1.0.1] > - six [required: >=1.9, installed: 1.11.0] > - webencodings [required: Any, installed: 0.5.1] >- six [required: Any, installed: 1.11.0] > - configparser [required: >=3.5.0,<3.6.0, installed: 3.5.0] > - croniter [required: >=0.3.17,<0.4, installed: 0.3.25] >- python-dateutil [required: Any, installed: 2.7.3] > - six [required: >=1.5, installed: 1.11.0] > - dill [required: >=0.2.2,<0.3, installed: 0.2.8.2] > - flask [required: >=0.12.4,<0.13, installed: 0.12.4] >- click [required: >=2.0, installed: 7.0] >- itsdangerous [required: >=0.21, installed: 0.24] >- Jinja2 [required: >=2.4, installed: 2.8.1] > - MarkupSafe [required: Any, installed: 1.0] >- Werkzeug [required: >=0.7, installed: 0.14.1] > - flask-admin [required: ==1.4.1, installed: 1.4.1] >- Flask [required: >=0.7, installed: 0.12.4] > - click [required: >=2.0, installed: 7.0] > - itsdangerous [required: >=0.21, installed: 0.24] > - Jinja2 [required: >=2.4, installed: 2.8.1] >- MarkupSafe [required: Any, installed: 1.0] > - Werkzeug [required: >=0.7, installed: 0.14.1] >- wtforms [required: Any, installed: 2.2.1] > - flask-appbuilder [required: >=1.11.1,<2.0.0, installed: 1.12.0] >- click [required: ==6.7, installed: 7.0] >- colorama [required: ==0.3.9, installed: 0.3.9] >- Flask [required: >=0.10.0,<0.12.99, installed: 0.12.4] > - click [required: >=2.0, installed: 7.0] > - itsdangerous [required: >=0.21, installed: 0.24] > - Jinja2 [required: >=2.4, installed: 2.8.1] >- MarkupSafe [required: Any, installed: 1.0] > - Werkzeug [required: >=0.7, installed: 0.14.1] >- Flask-Babel [required: ==0.11.1, installed: 0.11.1] > - Babel [required: >=2.3, installed: 2.6.0] >- pytz [required: >=0a, installed: 2018.5] > - Flask [required: Any, installed: 0.12.4] >- click [required: >=2.0, installed: 7.0] >- itsdangerous [required: >=0.21, installed: 0.24] >- Jinja2 [required: >=2.4, installed: 2.8.1] > - MarkupSafe [required: Any, installed: 1.0] >- Werkzeug [required: >=0.7, installed: 0.14.1] > - Jinja2 [required: >=2.5, installed: 2.8.1] >- MarkupSafe [required: Any, installed: 1.0] >- Flask-Login [required: >=0.3,<0.5, installed: 0.2.11] > - Flask [required: Any, installed: 0.12.4] >- click [required: >=2.0, installed: 7.0] >- itsdangerous [required: >=0.21, installed: 0.24] >- Jinja2 [required: >=2.4, installed: 2.8.1] > - MarkupSafe [required: Any, installed: 1.0] >- Werkzeug [required: >=0.7, installed: 0.14.1] >- Flask-OpenID [required: ==1.2.5, installed: 1.2.5] > - Flask [required: >=0.10.1, installed: 0.12.4] >- click [required: >=2.0, installed: 7.0] >- itsdangerous [required: >=0.21, installed: 0.24] >- Jinja2 [required: >=2.4, installed: 2.8.1] > - MarkupSafe [required: Any, installed: 1.0] >- Werkzeug [required: >=0.7, installed: 0.14.1] > - python3-openid [required: >=2.0, installed: 3.1.0] >- defusedxml [required: Any, installed: 0.5.0] >- Flask-SQLAlchemy [required: ==2.1, installed: 2.1] > - Flask [required: >=0.10, installed: 0.12.4] >- click [required: >=2.0, installed: 7.0] >- itsdangerous [required: >=0.21, installed: 0.24] >- Jinja2 [required: >=2.4, installed: 2.8.1] > -