Sphinx is Python-3-only and therefore is not a universal wheel. It
should still distribute a 'py3' wheel, just not a universal one.
From https://wheel.readthedocs.io/en/stable/user_guide.html
> If your project contains no C extensions and is expected to work on
> both Python 2 and 3, you will want to tell wheel to produce universal
> wheels by adding this to your setup.cfg file: …
As Sphinx doesn't work on Python 2, it should not be universal.
Refs #6470
- We can more simply have ObjectDescription.get_field_type_map() make sure that
it's going to lazily set the value of an instance variable, not the class
variable, when it populates the field type map.
- type annotation for _process_type_map was incorrect; needed to document the
positional argument for the method
- __init__ method for ObjectDescription missing type annotation, so added
- Aims to address [issue #6478](https://github.com/sphinx-doc/sphinx/issues/6478)
- Left ObjectDescription._doc_field_type_map declaration alone and in place in
case there are other factors at play that require it declared on the class.
- In ObjectDescription constructor, explicitly set _doc_field_type_map's value
as an instance variable.
- This presumably needs to be built with every instantiation of an
ObjectDescription or inheriting class, so we're not attempting to "define it
once on a class and then use it"... that approach seems much harder to reason
about and get correctly done (as was maybe demonstrated by the refactoring
that lead to this problem in the linked-to issue).
- Runs through the test suite clean locally except for an unrelated single test
failure on an image_converter test, which also failed on the base branch
before my changes here.
Sphinx is Python-3-only and therefore is not a universal wheel. It
should still distribute a 'py3' wheel, just not a universal one.
From https://wheel.readthedocs.io/en/stable/user_guide.html
> If your project contains no C extensions and is expected to work on
> both Python 2 and 3, you will want to tell wheel to produce universal
> wheels by adding this to your setup.cfg file: …
As Sphinx doesn't work on Python 2, it should not be universal.
Refs #6470