[issue5996] abstract class instantiable when subclassing dict

2017-08-06 Thread R. David Murray

R. David Murray added the comment:

Closed issue 31127 as a duplicate of this one.

--
nosy: +Kevin Shweh

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2016-10-26 Thread R. David Murray

R. David Murray added the comment:

My apologies, I added Nathaniel to nosy here when I closed the duplicate, but 
forgot to add a link to the closed issue: issue 28537.

--
nosy: +r.david.murray

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2016-10-25 Thread Guido van Rossum

Guido van Rossum added the comment:

Oh sorry. I received the emails in a strange order. I guess it can stay open.

--
resolution: wont fix -> 
status: closed -> open

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2016-10-25 Thread Guido van Rossum

Guido van Rossum added the comment:

Where did you report that? I don't see your name on this bug -- it has a patch 
that's been unapplied for 5 years, so I doubt it's very important.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2016-10-25 Thread Nathaniel Manista

Nathaniel Manista added the comment:

Wait, really? My report came out of a real bug that I had in my system and 
shipped to my users; it wasn't academic or contrived at all.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2016-10-25 Thread Guido van Rossum

Guido van Rossum added the comment:

Honestly let's just forget about this.

--
resolution:  -> wont fix
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2016-10-25 Thread R. David Murray

Changes by R. David Murray :


--
nosy: +Nathaniel Manista, aleax, cvrebert

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2016-05-31 Thread Luiz Poleto

Changes by Luiz Poleto :


--
nosy: +luiz.poleto

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2016-05-30 Thread Xiang Zhang

Xiang Zhang added the comment:

I think subclassing builtin types and making it abstract is rare. And when 
there is a need, we can mimic this in application level (this may also apply to 
types having custom __new__):

In [2]: class CustomDict(dict, metaclass=abc.ABCMeta):
   ...: def __new__(cls, *args, **kwargs):
   ...: if getattr(cls, '__abstractmethods__', None):
   ...: raise TypeError
   ...: return super().__new__(cls, *args, **kwargs)
   ...: @abc.abstractmethod
   ...: def f(self):
   ...: pass

Adding the abstract class checking in tp_alloc or builtin types' tp_new maybe 
degrade performance.

Is it necessary to add this support?

--
nosy: +gvanrossum

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2016-05-26 Thread Raymond Hettinger

Changes by Raymond Hettinger :


--
assignee: rhettinger -> 

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2016-05-26 Thread Xiang Zhang

Changes by Xiang Zhang :


--
nosy: +xiang.zhang

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2016-05-25 Thread Maciej Szulik

Changes by Maciej Szulik :


--
nosy: +maciej.szulik

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2013-12-10 Thread Jakub Wilk

Changes by Jakub Wilk jw...@jwilk.net:


--
nosy: +jwilk

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2013-12-07 Thread Mark Dickinson

Changes by Mark Dickinson dicki...@gmail.com:


--
nosy: +mark.dickinson

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2013-12-07 Thread Mark Dickinson

Changes by Mark Dickinson dicki...@gmail.com:


--
versions: +Python 3.4

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2011-07-11 Thread Raymond Hettinger

Raymond Hettinger raymond.hettin...@gmail.com added the comment:

IIRC, classes weren't supposed to be able inherit from two classes that had 
different metaclasses (since differing metaclasses don't necessarily play well 
with one another).

--
nosy: +rhettinger

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2011-07-11 Thread Eugene Toder

Eugene Toder elto...@gmail.com added the comment:

They are, when there's a most specific metaclass -- the one which is a subclass 
of all others (described here 
http://www.python.org/download/releases/2.2.3/descrintro/#metaclasses, 
implemented here 
http://hg.python.org/cpython/file/ab162f925761/Objects/typeobject.c#l1956). 
Since ABCMeta is a subclass of type this holds.

Also, in the original example there's no multiple inheritance at all.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2011-07-11 Thread Raymond Hettinger

Changes by Raymond Hettinger raymond.hettin...@gmail.com:


--
assignee:  - rhettinger
priority: normal - low

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2011-07-09 Thread Eric Snow

Changes by Eric Snow ericsnowcurren...@gmail.com:


--
nosy: +ericsnow

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2011-06-15 Thread Eugene Toder

Eugene Toder elto...@gmail.com added the comment:

Anyone has any thoughts on this?

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2011-04-09 Thread Eugene Toder

Eugene Toder elto...@gmail.com added the comment:

This patch fixes the problem by moving the check from object_new to 
PyType_GenericAlloc. The check is very cheap, so this should not be an issue.

--
keywords: +patch
nosy: +eltoder
Added file: http://bugs.python.org/file21600/abc.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2011-04-08 Thread Nadeem Vawda

Changes by Nadeem Vawda nadeem.va...@gmail.com:


--
nosy: +nadeem.vawda

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2011-04-08 Thread Éric Araujo

Changes by Éric Araujo mer...@netwok.org:


--
nosy: +eric.araujo
versions: +Python 3.3 -Python 2.6

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2010-08-14 Thread Antoine Pitrou

Changes by Antoine Pitrou pit...@free.fr:


--
nosy: +benjamin.peterson

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2010-08-12 Thread Daniel Urban

Daniel Urban urban.dani...@gmail.com added the comment:

I think, that the reason is that, object.__new__ checks, if the class is 
instantiable (object_new in Objects/typeobject.c ). dict.__new__ (and 
tuple.__new__, and I guess the __new__ method of other built-in types) doesn't 
call object.__new__, but user defined types typically either doesn't have a 
__new__, or call object.__new__ from it (directly or with super).

--
nosy: +durban

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2009-05-15 Thread Terry J. Reedy

Terry J. Reedy tjre...@udel.edu added the comment:

I presume you claim the dict example to be a bug in relation to A class
that has a metaclass derived from ABCMeta cannot be instantiated unless
all of its abstract methods and properties are overridden.

There is the same difference with @abstractproperty
Windows, 3.0.1

class C(metaclass=abc.ABCMeta):
@abc.abstractmethod
def f(self): return True

class C2(dict,metaclass=abc.ABCMeta):
@abc.abstractmethod
def f(self): return True

c2=C2()
print(c2.f())

c=C()
# prints
True
...
TypeError: Can't instantiate abstract class C with abstract methods f

--
nosy: +tjreedy

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5996] abstract class instantiable when subclassing dict

2009-05-11 Thread johannes raggam

New submission from johannes raggam raggam...@adm.at:

when declaring a abstract base class with an abstract property or method
and subclassing from dict, the class is instantiable (instanceable?).

 import abc
 class A(object):
... __metaclass__ = abc.ABCMeta
... @abc.abstractproperty
... def abstract(self): return True
... 
 a = A()
Traceback (most recent call last):
  File stdin, line 1, in module
TypeError: Can't instantiate abstract class A with abstract methods abstract
 
 class A2(dict):
... __metaclass__ = abc.ABCMeta
... @abc.abstractproperty
... def abstract(self): return True
... 
 a2 = A2()
 


although, when using the dict definition from __builtin__.pi directly,
the abc behaves like expected. but this may be a bug in the
c-implementation from dict.

platform:
Python 2.6.2 (r262:71600, Apr 25 2009, 21:56:41) 
[GCC 4.3.2] on linux2

--
components: Library (Lib)
messages: 87574
nosy: thet
severity: normal
status: open
title: abstract class instantiable when subclassing dict
type: behavior
versions: Python 2.6

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue5996
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com