ui: avoid mutable default arguments
authorSiddharth Agarwal <sid0@fb.com>
Tue, 22 Sep 2015 16:56:34 -0700
changeset 26312 60558319ce72
parent 26311 60dd8e3977f0
child 26313 e8afd380c576
ui: avoid mutable default arguments I almost introduced a bug around this code by accidentally mutating a default argument. There's no reason for these to exist. It is OK to not assign {} to environ in ui.system because util.system knows how to deal with that.
mercurial/ui.py
--- a/mercurial/ui.py	Tue Sep 22 16:55:18 2015 -0700
+++ b/mercurial/ui.py	Tue Sep 22 16:56:34 2015 -0700
@@ -834,7 +834,9 @@
         if self.debugflag:
             opts['label'] = opts.get('label', '') + ' ui.debug'
             self.write(*msg, **opts)
-    def edit(self, text, user, extra={}, editform=None):
+    def edit(self, text, user, extra=None, editform=None):
+        if extra is None:
+            extra = {}
         (fd, name) = tempfile.mkstemp(prefix="hg-editor-", suffix=".txt",
                                       text=True)
         try:
@@ -866,7 +868,7 @@
 
         return t
 
-    def system(self, cmd, environ={}, cwd=None, onerr=None, errprefix=None):
+    def system(self, cmd, environ=None, cwd=None, onerr=None, errprefix=None):
         '''execute shell command with appropriate output stream. command
         output will be redirected if fout is not stdout.
         '''