| 101 | self.process.start() |
| 102 | |
| 103 | def shutdown(self) -> None: |
| 104 | if sys.platform == class="st">"win32": |
| 105 | self.should_exit.set() class="cm"># pragma: py-not-win32 |
| 106 | else: |
| 107 | self.process.terminate() class="cm"># pragma: py-win32 |
| 108 | self.process.join() |
| 109 | |
| 110 | for sock in self.sockets: |
| 111 | sock.close() |
| 112 | |
| 113 | message = fclass="st">"Stopping reloader process [{str(self.pid)}]" |
| 114 | color_message = class="st">"Stopping reloader process [{}]".format(click.style(str(self.pid), fg=class="st">"cyan", bold=True)) |
| 115 | logger.info(message, extra={class="st">"color_message": color_message}) |
| 116 | |
| 117 | def should_restart(self) -> list[Path] | None: |
| 118 | raise NotImplementedError(class="st">"Reload strategies should override should_restart()") |