Ejemplo n.º 1
0
        /// <summary>
        /// Get managed value from python value
        /// </summary>
        /// <param name="pyObject">Python value</param>
        /// <returns>Managed value</returns>
        public object GetManagedValue(PyObject pyObject)
        {
            if (pyObject == null)
            {
                throw new ArgumentNullException(nameof(pyObject));
            }

            var isNoneOrNaN = _utils.IsNoneOrNaN(pyObject);

            if (isNoneOrNaN)
            {
                return(null);
            }

            if (PythonType == PyType.Datetime64Type)
            {
                return(_utils.GetDateTime(pyObject));
            }

            if (PythonType == PyType.Timedelta64Type)
            {
                return(_utils.GetTimeSpan(pyObject));
            }

            return(pyObject.AsManagedObject(ManagedType));
        }