Create PyIter from existing PyObject by lostmsu · Pull Request #1482 · pythonnet/pythonnet
Expand Up
@@ -25,6 +25,22 @@ public PyIter(IntPtr ptr) : base(ptr)
{
}
/// <summary> /// Creates new <see cref="PyIter"/> from an untyped reference to Python object. /// The object must support iterator protocol. /// </summary> public PyIter(PyObject pyObject) : base(FromPyObject(pyObject)) { } static BorrowedReference FromPyObject(PyObject pyObject) { if (pyObject is null) throw new ArgumentNullException(nameof(pyObject));
if (!Runtime.PyIter_Check(pyObject.Reference)) throw new ArgumentException("Object does not support iterator protocol");
return pyObject.Reference; }
internal PyIter(BorrowedReference reference) : base(reference) { }
/// <summary> /// PyIter factory function. /// </summary> Expand Down
/// <summary> /// Creates new <see cref="PyIter"/> from an untyped reference to Python object. /// The object must support iterator protocol. /// </summary> public PyIter(PyObject pyObject) : base(FromPyObject(pyObject)) { } static BorrowedReference FromPyObject(PyObject pyObject) { if (pyObject is null) throw new ArgumentNullException(nameof(pyObject));
if (!Runtime.PyIter_Check(pyObject.Reference)) throw new ArgumentException("Object does not support iterator protocol");
return pyObject.Reference; }
internal PyIter(BorrowedReference reference) : base(reference) { }
/// <summary> /// PyIter factory function. /// </summary> Expand Down