Fixed #29334 -- Updated pypi.python.org URLs to pypi.org.

This commit is contained in:
Brett Cannon 2018-04-17 15:19:29 -07:00 committed by Tim Graham
parent b3cffde555
commit 64b74804c5
32 changed files with 60 additions and 65 deletions

View File

@ -1,7 +1,7 @@
""" """
MySQL database backend for Django. MySQL database backend for Django.
Requires mysqlclient: https://pypi.python.org/pypi/mysqlclient/ Requires mysqlclient: https://pypi.org/project/mysqlclient/
""" """
import re import re

View File

@ -376,7 +376,7 @@ class ImageField(FileField):
return [ return [
checks.Error( checks.Error(
'Cannot use ImageField because Pillow is not installed.', 'Cannot use ImageField because Pillow is not installed.',
hint=('Get Pillow at https://pypi.python.org/pypi/Pillow ' hint=('Get Pillow at https://pypi.org/project/Pillow/ '
'or run command "pip install Pillow".'), 'or run command "pip install Pillow".'),
obj=self, obj=self,
id='fields.E210', id='fields.E210',

View File

@ -1,6 +1,6 @@
"""Multi-consumer multi-producer dispatching mechanism """Multi-consumer multi-producer dispatching mechanism
Originally based on pydispatch (BSD) http://pypi.python.org/pypi/PyDispatcher/2.0.1 Originally based on pydispatch (BSD) https://pypi.org/project/PyDispatcher/2.0.1/
See license.txt for original license. See license.txt for original license.
Heavily modified for Django's purposes. Heavily modified for Django's purposes.

View File

@ -1,5 +1,5 @@
""" """
Based on "python-archive" -- http://pypi.python.org/pypi/python-archive/ Based on "python-archive" -- https://pypi.org/project/python-archive/
Copyright (c) 2010 Gary Wilson Jr. <gary.wilson@gmail.com> and contributors. Copyright (c) 2010 Gary Wilson Jr. <gary.wilson@gmail.com> and contributors.

View File

@ -34,7 +34,7 @@ Test your installation by importing it in the Python interactive interpreter::
If that command doesn't raise any errors, the installation worked. If that command doesn't raise any errors, the installation worked.
.. _available on PyPI: https://pypi.python.org/pypi/reportlab .. _available on PyPI: https://pypi.org/project/reportlab/
.. _user guide: https://www.reportlab.com/docs/reportlab-userguide.pdf .. _user guide: https://www.reportlab.com/docs/reportlab-userguide.pdf
Write your view Write your view

View File

@ -40,7 +40,7 @@ To install pip on your machine, go to
https://pip.pypa.io/en/latest/installing/, and follow the ``Installing with https://pip.pypa.io/en/latest/installing/, and follow the ``Installing with
get-pip.py`` instructions. get-pip.py`` instructions.
.. _pip: https://pypi.python.org/pypi/pip .. _pip: https://pypi.org/project/pip/
Install ``virtualenv`` and ``virtualenvwrapper`` Install ``virtualenv`` and ``virtualenvwrapper``
================================================ ================================================
@ -62,8 +62,8 @@ command prompt, you'll need to activate the environment again using::
workon myproject workon myproject
.. _virtualenv: https://pypi.python.org/pypi/virtualenv .. _virtualenv: https://pypi.org/project/virtualenv/
.. _virtualenvwrapper: https://pypi.python.org/pypi/virtualenvwrapper-win .. _virtualenvwrapper: https://pypi.org/project/virtualenvwrapper-win/
Install Django Install Django
============== ==============

View File

@ -332,4 +332,4 @@ For details about the JavaScript code style used by Django, see
:doc:`javascript`. :doc:`javascript`.
.. _editorconfig: http://editorconfig.org/ .. _editorconfig: http://editorconfig.org/
.. _flake8: https://pypi.python.org/pypi/flake8 .. _flake8: https://pypi.org/project/flake8/

View File

@ -258,20 +258,20 @@ and install the Geospatial libraries</ref/contrib/gis/install/index>`.
Each of these dependencies is optional. If you're missing any of them, the Each of these dependencies is optional. If you're missing any of them, the
associated tests will be skipped. associated tests will be skipped.
.. _argon2-cffi: https://pypi.python.org/pypi/argon2_cffi .. _argon2-cffi: https://pypi.org/project/argon2_cffi/
.. _bcrypt: https://pypi.python.org/pypi/bcrypt .. _bcrypt: https://pypi.org/project/bcrypt/
.. _docutils: https://pypi.python.org/pypi/docutils .. _docutils: https://pypi.org/project/docutils/
.. _geoip2: https://pypi.python.org/pypi/geoip2 .. _geoip2: https://pypi.org/project/geoip2/
.. _jinja2: https://pypi.python.org/pypi/jinja2 .. _jinja2: https://pypi.org/project/jinja2/
.. _numpy: https://pypi.python.org/pypi/numpy .. _numpy: https://pypi.org/project/numpy/
.. _Pillow: https://pypi.python.org/pypi/Pillow/ .. _Pillow: https://pypi.org/project/Pillow/
.. _PyYAML: https://pyyaml.org/wiki/PyYAML .. _PyYAML: https://pyyaml.org/wiki/PyYAML
.. _pytz: https://pypi.python.org/pypi/pytz/ .. _pytz: https://pypi.org/project/pytz/
.. _setuptools: https://pypi.python.org/pypi/setuptools/ .. _setuptools: https://pypi.org/project/setuptools/
.. _memcached: https://memcached.org/ .. _memcached: https://memcached.org/
.. _gettext: https://www.gnu.org/software/gettext/manual/gettext.html .. _gettext: https://www.gnu.org/software/gettext/manual/gettext.html
.. _selenium: https://pypi.python.org/pypi/selenium .. _selenium: https://pypi.org/project/selenium/
.. _sqlparse: https://pypi.python.org/pypi/sqlparse .. _sqlparse: https://pypi.org/project/sqlparse/
.. _pip requirements files: https://pip.pypa.io/en/latest/user_guide/#requirements-files .. _pip requirements files: https://pip.pypa.io/en/latest/user_guide/#requirements-files
Code coverage Code coverage

View File

@ -474,11 +474,11 @@ Spelling check
Before you commit your docs, it's a good idea to run the spelling checker. Before you commit your docs, it's a good idea to run the spelling checker.
You'll need to install a couple packages first: You'll need to install a couple packages first:
* `pyenchant <https://pypi.python.org/pypi/pyenchant/>`_ (which requires * `pyenchant <https://pypi.org/project/pyenchant/>`_ (which requires
`enchant <https://www.abisource.com/projects/enchant/>`_) `enchant <https://www.abisource.com/projects/enchant/>`_)
* `sphinxcontrib-spelling * `sphinxcontrib-spelling
<https://pypi.python.org/pypi/sphinxcontrib-spelling/>`_ <https://pypi.org/project/sphinxcontrib-spelling/>`_
Then from the ``docs`` directory, run ``make spelling``. Wrong words (if any) Then from the ``docs`` directory, run ``make spelling``. Wrong words (if any)
along with the file and line number where they occur will be saved to along with the file and line number where they occur will be saved to

View File

@ -632,9 +632,6 @@ details on these changes.
* Support for the Python Imaging Library (PIL) module will be removed, as it * Support for the Python Imaging Library (PIL) module will be removed, as it
no longer appears to be actively maintained & does not work on Python 3. no longer appears to be actively maintained & does not work on Python 3.
You are advised to install `Pillow`_, which should be used instead.
.. _`Pillow`: https://pypi.python.org/pypi/Pillow
* The following private APIs will be removed: * The following private APIs will be removed:

View File

@ -309,7 +309,7 @@ Now you're ready to actually put the release out there. To do this:
This just tests that the tarballs are available (i.e. redirects are up) and This just tests that the tarballs are available (i.e. redirects are up) and
that they install correctly, but it'll catch silly mistakes. that they install correctly, but it'll catch silly mistakes.
__ https://pypi.python.org/pypi/virtualenvwrapper __ https://pypi.org/project/virtualenvwrapper/
#. Ask a few people on IRC to verify the checksums by visiting the checksums #. Ask a few people on IRC to verify the checksums by visiting the checksums
file (e.g. https://www.djangoproject.com/m/pgp/Django-1.5b1.checksum.txt) file (e.g. https://www.djangoproject.com/m/pgp/Django-1.5b1.checksum.txt)

View File

@ -133,7 +133,7 @@ On the day of disclosure, we will take the following steps:
4. Post a notice to the |django-announce| and oss-security@lists.openwall.com 4. Post a notice to the |django-announce| and oss-security@lists.openwall.com
mailing lists that links to the blog post. mailing lists that links to the blog post.
.. _the Python Package Index: https://pypi.python.org/pypi .. _the Python Package Index: https://pypi.org/
.. _the official Django development blog: https://www.djangoproject.com/weblog/ .. _the official Django development blog: https://www.djangoproject.com/weblog/
If a reported issue is believed to be particularly time-sensitive -- If a reported issue is believed to be particularly time-sensitive --

View File

@ -17,12 +17,12 @@ Python and Django projects share common problems. Wouldn't it be great if we
could save some of this repeated work? could save some of this repeated work?
Reusability is the way of life in Python. `The Python Package Index (PyPI) Reusability is the way of life in Python. `The Python Package Index (PyPI)
<https://pypi.python.org/pypi>`_ has a vast range of packages you can use in <https://pypi.org/>`_ has a vast range of packages you can use in your own
your own Python programs. Check out `Django Packages Python programs. Check out `Django Packages <https://djangopackages.org>`_ for
<https://djangopackages.org>`_ for existing reusable apps you could incorporate existing reusable apps you could incorporate in your project. Django itself is
in your project. Django itself is also just a Python package. This means that also just a Python package. This means that you can take existing Python
you can take existing Python packages or Django apps and compose them into your packages or Django apps and compose them into your own web project. You only
own web project. You only need to write the parts that make your project unique. need to write the parts that make your project unique.
Let's say you were starting a new project that needed a polls app like the one Let's say you were starting a new project that needed a polls app like the one
we've been working on. How do you make this app reusable? Luckily, you're well we've been working on. How do you make this app reusable? Luckily, you're well
@ -110,8 +110,8 @@ two packages now. If you need help, you can refer to :ref:`how to install
Django with pip<installing-official-release>`. You can install ``setuptools`` Django with pip<installing-official-release>`. You can install ``setuptools``
the same way. the same way.
.. _setuptools: https://pypi.python.org/pypi/setuptools .. _setuptools: https://pypi.org/project/setuptools/
.. _pip: https://pypi.python.org/pypi/pip .. _pip: https://pypi.org/project/pip/
Packaging your app Packaging your app
================== ==================
@ -288,8 +288,6 @@ working. We'll now fix this by installing our new ``django-polls`` package.
pip uninstall django-polls pip uninstall django-polls
.. _pip: https://pypi.python.org/pypi/pip
Publishing your app Publishing your app
=================== ===================

View File

@ -18,7 +18,7 @@ Additionally, it is recommended to install the `libmaxminddb C library`__, so
that ``geoip2`` can leverage the C library's faster speed. that ``geoip2`` can leverage the C library's faster speed.
__ https://geoip2.readthedocs.io/ __ https://geoip2.readthedocs.io/
__ https://pypi.python.org/pypi/geoip2 __ https://pypi.org/project/geoip2/
__ https://dev.maxmind.com/geoip/geoip2/geolite2/ __ https://dev.maxmind.com/geoip/geoip2/geolite2/
__ https://github.com/maxmind/libmaxminddb __ https://github.com/maxmind/libmaxminddb

View File

@ -321,7 +321,7 @@ MySQL has a couple drivers that implement the Python Database API described in
require the MySQL client library or any Python modules outside the standard require the MySQL client library or any Python modules outside the standard
library. library.
.. _mysqlclient: https://pypi.python.org/pypi/mysqlclient .. _mysqlclient: https://pypi.org/project/mysqlclient/
.. _MySQL Connector/Python: https://dev.mysql.com/downloads/connector/python .. _MySQL Connector/Python: https://dev.mysql.com/downloads/connector/python
These drivers are thread-safe and provide connection pooling. These drivers are thread-safe and provide connection pooling.
@ -919,7 +919,7 @@ unofficial backends, along with any support queries, should be directed to
the support channels provided by each 3rd party project. the support channels provided by each 3rd party project.
.. _SAP SQL Anywhere: https://github.com/sqlanywhere/sqlany-django .. _SAP SQL Anywhere: https://github.com/sqlanywhere/sqlany-django
.. _IBM DB2: https://pypi.python.org/pypi/ibm_db/ .. _IBM DB2: https://pypi.org/project/ibm_db/
.. _Microsoft SQL Server: https://django-mssql.readthedocs.io/en/latest/ .. _Microsoft SQL Server: https://django-mssql.readthedocs.io/en/latest/
.. _Firebird: https://github.com/maxirobaina/django-firebird .. _Firebird: https://github.com/maxirobaina/django-firebird
.. _ODBC: https://github.com/lionheart/django-pyodbc/ .. _ODBC: https://github.com/lionheart/django-pyodbc/

View File

@ -856,7 +856,7 @@ second). This offers better scaling to large projects, reduction in response
time to code modification, more robust change detection, and battery usage time to code modification, more robust change detection, and battery usage
reduction. reduction.
.. _pyinotify: https://pypi.python.org/pypi/pyinotify/ .. _pyinotify: https://pypi.org/project/pyinotify/
When you start the server, and each time you change Python code while the When you start the server, and each time you change Python code while the
server is running, the system check framework will check your entire Django server is running, the system check framework will check your entire Django

View File

@ -275,7 +275,7 @@ be removed (elided) when :ref:`squashing migrations <migration-squashing>`.
want the operation not to do anything in the given direction. This is want the operation not to do anything in the given direction. This is
especially useful in making the operation reversible. especially useful in making the operation reversible.
.. _sqlparse: https://pypi.python.org/pypi/sqlparse .. _sqlparse: https://pypi.org/project/sqlparse/
``RunPython`` ``RunPython``
------------- -------------

View File

@ -657,7 +657,7 @@ escaping HTML.
the return value will be ``"Joel is a slug"``. the return value will be ``"Joel is a slug"``.
If you are looking for a more robust solution, take a look at the `bleach If you are looking for a more robust solution, take a look at the `bleach
<https://pypi.python.org/pypi/bleach>`_ Python library. <https://pypi.org/project/bleach/>`_ Python library.
.. function:: html_safe() .. function:: html_safe()

View File

@ -576,7 +576,7 @@ It's automatically installed along with Django.
Support for ``settings.TIME_ZONE = None`` is removed as the behavior isn't Support for ``settings.TIME_ZONE = None`` is removed as the behavior isn't
commonly used and is questionably useful. If you want to automatically detect commonly used and is questionably useful. If you want to automatically detect
the timezone based on the system timezone, you can use `tzlocal the timezone based on the system timezone, you can use `tzlocal
<https://pypi.python.org/pypi/tzlocal>`_:: <https://pypi.org/project/tzlocal/>`_::
from tzlocal import get_localzone from tzlocal import get_localzone

View File

@ -133,7 +133,7 @@ wherever you would have historically used::
If you want to continue to use the base unittest library, you can -- If you want to continue to use the base unittest library, you can --
you just won't get any of the nice new unittest2 features. you just won't get any of the nice new unittest2 features.
.. _unittest2: https://pypi.python.org/pypi/unittest2 .. _unittest2: https://pypi.org/project/unittest2/
Transaction context managers Transaction context managers
---------------------------- ----------------------------

View File

@ -261,8 +261,8 @@ Minor features
`PIL`_ is pending deprecation (support to be removed in Django 1.8). `PIL`_ is pending deprecation (support to be removed in Django 1.8).
To upgrade, you should **first** uninstall PIL, **then** install Pillow. To upgrade, you should **first** uninstall PIL, **then** install Pillow.
.. _`Pillow`: https://pypi.python.org/pypi/Pillow .. _`Pillow`: https://pypi.org/project/Pillow/
.. _`PIL`: https://pypi.python.org/pypi/PIL .. _`PIL`: https://pypi.org/project/PIL/
* :class:`~django.forms.ModelForm` accepts several new ``Meta`` * :class:`~django.forms.ModelForm` accepts several new ``Meta``
options. options.

View File

@ -715,7 +715,7 @@ Management Commands
filesystem for changes every second. That caused a small delay before filesystem for changes every second. That caused a small delay before
reloads and reduced battery life on laptops. reloads and reduced battery life on laptops.
.. _pyinotify: https://pypi.python.org/pypi/pyinotify .. _pyinotify: https://pypi.org/project/pyinotify/
* In addition, the development server automatically reloads when a * In addition, the development server automatically reloads when a
translation file is updated, i.e. after running translation file is updated, i.e. after running
@ -737,7 +737,7 @@ Management Commands
:class:`~django.db.migrations.operations.RunSQL` operation of migrations, :class:`~django.db.migrations.operations.RunSQL` operation of migrations,
which benefits from the improved behavior. which benefits from the improved behavior.
.. _sqlparse: https://pypi.python.org/pypi/sqlparse .. _sqlparse: https://pypi.org/project/sqlparse/
Models Models
~~~~~~ ~~~~~~
@ -1202,7 +1202,7 @@ a :exc:`ValueError` when encountering them, you will have to install pytz_. You
may be affected by this problem if you use Django's time zone-related date may be affected by this problem if you use Django's time zone-related date
formats or :mod:`django.contrib.syndication`. formats or :mod:`django.contrib.syndication`.
.. _pytz: https://pypi.python.org/pypi/pytz/ .. _pytz: https://pypi.org/project/pytz/
``remove()`` and ``clear()`` methods of related managers ``remove()`` and ``clear()`` methods of related managers
-------------------------------------------------------- --------------------------------------------------------

View File

@ -72,7 +72,7 @@ provides several security enhancements to the request/response cycle. The new
:option:`check --deploy` option allows you to check your production settings :option:`check --deploy` option allows you to check your production settings
file for ways to increase the security of your site. file for ways to increase the security of your site.
.. _django-secure: https://pypi.python.org/pypi/django-secure .. _django-secure: https://pypi.org/project/django-secure/
New PostgreSQL specific functionality New PostgreSQL specific functionality
------------------------------------- -------------------------------------
@ -1493,7 +1493,7 @@ in Django 1.10. The functionality it provided (validating checksum using the
Luhn algorithm) was undocumented and not used in Django. The module has been Luhn algorithm) was undocumented and not used in Django. The module has been
moved to the `django-localflavor`_ package (version 1.1+). moved to the `django-localflavor`_ package (version 1.1+).
.. _django-localflavor: https://pypi.python.org/pypi/django-localflavor .. _django-localflavor: https://pypi.org/project/django-localflavor/
``InlineAdminForm.original_content_type_id`` ``InlineAdminForm.original_content_type_id``
-------------------------------------------- --------------------------------------------

View File

@ -40,7 +40,7 @@ invalidating caches.
This functionality from the `django-transaction-hooks`_ package has been This functionality from the `django-transaction-hooks`_ package has been
integrated into Django. integrated into Django.
.. _django-transaction-hooks: https://pypi.python.org/pypi/django-transaction-hooks .. _django-transaction-hooks: https://pypi.org/project/django-transaction-hooks/
Password validation Password validation
------------------- -------------------

View File

@ -320,8 +320,8 @@ Include any other hashers that your site uses in this list.
.. _pbkdf2: https://en.wikipedia.org/wiki/PBKDF2 .. _pbkdf2: https://en.wikipedia.org/wiki/PBKDF2
.. _nist: https://dx.doi.org/10.6028/NIST.SP.800-132 .. _nist: https://dx.doi.org/10.6028/NIST.SP.800-132
.. _bcrypt: https://en.wikipedia.org/wiki/Bcrypt .. _bcrypt: https://en.wikipedia.org/wiki/Bcrypt
.. _`bcrypt library`: https://pypi.python.org/pypi/bcrypt/ .. _`bcrypt library`: https://pypi.org/project/bcrypt/
.. _`argon2-cffi library`: https://pypi.python.org/pypi/argon2_cffi/ .. _`argon2-cffi library`: https://pypi.org/project/argon2_cffi/
.. _argon2: https://en.wikipedia.org/wiki/Argon2 .. _argon2: https://en.wikipedia.org/wiki/Argon2
.. _`Password Hashing Competition`: https://password-hashing.net .. _`Password Hashing Competition`: https://password-hashing.net

View File

@ -79,8 +79,8 @@ After installing Memcached itself, you'll need to install a Memcached
binding. There are several Python Memcached bindings available; the binding. There are several Python Memcached bindings available; the
two most common are `python-memcached`_ and `pylibmc`_. two most common are `python-memcached`_ and `pylibmc`_.
.. _`python-memcached`: https://pypi.python.org/pypi/python-memcached .. _`python-memcached`: https://pypi.org/project/python-memcached/
.. _`pylibmc`: https://pypi.python.org/pypi/pylibmc .. _`pylibmc`: https://pypi.org/project/pylibmc/
To use Memcached with Django: To use Memcached with Django:

View File

@ -14,7 +14,7 @@ and cultures.
* `GitHub <https://github.com/django/django-localflavor>`__ * `GitHub <https://github.com/django/django-localflavor>`__
* `Documentation <https://django-localflavor.readthedocs.io/>`__ * `Documentation <https://django-localflavor.readthedocs.io/>`__
* `PyPI <https://pypi.python.org/pypi/django-localflavor>`__ * `PyPI <https://pypi.org/project/django-localflavor/>`__
Comments Comments
======== ========
@ -26,7 +26,7 @@ product like Disqus.
* `GitHub <https://github.com/django/django-contrib-comments>`__ * `GitHub <https://github.com/django/django-contrib-comments>`__
* `Documentation <https://django-contrib-comments.readthedocs.io/>`__ * `Documentation <https://django-contrib-comments.readthedocs.io/>`__
* `PyPI <https://pypi.python.org/pypi/django-contrib-comments>`__ * `PyPI <https://pypi.org/project/django-contrib-comments/>`__
Formtools Formtools
========= =========
@ -35,4 +35,4 @@ Formtools
* `GitHub <https://github.com/django/django-formtools>`__ * `GitHub <https://github.com/django/django-formtools>`__
* `Documentation <https://django-formtools.readthedocs.io/>`__ * `Documentation <https://django-formtools.readthedocs.io/>`__
* `PyPI <https://pypi.python.org/pypi/django-formtools>`__ * `PyPI <https://pypi.org/project/django-formtools/>`__

View File

@ -421,7 +421,7 @@ Working with lazy translation objects
The result of a ``gettext_lazy()`` call can be used wherever you would use a The result of a ``gettext_lazy()`` call can be used wherever you would use a
string (a :class:`str` object) in other Django code, but it may not work with string (a :class:`str` object) in other Django code, but it may not work with
arbitrary Python code. For example, the following won't work because the arbitrary Python code. For example, the following won't work because the
`requests <https://pypi.python.org/pypi/requests/>`_ library doesn't handle `requests <https://pypi.org/project/requests/>`_ library doesn't handle
``gettext_lazy`` objects:: ``gettext_lazy`` objects::
body = gettext_lazy("I \u2764 Django") # (unicode :heart:) body = gettext_lazy("I \u2764 Django") # (unicode :heart:)

View File

@ -648,7 +648,7 @@ Python logging module.
subclass the :class:`~django.utils.log.AdminEmailHandler` class and subclass the :class:`~django.utils.log.AdminEmailHandler` class and
override this method. override this method.
.. _Sentry: https://pypi.python.org/pypi/sentry .. _Sentry: https://pypi.org/project/sentry/
Filters Filters
------- -------

View File

@ -716,4 +716,4 @@ For more options like annotated HTML listings detailing missed lines, see the
`coverage.py`_ docs. `coverage.py`_ docs.
.. _coverage.py: https://coverage.readthedocs.io/ .. _coverage.py: https://coverage.readthedocs.io/
.. _install coverage.py: https://pypi.python.org/pypi/coverage .. _install coverage.py: https://pypi.org/project/coverage/

View File

@ -932,7 +932,7 @@ example above is just a tiny fraction of what the Selenium client can do; check
out the `full reference`_ for more details. out the `full reference`_ for more details.
.. _Selenium: http://seleniumhq.org/ .. _Selenium: http://seleniumhq.org/
.. _selenium package: https://pypi.python.org/pypi/selenium .. _selenium package: https://pypi.org/project/selenium/
.. _full reference: https://selenium-python.readthedocs.io/api.html .. _full reference: https://selenium-python.readthedocs.io/api.html
.. _Firefox: https://www.mozilla.com/firefox/ .. _Firefox: https://www.mozilla.com/firefox/

View File

@ -590,7 +590,7 @@ class ImageFieldTests(SimpleTestCase):
expected = [] if pillow_installed else [ expected = [] if pillow_installed else [
Error( Error(
'Cannot use ImageField because Pillow is not installed.', 'Cannot use ImageField because Pillow is not installed.',
hint=('Get Pillow at https://pypi.python.org/pypi/Pillow ' hint=('Get Pillow at https://pypi.org/project/Pillow/ '
'or run command "pip install Pillow".'), 'or run command "pip install Pillow".'),
obj=field, obj=field,
id='fields.E210', id='fields.E210',