What if you call lst.__init__() while it is being sorted? :-)
The invariant checks would break.
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 61edd45..bd5b95a 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -2315,8 +2315,10 @@
return -1;
/* Verify list invariants established by PyType_GenericAlloc() */
- assert(0 <= self->ob_size && self->ob_size <= self->allocated);
- assert(self->ob_item != NULL || self->allocated == 0);
+ assert(0 <= self->ob_size);
+ assert(self->ob_size <= self->allocated || self->allocated == -1);
+ assert(self->ob_item != NULL ||
+ self->allocated == 0 || self->allocated == -1);
/* Empty previous contents */
if (self->ob_item != NULL) {