Esempio n. 1
0
        /// <summary>
        ///     Get a PyObject from a list
        /// </summary>
        /// <typeparam name="TItem"></typeparam>
        /// <param name="value"></param>
        /// <returns></returns>
        public PyObject From <TItem>(IEnumerable <TItem> value)
        {
            var result = new PyObject(this, Py.PyList_New(value.Count()), true);

            for (var i = 0; i < value.Count(); i++)
            {
                var pyItem = From(value.ElementAt(i));

                if (pyItem == null)
                {
                    return(PyZero);
                }

                // PyList_SetItem steals a reference, this makes sure we dont free it later
                Py.Py_IncRef(pyItem);

                if (Py.PyList_SetItem(result, i, pyItem) == -1)
                {
                    return(PyZero);
                }
            }

            return(result);
        }