Check whether some modules need to be reloaded.
(self, check_all=False, do_reload=True)
| 207 | return py_filename, pymtime |
| 208 | |
| 209 | def check(self, check_all=False, do_reload=True): |
| 210 | """Check whether some modules need to be reloaded.""" |
| 211 | |
| 212 | if not self.enabled and not check_all: |
| 213 | return |
| 214 | |
| 215 | if check_all or self.check_all: |
| 216 | modules = list(sys.modules.keys()) |
| 217 | else: |
| 218 | modules = list(self.modules.keys()) |
| 219 | |
| 220 | for modname in modules: |
| 221 | m = sys.modules.get(modname, None) |
| 222 | |
| 223 | if modname in self.skip_modules: |
| 224 | continue |
| 225 | |
| 226 | py_filename, pymtime = self.filename_and_mtime(m) |
| 227 | if py_filename is None: |
| 228 | continue |
| 229 | |
| 230 | try: |
| 231 | if pymtime <= self.modules_mtimes[modname]: |
| 232 | continue |
| 233 | except KeyError: |
| 234 | self.modules_mtimes[modname] = pymtime |
| 235 | continue |
| 236 | else: |
| 237 | if self.failed.get(py_filename, None) == pymtime: |
| 238 | continue |
| 239 | |
| 240 | self.modules_mtimes[modname] = pymtime |
| 241 | |
| 242 | # If we've reached this point, we should try to reload the module |
| 243 | if do_reload: |
| 244 | try: |
| 245 | superreload(m, reload, self.old_objects) |
| 246 | if py_filename in self.failed: |
| 247 | del self.failed[py_filename] |
| 248 | except: |
| 249 | print("[autoreload of %s failed: %s]" % ( |
| 250 | modname, traceback.format_exc(10)), file=sys.stderr) |
| 251 | self.failed[py_filename] = pymtime |
| 252 | |
| 253 | #------------------------------------------------------------------------------ |
| 254 | # superreload |
no test coverage detected