[tool.black]
line-length = 80
target-version = [
  "py37",
  "py38",
  "py39",
  "py310",
  "py311",
]
extend-exclude = '''
# A regex preceded with ^/ will apply only to files and directories
# in the root of the project.
(
  site-packages
  | test/cpp/naming/resolver_component_tests_runner.py  # AUTO-GENERATED
  # AUTO-GENERATED from a template:
  | grpc_version.py
  | src/python/grpcio/grpc_core_dependencies.py
  | src/python/grpcio/grpc/_grpcio_metadata.py
  # AUTO-GENERATED BY make_grpcio_tools.py
  | tools/distrib/python/grpcio_tools/protoc_lib_deps.py
  # AUTO-GENERATED BY make_grpcio_observability.py
  | src/python/grpcio_observability/observability_lib_deps.py
  | .*_pb2.py  # autogenerated Protocol Buffer files
  | .*_pb2_grpc.py  # autogenerated Protocol Buffer gRPC files
  # AUTO-GENERATED By tools/distrib/python/xds_protos/build.py
  | tools/distrib/python/xds_protos/.*
)
'''

[tool.isort]
profile = "black"
line_length = 80
src_paths = [
    "examples/python/data_transmission",
    "examples/python/async_streaming",
    "src/python/grpcio_tests",
    "tools/run_tests",
]
known_first_party = [
    "examples",
    "src",
]
known_third_party = ["grpc"]
skip_glob = [
    "*/third_party/*",
    "*/env/*",
    "*pb2*.py",
    "*pb2*.pyi",
    "**/site-packages/**/*",
    "tools/distrib/python/xds_protos/*",
]
single_line_exclusions = ["typing"]
force_single_line = true
force_sort_within_sections = true