| # Example configuration for Black. |
| |
| # NOTE: you have to use single-quoted strings in TOML for regular expressions. |
| # It's the equivalent of r-strings in Python. Multiline strings are treated as |
| # verbose regular expressions by Black. Use [ ] to denote a significant space |
| # character. |
| |
| [tool.black] |
| line-length = 88 |
| target-version = ['py37', 'py38'] |
| include = '\.pyi?$' |
| extend-exclude = ''' |
| /( |
| # The following are specific to Black, you probably don't want those. |
| | blib2to3 |
| | tests/data |
| | profiling |
| )/ |
| ''' |
| # We use preview style for formatting Black itself. If you |
| # want stable formatting across releases, you should keep |
| # this off. |
| preview = true |
| |
| # Build system information and other project-specific configuration below. |
| # NOTE: You don't need this in your own Black configuration. |
| |
| [build-system] |
| requires = ["setuptools>=45.0", "setuptools_scm[toml]>=6.3.1", "wheel"] |
| build-backend = "setuptools.build_meta" |
| |
| [tool.cibuildwheel] |
| build-verbosity = 1 |
| # So these are the environments we target: |
| # - Python: CPython 3.7+ only |
| # - Architecture (64-bit only): amd64 / x86_64, universal2, and arm64 |
| # - OS: Linux (no musl), Windows, and macOS |
| build = "cp3*-*" |
| skip = ["*-manylinux_i686", "*-musllinux_*", "*-win32", "pp-*"] |
| before-build = ["pip install -r .github/mypyc-requirements.txt"] |
| # This is the bare minimum needed to run the test suite. Pulling in the full |
| # test_requirements.txt would download a bunch of other packages not necessary |
| # here and would slow down the testing step a fair bit. |
| test-requires = ["pytest>=6.1.1"] |
| test-command = 'pytest {project} -k "not incompatible_with_mypyc"' |
| test-extras = ["d"," jupyter"] |
| # Skip trying to test arm64 builds on Intel Macs. (so cross-compilation doesn't |
| # straight up crash) |
| test-skip = ["*-macosx_arm64", "*-macosx_universal2:arm64"] |
| |
| [tool.cibuildwheel.environment] |
| BLACK_USE_MYPYC = "1" |
| MYPYC_OPT_LEVEL = "3" |
| MYPYC_DEBUG_LEVEL = "0" |
| PIP_NO_BUILD_ISOLATION = "no" |
| # CPython 3.11 wheels aren't available for aiohttp and building a Cython extension |
| # from source also doesn't work. |
| AIOHTTP_NO_EXTENSIONS = "1" |
| SYSTEM_VERSION_COMPAT = "1" |
| |
| [tool.cibuildwheel.linux] |
| before-build = [ |
| "pip install -r .github/mypyc-requirements.txt", |
| "yum install -y clang gcc", |
| ] |
| |
| [tool.cibuildwheel.linux.environment] |
| BLACK_USE_MYPYC = "1" |
| MYPYC_OPT_LEVEL = "3" |
| MYPYC_DEBUG_LEVEL = "0" |
| PIP_NO_BUILD_ISOLATION = "no" |
| # Black needs Clang to compile successfully on Linux. |
| CC = "clang" |
| AIOHTTP_NO_EXTENSIONS = "1" |
| |
| [tool.isort] |
| atomic = true |
| profile = "black" |
| line_length = 88 |
| skip_gitignore = true |
| skip_glob = ["src/blib2to3", "tests/data", "profiling"] |
| known_first_party = ["black", "blib2to3", "blackd", "_black_version"] |
| |
| [tool.pytest.ini_options] |
| # Option below requires `tests/optional.py` |
| addopts = "--strict-config --strict-markers" |
| optional-tests = [ |
| "no_blackd: run when `d` extra NOT installed", |
| "no_jupyter: run when `jupyter` extra NOT installed", |
| ] |
| markers = [ |
| "incompatible_with_mypyc: run when testing mypyc compiled black" |
| ] |
| xfail_strict = true |
| filterwarnings = [ |
| "error", |
| # this is mitigated by a try/catch in https://github.com/psf/black/pull/2974/ |
| # this ignore can be removed when support for aiohttp 3.7 is dropped. |
| '''ignore:Decorator `@unittest_run_loop` is no longer needed in aiohttp 3\.8\+:DeprecationWarning''', |
| # this is mitigated by a try/catch in https://github.com/psf/black/pull/3198/ |
| # this ignore can be removed when support for aiohttp 3.x is dropped. |
| '''ignore:Middleware decorator is deprecated since 4\.0 and its behaviour is default, you can simply remove this decorator:DeprecationWarning''', |
| # this is mitigated by https://github.com/python/cpython/issues/79071 in python 3.8+ |
| # this ignore can be removed when support for 3.7 is dropped. |
| '''ignore:Bare functions are deprecated, use async ones:DeprecationWarning''', |
| # aiohttp is using deprecated cgi modules - Safe to remove when fixed: |
| # https://github.com/aio-libs/aiohttp/issues/6905 |
| '''ignore:'cgi' is deprecated and slated for removal in Python 3.13:DeprecationWarning''', |
| ] |