<NME> setup.cfg
<BEF> [metadata]
name = itsdangerous
version = attr: itsdangerous.__version__
url = https://palletsprojects.com/p/itsdangerous/
project_urls =
    Documentation = https://itsdangerous.palletsprojects.com/
    Code = https://github.com/pallets/itsdangerous
    Issue tracker = https://github.com/pallets/itsdangerous/issues
license = BSD-3-Clause
license_files = LICENSE.rst
author = Armin Ronacher
author_email = armin.ronacher@active-4.com
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> update project links

<DFF> @@ -3,9 +3,13 @@ name = itsdangerous
 version = attr: itsdangerous.__version__
 url = https://palletsprojects.com/p/itsdangerous/
 project_urls =
+    Donate = https://palletsprojects.com/donate
     Documentation = https://itsdangerous.palletsprojects.com/
-    Code = https://github.com/pallets/itsdangerous
-    Issue tracker = https://github.com/pallets/itsdangerous/issues
+    Changes = https://itsdangerous.palletsprojects.com/changes/
+    Source Code = https://github.com/pallets/itsdangerous/
+    Issue Tracker = https://github.com/pallets/itsdangerous/issues/
+    Twitter = https://twitter.com/PalletsTeam
+    Chat = https://discord.gg/pallets
 license = BSD-3-Clause
 license_files = LICENSE.rst
 author = Armin Ronacher

update project links