``cache_tag`` is set to ``None``, it indicates that module caching should
be disabled.
+ *supports_isolated_interpreters* is a boolean value, whether
+ this implementation supports multiple isolated interpreters.
+ It is ``True`` for CPython on most platforms. Platforms with
+ this support implement the low-level :mod:`!_interpreters` module.
+
+ .. seealso::
+
+ :pep:`684`, :pep:`734`, and :mod:`concurrent.interpreters`.
+
:data:`sys.implementation` may contain additional attributes specific to
the Python implementation. These non-standard attributes must start with
an underscore, and are not described here. Regardless of its contents,
.. versionadded:: 3.3
+ .. versionchanged:: 3.14
+ Added ``supports_isolated_interpreters`` field.
+
.. note::
The addition of new required attributes must go through the normal PEP
self.assertHasAttr(sys.implementation, 'version')
self.assertHasAttr(sys.implementation, 'hexversion')
self.assertHasAttr(sys.implementation, 'cache_tag')
+ self.assertHasAttr(sys.implementation, 'supports_isolated_interpreters')
version = sys.implementation.version
self.assertEqual(version[:2], (version.major, version.minor))
self.assertEqual(sys.implementation.name,
sys.implementation.name.lower())
+ # https://peps.python.org/pep-0734
+ sii = sys.implementation.supports_isolated_interpreters
+ self.assertIsInstance(sii, bool)
+ if test.support.check_impl_detail(cpython=True):
+ if test.support.is_emscripten or test.support.is_wasi:
+ self.assertFalse(sii)
+ else:
+ self.assertTrue(sii)
+
@test.support.cpython_only
def test_debugmallocstats(self):
# Test sys._debugmallocstats()
--- /dev/null
+Added ``supports_isolated_interpreters`` field to
+:data:`sys.implementation`.
goto error;
#endif
+ // PEP-734
+#if defined(__wasi__) || defined(__EMSCRIPTEN__)
+ // It is not enabled on WASM builds just yet
+ value = Py_False;
+#else
+ value = Py_True;
+#endif
+ res = PyDict_SetItemString(impl_info, "supports_isolated_interpreters", value);
+ if (res < 0) {
+ goto error;
+ }
+
/* dict ready */
ns = _PyNamespace_New(impl_info);