# 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.
[tool.black]
line-length = 110
target-version = ['py37', 'py38', 'py39', 'py310']
# The build system section is needed in order to workaround the side-effect introduced by recent
# setup tools version. The recent setuptools version update (64.0.0) broke paths of editable installations
# and we have to pin it to 63.4.3 version
# The problem is tracked (and this limitation might be removed if it is solved) in:
# https://github.com/pypa/setuptools/issues/3548
[build-system]
requires = ['setuptools==63.4.3']
build-backend = "setuptools.build_meta"
[tool.isort]
add_imports = ["from __future__ import annotations"]
append_only = true
line_length = 110
combine_as_imports = true
default_section = "THIRDPARTY"
known_first_party = ["airflow", "airflow_breeze", "docker_tests", "docs", "kubernetes_tests", "tests"]
# The test_python.py is needed because adding __future__.annotations breaks runtime checks that are
# needed for the test to work
skip = ["build", ".tox", "venv", "tests/decorators/test_python.py"]
skip_glob = ["*.pyi"]
profile = "black"
