Author: Ronan Lamy <ronan.l...@gmail.com>
Branch: 
Changeset: r76601:7c4eccd92fb9
Date: 2015-03-27 18:53 +0000
http://bitbucket.org/pypy/pypy/changeset/7c4eccd92fb9/

Log:    Move FORCE_ATTRIBUTES_INTO_CLASSES to the only place where it's used

diff --git a/rpython/annotator/classdef.py b/rpython/annotator/classdef.py
--- a/rpython/annotator/classdef.py
+++ b/rpython/annotator/classdef.py
@@ -2,8 +2,7 @@
 Type inference for user-defined classes.
 """
 from rpython.annotator.model import (
-    SomePBC, s_ImpossibleValue, unionof, s_None, SomeInteger,
-    SomeTuple, SomeString, AnnotatorError, SomeUnicodeString)
+    SomePBC, s_ImpossibleValue, unionof, s_None, AnnotatorError)
 from rpython.annotator import description
 
 
@@ -437,18 +436,3 @@
 class NoSuchAttrError(AnnotatorError):
     """Raised when an attribute is found on a class where __slots__
      or _attrs_ forbits it."""
-
-# ____________________________________________________________
-
-FORCE_ATTRIBUTES_INTO_CLASSES = {
-    EnvironmentError: {'errno': SomeInteger(),
-                       'strerror': SomeString(can_be_None=True),
-                       'filename': SomeString(can_be_None=True)},
-}
-
-try:
-    WindowsError
-except NameError:
-    pass
-else:
-    FORCE_ATTRIBUTES_INTO_CLASSES[WindowsError] = {'winerror': SomeInteger()}
diff --git a/rpython/annotator/description.py b/rpython/annotator/description.py
--- a/rpython/annotator/description.py
+++ b/rpython/annotator/description.py
@@ -7,7 +7,7 @@
 from rpython.annotator.argument import rawshape, ArgErr
 from rpython.tool.sourcetools import valid_identifier, func_with_new_name
 from rpython.tool.pairtype import extendabletype
-from rpython.annotator.model import AnnotatorError
+from rpython.annotator.model import AnnotatorError, SomeInteger, SomeString
 
 class CallFamily(object):
     """A family of Desc objects that could be called from common call sites.
@@ -477,8 +477,7 @@
 
         if (self.is_builtin_exception_class() and
                 self.all_enforced_attrs is None):
-            from rpython.annotator import classdef
-            if cls not in classdef.FORCE_ATTRIBUTES_INTO_CLASSES:
+            if cls not in FORCE_ATTRIBUTES_INTO_CLASSES:
                 self.all_enforced_attrs = []    # no attribute allowed
 
     def add_source_attribute(self, name, value, mixin=False):
@@ -573,8 +572,7 @@
         try:
             return self._classdefs[key]
         except KeyError:
-            from rpython.annotator.classdef import (
-                ClassDef, FORCE_ATTRIBUTES_INTO_CLASSES)
+            from rpython.annotator.classdef import ClassDef
             classdef = ClassDef(self.bookkeeper, self)
             self.bookkeeper.classdefs.append(classdef)
             self._classdefs[key] = classdef
@@ -1077,3 +1075,18 @@
     MemberDescriptorTypes.append(type(OSError.errno))
 except AttributeError:    # on CPython <= 2.4
     pass
+
+# ____________________________________________________________
+
+FORCE_ATTRIBUTES_INTO_CLASSES = {
+    EnvironmentError: {'errno': SomeInteger(),
+                       'strerror': SomeString(can_be_None=True),
+                       'filename': SomeString(can_be_None=True)},
+}
+
+try:
+    WindowsError
+except NameError:
+    pass
+else:
+    FORCE_ATTRIBUTES_INTO_CLASSES[WindowsError] = {'winerror': SomeInteger()}
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to