Simplify code in warnings modules (#1935)
authorAlex Gaynor <alex.gaynor@gmail.com>
Sun, 4 Jun 2017 15:34:16 +0000 (11:34 -0400)
committerDonald Stufft <donald@stufft.io>
Sun, 4 Jun 2017 15:34:16 +0000 (11:34 -0400)
Metaprogramming a list of attributes was excessive, and made the code less readable and slower.

Lib/warnings.py

index d7d88d3e388222ac46443e8afe5990583cbd3346..a1f774637a24f99b3746be30f8321cd5aed14198 100644 (file)
@@ -397,9 +397,13 @@ class WarningMessage(object):
 
     def __init__(self, message, category, filename, lineno, file=None,
                  line=None, source=None):
-        local_values = locals()
-        for attr in self._WARNING_DETAILS:
-            setattr(self, attr, local_values[attr])
+        self.message = message
+        self.category = category
+        self.filename = filename
+        self.lineno = lineno
+        self.file = file
+        self.line = line
+        self.source = source
         self._category_name = category.__name__ if category else None
 
     def __str__(self):