mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	bpo-38979: fix ContextVar "__class_getitem__" method (GH-17497)
now contextvars.ContextVar "__class_getitem__" method returns ContextVar class, not None. https://bugs.python.org/issue38979 Automerge-Triggered-By: @asvetlov
This commit is contained in:
		
							parent
							
								
									00ada2c1d5
								
							
						
					
					
						commit
						28c91631c2
					
				
					 3 changed files with 9 additions and 6 deletions
				
			
		|  | @ -38,9 +38,6 @@ def test_context_var_new_1(self): | |||
| 
 | ||||
|         self.assertNotEqual(hash(c), hash('aaa')) | ||||
| 
 | ||||
|     def test_context_var_new_2(self): | ||||
|         self.assertIsNone(contextvars.ContextVar[int]) | ||||
| 
 | ||||
|     @isolated_context | ||||
|     def test_context_var_repr_1(self): | ||||
|         c = contextvars.ContextVar('a') | ||||
|  | @ -361,6 +358,10 @@ def sub(num): | |||
|             tp.shutdown() | ||||
|         self.assertEqual(results, list(range(10))) | ||||
| 
 | ||||
|     def test_contextvar_getitem(self): | ||||
|         clss = contextvars.ContextVar | ||||
|         self.assertEqual(clss[str], clss) | ||||
| 
 | ||||
| 
 | ||||
| # HAMT Tests | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1 @@ | |||
| Return class from ``ContextVar.__class_getitem__`` to simplify subclassing. | ||||
|  | @ -1024,9 +1024,10 @@ _contextvars_ContextVar_reset(PyContextVar *self, PyObject *token) | |||
| 
 | ||||
| 
 | ||||
| static PyObject * | ||||
| contextvar_cls_getitem(PyObject *self, PyObject *args) | ||||
| contextvar_cls_getitem(PyObject *self, PyObject *arg) | ||||
| { | ||||
|     Py_RETURN_NONE; | ||||
|     Py_INCREF(self); | ||||
|     return self; | ||||
| } | ||||
| 
 | ||||
| static PyMemberDef PyContextVar_members[] = { | ||||
|  | @ -1039,7 +1040,7 @@ static PyMethodDef PyContextVar_methods[] = { | |||
|     _CONTEXTVARS_CONTEXTVAR_SET_METHODDEF | ||||
|     _CONTEXTVARS_CONTEXTVAR_RESET_METHODDEF | ||||
|     {"__class_getitem__", contextvar_cls_getitem, | ||||
|         METH_VARARGS | METH_STATIC, NULL}, | ||||
|         METH_O | METH_CLASS, NULL}, | ||||
|     {NULL, NULL} | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 AMIR
						AMIR