Author: Alex Gaynor <[email protected]>
Branch: stdlib-2.7.8
Changeset: r73020:9cfd18fbf13f
Date: 2014-08-23 18:29 -0700
http://bitbucket.org/pypy/pypy/changeset/9cfd18fbf13f/
Log: Some missing methods on tkapp
diff --git a/lib_pypy/_tkinter/app.py b/lib_pypy/_tkinter/app.py
--- a/lib_pypy/_tkinter/app.py
+++ b/lib_pypy/_tkinter/app.py
@@ -438,10 +438,41 @@
def getboolean(self, s):
if isinstance(s, int):
return s
+ if isinstance(s, unicode):
+ s = str(s)
+ if '\x00' in s:
+ raise TypeError
v = tkffi.new("int*")
res = tklib.Tcl_GetBoolean(self.interp, s, v)
if res == tklib.TCL_ERROR:
self.raiseTclError()
+ return bool(v[0])
+
+ def getint(self, s):
+ if isinstance(s, int):
+ return s
+ if isinstance(s, unicode):
+ s = str(s)
+ if '\x00' in s:
+ raise TypeError
+ v = tkffi.new("int*")
+ res = tklib.Tcl_GetInt(self.interp, s, v)
+ if res == tklib.TCL_ERROR:
+ self.raiseTclError()
+ return v[0]
+
+ def getdouble(self, s):
+ if isinstance(s, float):
+ return s
+ if isinstance(s, unicode):
+ s = str(s)
+ if '\x00' in s:
+ raise TypeError
+ v = tkffi.new("double*")
+ res = tklib.Tcl_GetDouble(self.interp, s, v)
+ if res == tklib.TCL_ERROR:
+ self.raiseTclError()
+ return v[0]
def mainloop(self, threshold):
self._check_tcl_appartment()
diff --git a/lib_pypy/_tkinter/tklib.py b/lib_pypy/_tkinter/tklib.py
--- a/lib_pypy/_tkinter/tklib.py
+++ b/lib_pypy/_tkinter/tklib.py
@@ -70,6 +70,8 @@
void Tcl_DecrRefCount(Tcl_Obj* objPtr);
int Tcl_GetBoolean(Tcl_Interp* interp, const char* src, int* boolPtr);
+int Tcl_GetInt(Tcl_Interp* interp, const char* src, int* intPtr);
+int Tcl_GetDouble(Tcl_Interp* interp, const char* src, double* doublePtr);
char *Tcl_GetString(Tcl_Obj* objPtr);
char *Tcl_GetStringFromObj(Tcl_Obj* objPtr, int* lengthPtr);
unsigned char *Tcl_GetByteArrayFromObj(Tcl_Obj* objPtr, int* lengthPtr);
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit