[issue46970] dataclass(slots=True) incompatible with __init_subclass__

2022-03-09 Thread Eric V. Smith


Eric V. Smith  added the comment:

This appears to be due to dataclasses needing to create a new class in order to 
set __slots__. I'll look at it, but I doubt there's anything that can be done.

attrs has the same issue:
  File "x/.local/lib/python3.8/site-packages/attr/_make.py", line 889, in 
_create_slots_class
cls = type(self._cls)(self._cls.__name__, self._cls.__bases__, cd)
TypeError: __init_subclass__() missing 1 required positional argument: 'msg'

--
assignee:  -> eric.smith
type: crash -> behavior

___
Python tracker 

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



[issue46970] dataclass(slots=True) incompatible with __init_subclass__

2022-03-09 Thread Guido Imperiale


Change by Guido Imperiale :


--
type:  -> crash

___
Python tracker 

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



[issue46970] dataclass(slots=True) incompatible with __init_subclass__

2022-03-09 Thread Guido Imperiale


Change by Guido Imperiale :


--
nosy: +eric.smith

___
Python tracker 

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



[issue46970] dataclass(slots=True) incompatible with __init_subclass__

2022-03-09 Thread Guido Imperiale


New submission from Guido Imperiale :

Related to #46382
A class decorated with dataclass(slots=True) can't pass any parameters to the 
__init_subclass__ method of its parent class.


from dataclasses import dataclass

class A:
__slots__ = ()
def __init_subclass__(cls, msg):
print(msg)

@dataclass(slots=True)
class B(A, msg="Hello world!"):
pass


  File "lib/python3.10/dataclasses.py", line 1145, in _add_slots
cls = type(cls)(cls.__name__, cls.__bases__, cls_dict)
TypeError: A.__init_subclass__() missing 1 required positional argument: 'msg'

--
components: Library (Lib)
messages: 414822
nosy: crusaderky
priority: normal
severity: normal
status: open
title: dataclass(slots=True) incompatible with __init_subclass__
versions: Python 3.10

___
Python tracker 

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