Martin v. Löwis added the comment:

As for declaring ABCs: I don't think the API is necessary, or even helps. An 
ABC is best created by *calling* ABCMeta, with the appropriate name, a 
possibly-empty bases tuple, and a dict. What FromSpec could do is to fill out 
slots with custom functions, which won't be necessary or desirable for ABCs. 
The really tedious part may be to put all the abstract methods into the ABC, 
for which having a TypeSpec doesn't help at all. (But I would certainly agree 
that simplifying creation of ABCs in extension modules is a worthwhile reason 
for an API addition)

For the case that Alexander apparently envisions, i.e. metaclasses where the 
resulting type objects extend the layout of heap types: it should be possible 
for an extension module to fill out the entire type "from scratch". This will 
require knowledge of the layout of heap types, so it can't use just the stable 
ABI - however, doing this through the stable ABI won't be possible, anyway, 
since the extended layout needs to know how large a HeapType structure is.

If filling out a type with all slots one-by-one is considered too tedious, and 
patching ob_type too hacky - here is another approach: Use FromSpec to create a 
type with all slots filled out, then call the metatype to create a subtype of 
that. I.e. the type which is based on a metatype would actually be a derived 
class of the type which has the slots defined.

----------

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

Reply via email to