<NME> setup.cfg
<BEF> [metadata]
name = itsdangerous
version = attr: itsdangerous.__version__
url = https://palletsprojects.com/p/itsdangerous/
project_urls =
    Donate = https://palletsprojects.com/donate
    Documentation = https://itsdangerous.palletsprojects.com/
[bdist_wheel]
universal = 1

[upload_docs]
upload-dir = docs/_build/html

maintainer = Pallets
maintainer_email = contact@palletsprojects.com
description = Safely pass data to untrusted environments and back.
long_description = file: README.rst
long_description_content_type = text/x-rst
classifiers =
    Development Status :: 5 - Production/Stable
    Intended Audience :: Developers
    License :: OSI Approved :: BSD License
    Operating System :: OS Independent
    Programming Language :: Python

[options]
packages = find:
package_dir = = src
include_package_data = True
python_requires = >= 3.7

[options.packages.find]
where = src

[tool:pytest]
testpaths = tests
filterwarnings =
    error

[coverage:run]
branch = True
source =
    itsdangerous
    tests

[coverage:paths]
source =
    src
    */site-packages

[flake8]
# B = bugbear
# E = pycodestyle errors
# F = flake8 pyflakes
# W = pycodestyle warnings
# B9 = bugbear opinions
# ISC = implicit str concat
select = B, E, F, W, B9, ISC
ignore =
    # slice notation whitespace, invalid
    E203
    # line length, handled by bugbear B950
    E501
    # bare except, handled by bugbear B001
    E722
    # bin op line break, invalid
    W503
# up to 88 allowed by bugbear B950
max-line-length = 80
per-file-ignores =
    # __init__ exports names
    src/itsdangerous/__init__.py: F401

[mypy]
files = src/itsdangerous
python_version = 3.7
show_error_codes = True
disallow_subclassing_any = True
disallow_untyped_calls = True
disallow_untyped_defs = True
disallow_incomplete_defs = True
no_implicit_optional = True
local_partial_types = True
no_implicit_reexport = True
strict_equality = True
warn_redundant_casts = True
warn_unused_configs = True
warn_unused_ignores = True
warn_return_any = True
warn_unreachable = True

[mypy-itsdangerous.jws]
disallow_untyped_defs = False

<MSG> Add license_file to setup.cfg metadata (#70)

Without this, the LICENSE file is never included in the built wheels: this makes it harder for users to comply with the license.
With this addition a file LICENSE.txt will be created in the `xxx.dist-info` directory with the content of the `license_file` file, e.g. the top level LICENSE.
<DFF> @@ -8,6 +8,9 @@ release = egg_info -RDb ''
 [bdist_wheel]
 universal = 1
 
+[metadata]
+license_file = LICENSE
+
 [upload_docs]
 upload-dir = docs/_build/html
 

Add license_file to setup.cfg metadata (#70)