[PATCH stable] hgdemandimport: add collections.abc to the ignore list because Python 3.13 rc3

Mads Kiilerich mads at kiilerich.com
Mon Oct 7 18:35:20 UTC 2024


# HG changeset patch
# User Mads Kiilerich <mads at kiilerich.com>
# Date 1728323604 -7200
#      Mon Oct 07 19:53:24 2024 +0200
# Branch stable
# Node ID 1e999ebad53283f787d82988197c2682dcc53b0b
# Parent  7ff35f1290c0f922c6f6d77b1113679346d59f9d
hgdemandimport: add collections.abc to the ignore list because Python 3.13 rc3

It worked in Python 3.13 rc2, but something changed for rc3.

Now, when i18n.py imports typing and it touches collections.abc.Hashable , we
get:

  ValueError: module object for collections.abc substituted in sys.modules during a lazy load

This seems to be a general problem, released in the final Python 3.13 . I have
not analyzed the problem in details.

We *could* work around the problem by disabling demand import of typing. But
that would effectively disable demand import of collections.abc too. Instead,
just disable demand import for collections.abc .

diff --git a/hgdemandimport/__init__.py b/hgdemandimport/__init__.py
--- a/hgdemandimport/__init__.py
+++ b/hgdemandimport/__init__.py
@@ -62,6 +62,7 @@ IGNORES = {
     '_weakrefset',
     'warnings',
     'threading',
+    'collections.abc',
 }
 
 _pypy = '__pypy__' in sys.builtin_module_names



More information about the Mercurial-devel mailing list