public static PyObject ToPython(object obj) { if (obj == null) { return(Runtime.GetPyNone()); } switch (obj) { // basic types case int o: return(new PyInt(o)); case long o: return(new PyLong(o)); case float o: return(new PyFloat(o)); case double o: return(new PyFloat(o)); case string o: return(new PyString(o)); case bool o: return(ConverterExtension.ToPython(o)); case PyObject o: return(o); // sequence types case Array o: return(ToTuple(o)); default: throw new NotImplementedException($"Type is not yet supported: { obj.GetType().Name}. Add it to 'ToPythonConversions'"); } }
internal static PyObject ToPython(object obj) { if (obj == null) { return(Runtime.None); } switch (obj) { // basic types case int o: return(new PyInt(o)); case float o: return(new PyFloat(o)); case long o: return(new PyLong(o)); case double o: return(new PyFloat(o)); case string o: return(new PyString(o)); case bool o: return(ConverterExtension.ToPython(o)); // sequence types case Array o: return(ToList(o)); // special types from 'ToPythonConversions' case Shape o: return(ToTuple(o.Dimensions)); case ValueTuple <int> o: return(ToTuple(o)); case ValueTuple <int, int> o: return(ToTuple(o)); case ValueTuple <int, int, int> o: return(ToTuple(o)); case Slice o: return(o.ToPython()); case PythonObject o: return(o.PyObject); case PyObject o: return(o); case Sequence o: return(o.PyInstance); case StringOrInstance o: return(o.PyObject); case KerasFunction o: return(o.PyObject); case Base o: return(o.PyInstance); default: throw new NotImplementedException($"Type is not yet supported: { obj.GetType().Name}. Add it to 'ToPythonConversions'"); } }
//auto-generated private static PyObject ToPython(object obj) { if (obj == null) { return(Runtime.None); } switch (obj) { // basic types case int o: return(new PyInt(o)); case long o: return(new PyLong(o)); case float o: return(new PyFloat(o)); case double o: return(new PyFloat(o)); case string o: return(new PyString(o)); case bool o: return(ConverterExtension.ToPython(o)); case PyObject o: return(o); // sequence types case Array o: return(ToTuple(o)); // special types from 'ToPythonConversions' case Axis o: return(o.Axes == null ? null : ToTuple(o.Axes)); case Shape o: return(ToTuple(o.Dimensions)); case Slice o: return(o.ToPython()); case PythonObject o: return(o.PyObject); case Dictionary <string, NDarray> o: return(ToDict(o)); default: throw new NotImplementedException($"Type is not yet supported: { obj.GetType().Name}. Add it to 'ToPythonConversions'"); } }