Path: csiph.com!news.mixmin.net!weretis.net!feeder4.news.weretis.net!news.tal.de!news.wtal.de!fu-berlin.de!uni-berlin.de!not-for-mail From: Chris Angelico Newsgroups: comp.lang.python Subject: Re: non-blocking getkey? Date: Thu, 19 Nov 2015 00:24:11 +1100 Lines: 26 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: news.uni-berlin.de hJeVH9QvGM/MdaZOrNIyAwp4unIFSMm5SkecgE35zmfw== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.014 X-Spam-Evidence: '*H*': 0.97; '*S*': 0.00; 'cc:addr:python-list': 0.09; 'buttons': 0.09; 'file"': 0.09; 'python': 0.10; 'thu,': 0.15; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'name),': 0.16; 'pairs': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'sees': 0.16; 'singular': 0.16; 'subject:non': 0.16; 'uncommon': 0.16; 'wrote:': 0.16; 'instance,': 0.18; '(in': 0.18; '2015': 0.20; 'cc:2**0': 0.20; 'cc:addr:python.org': 0.20; 'latter': 0.22; 'trying': 0.22; 'am,': 0.23; 'select': 0.23; 'header:In-Reply-To:1': 0.24; 'message- id:@mail.gmail.com': 0.27; 'character': 0.29; 'code': 0.30; 'combination': 0.33; 'file': 0.34; 'handle': 0.34; 'list': 0.34; 'received:google.com': 0.35; 'ones': 0.35; 'nov': 0.35; 'unicode': 0.35; 'quite': 0.35; 'received:209.85': 0.36; 'basic': 0.36; 'limitation': 0.36; 'subject:?': 0.36; 'subject:: ': 0.37; 'received:209.85.213': 0.37; 'received:209': 0.38; 'button': 0.38; 'names': 0.38; 'anything': 0.38; 'files': 0.38; 'application': 0.39; 'subject:-': 0.39; 'your': 0.60; 'programs': 0.62; 'multilingual': 0.72; 'chrisa': 0.84; 'each,': 0.84; 'hard.': 0.84; 'non-bmp': 0.84; 'to:none': 0.91; 'divided': 0.93 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=hsl+SZBRyCZtL85krKzjCZGUaO/Sg++kjlDSkxd6ZIQ=; b=qsCtUMnEvnl9wQv1so4F74lYGsDflsNWALqqHjnS1g/upP/rP1YSyeY24JDl0p+VKX GuEjHCfC4TY68V5dSKailcMtls8rpU06BAR6c9txeGJF/hEIEZ8sYWtBk/DfDROXmaoZ 5pwde00M189rTJTmKRNm7psSOUMqQ2IyND+fea2dPGekve/43ifvILRuEBXaBD6PllFV h6kpGpMXyf3iTwXqpCOStDLXzW7bAN9gN0SZ7+gj80lVUbVuip9pqpP27F8em/IZ7X84 iUu4dgjVEBrts0ibZ5Fj9f/YFVPQ0m61ErLtnf0D+QAomFbn56zajpGYFeqnINKpdRep 8Gpw== X-Received: by 10.50.30.6 with SMTP id o6mr7953479igh.94.1447853051189; Wed, 18 Nov 2015 05:24:11 -0800 (PST) In-Reply-To: X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com comp.lang.python:98967 On Thu, Nov 19, 2015 at 12:06 AM, Ulli Horlacher wrote: >> The limitation is that this will not work if any of the file names >> contain astral (non-BMP) chars because tk cannot handle such characters. > > What are "astral chars"? Characters not on the Basic Multilingual Plane (BMP). The Unicode character set is divided into a number of planes of 65,536 codepoints each, with the most commonly used ones on the first plane, the BMP. A lot of programs either cannot use non-BMP characters or have problems with them; for instance, anything that uses UTF-16 as its internal representation (ECMAScript, notably; also Python 2 on Windows) sees astral characters as pairs of code points. > In my application the user MUST select files and directories (in one go). It's extremely uncommon to be able to select a combination of files and directories. The UI for this would be quite annoying, I think. You may find it easier to have your own wrapper; for example, have a list of selected files/directories, with buttons "Add File" and "Add Directory" underneath. The former would use askopenfilenames (despite the singular in the button name), and the latter would use askdirectory. Trying to do both at once would be hard. ChrisA