)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7d07e9801de3631d6b1798753b061dd1b360eb95","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"70352265_773bfa60","updated":"2025-09-15 10:42:51.000000000","message":"Rather than doing this, could you just run `ruff` over this and let that do whatever it needs to do?","commit_id":"115ec1d12c457ea79a6a483f74b5cffc93f95601"}],"futurist/_futures.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7cb23e73cdcf33c7dd441a29f63d506973d0fcd1","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    def _maybe_spin_up(self):"},{"line_number":193,"context_line":"        \"\"\"Spin up a worker if needed.\"\"\""},{"line_number":194,"context_line":"        if (not self._workers or len(self._workers) \u003c self._max_workers):"},{"line_number":195,"context_line":"            self._add_thread()"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def shutdown(self, wait\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":2,"id":"70bbbab4_aa0138ee","line":194,"updated":"2025-09-10 12:10:59.000000000","message":"nit: unnecessary brackets","commit_id":"115ec1d12c457ea79a6a483f74b5cffc93f95601"}],"futurist/periodics.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7cb23e73cdcf33c7dd441a29f63d506973d0fcd1","unresolved":false,"context_lines":[{"line_number":620,"context_line":"            with self._waiter:"},{"line_number":621,"context_line":"                while (not self._schedule and not"},{"line_number":622,"context_line":"                       self._tombstone.is_set() and not"},{"line_number":623,"context_line":"                       self._immediates):"},{"line_number":624,"context_line":"                    self._waiter.wait(self.MAX_LOOP_IDLE)"},{"line_number":625,"context_line":"                if self._tombstone.is_set():"},{"line_number":626,"context_line":"                    # We were requested to stop, so stop."}],"source_content_type":"text/x-python","patch_set":2,"id":"3bfa59db_a691ae0b","line":623,"updated":"2025-09-10 12:10:59.000000000","message":"I think we\u0027re supposed to start lines with \"and not\", which is much more readable and pep8 compliant","commit_id":"115ec1d12c457ea79a6a483f74b5cffc93f95601"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"778619be48c8fa29bd4e7783fae4e9334c232bb2","unresolved":true,"context_lines":[{"line_number":617,"context_line":"            # minimum item from the heap, where the minimum should be"},{"line_number":618,"context_line":"            # the callable that needs to run next and has the lowest"},{"line_number":619,"context_line":"            # next desired run time)."},{"line_number":620,"context_line":"            with self._waiter:"},{"line_number":621,"context_line":"                while (not self._schedule and not"},{"line_number":622,"context_line":"                       self._tombstone.is_set() and not"},{"line_number":623,"context_line":"                       self._immediates):"},{"line_number":624,"context_line":"                    self._waiter.wait(self.MAX_LOOP_IDLE)"},{"line_number":625,"context_line":"                if self._tombstone.is_set():"},{"line_number":626,"context_line":"                    # We were requested to stop, so stop."}],"source_content_type":"text/x-python","patch_set":2,"id":"8cc26530_ffe4c2d2","line":623,"range":{"start_line":620,"start_character":30,"end_line":623,"end_character":41},"updated":"2025-08-07 15:46:08.000000000","message":"I\u0027m unsure if this transition is benefitial. The updated lines looks quote confusing to me, while the previous version showed how \"not\" works quite clearly.","commit_id":"115ec1d12c457ea79a6a483f74b5cffc93f95601"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"7d36c2f791e7933b3bd08d77494176a90e915daa","unresolved":true,"context_lines":[{"line_number":617,"context_line":"            # minimum item from the heap, where the minimum should be"},{"line_number":618,"context_line":"            # the callable that needs to run next and has the lowest"},{"line_number":619,"context_line":"            # next desired run time)."},{"line_number":620,"context_line":"            with self._waiter:"},{"line_number":621,"context_line":"                while (not self._schedule and not"},{"line_number":622,"context_line":"                       self._tombstone.is_set() and not"},{"line_number":623,"context_line":"                       self._immediates):"},{"line_number":624,"context_line":"                    self._waiter.wait(self.MAX_LOOP_IDLE)"},{"line_number":625,"context_line":"                if self._tombstone.is_set():"},{"line_number":626,"context_line":"                    # We were requested to stop, so stop."}],"source_content_type":"text/x-python","patch_set":2,"id":"dc9e1e1d_1a37c83c","line":623,"range":{"start_line":620,"start_character":30,"end_line":623,"end_character":41},"in_reply_to":"8cc26530_ffe4c2d2","updated":"2025-08-28 09:29:26.000000000","message":"I do not have a strong opinion. I initially created this patch by following Dmitry\u0027s proposal, mostly to give him more comfort with the code of futurist as he is more used to use W504. Following PEP8 seemed a good path.\nRegarding me, I\u0027ve no problem with both rules. If you prefer W503 I can simply abandon this patch.","commit_id":"115ec1d12c457ea79a6a483f74b5cffc93f95601"}]}
