mirror of https://github.com/python/cpython
[3.13] gh-126417: Register multiprocessing proxy types to an appropriate collections.abc class (#126419) (#126435)
Co-authored-by: Stephen Morton <github@tungol.org>
This commit is contained in:
parent
cba17e4d92
commit
c1e708ab07
|
@ -18,6 +18,7 @@ import sys
|
||||||
import threading
|
import threading
|
||||||
import signal
|
import signal
|
||||||
import array
|
import array
|
||||||
|
import collections.abc
|
||||||
import queue
|
import queue
|
||||||
import time
|
import time
|
||||||
import types
|
import types
|
||||||
|
@ -1167,6 +1168,7 @@ class ListProxy(BaseListProxy):
|
||||||
|
|
||||||
__class_getitem__ = classmethod(types.GenericAlias)
|
__class_getitem__ = classmethod(types.GenericAlias)
|
||||||
|
|
||||||
|
collections.abc.MutableSequence.register(BaseListProxy)
|
||||||
|
|
||||||
_BaseDictProxy = MakeProxyType('DictProxy', (
|
_BaseDictProxy = MakeProxyType('DictProxy', (
|
||||||
'__contains__', '__delitem__', '__getitem__', '__iter__', '__len__',
|
'__contains__', '__delitem__', '__getitem__', '__iter__', '__len__',
|
||||||
|
@ -1179,6 +1181,7 @@ _BaseDictProxy._method_to_typeid_ = {
|
||||||
class DictProxy(_BaseDictProxy):
|
class DictProxy(_BaseDictProxy):
|
||||||
__class_getitem__ = classmethod(types.GenericAlias)
|
__class_getitem__ = classmethod(types.GenericAlias)
|
||||||
|
|
||||||
|
collections.abc.MutableMapping.register(_BaseDictProxy)
|
||||||
|
|
||||||
ArrayProxy = MakeProxyType('ArrayProxy', (
|
ArrayProxy = MakeProxyType('ArrayProxy', (
|
||||||
'__len__', '__getitem__', '__setitem__'
|
'__len__', '__getitem__', '__setitem__'
|
||||||
|
|
|
@ -16,6 +16,7 @@ import errno
|
||||||
import functools
|
import functools
|
||||||
import signal
|
import signal
|
||||||
import array
|
import array
|
||||||
|
import collections.abc
|
||||||
import socket
|
import socket
|
||||||
import random
|
import random
|
||||||
import logging
|
import logging
|
||||||
|
@ -2331,6 +2332,10 @@ class _TestContainers(BaseTestCase):
|
||||||
a.append('hello')
|
a.append('hello')
|
||||||
self.assertEqual(f[0][:], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello'])
|
self.assertEqual(f[0][:], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello'])
|
||||||
|
|
||||||
|
def test_list_isinstance(self):
|
||||||
|
a = self.list()
|
||||||
|
self.assertIsInstance(a, collections.abc.MutableSequence)
|
||||||
|
|
||||||
def test_list_iter(self):
|
def test_list_iter(self):
|
||||||
a = self.list(list(range(10)))
|
a = self.list(list(range(10)))
|
||||||
it = iter(a)
|
it = iter(a)
|
||||||
|
@ -2371,6 +2376,10 @@ class _TestContainers(BaseTestCase):
|
||||||
self.assertEqual(sorted(d.values()), [chr(i) for i in indices])
|
self.assertEqual(sorted(d.values()), [chr(i) for i in indices])
|
||||||
self.assertEqual(sorted(d.items()), [(i, chr(i)) for i in indices])
|
self.assertEqual(sorted(d.items()), [(i, chr(i)) for i in indices])
|
||||||
|
|
||||||
|
def test_dict_isinstance(self):
|
||||||
|
a = self.dict()
|
||||||
|
self.assertIsInstance(a, collections.abc.MutableMapping)
|
||||||
|
|
||||||
def test_dict_iter(self):
|
def test_dict_iter(self):
|
||||||
d = self.dict()
|
d = self.dict()
|
||||||
indices = list(range(65, 70))
|
indices = list(range(65, 70))
|
||||||
|
|
|
@ -1270,6 +1270,7 @@ Emily Morehouse
|
||||||
Derek Morr
|
Derek Morr
|
||||||
James A Morrison
|
James A Morrison
|
||||||
Martin Morrison
|
Martin Morrison
|
||||||
|
Stephen Morton
|
||||||
Derek McTavish Mounce
|
Derek McTavish Mounce
|
||||||
Alessandro Moura
|
Alessandro Moura
|
||||||
Pablo Mouzo
|
Pablo Mouzo
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
Register the :class:`!multiprocessing.managers.DictProxy` and :class:`!multiprocessing.managers.ListProxy` types in
|
||||||
|
:mod:`multiprocessing.managers` to :class:`collections.abc.MutableMapping` and
|
||||||
|
:class:`collections.abc.MutableSequence`, respectively.
|
Loading…
Reference in New Issue