public IEnumerator <T> GetEnumerator() { PyIter iterObject; using (Py.GIL()) { iterObject = PyIter.GetIter(pyObject); } using var _ = iterObject; while (true) { using var GIL = Py.GIL(); if (!iterObject.MoveNext()) { iterObject.Dispose(); break; } yield return(iterObject.Current.As <T>() !); } }