mercurial/ui.py
changeset 30945 8b83b626fb1e
parent 30932 f61c5680a862
child 30976 e92daf156d5c
equal deleted inserted replaced
30944:b7e073ae44c4 30945:8b83b626fb1e
    91 #
    91 #
    92 # blackbox =
    92 # blackbox =
    93 # color =
    93 # color =
    94 # pager =""",
    94 # pager =""",
    95 }
    95 }
       
    96 
       
    97 
       
    98 class httppasswordmgrdbproxy(object):
       
    99     """Delays loading urllib2 until it's needed."""
       
   100     def __init__(self):
       
   101         self._mgr = None
       
   102 
       
   103     def _get_mgr(self):
       
   104         if self._mgr is None:
       
   105             self._mgr = urlreq.httppasswordmgrwithdefaultrealm()
       
   106         return self._mgr
       
   107 
       
   108     def add_password(self, *args, **kwargs):
       
   109         return self._get_mgr().add_password(*args, **kwargs)
       
   110 
       
   111     def find_user_password(self, *args, **kwargs):
       
   112         return self._get_mgr().find_user_password(*args, **kwargs)
       
   113 
    96 
   114 
    97 class ui(object):
   115 class ui(object):
    98     def __init__(self, src=None):
   116     def __init__(self, src=None):
    99         """Create a fresh new ui object if no src given
   117         """Create a fresh new ui object if no src given
   100 
   118 
   143             self.fin = util.stdin
   161             self.fin = util.stdin
   144 
   162 
   145             # shared read-only environment
   163             # shared read-only environment
   146             self.environ = encoding.environ
   164             self.environ = encoding.environ
   147 
   165 
   148             self.httppasswordmgrdb = urlreq.httppasswordmgrwithdefaultrealm()
   166             self.httppasswordmgrdb = httppasswordmgrdbproxy()
   149 
   167 
   150         allowed = self.configlist('experimental', 'exportableenviron')
   168         allowed = self.configlist('experimental', 'exportableenviron')
   151         if '*' in allowed:
   169         if '*' in allowed:
   152             self._exportableenviron = self.environ
   170             self._exportableenviron = self.environ
   153         else:
   171         else:
   170 
   188 
   171     def resetstate(self):
   189     def resetstate(self):
   172         """Clear internal state that shouldn't persist across commands"""
   190         """Clear internal state that shouldn't persist across commands"""
   173         if self._progbar:
   191         if self._progbar:
   174             self._progbar.resetstate()  # reset last-print time of progress bar
   192             self._progbar.resetstate()  # reset last-print time of progress bar
   175         self.httppasswordmgrdb = urlreq.httppasswordmgrwithdefaultrealm()
   193         self.httppasswordmgrdb = httppasswordmgrdbproxy()
   176 
   194 
   177     def formatter(self, topic, opts):
   195     def formatter(self, topic, opts):
   178         return formatter.formatter(self, topic, opts)
   196         return formatter.formatter(self, topic, opts)
   179 
   197 
   180     def _trusted(self, fp, f):
   198     def _trusted(self, fp, f):