New submission from Christian Heimes: ABCs are missing one important introspection feature. They have no API to get registered virtual subclasses. The patch implements a new method get_virtual_subclasses(recurse=False).
ABC.get_virtual_subclasses() returns the direct virtual subclasses of an ABC. ABC.get_virtual_subclasses(recuse=True) also takes subclasses of the ABC as well as subclasses of registered virtual classes into account. Example: >>> import numbers >>> numbers.Number.get_virtual_subclasses() set() >>> numbers.Number.get_virtual_subclasses(True) {<class 'float'>, <class 'bool'>, <class 'int'>, <class 'complex'>} >>> numbers.Integral.get_virtual_subclasses() {<class 'int'>} >>> numbers.Integral.get_virtual_subclasses(True) {<class 'int'>, <class 'bool'>} ---------- components: Library (Lib) files: virtual_subclasses.patch keywords: patch messages: 195150 nosy: christian.heimes, rhettinger, stutzbach priority: normal severity: normal stage: patch review status: open title: Get virtual subclasses of an ABC type: enhancement versions: Python 3.4 Added file: http://bugs.python.org/file31290/virtual_subclasses.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue18737> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com