FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Add rudimentary support for _tkinter in GraalPy by phkeese · Pull Request #381 · oracle/graalpython · GitHub

Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension .py  (4) All 1 file type selected
Viewed files
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Unified
Split
Hide whitespace
Diff view
Unified
Split
Hide whitespace
55 changes: 55 additions & 0 deletions graalpython/lib-python/3/_tkinter/__init__.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# _tkinter package -- low-level interface to libtk and libtcl.
#
# This is an internal module, applications should "import tkinter" instead.
#
# This version is based PyPy which itself is based on cffi, and is a translation of _tkinter.c
# from CPython, version 2.7.4.

import sys

class TclError(Exception):
pass

from .tklib_cffi import ffi as tkffi, lib as tklib

from .app import TkApp
from .tclobj import TclObject as Tcl_Obj
from .app import FromTclString, ToTCLString

TK_VERSION = FromTclString(tkffi.string(tklib.get_tk_version()))
TCL_VERSION = FromTclString(tkffi.string(tklib.get_tcl_version()))

READABLE = tklib.TCL_READABLE
WRITABLE = tklib.TCL_WRITABLE
EXCEPTION = tklib.TCL_EXCEPTION
DONT_WAIT = tklib.TCL_DONT_WAIT

def create(screenName=None, baseName=None, className=None,
interactive=False, wantobjects=False, wantTk=True,
sync=False, use=None):
return TkApp(screenName, baseName, className,
interactive, wantobjects, wantTk, sync, use)

def dooneevent(flags=0):
return tklib.Tcl_DoOneEvent(flags)


def _flatten(item):
def _flatten1(output, item, depth):
if depth > 1000:
raise ValueError("nesting too deep in _flatten")
if not isinstance(item, (list, tuple)):
raise TypeError("argument must be sequence")
# copy items to output tuple
for o in item:
if isinstance(o, (list, tuple)):
_flatten1(output, o, depth + 1)
elif o is not None:
output.append(o)

result = []
_flatten1(result, item, 0)
return tuple(result)

# Encoding is not specified explicitly, but "must be passed argv[0]" sounds like a simple conversion to raw bytes.
tklib.Tcl_FindExecutable(ToTCLString(sys.executable))
Loading

Back | FazBrowse Home | New Git URL