IanLee1521: Can you also update the error list page in the docs to say this is in the default list?
diff --git a/docs/intro.rst b/docs/intro.rst
index e26daf7..2ce1eb6 100644
--- a/docs/intro.rst
+++ b/docs/intro.rst
@@ -392,7 +392,7 @@ This is the current list of error and warning codes:
 +------------+----------------------------------------------------------------------+
 | **W5**     | *Line break warning*                                                 |
 +------------+----------------------------------------------------------------------+
-| W503       | line break occurred before a binary operator                         |
+| W503 (*)   | line break occurred before a binary operator                         |
 +------------+----------------------------------------------------------------------+
 +------------+----------------------------------------------------------------------+
 | **W6**     | *Deprecation warning*                                                |
diff --git a/pep8.py b/pep8.py
index 8ec21e1..499c370 100755
--- a/pep8.py
+++ b/pep8.py
@@ -65,7 +65,7 @@ except ImportError:
 __version__ = '1.8.0-dev'
 
 DEFAULT_EXCLUDE = '.svn,CVS,.bzr,.hg,.git,__pycache__,.tox'
-DEFAULT_IGNORE = 'E121,E123,E126,E226,E24,E704'
+DEFAULT_IGNORE = 'E121,E123,E126,E226,E24,E704,W503'
 try:
     if sys.platform == 'win32':
         USER_CONFIG = os.path.expanduser(r'~\.pep8')

Update handling of breaking around binary operators: W503 vs W504
Based on the discussion that started on python-dev [1] and ended with an update to PEP-8 [2][3], the logic for allowing (preferring really) breaks to occur before rather than after binary operators.

[1] https://mail.python.org/pipermail/python-ideas/2016-April/039774.html
[2] http://bugs.python.org/issue26763
[3] https://hg.python.org/peps/rev/3857909d7956

diff --git a/testsuite/test_api.py b/testsuite/test_api.py
index 1cb0d4b..0b83c4e 100644
--- a/testsuite/test_api.py
+++ b/testsuite/test_api.py
@@ -181,7 +181,7 @@ class APITestCase(unittest.TestCase):
         self.assertEqual(options.select, ())
         self.assertEqual(
             options.ignore,
-            ('E121', 'E123', 'E126', 'E226', 'E24', 'E704')
+            ('E121', 'E123', 'E126', 'E226', 'E24', 'E704', 'W503')
         )
 
         options = parse_argv('--doctest').options

pip install -e .
parse_log_pytest
pytest
tox pytest
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
cachetools==5.5.2
chardet==5.2.0
colorama==0.4.6
distlib==0.3.9
exceptiongroup @ file:///croot/exceptiongroup_1706031385326/work
filelock==3.18.0
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
packaging @ file:///croot/packaging_1734472117206/work
-e git+https://github.com/PyCQA/pycodestyle.git@eae54ff0e4c50ccc4507e95a2f8689fefb89e70e#egg=pep8
platformdirs==4.3.7
pluggy @ file:///croot/pluggy_1733169602837/work
pyproject-api==1.9.0
pytest @ file:///croot/pytest_1738938843180/work
tomli==2.2.1
tox==4.25.0
typing_extensions==4.13.0
virtualenv==20.30.0

name: pycodestyle
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - exceptiongroup=1.2.0=py39h06a4308_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pip=25.0=py39h06a4308_0
  - pluggy=1.5.0=py39h06a4308_0
  - pytest=8.3.4=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - cachetools==5.5.2
      - chardet==5.2.0
      - colorama==0.4.6
      - distlib==0.3.9
      - filelock==3.18.0
      - platformdirs==4.3.7
      - pyproject-api==1.9.0
      - tomli==2.2.1
      - tox==4.25.0
      - typing-extensions==4.13.0
      - virtualenv==20.30.0
prefix: /opt/conda/envs/pycodestyle

testsuite/test_api.py::APITestCase::test_styleguide_ignore_code
testsuite/test_api.py::APITestCase::test_check_nullbytes testsuite/test_api.py::APITestCase::test_check_unicode testsuite/test_api.py::APITestCase::test_register_ast_check testsuite/test_api.py::APITestCase::test_register_invalid_check testsuite/test_api.py::APITestCase::test_register_logical_check testsuite/test_api.py::APITestCase::test_register_physical_check testsuite/test_api.py::APITestCase::test_styleguide testsuite/test_api.py::APITestCase::test_styleguide_check_files testsuite/test_api.py::APITestCase::test_styleguide_checks testsuite/test_api.py::APITestCase::test_styleguide_continuation_line_outdented testsuite/test_api.py::APITestCase::test_styleguide_excluded testsuite/test_api.py::APITestCase::test_styleguide_init_report testsuite/test_api.py::APITestCase::test_styleguide_options testsuite/test_api.py::APITestCase::test_styleguide_unmatched_triple_quotes
pep8.py docs/intro.rst
pep8.py docs/intro.rst