public static async Task <PyString> __repr__(IInterpreter interpreter, FrameContext context, PyObject self) { var asDict = (PyDict)self; PyString retStr = PyString.Create("{"); int visited = 0; foreach (var mapping in asDict.dict) { var key_repr = await __visit_repr((PyObject)mapping.Key, interpreter, context); retStr = (PyString)PyStringClass.__add__(retStr, key_repr); retStr = (PyString)PyStringClass.__add__(retStr, PyString.Create(": ")); var val_repr = await __visit_repr((PyObject)mapping.Value, interpreter, context); retStr = (PyString)PyStringClass.__add__(retStr, val_repr); // Appending commas except on last paring if (visited < asDict.dict.Count - 1) { retStr = (PyString)PyStringClass.__add__(retStr, PyString.Create(", ")); } visited += 1; } return((PyString)PyStringClass.__add__(retStr, PyString.Create("}"))); }
public static async Task <PyString> __repr__(IInterpreter interpreter, FrameContext context, PyObject self) { var asTuple = (PyTuple)self; PyString retStr = PyString.Create("("); for (int i = 0; i < asTuple.Values.Length; ++i) { var pyObj = asTuple.Values[i] as PyObject; if (pyObj == null) { retStr = (PyString)PyStringClass.__add__(retStr, PyString.Create(asTuple.Values[i].ToString())); } else { var __repr__ = pyObj.__getattribute__(PyClass.__REPR__); var functionToRun = __repr__ as IPyCallable; var returned = await functionToRun.Call(interpreter, context, new object[] { pyObj }); if (returned != null) { var asPyString = (PyString)returned; retStr = (PyString)PyStringClass.__add__(retStr, asPyString); } } // Appending commas except on last index if (i < asTuple.Values.Length - 1) { retStr = (PyString)PyStringClass.__add__(retStr, PyString.Create(", ")); } } return((PyString)PyStringClass.__add__(retStr, PyString.Create(")"))); }
private static async Task <PyString> __visit_repr(object rawobj, IInterpreter interpreter, FrameContext context) { if (rawobj == null) { return(PyString.Create("null")); } if (!(rawobj is PyObject)) { return(PyString.Create(rawobj.ToString())); } var obj = rawobj as PyObject; var __repr__ = obj.__getattribute__(PyClass.__REPR__); var functionToRun = __repr__ as IPyCallable; var returned = await functionToRun.Call(interpreter, context, new object[] { obj }); if (returned != null) { return((PyString)returned); } else { return(null); } }
public static async Task <PyString> __repr__(IInterpreter interpreter, FrameContext context, PyObject self) { var asList = (PyList)self; PyString retStr = PyString.Create("["); for (int i = 0; i < asList.list.Count; ++i) { var pyObj = asList.list[i]; var __repr__ = pyObj.__getattribute__(PyClass.__REPR__); var functionToRun = __repr__ as IPyCallable; var returned = await functionToRun.Call(interpreter, context, new object[0]); if (returned != null) { var asPyString = (PyString)returned; retStr = (PyString)PyStringClass.__add__(retStr, asPyString); } // Appending commas except on last index if (i < asList.list.Count - 1) { retStr = (PyString)PyStringClass.__add__(retStr, PyString.Create(", ")); } } return((PyString)PyStringClass.__add__(retStr, PyString.Create("]"))); }
public static PyString __repr__(PyObject self) { // Default __repr__ // TODO: Switch to __class__.__name__ // TODO: Switch to an internal Python object ID (probably when doing something like object subpooling) // Using the hashcode is definitely not the same as what Python is using. return(PyString.Create("<" + self.GetType().Name + " object at " + self.GetHashCode() + ">")); }
public static PyObject __add__(PyObject self, PyObject other) { PyString a, b; castOperands(self, other, out a, out b, "concatenation"); var newPyString = PyString.Create(a.InternalValue + b.InternalValue); return(newPyString); }
public static PyObject __mul__(PyObject self, PyObject other) { PyString a; PyInteger b; a = self as PyString; b = other as PyInteger; if (a == null) { throw new Exception("Tried to use a non-PyString for lvalue of: multiplication"); } if (b == null) { // TODO: Try to realize this as a real TypeError object in some way. throw new Exception("TypeError: can't multiply sequence by non-int of type 'str'"); } var newPyString = PyString.Create(string.Concat(Enumerable.Repeat(a.InternalValue, (int)b.InternalValue))); return(newPyString); }
public static new PyString __repr__(PyObject self) { return(PyString.Create(self.ToString())); }
public static PyString __repr__(PyObject self) { var asProxy = (PyDotNetClassProxy)self; return(PyString.Create("<" + asProxy.dotNetType.Name + " proxy object at " + self.GetHashCode() + ">")); }