gopidesupavan commented on code in PR #47798: URL: https://github.com/apache/airflow/pull/47798#discussion_r2006611969
########## airflow-core/pyproject.toml: ########## @@ -0,0 +1,308 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +[build-system] +requires = [ + "GitPython==3.1.44", + "gitdb==4.0.12", + "hatchling==1.27.0", + "packaging==24.2", + "pathspec==0.12.1", + "pluggy==1.5.0", + "smmap==5.0.2", + "tomli==2.2.1; python_version < '3.11'", + "trove-classifiers==2025.3.13.13", +] +build-backend = "hatchling.build" + + +[project] +name = "apache-airflow-core" +description = "Core packages for Apache Airflow, schedule and API server" +readme = { file = "README.md", content-type = "text/markdown" } +license-files.globs = ["LICENSE", "3rd-party-licenses/*.txt", "NOTICE"] +requires-python = "~=3.9,<3.13" +authors = [ + { name = "Apache Software Foundation", email = "[email protected]" }, +] +maintainers = [ + { name = "Apache Software Foundation", email="[email protected]" }, +] +keywords = [ "airflow", "orchestration", "workflow", "dag", "pipelines", "automation", "data" ] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Environment :: Console", + "Environment :: Web Environment", + "Framework :: Apache Airflow", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: System :: Monitoring", +] + +dynamic = ["version"] + +dependencies = [ + "a2wsgi>=1.10.8", + # Alembic is important to handle our migrations in predictable and performant way. It is developed + # together with SQLAlchemy. Our experience with Alembic is that it very stable in minor version + # The 1.13.0 of alembic marked some migration code as SQLAlchemy 2+ only so we limit it to 1.13.1 + "alembic>=1.13.1, <2.0", + "argcomplete>=1.10", + "asgiref>=2.3.0", + "attrs>=22.1.0, !=25.2.0", + # Blinker use for signals in Flask, this is an optional dependency in Flask 2.2 and lower. + # In Flask 2.3 it becomes a mandatory dependency, and flask signals are always available. + "blinker>=1.6.2", + "cadwyn>=5.1.2", + "colorlog>=6.8.2", + "configupdater>=3.1.1", + "cron-descriptor>=1.2.24", + "croniter>=2.0.2", + "cryptography>=41.0.0", + "deprecated>=1.2.13", + "dill>=0.2.2", + # Required for python 3.9 to work with new annotations styles. Check package + # description on PyPI for more details: https://pypi.org/project/eval-type-backport/ + 'eval-type-backport>=0.2.0;python_version<"3.10"', + # 0.115.10 fastapi was a bad release that broke our API's and static checks. + # Related fastapi issue here: https://github.com/fastapi/fastapi/discussions/13431 + "fastapi[standard]>=0.112.4,!=0.115.10", + "flask-caching>=2.0.0", + # Flask-Session 0.6 add new arguments into the SqlAlchemySessionInterface constructor as well as + # all parameters now are mandatory which make AirflowDatabaseSessionInterface incompatible with this version. + "flask-session>=0.4.0,<0.6", + "flask-wtf>=1.1.0", + # Flask 2.3 is scheduled to introduce a number of deprecation removals - some of them might be breaking + # for our dependencies - notably `_app_ctx_stack` and `_request_ctx_stack` removals. + # We should remove the limitation after 2.3 is released and our dependencies are updated to handle it + "flask>=2.2.1,<2.3", + "fsspec>=2023.10.0", + "gitpython>=3.1.40", + "gunicorn>=20.1.0", + "httpx>=0.25.0", + 'importlib_metadata>=6.5;python_version<"3.12"', + "itsdangerous>=2.0", + "jinja2>=3.0.0", + "jsonschema>=4.18.0", + "lazy-object-proxy>=1.2.0", + "libcst >=1.1.0", + "linkify-it-py>=2.0.0", + "lockfile>=0.12.2", + "markdown-it-py>=2.1.0", + "markupsafe>=1.1.1", + "marshmallow-oneofschema>=2.0.1", + "mdit-py-plugins>=0.3.0", + "methodtools>=0.4.7", + "opentelemetry-api>=1.24.0", + "opentelemetry-exporter-otlp>=1.24.0", + "packaging>=23.2", + "pathspec>=0.9.0", + 'pendulum>=2.1.2,<4.0;python_version<"3.12"', + 'pendulum>=3.0.0,<4.0;python_version>="3.12"', + "pluggy>=1.5.0", + "psutil>=5.8.0", + "pydantic>=2.10.2", + # Pygments 2.19.0 improperly renders .ini files with dictionaries as values + # See https://github.com/pygments/pygments/issues/2834 + "pygments>=2.0.1,!=2.19.0", + "pyjwt>=2.10.0", + "python-daemon>=3.0.0", + "python-dateutil>=2.7.0", + "python-nvd3>=0.15.0", + "python-slugify>=5.0", + # Requests 3 if it will be released, will be heavily breaking. + "requests>=2.27.0,<3", + "requests-toolbelt>=1.0.0", + "rfc3339-validator>=0.1.4", + "rich-argparse>=1.0.0", + "rich>=13.1.0", + "setproctitle>=1.3.3", + # We use some deprecated features of sqlalchemy 2.0 and we should replace them before we can upgrade + # See https://sqlalche.me/e/b8d9 for details of deprecated features + # you can set environment variable SQLALCHEMY_WARN_20=1 to show all deprecation warnings. + # The issue tracking it is https://github.com/apache/airflow/issues/28723 + "sqlalchemy>=1.4.49,<2.0", + "sqlalchemy-jsonfield>=1.0", + "sqlalchemy-utils>=0.41.2", + "svcs>=25.1.0", + "tabulate>=0.7.5", + "tenacity>=8.0.0,!=8.2.0", + "termcolor>=2.5.0", + # Universal Pathlib 0.2.4 adds extra validation for Paths and our integration with local file paths + # Does not work with it Tracked in https://github.com/fsspec/universal_pathlib/issues/276 + "universal-pathlib>=0.2.2,!=0.2.4", + "uuid6>=2024.7.10", + # Werkzug 3 breaks Flask-Login 0.6.2 + # we should remove this limitation when FAB supports Flask 2.3 + "werkzeug>=2.0,<3", +] + + +[project.optional-dependencies] +# Aiobotocore required for AWS deferrable operators. +# There is conflict between boto3 and aiobotocore dependency botocore. +# TODO: We can remove it once boto3 and aiobotocore both have compatible botocore version or +# boto3 have native aync support and we move away from aio aiobotocore +"aiobotocore" = [ + "aiobotocore>=2.9.0", +] +"async" = [ + "eventlet>=0.33.3", + "gevent>=0.13", + "greenlet>=0.4.9", +] +"apache-atlas" = [ + "atlasclient>=0.1.2", +] +"apache-webhdfs" = [ + "hdfs[avro,dataframe,kerberos]>=2.0.4", +] +"cgroups" = [ + "cgroupspy>=0.2.2", +] +"cloudpickle" = [ + # Latest version of apache-beam requires cloudpickle~=2.2.1 + "cloudpickle>=2.2.1", +] +"github-enterprise" = [ + "apache-airflow-providers-fab", + "authlib>=1.0.0", +] +"google-auth" = [ + "apache-airflow-providers-fab", + "authlib>=1.0.0", +] +"graphviz" = [ + # The graphviz package creates friction when installing on MacOS as it needs graphviz system package to + # be installed, and it's really only used for very obscure features of Airflow, so we can skip it on MacOS + # Instead, if someone attempts to use it on MacOS, they will get explanatory error on how to install it + "graphviz>=0.12; sys_platform != 'darwin'", +] +"kerberos" = [ + "pykerberos>=1.1.13", + "requests-kerberos>=0.10.0", + "thrift-sasl>=0.2.0", +] +"ldap" = [ + "python-ldap>=3.4.4", +] +"leveldb" = [ + # The plyvel package is a huge pain when installing on MacOS - especially when Apple releases new + # OS version. It's usually next to impossible to install it at least for a few months after the new + # MacOS version is released. We can skip it on MacOS as this is an optional feature anyway. + "plyvel>=1.5.1; sys_platform != 'darwin'", +] +"otel" = [ + "opentelemetry-exporter-prometheus>=0.47b0", +] + +"pandas" = [ + # In pandas 2.2 minimal version of the sqlalchemy is 2.0 + # https://pandas.pydata.org/docs/whatsnew/v2.2.0.html#increased-minimum-versions-for-dependencies + # However Airflow not fully supports it yet: https://github.com/apache/airflow/issues/28723 + # In addition FAB also limit sqlalchemy to < 2.0 + "pandas>=1.2.5,<2.2", +] +"password" = [ + "bcrypt>=2.0.0", + "flask-bcrypt>=0.7.1", +] +"rabbitmq" = [ + "amqp>=5.2.0", +] +"s3fs" = [ + # This is required for support of S3 file system which uses aiobotocore + # which can have a conflict with boto3 as mentioned in aiobotocore extra + "s3fs>=2023.10.0", +] +"sentry" = [ + "blinker>=1.1", + # Sentry SDK 1.33 is broken when greenlets are installed and fails to import + # See https://github.com/getsentry/sentry-python/issues/2473 + "sentry-sdk>=1.32.0,!=1.33.0", +] +"statsd" = [ + "statsd>=3.3.0", +] +"uv" = [ + "uv>=0.6.3", +] + +[project.scripts] +airflow = "airflow.__main__:main" + +[project.urls] +"Bug Tracker" = "https://github.com/apache/airflow/issues" +Documentation = "https://airflow.apache.org/docs/" +Downloads = "https://archive.apache.org/dist/airflow/" +Homepage = "https://airflow.apache.org/" +"Release Notes" = "https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html" +"Slack Chat" = "https://s.apache.org/airflow-slack" +"Source Code" = "https://github.com/apache/airflow" +X = "https://x.com/ApacheAirflow" Review Comment: i think we removed X? -- 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]
