This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author christian.heimes
Recipients christian.heimes, rhettinger, stutzbach
Date 2013-08-14.13:13:13
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1376485993.36.0.633495217077.issue18737@psf.upfronthosting.co.za>
In-reply-to
Content
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'>}
History
Date User Action Args
2013-08-14 13:13:13christian.heimessetrecipients: + christian.heimes, rhettinger, stutzbach
2013-08-14 13:13:13christian.heimessetmessageid: <1376485993.36.0.633495217077.issue18737@psf.upfronthosting.co.za>
2013-08-14 13:13:13christian.heimeslinkissue18737 messages
2013-08-14 13:13:13christian.heimescreate