diff mercurial/bundlecaches.py @ 51725:278af66e6595

typing: induce pytype to use the standard `attr` instead of the vendored copy What was previously happening with the vendored copy was that pytype would stub out all(?) classes that were decorated with `@attr.s` as `Any`. After this, we get a ton of classes defined, and numerous fields and methods now have proper types.
author Matt Harbison <matt_harbison@yahoo.com>
date Tue, 23 Jul 2024 19:20:22 -0400
parents 138ab7c6a6ff
children 1c5810ce737e
line wrap: on
line diff
--- a/mercurial/bundlecaches.py	Tue Jul 23 19:14:16 2024 -0400
+++ b/mercurial/bundlecaches.py	Tue Jul 23 19:20:22 2024 -0400
@@ -4,6 +4,7 @@
 # GNU General Public License version 2 or any later version.
 
 import collections
+import typing
 
 from typing import (
     Dict,
@@ -15,6 +16,11 @@
 
 from .thirdparty import attr
 
+# Force pytype to use the non-vendored package
+if typing.TYPE_CHECKING:
+    # noinspection PyPackageRequirements
+    import attr
+
 from . import (
     error,
     requirements as requirementsmod,