New submission from Ivan Levkivskyi:

It was proposed in the discussion of #27989 to update pydoc rendering of 
documentation of classes supporting generic types.

Currently there are two ideas:
1. Keep the class header intact (i.e. listing actual runtime __bases__)
and adding a separate section describing generic info using __orig_bases__ and 
__parameters__. For example:

"""
class MyClass(typing.List, typing.Mapping):
...
(usual info)
...
This is a generic class consistent with List[~T], Mapping[str, +VT_co]
Type parameters: invariant T, covariant VT_co
"""

2. Do not add a separate section, but modify the header to display 
__orig_bases__. For example:


"""
class MyClass(List[~T], Mapping[str, +VT_co]):
...
(usual info)
...

"""

Guido prefers the second option. I am a bit afraid that this will cause people 
to use issubclass() with parameterized generics, but now issubclass(cls, 
List[T]) is a TypeError, only issubclass(cls, List) is allowed. So that I am 
more inclined towards first option.

----------
assignee: docs@python
components: Documentation, Library (Lib)
messages: 279304
nosy: docs@python, gvanrossum, levkivskyi
priority: normal
severity: normal
status: open
title: Update pydoc tool to support generic types
type: enhancement
versions: Python 3.5, Python 3.6, Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28519>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to