[flake8]
max-line-length = 79
select =
    # flake8 default
    C90, E, F, W,
    # docstring-convention=numpy
    D100, D101, D102, D103, D104, D105, D106,
    D200, D201, D202, D204, D205, D206, D207, D208,
    D209, D210, D211, D214, D215,
    D300, D301, D302,
    D400, D401, D403, D404, D405, D406, D407, D408,
    D409, D410, D411, D412, D414,
    # matplotlib-specific extra pydocstyle errors
    D213,
ignore =
    # flake8 default
    E121,E123,E126,E226,E24,E704,W503,W504,
    # Additional ignores:
    E127, E131,
    E266,
    E305, E306,
    E722, E741,
    F841,
    # Some new flake8 ignores:
    N801, N802, N803, N806, N812,
    # pydocstyle
    D100, D101, D102, D103, D104, D105, D106, D107,
    D200, D202, D203, D204, D205, D207, D212,
    D301,
    D400, D401, D402, D403, D404, D413,

exclude =
    .git
    build
    doc/gallery
    doc/tutorials
    # External files.
    tools/gh_api.py
    tools/github_stats.py
    .tox
    .eggs

per-file-ignores =
    setup.py: E402
    tests.py: F401

    lib/matplotlib/__init__.py: E402, F401
    lib/matplotlib/_api/__init__.py: F401
    lib/matplotlib/_cm.py: E122, E202, E203, E302
    lib/matplotlib/_mathtext.py: E221, E251
    lib/matplotlib/_mathtext_data.py: E122, E203, E261
    lib/matplotlib/_animation_data.py: E501
    lib/matplotlib/axes/__init__.py: F401, F403
    lib/matplotlib/backends/backend_template.py: F401
    lib/matplotlib/backends/qt_editor/formlayout.py: F401, F403
    lib/matplotlib/font_manager.py: E501
    lib/matplotlib/image.py: F401, F403
    lib/matplotlib/mathtext.py: E221, E251
    lib/matplotlib/pylab.py: F401, F403
    lib/matplotlib/pyplot.py: F401, F811
    lib/matplotlib/tests/test_mathtext.py: E501
    lib/matplotlib/transforms.py: E201, E202, E203
    lib/matplotlib/tri/triinterpolate.py: E201, E221
    lib/mpl_toolkits/axes_grid1/axes_size.py: E272
    lib/mpl_toolkits/axisartist/__init__.py: F401
    lib/mpl_toolkits/axisartist/angle_helper.py: E221
    lib/pylab.py: F401, F403

    doc/conf.py: E402
    tutorials/advanced/path_tutorial.py: E402
    tutorials/advanced/patheffects_guide.py: E402
    tutorials/advanced/transforms_tutorial.py: E402, E501
    tutorials/colors/colormaps.py: E501
    tutorials/colors/colors.py: E402
    tutorials/colors/colormap-manipulation.py: E402
    tutorials/intermediate/artists.py: E402
    tutorials/intermediate/constrainedlayout_guide.py: E402
    tutorials/intermediate/legend_guide.py: E402
    tutorials/intermediate/tight_layout_guide.py: E402
    tutorials/introductory/customizing.py: E501
    tutorials/introductory/images.py: E402, E501
    tutorials/introductory/pyplot.py: E402, E501
    tutorials/introductory/sample_plots.py: E501
    tutorials/introductory/quick_start.py: E703
    tutorials/text/annotations.py: E402, E501
    tutorials/text/text_intro.py: E402
    tutorials/text/text_props.py: E501
    tutorials/text/usetex.py: E501
    tutorials/toolkits/axes_grid.py: E501
    tutorials/toolkits/axisartist.py: E501

    examples/animation/frame_grabbing_sgskip.py: E402
    examples/lines_bars_and_markers/marker_reference.py: E402
    examples/images_contours_and_fields/tricontour_demo.py: E201
    examples/images_contours_and_fields/tripcolor_demo.py: E201
    examples/images_contours_and_fields/triplot_demo.py: E201
    examples/misc/print_stdout_sgskip.py: E402
    examples/misc/table_demo.py: E201
    examples/style_sheets/bmh.py: E501
    examples/style_sheets/plot_solarizedlight2.py: E501
    examples/subplots_axes_and_figures/demo_constrained_layout.py: E402
    examples/text_labels_and_annotations/custom_legends.py: E402
    examples/ticks/date_concise_formatter.py: E402
    examples/ticks/date_formatters_locators.py: F401
    examples/user_interfaces/embedding_in_gtk3_panzoom_sgskip.py: E402
    examples/user_interfaces/embedding_in_gtk3_sgskip.py: E402
    examples/user_interfaces/embedding_in_gtk4_panzoom_sgskip.py: E402
    examples/user_interfaces/embedding_in_gtk4_sgskip.py: E402
    examples/user_interfaces/gtk3_spreadsheet_sgskip.py: E402
    examples/user_interfaces/gtk4_spreadsheet_sgskip.py: E402
    examples/user_interfaces/mpl_with_glade3_sgskip.py: E402
    examples/user_interfaces/pylab_with_gtk3_sgskip.py: E402
    examples/user_interfaces/pylab_with_gtk4_sgskip.py: E402
    examples/user_interfaces/toolmanager_sgskip.py: E402
    examples/userdemo/pgf_preamble_sgskip.py: E402
