apache / airflow

Apache Airflow - A platform to programmatically author, schedule, and monitor workflows

Home Page:https://airflow.apache.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Minimum Python requirement should be at least 3.5.3 on PyPi due to dependencies

belidzs opened this issue · comments

Apache Airflow version: 1.10.9

Kubernetes version (if you are using kubernetes) (use kubectl version):

Environment: python 3.5.2

  • Cloud provider or hardware configuration:
  • OS (e.g. from /etc/os-release): Ubuntu 16.04.6 LTS
  • Kernel (e.g. uname -a): Linux ubuntu-1604-staging.lan 4.4.0-176-generic #206-Ubuntu SMP Fri Feb 28 05:02:04 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  • Install tools: pip 8.1.1
  • Others:

What happened:

I have installed apache-airflow[postgres] using the distribution-provided pip installer into a virtualenv which was successful. However, after running airflow or airflow initdb I get the following exception:

Traceback (most recent call last):
  File "/home/belidzs/venv/bin/airflow", line 25, in <module>
    from airflow.configuration import conf
  File "/home/belidzs/venv/lib/python3.5/site-packages/airflow/__init__.py", line 42, in <module>
    from airflow.models import DAG
  File "/home/belidzs/venv/lib/python3.5/site-packages/airflow/models/__init__.py", line 21, in <module>
    from airflow.models.baseoperator import BaseOperator, BaseOperatorLink  # noqa: F401
  File "/home/belidzs/venv/lib/python3.5/site-packages/airflow/models/baseoperator.py", line 30, in <module>
    from typing import Any, Callable, ClassVar, Dict, FrozenSet, Iterable, List, Optional, Set, Type, Union
ImportError: cannot import name 'ClassVar'

The exception is caused by depending on typing.ClassVar which was only introduced in python 3.5.3

Currently the package definition on pypi doesn't set a requirement of >=3.5.3 which it should.

What you expected to happen:

  • pip should inform me that my environment is not appropriate to install the package and decline installation
  • airflow documentation should include a section of the minimal requirements

How to reproduce it:
Install airflow with pip install apache-airflow on Python 3.5.2 then run airflow

Anything else we need to know:

Thanks for opening your first issue here! Be sure to follow the issue template!

Also it seems that 3.8 can't be used either due to this bug but you probably already know about this.

This fact would also belong to the requirements section of the documentation.

Hey @belidzs -> would you mind creating a PR for that? This is a community managed project - so anyone can fix such problems (in Docs) - there is not even a need to report it. The requirements are documented in https://github.com/apache/airflow/blob/master/README.md#stable-version-1109 - so this needs to be updated there.

@potiuk thanks for the suggestion, I just did that

I'd also update the minimal requirements in the PyPi package metadata myself but since I have no experience with PyPil I'd rather leave that for someone else.

Thanks! It needs to be done in v1-10-test branch - I will cherry-pick this change and will add the right exclusions :)

Great, thank you!