From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 17 23:49:03 2024 Received: (at submit) by debbugs.gnu.org; 18 Jan 2024 04:49:03 +0000 Received: from localhost ([127.0.0.1]:54120 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQKKs-0004J1-Gd for submit@debbugs.gnu.org; Wed, 17 Jan 2024 23:49:03 -0500 Received: from lists.gnu.org ([2001:470:142::17]:57950) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQKKq-0004IT-98 for submit@debbugs.gnu.org; Wed, 17 Jan 2024 23:49:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rQKKj-0005Nw-2v for bug-gnu-emacs@gnu.org; Wed, 17 Jan 2024 23:48:53 -0500 Received: from mail-ua1-x931.google.com ([2607:f8b0:4864:20::931]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rQKKg-0001JA-9v for bug-gnu-emacs@gnu.org; Wed, 17 Jan 2024 23:48:52 -0500 Received: by mail-ua1-x931.google.com with SMTP id a1e0cc1a2514c-7cdef012c0eso3430864241.2 for ; Wed, 17 Jan 2024 20:48:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705553329; x=1706158129; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=QO8EN6fRjGPmULn/7v8UyP2tmZpJNip5SwUgcZOqkMU=; b=HDoNoyoYW4XPMi0NTmGKMed4aOqNVdJIAk6IG+p3Ju/UVeYwP2IDElnIOvjPVy68ad VgbFYkYCsLt4fizvkShSTrlAwE6ERQ6yKAesZJmnaP53fA68oddF7RfmpKWoFCfgOZEQ LDiX6+0RlSWDbQLyVnQZaEFwZLQ/EKPMQ1A23/sHgDdA4hvhKr/AK2Kg0jNTjJtdmr/n tJiI+mLH4eqBIrE/ygg50WS6rX5OEqyolw3cqegu7wji8MeUTg9L7NYZ/9Kvt54lQE9B vg/iy6pbI8rF+tkhrajYnSZ/nXDTGtr7un+LAXzrnhwXxouyM8kYODbuP/AHi2UxEXny 6aZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705553329; x=1706158129; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=QO8EN6fRjGPmULn/7v8UyP2tmZpJNip5SwUgcZOqkMU=; b=kCZkFxRvNkqmAYa88Q2HnwUoDBTknTzC/RclvikIn59fPD/jTaSHGpnfZDticmGKaa ktVIJ1vrocDWNnE1xnaUFtWj4eCnWPfBDMzBwXTmslDkA/IgMYXdIniaFhZJyEXtgKqX vEXsq4xbT4f1XuC1gPjx+tt13khylMcbhx6TDQGsEriYlU18JLWiW/JSiEvSBM76cQtO r7/nXhIdjI4cj/CkuAlVg6LRqGi8HLg85agh2W6p4g30Y2r38UVk2dCP4gjDJDgJSzMd ULTr599TleOeF+4FDwxMzJ3v+oIRz2khkeb0YnIubAiof7uOYjau6XjycP1iNatMw0KV nKhQ== X-Gm-Message-State: AOJu0YyDKkA8Qw+nGT4tqtdC4GKAaCe+GjsiA81+bx4/yzuxP72UH0wC JllBPM1JCfN6cdIeJHAWsMuocu00gswl6jTMybaXPP0Dyt0Cohjh/x2g4qWCgy2OahXWO7N6CNC E6vrTsuAS7IHjb4S77WSjDbSeMrT30YPbAzY= X-Google-Smtp-Source: AGHT+IH/M1rD34wKzxSQTfJAE24AnGfkmqHKgoKn5Y63FfhKIxcNWa26O2qUNHA3/zrAvn1ahBuyiPy7pLmTpZYIaM0= X-Received: by 2002:a05:6122:a1b:b0:4b6:bc78:d6db with SMTP id 27-20020a0561220a1b00b004b6bc78d6dbmr177060vkn.31.1705553328865; Wed, 17 Jan 2024 20:48:48 -0800 (PST) MIME-Version: 1.0 From: Liu Hui Date: Thu, 18 Jan 2024 12:48:37 +0800 Message-ID: Subject: [PATCH] Improve Python shell completion To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary="000000000000501cf7060f3114e5" Received-SPF: pass client-ip=2607:f8b0:4864:20::931; envelope-from=liuhui1610@gmail.com; helo=mail-ua1-x931.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_SBL_A=0.1 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hi, Currently python-shell-completion-at-point doesn't respect the delimiter setting of readline completer and always split the text, resulting in poor completions when completers that don't need word spl [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.1 URIBL_SBL_A Contains URL's A record listed in the Spamhaus SBL blocklist [URIs: ipython.org] 0.6 URIBL_SBL Contains an URL's NS IP listed in the Spamhaus SBL blocklist [URIs: ipython.org] 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (liuhui1610[at]gmail.com) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (liuhui1610[at]gmail.com) -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) --000000000000501cf7060f3114e5 Content-Type: text/plain; charset="UTF-8" Hi, Currently python-shell-completion-at-point doesn't respect the delimiter setting of readline completer and always split the text, resulting in poor completions when completers that don't need word splitting, e.g. jedi[1], is used. This patch fixes the problem. Meanwhile, this patch adds an option 'python-shell-readline-completer' to make Python shell provide better completion experience (e.g. completing function parameters, dictionary keys) by default if users are using vanilla Python interpreter with jedi or using IPython, where the completion support for IPython has been enhanced (e.g. showing type annotations and function signatures). BTW, I think it may make sense to move Python snippets to a separate file to make them easier to be maintained. Thanks. Best, [1] https://jedi.readthedocs.io/en/latest/docs/usage.html#repl-completion --000000000000501cf7060f3114e5 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Improve-Python-shell-completion.patch" Content-Disposition: attachment; filename="0001-Improve-Python-shell-completion.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lriqdb5y0 RnJvbSA2M2EwZjE3MmJjZDNhM2FjODgyZDc2Yzc3ODhjMzYzN2FjYzZhZTM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAxOCBKYW4gMjAyNCAxMjowMDowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEltcHJvdmUg UHl0aG9uIHNoZWxsIGNvbXBsZXRpb24KCiogbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIChweXRo b24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlKTogRml4CnRoZSBjb21wbGV0aW9uIGNvZGUg b2YgSVB5dGhvbi4gIENoYW5nZSB0aGUgcmV0dXJuIHZhbHVlIHRvIEpTT04Kc3RyaW5nIGFuZCAu Li4KKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucyk6IC4uLiBzaW1wbGlm eSBwYXJzaW5nLgooaW5mZXJpb3ItcHl0aG9uLW1vZGUpOiBVcGRhdGUgZG9jc3RyaW5nLgoocHl0 aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlcik6IE5ldyBvcHRpb24uCihweXRob24tc2hlbGwt cmVhZGxpbmUtY29tcGxldGVyLWRlbGltcykKKHB5dGhvbi1zaGVsbC1yZWFkbGluZS1qZWRpLXNl dHVwLWNvZGUpCihweXRob24tc2hlbGwtcmVhZGxpbmUtaXB5dGhvbi1zZXR1cC1jb2RlKTogTmV3 IHZhcmlhYmxlcy4KKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1zZXR1cCk6IFNldHVw IGEgc3VpdGFibGUgcmVhZGxpbmUKY29tcGxldGVyIGFuZCBzZXQgdGhlIGNvbXBsZXRlciBkZWxp bWl0ZXIuCihweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZ2V0LWNvbXBsZXRpb25zKTog Q29udmVydCBvdXRwdXQKc3RyaW5nIHRvIGNvbXBsZXRpb25zIHByb3Blcmx5LgoocHl0aG9uLXNo ZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQpOiBTZW5kIHRleHQgYmVnaW5uaW5nIGZyb20gdGhlIGxp bmUKc3RhcnQgaWYgdGhlIGNvbXBsZXRpb24gYmFja2VuZCBkb2VzIG5vdCBuZWVkIHdvcmQgc3Bs aXR0aW5nLiAgUmVtb3ZlCnRoZSBkZXRlY3Rpb24gb2YgaW1wb3J0IHN0YXRlbWVudCBiZWNhdXNl IGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KQ3JlYXRlIHByb3BlciBjb21wbGV0aW9uIHRhYmxl IGJhc2VkIG9uIGNvbXBsZXRpb25zIHJldHVybmVkIGZyb20KZGlmZmVyZW50IGJhY2tlbmRzLgoK KiB0ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCAocHl0aG9uLXNoZWxsLWNvbXBs ZXRpb24tbW9kdWxlKToKKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXBhcmFtZXRlcnMpOgoocHl0 aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtamVkaS1jb21wbGV0ZXIpOgoocHl0aG9uLXNo ZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtaXB5dGhvbik6IE5ldyB0ZXN0cy4KCiogZXRjL05FV1M6 IEFubm91bmNlIHRoZSBjaGFuZ2UuCi0tLQogZXRjL05FV1MgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDYgKwogbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsICAgICAgICAgICAgfCAyMzQg KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24t dGVzdHMuZWwgfCAgNjYgKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjU1IGluc2VydGlvbnMo KyksIDUxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5k ZXggMDNiOGMzYjUxN2EuLjZmZDMzNzcyN2M1IDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9l dGMvTkVXUwpAQCAtMTAyOSw2ICsxMDI5LDEyIEBAIGluc3RlYWQgb2Y6CiBUaGlzIGFsbG93cyB0 aGUgdXNlciB0byBzcGVjaWZ5IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdG8gdGhlIG5vbgogaW50 ZXJhY3RpdmUgUHl0aG9uIGludGVycHJldGVyIHNwZWNpZmllZCBieSAncHl0aG9uLWludGVycHJl dGVyJy4KIAorKioqIE5ldyB1c2VyIG9wdGlvbiAncHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBs ZXRlcicuCitUaGlzIGFsbG93cyB0aGUgdXNlciB0byBzcGVjaWZ5IHRoZSByZWFkbGluZSBjb21w bGV0ZXIgdXNlZCBmb3IgUHl0aG9uCitzaGVsbCBjb21wbGV0aW9uLiAgVGhlIGRlZmF1bHQgaXMg J2F1dG8nLCB3aGljaCBtZWFucyBhIHN1aXRhYmxlCitjb21wbGV0ZXIgd2lsbCBiZSBjb25maWd1 cmVkIGF1dG9tYXRpY2FsbHkgYWNjb3JkaW5nIHRvIHRoZSBQeXRob24KK2ludGVycHJldGVyLgor CiAqKiB1c2UtcGFja2FnZQogCiArKysKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3B5dGhv bi5lbCBiL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAppbmRleCBmZjc5OWUxZTY2Mi4uMmQ4N2Vi NTllZGUgMTAwNjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAorKysgYi9saXNwL3By b2dtb2Rlcy9weXRob24uZWwKQEAgLTEyOCw5ICsxMjgsOSBAQAogOzsgcmVjZWl2aW5nIGVzY2Fw ZSBzZXF1ZW5jZXMgKHdpdGggc29tZSBsaW1pdGF0aW9ucywgaS5lLiBjb21wbGV0aW9uCiA7OyBp biBibG9ja3MgZG9lcyBub3Qgd29yaykuICBUaGUgY29kZSBleGVjdXRlZCBmb3IgdGhlICJmYWxs YmFjayIKIDs7IGNvbXBsZXRpb24gY2FuIGJlIGZvdW5kIGluIGBweXRob24tc2hlbGwtY29tcGxl dGlvbi1zZXR1cC1jb2RlJyBhbmQKLTs7IGBweXRob24tc2hlbGwtY29tcGxldGlvbi1zdHJpbmct Y29kZScgdmFyaWFibGVzLiAgVGhlaXIgZGVmYXVsdAotOzsgdmFsdWVzIGVuYWJsZSBjb21wbGV0 aW9uIGZvciBib3RoIENQeXRob24gYW5kIElQeXRob24sIGFuZCBwcm9iYWJseQotOzsgYW55IHJl YWRsaW5lIGJhc2VkIHNoZWxsIChpdCdzIGtub3duIHRvIHdvcmsgd2l0aCBQeVB5KS4gIElmIHlv dXIKKzs7IGBweXRob24tc2hlbGwtY29tcGxldGlvbi1nZXQtY29tcGxldGlvbnMnLiAgVGhlaXIg ZGVmYXVsdCB2YWx1ZXMKKzs7IGVuYWJsZSBjb21wbGV0aW9uIGZvciBib3RoIENQeXRob24gYW5k IElQeXRob24sIGFuZCBwcm9iYWJseSBhbnkKKzs7IHJlYWRsaW5lIGJhc2VkIHNoZWxsIChpdCdz IGtub3duIHRvIHdvcmsgd2l0aCBQeVB5KS4gIElmIHlvdXIKIDs7IFB5dGhvbiBpbnN0YWxsYXRp b24gbGFja3MgcmVhZGxpbmUgKGxpa2UgQ1B5dGhvbiBmb3IgV2luZG93cyksCiA7OyBpbnN0YWxs aW5nIHB5cmVhZGxpbmUgKFVSTCBgaHR0cHM6Ly9pcHl0aG9uLm9yZy9weXJlYWRsaW5lLmh0bWwn KQogOzsgc2hvdWxkIHN1ZmZpY2UuICBUbyB0cm91Ymxlc2hvb3Qgd2h5IHlvdSBhcmUgbm90IGdl dHRpbmcgYW55CkBAIC0zNjAxLDcgKzM2MDEsNiBAQCBpbmZlcmlvci1weXRob24tbW9kZQogYHB5 dGhvbi1zaGVsbC1wcm9tcHQtYmxvY2stcmVnZXhwJywKIGBweXRob24tc2hlbGwtZm9udC1sb2Nr LWVuYWJsZScsCiBgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZScsCi1gcHl0aG9u LXNoZWxsLWNvbXBsZXRpb24tc3RyaW5nLWNvZGUnLAogYHB5dGhvbi1lbGRvYy1zZXR1cC1jb2Rl JywKIGBweXRob24tZmZhcC1zZXR1cC1jb2RlJyBjYW4KIGN1c3RvbWl6ZSB0aGlzIG1vZGUgZm9y IGRpZmZlcmVudCBQeXRob24gaW50ZXJwcmV0ZXJzLgpAQCAtNDMxOSw4ICs0MzE4LDkgQEAgcHl0 aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZQogICAgIGNvbXBsZXRpb25zID0gW10KICAg ICBjb21wbGV0ZXIgPSBOb25lCiAKKyAgICBpbXBvcnQganNvbgogICAgIHRyeToKLSAgICAgICAg aW1wb3J0IHJlYWRsaW5lCisgICAgICAgIGltcG9ydCByZWFkbGluZSwgcmUKIAogICAgICAgICB0 cnk6CiAgICAgICAgICAgICBpbXBvcnQgX19idWlsdGluX18KQEAgLTQzMzEsMTYgKzQzMzEsMjkg QEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZQogCiAgICAgICAgIGlzX2lweXRo b24gPSAoJ19fSVBZVEhPTl9fJyBpbiBidWlsdGlucyBvcgogICAgICAgICAgICAgICAgICAgICAg ICdfX0lQWVRIT05fX2FjdGl2ZScgaW4gYnVpbHRpbnMpCi0gICAgICAgIHNwbGl0cyA9IHRleHQu c3BsaXQoKQotICAgICAgICBpc19tb2R1bGUgPSBzcGxpdHMgYW5kIHNwbGl0c1swXSBpbiAoJ2Zy b20nLCAnaW1wb3J0JykKLQotICAgICAgICBpZiBpc19pcHl0aG9uIGFuZCBpc19tb2R1bGU6Ci0g ICAgICAgICAgICBmcm9tIElQeXRob24uY29yZS5jb21wbGV0ZXJsaWIgaW1wb3J0IG1vZHVsZV9j b21wbGV0aW9uCi0gICAgICAgICAgICBjb21wbGV0aW9ucyA9IG1vZHVsZV9jb21wbGV0aW9uKHRl eHQuc3RyaXAoKSkKLSAgICAgICAgZWxpZiBpc19pcHl0aG9uIGFuZCAnX19JUCcgaW4gYnVpbHRp bnM6Ci0gICAgICAgICAgICBjb21wbGV0aW9ucyA9IF9fSVAuY29tcGxldGUodGV4dCkKLSAgICAg ICAgZWxpZiBpc19pcHl0aG9uIGFuZCAnZ2V0X2lweXRob24nIGluIGJ1aWx0aW5zOgotICAgICAg ICAgICAgY29tcGxldGlvbnMgPSBnZXRfaXB5dGhvbigpLkNvbXBsZXRlci5hbGxfY29tcGxldGlv bnModGV4dCkKKworICAgICAgICBpZiBpc19pcHl0aG9uIGFuZCAnZ2V0X2lweXRob24nIGluIGJ1 aWx0aW5zOgorICAgICAgICAgICAgZGVmIGZpbHRlcl9jKHByZWZpeCwgYyk6CisgICAgICAgICAg ICAgICAgaWYgcmUubWF0Y2goJ18rKGk/WzAtOV0rKT8kJywgYyk6CisgICAgICAgICAgICAgICAg ICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAgIGVsaWYgY1swXSA9PSAnJScgYW5kIG5v dCByZS5tYXRjaCgnWyVhLXpBLVpdKyQnLCBwcmVmaXgpOgorICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgICAgICBp bXBvcnQgSVB5dGhvbgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGlmIElQeXRo b24udmVyc2lvbl9pbmZvWzBdID49IDY6CisgICAgICAgICAgICAgICAgICAgIGZyb20gSVB5dGhv bi5jb3JlLmNvbXBsZXRlciBpbXBvcnQgcHJvdmlzaW9uYWxjb21wbGV0ZXIKKyAgICAgICAgICAg ICAgICAgICAgd2l0aCBwcm92aXNpb25hbGNvbXBsZXRlcigpOgorICAgICAgICAgICAgICAgICAg ICAgICAgY29tcGxldGlvbnMgPSBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2MudGV4 dCwgYy5zdGFydCwgYy5lbmQsIGMudHlwZSBvciAnPycsIGMuc2lnbmF0dXJlIG9yICcnXQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYyBpbiBnZXRfaXB5dGhvbigpLkNvbXBsZXRl ci5jb21wbGV0aW9ucyh0ZXh0LCBsZW4odGV4dCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGZpbHRlcl9jKHRleHQsIGMudGV4dCldCisgICAgICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICAgICAgcGFydCwgbWF0Y2hlcyA9IGdldF9pcHl0aG9uKCkuQ29tcGxldGVy LmNvbXBsZXRlKGxpbmVfYnVmZmVyPXRleHQpCisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRp b25zID0gW3RleHQgKyBtW2xlbihwYXJ0KTpdIGZvciBtIGluIG1hdGNoZXMgaWYgZmlsdGVyX2Mo dGV4dCwgbSldCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcGFzcwogICAg ICAgICBlbHNlOgogICAgICAgICAgICAgIyBUcnkgdG8gcmV1c2UgY3VycmVudCBjb21wbGV0ZXIu CiAgICAgICAgICAgICBjb21wbGV0ZXIgPSByZWFkbGluZS5nZXRfY29tcGxldGVyKCkKQEAgLTQz NjMsNyArNDM3Niw3IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAgICBm aW5hbGx5OgogICAgICAgICBpZiBnZXRhdHRyKGNvbXBsZXRlciwgJ1BZVEhPTl9FTF9XUkFQUEVE JywgRmFsc2UpOgogICAgICAgICAgICAgY29tcGxldGVyLnByaW50X21vZGUgPSBUcnVlCi0gICAg cmV0dXJuIGNvbXBsZXRpb25zIgorICAgIHJldHVybiBqc29uLmR1bXBzKGNvbXBsZXRpb25zKSIK ICAgIkNvZGUgdXNlZCB0byBzZXR1cCBjb21wbGV0aW9uIGluIGluZmVyaW9yIFB5dGhvbiBwcm9j ZXNzZXMuIgogICA6dHlwZSAnc3RyaW5nKQogCkBAIC00NDA0LDYgKzQ0MTcsNzkgQEAgcHl0aG9u LXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXRyeS1vdXRwdXQtdGltZW91dAogICA6dmVyc2lvbiAi MjUuMSIKICAgOnR5cGUgJ2Zsb2F0KQogCisoZGVmY3VzdG9tIHB5dGhvbi1zaGVsbC1yZWFkbGlu ZS1jb21wbGV0ZXIgJ2F1dG8KKyAgIlRoZSByZWFkbGluZSBjb21wbGV0ZXIgdXNlZCBmb3IgUHl0 aG9uIHNoZWxsIGNvbXBsZXRpb24uCitJZiB0aGUgdmFsdWUgaXMgbm9uLW5pbCwgUHl0aG9uIHNo ZWxsIHdpbGwgc2V0dXAgdGhlIHJlYWRsaW5lCitjb21wbGV0ZXIgdW5sZXNzIGl0IGhhcyBiZWVu IHNldCBlbHNld2hlcmUgKGUuZy4gaW4gdGhlCitQWVRIT05TVEFSVFVQIGZpbGUpLiAgQmVsb3cg YXJlIHBvc3NpYmxlIHZhbHVlczoKKy0gYGF1dG8nOiB0aGUgY29tcGxldGVyIGlzIGRldGVybWlu ZWQgYWNjb3JkaW5nIHRvIHRoZQoraW50ZXJwcmV0ZXIuICBTcGVjaWZpY2FsbHksIHRoZSBJUHl0 aG9uIGNvbXBsZXRlciwgZGVmaW5lZCBpbgorYHB5dGhvbi1zaGVsbC1yZWFkbGluZS1pcHl0aG9u LXNldHVwLWNvZGUnLCBpcyB1c2VkIHdoZW4gdGhlCitpbnRlcnByZXRlciBpcyBpcHl0aG9uLCBv dGhlcndpc2UgdGhlIEplZGkgY29tcGxldGVyIGlzIHVzZWQuCistIGEgc3RyaW5nOiBQeXRob24g Y29kZSB0byBzZXR1cCB0aGUgcmVhZGxpbmUuIEl0IHNob3VsZCBkZWZpbmUKK3RoZSBmdW5jdGlv biBgX19QWVRIT05fRUxfc2V0dXBfcmVhZGxpbmVfY29tcGxldGVyJy4gIFNlZQorYHB5dGhvbi1z aGVsbC1yZWFkbGluZS1qZWRpLXNldHVwLWNvZGUnIGZvciByZWZlcmVuY2UuCistIGBuaWwnOiBQ eXRob24gc2hlbGwgd2lsbCBkbyBub3RoaW5nLgorCitJbiBhbnkgY2FzZSwgaWYgdGhlIGNvbXBs ZXRlciBpcyBub3Qgc2V0IHN1Y2Nlc3NmdWxseSBpbiB0aGUgZW5kLAorZmFsbGJhY2sgdG8gdGhl IGJ1aWx0LWluIHJsY29tcGxldGVyLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0ICA6dGFnICJB dXRvbWF0aWMiIGF1dG8pCisgICAgICAgICAgICAgICAgIChjb25zdCAgOnRhZyAiTm8gY29uZmln dXJhdGlvbiIgbmlsKQorICAgICAgICAgICAgICAgICAoc3RyaW5nIDp0YWcgIlB5dGhvbiBzZXR1 cCBjb2RlIikpCisgIDp2ZXJzaW9uICIzMC4xIikKKworKGRlZnZhciBweXRob24tc2hlbGwtcmVh ZGxpbmUtY29tcGxldGVyLWRlbGltcyBuaWwKKyAgIldvcmQgZGVsaW1pdGVycyB1c2VkIGJ5IHRo ZSByZWFkbGluZSBjb21wbGV0ZXIuCitJdCBpcyBhdXRvbWF0aWNhbGx5IHNldCBieSBQeXRob24g c2hlbGwuIikKKworKGRlZmNvbnN0IHB5dGhvbi1zaGVsbC1yZWFkbGluZS1qZWRpLXNldHVwLWNv ZGUKKyAgIgorZGVmIF9fUFlUSE9OX0VMX3NldHVwX3JlYWRsaW5lX2NvbXBsZXRlcigpOgorICAg IGZyb20gamVkaS51dGlscyBpbXBvcnQgc2V0dXBfcmVhZGxpbmUKKyAgICBzZXR1cF9yZWFkbGlu ZSgpIgorICAiQ29kZSB1c2VkIHRvIHNldHVwIHJlYWRsaW5lIGNvbXBsZXRlciB3aXRoIEplZGku IikKKworKGRlZmNvbnN0IHB5dGhvbi1zaGVsbC1yZWFkbGluZS1pcHl0aG9uLXNldHVwLWNvZGUK KyAgIgorZGVmIF9fUFlUSE9OX0VMX3NldHVwX3JlYWRsaW5lX2NvbXBsZXRlcigpOgorICAgIGlt cG9ydCByZWFkbGluZSwgcmUsIGpzb24sIElQeXRob24KKworICAgIGNsYXNzIF9faXB5dGhvbl9S TDoKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHYpOgorICAgICAgICAgICAgc2VsZi52ZXJz aW9uID0gdgorCisgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgcHJlZml4LCBjKToKKyAgICAgICAg ICAgIGlmIHJlLm1hdGNoKCdfKyhpP1swLTldKyk/JCcsIGMpOgorICAgICAgICAgICAgICAgIHJl dHVybiBGYWxzZQorICAgICAgICAgICAgZWxpZiBjWzBdID09ICclJyBhbmQgbm90IHJlLm1hdGNo KCdbJWEtekEtWl0rJCcsIHByZWZpeCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisg ICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIGRlZiBjb21wbGV0ZShzZWxmLCB0ZXh0 LCBzdGF0ZSk6CisgICAgICAgICAgICBpZiBzdGF0ZSA9PSAwOgorICAgICAgICAgICAgICAgIHRy eToKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi52ZXJzaW9uID49IDY6CisgICAgICAgICAg ICAgICAgICAgICAgICBmcm9tIElQeXRob24uY29yZS5jb21wbGV0ZXIgaW1wb3J0IHByb3Zpc2lv bmFsY29tcGxldGVyCisgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHByb3Zpc2lvbmFsY29t cGxldGVyKCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaGVzID0gW2pz b24uZHVtcHMoWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYy50ZXh0LCBjLnN0 YXJ0LCBjLmVuZCwgYy50eXBlIG9yICc/JywgYy5zaWduYXR1cmUgb3IgJyddCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBjIGluIGdldF9pcHl0aG9uKCkuQ29tcGxldGVyLmNv bXBsZXRpb25zKHRleHQsIGxlbih0ZXh0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgc2VsZi5maWx0ZXIodGV4dCwgYy50ZXh0KV0pXQorICAgICAgICAgICAgICAgICAgICBl bHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcGFydCwgbWF0Y2hlcyA9IGdldF9pcHl0aG9u KCkuQ29tcGxldGVyLmNvbXBsZXRlKGxpbmVfYnVmZmVyPXRleHQpCisgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLm1hdGNoZXMgPSBbdGV4dCArIG1bbGVuKHBhcnQpOl0gZm9yIG0gaW4gbWF0 Y2hlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZmls dGVyKHRleHQsIG0pXQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAg ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1 cm4gc2VsZi5tYXRjaGVzW3N0YXRlXQorICAgICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIHJlYWRsaW5lLnNldF9jb21wbGV0ZXIo X19pcHl0aG9uX1JMKElQeXRob24udmVyc2lvbl9pbmZvWzBdKS5jb21wbGV0ZSkKKyAgICByZWFk bGluZS5zZXRfY29tcGxldGVyX2RlbGltcygnJykiCisgICJDb2RlIHVzZWQgdG8gc2V0dXAgcmVh ZGxpbmUgY29tcGxldGVyIGZvciBJUHl0aG9uLiIpCisKIChkZWZ2YXIgcHl0aG9uLXNoZWxsLWNv bXBsZXRpb24tbmF0aXZlLXJlZGlyZWN0LWJ1ZmZlcgogICAiICpQeXRob24gY29tcGxldGlvbnMg cmVkaXJlY3QqIgogICAiQnVmZmVyIHRvIGJlIHVzZWQgdG8gcmVkaXJlY3Qgb3V0cHV0IG9mIHJl YWRsaW5lIGNvbW1hbmRzLiIpCkBAIC00NDI3LDcgKzQ1MTMsMjAgQEAgcHl0aG9uLXNoZWxsLWNv bXBsZXRpb24tbmF0aXZlLXRyeQogKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2 ZS1zZXR1cCAoKQogICAiVHJ5IHRvIHNldHVwIG5hdGl2ZSBjb21wbGV0aW9uLCByZXR1cm4gbm9u LW5pbCBvbiBzdWNjZXNzLiIKICAgKGxldCogKChwcm9jZXNzIChweXRob24tc2hlbGwtZ2V0LXBy b2Nlc3MpKQotICAgICAgICAgKG91dHB1dCAocHl0aG9uLXNoZWxsLXNlbmQtc3RyaW5nLW5vLW91 dHB1dCAiCisgICAgICAgICAoY29tcGxldGVyIChwY2FzZSBweXRob24tc2hlbGwtcmVhZGxpbmUt Y29tcGxldGVyCisgICAgICAgICAgICAgICAgICAgICAgKCdhdXRvCisgICAgICAgICAgICAgICAg ICAgICAgIChpZiAoc3RyaW5nLW1hdGNoLXAgImlweXRob25bMjNdP1xcJyIgcHl0aG9uLXNoZWxs LWludGVycHJldGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsLXJl YWRsaW5lLWlweXRob24tc2V0dXAtY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhv bi1zaGVsbC1yZWFkbGluZS1qZWRpLXNldHVwLWNvZGUpKQorICAgICAgICAgICAgICAgICAgICAg ICgocHJlZCBzdHJpbmdwKSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyKQorICAgICAg ICAgICAgICAgICAgICAgIChfICIiKSkpCisgICAgICAgICAob3V0cHV0IChweXRob24tc2hlbGwt c2VuZC1zdHJpbmctbm8tb3V0cHV0CisgICAgICAgICAgICAgICAgICAoY29uY2F0ICIKK3RyeToK KyAgICBkZWwgX19QWVRIT05fRUxfc2V0dXBfcmVhZGxpbmVfY29tcGxldGVyCitleGNlcHQ6Cisg ICAgcGFzcworIiBjb21wbGV0ZXIgIgogZGVmIF9fUFlUSE9OX0VMX25hdGl2ZV9jb21wbGV0aW9u X3NldHVwKCk6CiAgICAgdHJ5OgogICAgICAgICBpbXBvcnQgcmVhZGxpbmUKQEAgLTQ1MDMsOCAr NDYwMiwxMSBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXAKICAgICAgICAg Y29tcGxldGVyID0gcmVhZGxpbmUuZ2V0X2NvbXBsZXRlcigpCiAKICAgICAgICAgaWYgbm90IGNv bXBsZXRlcjoKLSAgICAgICAgICAgICMgVXNlZCBhcyBsYXN0IHJlc29ydCB0byBhdm9pZCBicmVh a2luZyBjdXN0b21pemF0aW9ucy4KLSAgICAgICAgICAgIGltcG9ydCBybGNvbXBsZXRlcgorICAg ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIF9fUFlUSE9OX0VMX3NldHVwX3JlYWRsaW5l X2NvbXBsZXRlcigpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgIyBVc2Vk IGFzIGxhc3QgcmVzb3J0IHRvIGF2b2lkIGJyZWFraW5nIGN1c3RvbWl6YXRpb25zLgorICAgICAg ICAgICAgICAgIGltcG9ydCBybGNvbXBsZXRlcgogICAgICAgICAgICAgY29tcGxldGVyID0gcmVh ZGxpbmUuZ2V0X2NvbXBsZXRlcigpCiAKICAgICAgICAgaWYgY29tcGxldGVyIGFuZCBub3QgZ2V0 YXR0cihjb21wbGV0ZXIsICdQWVRIT05fRUxfV1JBUFBFRCcsIEZhbHNlKToKQEAgLTQ1MzksOSAr NDY0MSwxMyBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXAKICAgICAgICAg cHJpbnQgKCdweXRob24uZWw6IG5hdGl2ZSBjb21wbGV0aW9uIHNldHVwIGZhaWxlZCwgJXM6ICVz JwogICAgICAgICAgICAgICAgJSBzeXMuZXhjX2luZm8oKVs6Ml0pCiAKLV9fUFlUSE9OX0VMX25h dGl2ZV9jb21wbGV0aW9uX3NldHVwKCkiIHByb2Nlc3MpKSkKK19fUFlUSE9OX0VMX25hdGl2ZV9j b21wbGV0aW9uX3NldHVwKCkiKSBwcm9jZXNzKSkpCiAgICAgKHdoZW4gKHN0cmluZy1tYXRjaC1w ICJweXRob25cXC5lbDogbmF0aXZlIGNvbXBsZXRpb24gc2V0dXAgbG9hZGVkIgogICAgICAgICAg ICAgICAgICAgICAgICAgICBvdXRwdXQpCisgICAgICAoc2V0cS1sb2NhbCBweXRob24tc2hlbGwt cmVhZGxpbmUtY29tcGxldGVyLWRlbGltcworICAgICAgICAgICAgICAgICAgKHN0cmluZy10cmlt LXJpZ2h0CisgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1v dXRwdXQKKyAgICAgICAgICAgICAgICAgICAgImltcG9ydCByZWFkbGluZTsgcHJpbnQocmVhZGxp bmUuZ2V0X2NvbXBsZXRlcl9kZWxpbXMoKSkiKSkpCiAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBs ZXRpb24tbmF0aXZlLXRyeSkpKSkKIAogKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5h dGl2ZS10dXJuLW9mZiAoJm9wdGlvbmFsIG1zZykKQEAgLTQ2MDksNiArNDcxNSw4IEBAIHB5dGhv bi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1nZXQtY29tcGxldGlvbnMKICAgICAobGV0KiAoKG9y aWdpbmFsLWZpbHRlci1mbiAocHJvY2Vzcy1maWx0ZXIgcHJvY2VzcykpCiAgICAgICAgICAgIChy ZWRpcmVjdC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1yZWRpcmVjdC1idWZmZXIpKQor ICAgICAgICAgICAoc2VwIChpZiAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxl dGVyLWRlbGltcyAiIikKKyAgICAgICAgICAgICAgICAgICAgIltcblxyXSsiICJbIFxmXHRcblxy XHYoKV0rIikpCiAgICAgICAgICAgICh0cmlnZ2VyICJcdCIpCiAgICAgICAgICAgIChuZXctaW5w dXQgKGNvbmNhdCBpbnB1dCB0cmlnZ2VyKSkKICAgICAgICAgICAgKGlucHV0LWxlbmd0aApAQCAt NDY1MSwyOCArNDc1OSwyNiBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZ2V0LWNv bXBsZXRpb25zCiAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzIHB5dGhvbi1zaGVsbC1jb21w bGV0aW9uLW5hdGl2ZS1vdXRwdXQtdGltZW91dAogICAgICAgICAgICAgICAgICAgICAgY29taW50 LXJlZGlyZWN0LWZpbmlzaGVkLXJlZ2V4cCkKICAgICAgICAgICAgICAgICAocmUtc2VhcmNoLWJh Y2t3YXJkICIwX19kdW1teV9jb21wbGV0aW9uX18iIG5pbCB0KQotICAgICAgICAgICAgICAgIChj bC1yZW1vdmUtZHVwbGljYXRlcwotICAgICAgICAgICAgICAgICAoc3BsaXQtc3RyaW5nCi0gICAg ICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCi0gICAgICAgICAg ICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQtbWluKSkKLSAgICAgICAg ICAgICAgICAgICJbIFxmXHRcblxyXHYoKV0rIiB0KQotICAgICAgICAgICAgICAgICA6dGVzdCAj J3N0cmluZz0pKSkpCisgICAgICAgICAgICAgICAgKGxldCAoKHN0ciAoYnVmZmVyLXN1YnN0cmlu Zy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5u aW5nLXBvc2l0aW9uKSAocG9pbnQtbWluKSkpKQorICAgICAgICAgICAgICAgICAgKGlmIChzdHJp bmc9ICJbIiAoc3Vic3RyaW5nIHN0ciAwIDEpKQorICAgICAgICAgICAgICAgICAgICAgIChjb25k aXRpb24tY2FzZSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi0tcGFyc2Ut anNvbi1hcnJheSBzdHIpCisgICAgICAgICAgICAgICAgICAgICAgICAodCAoY2wtcmVtb3ZlLWR1 cGxpY2F0ZXMgKHNwbGl0LXN0cmluZyBzdHIgc2VwIHQpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOnRlc3QgIydzdHJpbmc9KSkpCisgICAgICAgICAg ICAgICAgICAgIChjbC1yZW1vdmUtZHVwbGljYXRlcyAoc3BsaXQtc3RyaW5nIHN0ciBzZXAgdCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0ZXN0ICMnc3RyaW5n PSkpKSkpKQogICAgICAgICAoc2V0LXByb2Nlc3MtZmlsdGVyIHByb2Nlc3Mgb3JpZ2luYWwtZmls dGVyLWZuKSkpKSkKIAogKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0 aW9ucyAocHJvY2VzcyBpbnB1dCkKICAgIkdldCBjb21wbGV0aW9ucyBvZiBJTlBVVCB1c2luZyBQ Uk9DRVNTLiIKICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3Mp Ci0gICAgKGxldCAoKGNvbXBsZXRpb25zCi0gICAgICAgICAgIChweXRob24tdXRpbC1zdHJpcC1z dHJpbmcKLSAgICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0Ci0g ICAgICAgICAgICAgKGZvcm1hdAotICAgICAgICAgICAgICAiJXNcbnByaW50KCc7Jy5qb2luKF9f UFlUSE9OX0VMX2dldF9jb21wbGV0aW9ucyglcykpKSIKKyAgICAocHl0aG9uLS1wYXJzZS1qc29u LWFycmF5CisgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0CisgICAgICAo Zm9ybWF0ICIlc1xucHJpbnQoX19QWVRIT05fRUxfZ2V0X2NvbXBsZXRpb25zKCVzKSkiCiAgICAg ICAgICAgICAgIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAgICAgICAgICAg ICAgKHB5dGhvbi1zaGVsbC0tZW5jb2RlLXN0cmluZyBpbnB1dCkpCi0gICAgICAgICAgICAgcHJv Y2VzcykpKSkKLSAgICAgICh3aGVuICg+IChsZW5ndGggY29tcGxldGlvbnMpIDIpCi0gICAgICAg IChzcGxpdC1zdHJpbmcgY29tcGxldGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAiXidcXHxe XCJcXHw7XFx8JyRcXHxcIiQiIHQpKSkpKQorICAgICAgcHJvY2VzcykpKSkKIAogKGRlZnZhci1s b2NhbCBweXRob24tc2hlbGwtLWNhcGYtY2FjaGUgbmlsCiAgICJWYXJpYWJsZSB0byBzdG9yZSBj YWNoZWQgY29tcGxldGlvbnMgYW5kIGludmFsaWRhdGlvbiBrZXlzLiIpCkBAIC00Njg3LDIxICs0 NzkzLDIxIEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50CiAgICAgICAgICAgICAg ICAgICAgICAgICAgOzsgV29ya2luZyBvbiBhIHNoZWxsIGJ1ZmZlcjogdXNlIHByb21wdCBlbmQu CiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNkciAocHl0aG9uLXV0aWwtY29taW50LWxhc3Qt cHJvbXB0KSkKICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9u KSkpCi0gICAgICAgICAoaW1wb3J0LXN0YXRlbWVudAotICAgICAgICAgICh3aGVuIChzdHJpbmct bWF0Y2gtcAotICAgICAgICAgICAgICAgICAocnggKCogc3BhY2UpIHdvcmQtc3RhcnQgKG9yICJm cm9tIiAiaW1wb3J0Iikgd29yZC1lbmQgc3BhY2UpCi0gICAgICAgICAgICAgICAgIChidWZmZXIt c3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgbGluZS1zdGFydCAocG9pbnQpKSkKLSAgICAgICAgICAg IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgbGluZS1zdGFydCAocG9pbnQpKSkpCisg ICAgICAgICAobm8tZGVsaW1zICh3aXRoLWN1cnJlbnQtYnVmZmVyIChwcm9jZXNzLWJ1ZmZlciBw cm9jZXNzKQorICAgICAgICAgICAgICAgICAgICAgIChpZiBweXRob24tc2hlbGwtY29tcGxldGlv bi1uYXRpdmUtZW5hYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmc9IHB5dGhv bi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zICIiKQorICAgICAgICAgICAgICAgICAg ICAgICAgKHN0cmluZy1tYXRjaC1wICJpcHl0aG9uWzIzXT9cXCciIHB5dGhvbi1zaGVsbC1pbnRl cnByZXRlcikpKSkKICAgICAgICAgIChzdGFydAogICAgICAgICAgIChpZiAoPCAocG9pbnQpIGxp bmUtc3RhcnQpCiAgICAgICAgICAgICAgIChwb2ludCkKICAgICAgICAgICAgIChzYXZlLWV4Y3Vy c2lvbgotICAgICAgICAgICAgICAoaWYgKG5vdCAocmUtc2VhcmNoLWJhY2t3YXJkCi0gICAgICAg ICAgICAgICAgICAgICAgICAocHl0aG9uLXJ4Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKG9y IHdoaXRlc3BhY2Ugb3Blbi1wYXJlbiBjbG9zZS1wYXJlbgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJpbmctZGVsaW1pdGVyIHNpbXBsZS1vcGVyYXRvcikpCi0gICAgICAgICAgICAg ICAgICAgICAgICBsaW5lLXN0YXJ0Ci0gICAgICAgICAgICAgICAgICAgICAgICB0IDEpKQorICAg ICAgICAgICAgICAoaWYgKG9yIG5vLWRlbGltcworICAgICAgICAgICAgICAgICAgICAgIChub3Qg KHJlLXNlYXJjaC1iYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChweXRob24t cngKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIHdoaXRlc3BhY2Ugb3Blbi1wYXJl biBjbG9zZS1wYXJlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLWRl bGltaXRlciBzaW1wbGUtb3BlcmF0b3IpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp bmUtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0IDEpKSkKICAgICAgICAgICAg ICAgICAgIGxpbmUtc3RhcnQKICAgICAgICAgICAgICAgICAoZm9yd2FyZC1jaGFyIChsZW5ndGgg KG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDApKSkKICAgICAgICAgICAgICAgICAocG9pbnQp KSkpKQpAQCAtNDc0MSwxOCArNDg0Nyw0NCBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1w b2ludAogICAgICAgICAgICAgICAgICAgKHQgIydweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRp dmUtZ2V0LWNvbXBsZXRpb25zKSkpKQogICAgICAgICAgKHByZXYtcHJvbXB0IChjYXIgcHl0aG9u LXNoZWxsLS1jYXBmLWNhY2hlKSkKICAgICAgICAgIChyZSAob3IgKGNhZHIgcHl0aG9uLXNoZWxs LS1jYXBmLWNhY2hlKSByZWdleHAtdW5tYXRjaGFibGUpKQotICAgICAgICAgKHByZWZpeCAoYnVm ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpKQorICAgICAgICAgKHByZWZp eCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpCisgICAgICAgICAo cHJlZml4LW9mZnNldCAwKSkKICAgICA7OyBUbyBpbnZhbGlkYXRlIHRoZSBjYWNoZSwgd2UgY2hl Y2sgaWYgdGhlIHByb21wdCBwb3NpdGlvbiBvciB0aGUKICAgICA7OyBjb21wbGV0aW9uIHByZWZp eCBjaGFuZ2VkLgogICAgICh1bmxlc3MgKGFuZCAoZXF1YWwgcHJldi1wcm9tcHQgKGNhciBwcm9t cHQtYm91bmRhcmllcykpCi0gICAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2ggcmUgcHJlZml4 KSkKKyAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCByZSBwcmVmaXgpCisgICAgICAgICAg ICAgICAgIChzZXRxIHByZWZpeC1vZmZzZXQgKC0gKGxlbmd0aCBwcmVmaXgpIChtYXRjaC1lbmQg MSkpKSkKICAgICAgIChzZXRxIHB5dGhvbi1zaGVsbC0tY2FwZi1jYWNoZQogICAgICAgICAgICAg YCgsKGNhciBwcm9tcHQtYm91bmRhcmllcykKICAgICAgICAgICAgICAgLChpZiAoc3RyaW5nLWVt cHR5LXAgcHJlZml4KQogICAgICAgICAgICAgICAgICAgIHJlZ2V4cC11bm1hdGNoYWJsZQotICAg ICAgICAgICAgICAgICAoY29uY2F0ICJcXGAiIChyZWdleHAtcXVvdGUgcHJlZml4KSAiXFwoPzpc XHN3XFx8XFxzX1xcKSpcXCciKSkKLSAgICAgICAgICAgICAgLEAoZnVuY2FsbCBjb21wbGV0aW9u LWZuIHByb2Nlc3MgKG9yIGltcG9ydC1zdGF0ZW1lbnQgcHJlZml4KSkpKSkKLSAgICAobGlzdCBz dGFydCBlbmQgKGNkZHIgcHl0aG9uLXNoZWxsLS1jYXBmLWNhY2hlKSkpKQorICAgICAgICAgICAg ICAgICAoY29uY2F0ICJcXGBcXCgiIChyZWdleHAtcXVvdGUgcHJlZml4KSAiXFwpXFwoPzpcXHN3 XFx8XFxzX1xcKSpcXCciKSkKKyAgICAgICAgICAgICAgLEAoZnVuY2FsbCBjb21wbGV0aW9uLWZu IHByb2Nlc3MgcHJlZml4KSkpKQorICAgIChsZXQgKChjYW5kcyAoY2RkciBweXRob24tc2hlbGwt LWNhcGYtY2FjaGUpKSkKKyAgICAgIChjb25kCisgICAgICAgKChzdHJpbmdwIChjYXIgY2FuZHMp KQorICAgICAgICAoaWYgbm8tZGVsaW1zCisgICAgICAgICAgICA7OyBSZWR1Y2UgY29tcGxldGlv biBjYW5kaWRhdGVzIGR1ZSB0byBsb25nIHByZWZpeC4KKyAgICAgICAgICAgIChpZi1sZXQgKChM cCAobGVuZ3RoIHByZWZpeCkpCisgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAi XFwoXFxzd1xcfFxcc19cXCkrXFwnIiBwcmVmaXgpKQorICAgICAgICAgICAgICAgICAgICAgKEwg KG1hdGNoLWJlZ2lubmluZyAwKSkpCisgICAgICAgICAgICAgICAgKGxpc3QgKCsgc3RhcnQgTCkg ZW5kIChtYXBjYXIgKGxhbWJkYSAocykgKHN1YnN0cmluZyBzIEwpKSBjYW5kcykpCisgICAgICAg ICAgICAgIChsaXN0IGVuZCBlbmQgKG1hcGNhciAobGFtYmRhIChzKSAoc3Vic3RyaW5nIHMgTHAp KSBjYW5kcykpKQorICAgICAgICAgIChsaXN0IHN0YXJ0IGVuZCBjYW5kcykpKQorICAgICAgIDs7 IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uKC1uYXRpdmUpLWdldC1jb21wbGV0aW9ucyBtYXkgcHJv ZHVjZQorICAgICAgIDs7IGEgbGlzdCBvZiAodGV4dCBzdGFydCBlbmQgdHlwZSBzaWduYXR1cmUp IGZvciBjb21wbGV0aW9uLgorICAgICAgIDs7IFNlZSBgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWlw eXRob24tc2V0dXAtY29kZScgYW5kCisgICAgICAgOzsgYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9u LXNldHVwLWNvZGUnLgorICAgICAgICgoY29uc3AgKGNhciBjYW5kcykpCisgICAgICAgIChsaXN0 ICgrIHN0YXJ0IChudGggMSAoY2FyIGNhbmRzKSkpCisgICAgICAgICAgICAgIDs7IENhbmRpZGF0 ZXMgbWF5IGJlIGNhY2hlZCwgc28gdGhlIGVuZCBwb3NpdGlvbiBzaG91bGQKKyAgICAgICAgICAg ICAgOzsgYmUgYWRqdXN0ZWQgYWNjb3JkaW5nIHRvIGN1cnJlbnQgY29tcGxldGlvbiBwcmVmaXgu CisgICAgICAgICAgICAgICgrIHN0YXJ0IChudGggMiAoY2FyIGNhbmRzKSkgcHJlZml4LW9mZnNl dCkKKyAgICAgICAgICAgICAgY2FuZHMKKyAgICAgICAgICAgICAgOmFubm90YXRpb24tZnVuY3Rp b24KKyAgICAgICAgICAgICAgKGxhbWJkYSAoYykgKGNvbmNhdCAiICIgKG50aCAzIChhc3NvYyBj IGNhbmRzKSkpKQorICAgICAgICAgICAgICA6Y29tcGFueS1kb2NzaWcKKyAgICAgICAgICAgICAg KGxhbWJkYSAoYykgKG50aCA0IChhc3NvYyBjIGNhbmRzKSkpKSkpKSkpCiAKIChkZWZpbmUtb2Jz b2xldGUtZnVuY3Rpb24tYWxpYXMKICAgJ3B5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWNvbXBsZXRl LWF0LXBvaW50CmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5l bCBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCmluZGV4IDk3ZmZkNWZlMjBm Li45NzViYWY5ZTU3NiAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVz dHMuZWwKKysrIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKQEAgLTQ3ODcs NiArNDc4Nyw3MiBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1uYXRpdmUtMQog ICAgICAoZW5kLW9mLWxpbmUgMCkKICAgICAgKHNob3VsZC1ub3QgKG50aCAyIChweXRob24tc2hl bGwtY29tcGxldGlvbi1hdC1wb2ludCkpKSkpKQogCisoZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBs ZXRpb24tbW9kdWxlICgpCisgICJDaGVjayBpZiBtb2R1bGVzIGNhbiBiZSBjb21wbGV0ZWQgaW4g UHl0aG9uIHNoZWxsLiIKKyAgKGluc2VydCAiaW1wb3J0IGRhdGV0IikKKyAgKGNvbXBsZXRpb24t YXQtcG9pbnQpCisgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgKHNob3VsZCAobG9va2luZy1hdC1w ICJpbXBvcnQgZGF0ZXRpbWUiKSkKKyAgKGtpbGwtbGluZSkKKyAgKGluc2VydCAiZnJvbSBkYXRl dCIpCisgIChjb21wbGV0aW9uLWF0LXBvaW50KQorICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgIChz aG91bGQgKGxvb2tpbmctYXQtcCAiZnJvbSBkYXRldGltZSIpKQorICAoZW5kLW9mLWxpbmUpCisg IChpbnNlcnQgIiBpbXBvcnQgdGltZWQiKQorICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgKGJl Z2lubmluZy1vZi1saW5lKQorICAoc2hvdWxkIChsb29raW5nLWF0LXAgImZyb20gZGF0ZXRpbWUg aW1wb3J0IHRpbWVkZWx0YSIpKQorICAoa2lsbC1saW5lKSkKKworKGRlZnVuIHB5dGhvbi1zaGVs bC1jb21wbGV0aW9uLXBhcmFtZXRlcnMgKCkKKyAgIkNoZWNrIGlmIHBhcmFtZXRlcnMgY2FuIGJl IGNvbXBsZXRlZCBpbiBQeXRob24gc2hlbGwuIgorICAoaW5zZXJ0ICJpbXBvcnQgcmUiKQorICAo Y29taW50LXNlbmQtaW5wdXQpCisgIChweXRob24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0 KQorICAoaW5zZXJ0ICJyZS5zcGxpdCgnYicsICdhYmMnLCBtYXhzIikKKyAgKGNvbXBsZXRpb24t YXQtcG9pbnQpCisgIChzaG91bGQgKHN0cmluZz0gInJlLnNwbGl0KCdiJywgJ2FiYycsIG1heHNw bGl0PSIKKyAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZyAobGluZS1iZWdpbm5p bmctcG9zaXRpb24pIChwb2ludCkpKSkKKyAgKGluc2VydCAiMCwgIikKKyAgKHNob3VsZCAocHl0 aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQpKQorICA7OyBUZXN0IGlmIGNhY2hlIGlzIHVz ZWQuCisgIChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAncHl0aG9uLXNoZWxsLWNvbXBsZXRp b24tZ2V0LWNvbXBsZXRpb25zKQorICAgICAgICAgICAgICdpZ25vcmUpCisgICAgICAgICAgICAo KHN5bWJvbC1mdW5jdGlvbiAncHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLWdldC1jb21w bGV0aW9ucykKKyAgICAgICAgICAgICAnaWdub3JlKSkKKyAgICAoaW5zZXJ0ICJmbGEiKQorICAg IChjb21wbGV0aW9uLWF0LXBvaW50KQorICAgIChzaG91bGQgKHN0cmluZz0gInJlLnNwbGl0KCdi JywgJ2FiYycsIG1heHNwbGl0PTAsIGZsYWdzPSIKKyAgICAgICAgICAgICAgICAgICAgIChidWZm ZXItc3Vic3RyaW5nIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKHBvaW50KSkpKSkKKyAgKGJl Z2lubmluZy1vZi1saW5lKQorICAoa2lsbC1saW5lKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi1z aGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LWplZGktY29tcGxldGVyICgpCisgICJDaGVjayBpZiBQ eXRob24gc2hlbGwgY29tcGxldGlvbiB3b3JrcyB3aXRoIEplZGkuIgorICAoc2tpcC11bmxlc3Mg KGV4ZWN1dGFibGUtZmluZCBweXRob24tdGVzdHMtc2hlbGwtaW50ZXJwcmV0ZXIpKQorICAocHl0 aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXItd2l0aC1zaGVsbAorICAgIiIKKyAgIChweXRob24t c2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5h dGl2ZS10dXJuLW9uKQorICAgICAoc2tpcC11bmxlc3MgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJl YWRsaW5lLWNvbXBsZXRlci1kZWxpbXMgIiIpKQorICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRp b24tbW9kdWxlKQorICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tcGFyYW1ldGVycykpKSkK KworKGVydC1kZWZ0ZXN0IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LWlweXRob24g KCkKKyAgIkNoZWNrIGlmIFB5dGhvbiBzaGVsbCBjb21wbGV0aW9uIHdvcmtzIGZvciBJUHl0aG9u LiIKKyAgKGxldCAoKHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlciAiaXB5dGhvbiIpCisgICAgICAg IChweXRob24tc2hlbGwtaW50ZXJwcmV0ZXItYXJncyAiLWkgLS1zaW1wbGUtcHJvbXB0IikpCisg ICAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgcHl0aG9uLXNoZWxsLWludGVycHJldGVy KSkKKyAgICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXItd2l0aC1zaGVsbAorICAgICAi IgorICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAgKHB5dGhvbi1z aGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9mZikKKyAgICAgICAocHl0aG9uLXNoZWxsLWNv bXBsZXRpb24tbW9kdWxlKQorICAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1wYXJhbWV0 ZXJzKQorICAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbikKKyAg ICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbW9kdWxlKQorICAgICAgIChweXRob24tc2hl bGwtY29tcGxldGlvbi1wYXJhbWV0ZXJzKSkpKSkKIAogDAogOzs7IFBEQiBUcmFjayBpbnRlZ3Jh dGlvbgotLSAKMi4yNS4xCgo= --000000000000501cf7060f3114e5-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 18 01:39:26 2024 Received: (at 68559) by debbugs.gnu.org; 18 Jan 2024 06:39:26 +0000 Received: from localhost ([127.0.0.1]:54186 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQM3i-0000rg-C5 for submit@debbugs.gnu.org; Thu, 18 Jan 2024 01:39:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39154) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQM3d-0000rN-Ud for 68559@debbugs.gnu.org; Thu, 18 Jan 2024 01:39:24 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rQM3W-0002LO-TV; Thu, 18 Jan 2024 01:39:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=GsMvPw/5N65YU9FaM1CUVTCAFaapkEI7reY33SEjXZs=; b=WuYKkff6Tkv2 ljLcjSirowofbP87pWmUls0f21BxQ6+nnTGdxUrynQcMKcYRxbm7HS3CPi1g/No2SriRKhusBq4Lq qJ+t0+aq2czfQz9wqpBr//fl9i6PxIijrEt/n51aiPNZ1/MQgJeeogOyaAfmGrzO6TsqULDvMUvfF +7dhYyd0aB+pn1oZsnphI8c6pUvW+uYC4GVScCZg1GptNI3NpvmZ6rh1bQNwOZRxEXlFDt0FzSVxK JePA6s0BGAXnFLhRlJVR+Zn6VEcsI/x4B/a/D135CdpGuZa9OEwt2E5sX4BckP/fFEPRgznAat5Qr sg8i9POd1oJsUc+HmQ5iKQ==; Date: Thu, 18 Jan 2024 08:39:09 +0200 Message-Id: <83zfx39mcy.fsf@gnu.org> From: Eli Zaretskii To: Liu Hui , kobarity In-Reply-To: (message from Liu Hui on Thu, 18 Jan 2024 12:48:37 +0800) Subject: Re: bug#68559: [PATCH] Improve Python shell completion References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 68559 Cc: 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Liu Hui > Date: Thu, 18 Jan 2024 12:48:37 +0800 > > Currently python-shell-completion-at-point doesn't respect the > delimiter setting of readline completer and always split the text, > resulting in poor completions when completers that don't need word > splitting, e.g. jedi[1], is used. This patch fixes the problem. > > Meanwhile, this patch adds an option 'python-shell-readline-completer' > to make Python shell provide better completion experience (e.g. > completing function parameters, dictionary keys) by default if users > are using vanilla Python interpreter with jedi or using IPython, where > the completion support for IPython has been enhanced (e.g. showing > type annotations and function signatures). > > BTW, I think it may make sense to move Python snippets to a separate > file to make them easier to be maintained. Thanks. Let's see what others think about this (I don't use Python enough to have an opinion that matters). From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 21 04:35:07 2024 Received: (at 68559) by debbugs.gnu.org; 21 Jan 2024 09:35:07 +0000 Received: from localhost ([127.0.0.1]:36604 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rRUEN-0003UP-4X for submit@debbugs.gnu.org; Sun, 21 Jan 2024 04:35:07 -0500 Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]:49476) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rRUEH-0003Ti-EY for 68559@debbugs.gnu.org; Sun, 21 Jan 2024 04:35:05 -0500 Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-6dbdb1cb23fso337147b3a.3 for <68559@debbugs.gnu.org>; Sun, 21 Jan 2024 01:34:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705829692; x=1706434492; darn=debbugs.gnu.org; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=xV4T3Lh2L/+z2MqvNqUtxaIq2wZM50sJeOCJ7DvAzxI=; b=McYEm7RpjukAfewkB7E1ChnKuETjkbVobl+oQiRDSXsC8teBHyRQ7HhupcuYkrmJTM RVnV4ZDovXsOjwYLH4KxkJVBV9Klotfmphkgdo3MXCDb++NHc0Pj0mzD4pAEndBj9dOG 9KOYTxwxTDK6J4IpTpVh49MwsVo7P7v02suRoXuQ5JDPNS+eeuMFcdV8p7EoiUBuMMj2 TI0zKksL5uJDYiwVGa43MA/T8lbha+viDfUx80VsaV/2PaOZHe5KESo0toFXUCurWumV 4jI8wBg7PJnE0T2EdQr7f5kweuZ+lQ2ZBR116yKxnDAGvZ86SHruxFEaA1LRvD1ZZVlr fnVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705829692; x=1706434492; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=xV4T3Lh2L/+z2MqvNqUtxaIq2wZM50sJeOCJ7DvAzxI=; b=gD+HnG+O2XLBpT+x3EyP8VLEvTo+pjWfQM9ckpE2eI3qW3Tn1H6gyO6nK7hvcyQr7a VoSZ/i+43iz2Y7MbJcweQd1Gm+XpGnLjfjzTEMrZjjsTCQtD3An/do9NbtMwsOTBY9sV P1mEv4qHimp9/rkpSNND2My7OikHjtwG6IpGjjJE7HhbxOwsFWkQvyW/bcjXMvxHX5mD 7xqEEgnah7Kvtv0lNqPG6s2Nz+1PCJzZvSn/aRlD0edONK+9l6dEDS9xZiA4UqsVQQ5V BfhWkQcGmHzoWjW0HQ8YST3fj3iMKIHJySk7PxNpherD7PGb6cHFBQ42KBFo31LGVf/U T3lg== X-Gm-Message-State: AOJu0Yy20i+cqivSSagjc3ZDZ4s8rpjjO4nKaCF3NZm8af+5vo2y+G7Z eQL3WAykgYo29Xps9b4EYcHdYOMEMCPeGs3O+maYvgfERlGgOdl5 X-Google-Smtp-Source: AGHT+IFo24ee1G74wPR65ivw+Nj/RxwtN01iefI8d6hO0K9gVVYSy3J9HCO5uPkP6c34WWa6TetxDQ== X-Received: by 2002:a05:6a00:4b0c:b0:6db:d2be:e66c with SMTP id kq12-20020a056a004b0c00b006dbd2bee66cmr2374926pfb.4.1705829692014; Sun, 21 Jan 2024 01:34:52 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id x21-20020a056a00189500b006dbd890c5e0sm947032pfh.97.2024.01.21.01.34.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Jan 2024 01:34:51 -0800 (PST) Date: Sun, 21 Jan 2024 18:34:53 +0900 Message-ID: From: kobarity To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: <83zfx39mcy.fsf@gnu.org> References: <83zfx39mcy.fsf@gnu.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii wrote: > > > From: Liu Hui > > Date: Thu, 18 Jan 2024 12:48:37 +0800 > > > > Currently python-shell-completion-at-point doesn't respect the > > delimiter setting of readline completer and always split the text, > > resulting in poor completions when completers that don't need word > > splitting, e.g. jedi[1], is used. This patch fixes the problem. > > > > Meanwhile, this patch adds an option 'python-shell-readline-completer' > > to make Python shell provide better completion experience (e.g. > > completing function parameters, dictionary keys) by default if users > > are using vanilla Python interpreter with jedi or using IPython, where > > the completion support for IPython has been enhanced (e.g. showing > > type annotations and function signatures). > > > > BTW, I think it may make sense to move Python snippets to a separate > > file to make them easier to be maintained. > > Thanks. Let's see what others think about this (I don't use Python > enough to have an opinion that matters). Thanks for the patch. I have tried it and found it to be a very powerful enhancement. Is it possible to allow completion of keyword arguments in a multi-line function call like the following? #+begin_src python re.split( 'b', 'abc', maxs #+end_src I am not sure if Python snippets should be separated. Do other language supports keep them separate? From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 23 06:32:06 2024 Received: (at 68559) by debbugs.gnu.org; 23 Jan 2024 11:32:06 +0000 Received: from localhost ([127.0.0.1]:42312 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rSF0f-0000Dz-5q for submit@debbugs.gnu.org; Tue, 23 Jan 2024 06:32:06 -0500 Received: from mail-vk1-xa31.google.com ([2607:f8b0:4864:20::a31]:47162) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rSF0a-0000DR-E4 for 68559@debbugs.gnu.org; Tue, 23 Jan 2024 06:32:03 -0500 Received: by mail-vk1-xa31.google.com with SMTP id 71dfb90a1353d-4b77c843fbeso1036723e0c.2 for <68559@debbugs.gnu.org>; Tue, 23 Jan 2024 03:31:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706009510; x=1706614310; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=P/jp+pSrLEto6e4beuFm8rymaHWEJH9wvyBZOM3qiVw=; b=YNCzrZ78LdKbj5iaS7pFSoSkKKDn9kivKoE0t2VJjN6cyVXM7CyEek5D7WRrH5ReDc EKEq83k3tQqEpx80O9NxhGx1xw1zG46SwnpMgUzov6Bhl4RQu6niUFc6tZkgvtokBL1M uzz9JEI29pKw3L7n26MguoSyf3SMcIhhaWmhqIInNk0oQ8e4fJMNvIoewHuLBcXvEYjg 44+PPTpK4K+0Nc4zHid/udnA19Cobx8AF9hnrLdl9nk1yS0YvFtFX8FePcbjx+ECSAzG jyKMcCb+31YafNWop5oWSDWWnZNWldpGMsaR6E/fd1z+x2pK6iCoapX0FkpUeS+ObJoC u8Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706009510; x=1706614310; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=P/jp+pSrLEto6e4beuFm8rymaHWEJH9wvyBZOM3qiVw=; b=FKMowZ1UfkWLuFpF3EmtKmELVFDJo+egH3/nI8qbr8iHmWt5bAQje73oi34U2Te/dE Y1qx/HHCyVbQ7gEZazKAu6HnQhIGY10CBY/uVV7uJXski1dZm1Tohlq0DeeSsNJhi5ZX t8FfX2pS/2uxz037Ae1cda9gtsC3XKOLb4mmgleuHrIMnOybnwOPnyu0OpkXBeMBvREf XeXKigfYWhY98bPgHvW3piVXl3qPsReKePtrh0DSVr8Mq074KoxrDc9K1iWSyHHGSbDm cUamU5ECOPl+991Rw2q/oosWoPlLlmGqJ0/Fc6EbpG8+sdTK9YWHIlgRQw+NbOm10HS3 oG0Q== X-Gm-Message-State: AOJu0YxsvfeBtf5F3EJZaxa9UiymuyhDOoCDuLsk/qwWwVgHDlqFhs1Z YISXth1M/bjCXUpYDX9FCfhi9HDD8ja2WlNgOw2/hRQwrXEwVkphwdcy54/SyRearmDcL+s6LXu r9oCcfNHnBlP7Gx9MKUtXiwi44Bc= X-Google-Smtp-Source: AGHT+IHRV9g5iFFIVN8lTQQhqyAbuPZ4fkpHX9bGcRjuAZRM26S+tRE4xG9RWVwhOMeindG8yVsveEAT9/ngmq+qVBk= X-Received: by 2002:a05:6122:d29:b0:4bd:2cbb:2304 with SMTP id az41-20020a0561220d2900b004bd2cbb2304mr626362vkb.29.1706009510044; Tue, 23 Jan 2024 03:31:50 -0800 (PST) MIME-Version: 1.0 References: <83zfx39mcy.fsf@gnu.org> In-Reply-To: From: Liu Hui Date: Tue, 23 Jan 2024 19:31:38 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: kobarity Content-Type: multipart/mixed; boundary="000000000000d47fde060f9b4a94" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --000000000000d47fde060f9b4a94 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable kobarity =E4=BA=8E2024=E5=B9=B41=E6=9C=8821=E6=97=A5= =E5=91=A8=E6=97=A5 17:34=E5=86=99=E9=81=93=EF=BC=9A > Is it possible to allow completion of keyword arguments in a > multi-line function call like the following? > > #+begin_src python > re.split( > 'b', > 'abc', > maxs > #+end_src I have added experimental support in the attached patch, can you test it please? > I am not sure if Python snippets should be separated. Do other > language supports keep them separate? I think it allows to reduce code duplication (e.g. the IPython support code existing in both python-shell-completion-setup-code and python-shell-readline-ipython-setup-code) and make code more simple. It seems other languages do not contain as many code snippets as python.el. --000000000000d47fde060f9b4a94 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Improve-Python-shell-completion.patch" Content-Disposition: attachment; filename="0001-Improve-Python-shell-completion.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lrq9yfkp0 RnJvbSAxN2JlMjk2OGI2YzUzZGQ5ZmUzMjNiOGMyOGMzY2U0NWVmYzYzMzE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAxOCBKYW4gMjAyNCAxMjowMDowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEltcHJvdmUg UHl0aG9uIHNoZWxsIGNvbXBsZXRpb24KCiogbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIChweXRo b24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlKTogRml4CnRoZSBjb21wbGV0aW9uIGNvZGUg b2YgSVB5dGhvbi4gIENoYW5nZSB0aGUgcmV0dXJuIHZhbHVlIHRvIEpTT04Kc3RyaW5nIGFuZCAu Li4KKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucyk6IC4uLiBzaW1wbGlm eSBwYXJzaW5nLgooaW5mZXJpb3ItcHl0aG9uLW1vZGUpOiBVcGRhdGUgZG9jc3RyaW5nLgoocHl0 aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlcik6IE5ldyBvcHRpb24uCihweXRob24tc2hlbGwt cmVhZGxpbmUtY29tcGxldGVyLWRlbGltcykKKHB5dGhvbi1zaGVsbC1yZWFkbGluZS1qZWRpLXNl dHVwLWNvZGUpCihweXRob24tc2hlbGwtcmVhZGxpbmUtaXB5dGhvbi1zZXR1cC1jb2RlKTogTmV3 IHZhcmlhYmxlcy4KKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1zZXR1cCk6IFNldHVw IGEgc3VpdGFibGUgcmVhZGxpbmUKY29tcGxldGVyIGFuZCBzZXQgdGhlIGNvbXBsZXRlciBkZWxp bWl0ZXIuCihweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZ2V0LWNvbXBsZXRpb25zKTog Q29udmVydCBvdXRwdXQKc3RyaW5nIHRvIGNvbXBsZXRpb25zIHByb3Blcmx5LgoocHl0aG9uLXNo ZWxsLS1nZXQtbXVsdGlsaW5lLWlucHV0KToKKHB5dGhvbi1zaGVsbC0tZXh0cmEtY29tcGxldGlv bi1jb250ZXh0KTogTmV3IGZ1bmN0aW9ucy4KKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBv aW50KTogU2VuZCB0ZXh0IGJlZ2lubmluZyBmcm9tIHRoZSBsaW5lCnN0YXJ0IGlmIHRoZSBjb21w bGV0aW9uIGJhY2tlbmQgZG9lcyBub3QgbmVlZCB3b3JkIHNwbGl0dGluZy4gIFJlbW92ZQp0aGUg ZGV0ZWN0aW9uIG9mIGltcG9ydCBzdGF0ZW1lbnQgYmVjYXVzZSBpdCBpcyBub3QgbmVlZGVkIGFu eW1vcmUuCkNyZWF0ZSBwcm9wZXIgY29tcGxldGlvbiB0YWJsZSBiYXNlZCBvbiBjb21wbGV0aW9u cyByZXR1cm5lZCBmcm9tCmRpZmZlcmVudCBiYWNrZW5kcy4KCiogdGVzdC9saXNwL3Byb2dtb2Rl cy9weXRob24tdGVzdHMuZWwgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW1vZHVsZSk6CihweXRo b24tc2hlbGwtY29tcGxldGlvbi1wYXJhbWV0ZXJzKToKKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9u LW11bHRpLWxpbmUtZnVuY3Rpb24tY2FsbCk6IE5ldyBmdW5jdGlvbnMuCihweXRob24tc2hlbGwt Y29tcGxldGlvbi1hdC1wb2ludC1qZWRpLWNvbXBsZXRlcik6CihweXRob24tc2hlbGwtY29tcGxl dGlvbi1hdC1wb2ludC1pcHl0aG9uKTogTmV3IHRlc3RzLgoKKiBldGMvTkVXUzogQW5ub3VuY2Ug dGhlIGNoYW5nZS4KLS0tCiBldGMvTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg NiArCiBsaXNwL3Byb2dtb2Rlcy9weXRob24uZWwgICAgICAgICAgICB8IDI5MiArKysrKysrKysr KysrKysrKysrKysrKy0tLS0tCiB0ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCB8 ICA3OCArKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzMjQgaW5zZXJ0aW9ucygrKSwgNTIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRleCAwM2I4YzNi NTE3YS4uNmZkMzM3NzI3YzUgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBA IC0xMDI5LDYgKzEwMjksMTIgQEAgaW5zdGVhZCBvZjoKIFRoaXMgYWxsb3dzIHRoZSB1c2VyIHRv IHNwZWNpZnkgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byB0aGUgbm9uCiBpbnRlcmFjdGl2ZSBQ eXRob24gaW50ZXJwcmV0ZXIgc3BlY2lmaWVkIGJ5ICdweXRob24taW50ZXJwcmV0ZXInLgogCisq KiogTmV3IHVzZXIgb3B0aW9uICdweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyJy4KK1Ro aXMgYWxsb3dzIHRoZSB1c2VyIHRvIHNwZWNpZnkgdGhlIHJlYWRsaW5lIGNvbXBsZXRlciB1c2Vk IGZvciBQeXRob24KK3NoZWxsIGNvbXBsZXRpb24uICBUaGUgZGVmYXVsdCBpcyAnYXV0bycsIHdo aWNoIG1lYW5zIGEgc3VpdGFibGUKK2NvbXBsZXRlciB3aWxsIGJlIGNvbmZpZ3VyZWQgYXV0b21h dGljYWxseSBhY2NvcmRpbmcgdG8gdGhlIFB5dGhvbgoraW50ZXJwcmV0ZXIuCisKICoqIHVzZS1w YWNrYWdlCiAKICsrKwpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIGIvbGlz cC9wcm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4IGZmNzk5ZTFlNjYyLi5mNTRiMWIyOTEwNCAxMDA2 NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3B5 dGhvbi5lbApAQCAtMTI4LDkgKzEyOCw5IEBACiA7OyByZWNlaXZpbmcgZXNjYXBlIHNlcXVlbmNl cyAod2l0aCBzb21lIGxpbWl0YXRpb25zLCBpLmUuIGNvbXBsZXRpb24KIDs7IGluIGJsb2NrcyBk b2VzIG5vdCB3b3JrKS4gIFRoZSBjb2RlIGV4ZWN1dGVkIGZvciB0aGUgImZhbGxiYWNrIgogOzsg Y29tcGxldGlvbiBjYW4gYmUgZm91bmQgaW4gYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVw LWNvZGUnIGFuZAotOzsgYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXN0cmluZy1jb2RlJyB2YXJp YWJsZXMuICBUaGVpciBkZWZhdWx0Ci07OyB2YWx1ZXMgZW5hYmxlIGNvbXBsZXRpb24gZm9yIGJv dGggQ1B5dGhvbiBhbmQgSVB5dGhvbiwgYW5kIHByb2JhYmx5Ci07OyBhbnkgcmVhZGxpbmUgYmFz ZWQgc2hlbGwgKGl0J3Mga25vd24gdG8gd29yayB3aXRoIFB5UHkpLiAgSWYgeW91cgorOzsgYHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucycuICBUaGVpciBkZWZhdWx0IHZh bHVlcworOzsgZW5hYmxlIGNvbXBsZXRpb24gZm9yIGJvdGggQ1B5dGhvbiBhbmQgSVB5dGhvbiwg YW5kIHByb2JhYmx5IGFueQorOzsgcmVhZGxpbmUgYmFzZWQgc2hlbGwgKGl0J3Mga25vd24gdG8g d29yayB3aXRoIFB5UHkpLiAgSWYgeW91cgogOzsgUHl0aG9uIGluc3RhbGxhdGlvbiBsYWNrcyBy ZWFkbGluZSAobGlrZSBDUHl0aG9uIGZvciBXaW5kb3dzKSwKIDs7IGluc3RhbGxpbmcgcHlyZWFk bGluZSAoVVJMIGBodHRwczovL2lweXRob24ub3JnL3B5cmVhZGxpbmUuaHRtbCcpCiA7OyBzaG91 bGQgc3VmZmljZS4gIFRvIHRyb3VibGVzaG9vdCB3aHkgeW91IGFyZSBub3QgZ2V0dGluZyBhbnkK QEAgLTM2MDEsNyArMzYwMSw2IEBAIGluZmVyaW9yLXB5dGhvbi1tb2RlCiBgcHl0aG9uLXNoZWxs LXByb21wdC1ibG9jay1yZWdleHAnLAogYHB5dGhvbi1zaGVsbC1mb250LWxvY2stZW5hYmxlJywK IGBweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlJywKLWBweXRob24tc2hlbGwtY29t cGxldGlvbi1zdHJpbmctY29kZScsCiBgcHl0aG9uLWVsZG9jLXNldHVwLWNvZGUnLAogYHB5dGhv bi1mZmFwLXNldHVwLWNvZGUnIGNhbgogY3VzdG9taXplIHRoaXMgbW9kZSBmb3IgZGlmZmVyZW50 IFB5dGhvbiBpbnRlcnByZXRlcnMuCkBAIC00MzE5LDggKzQzMTgsOSBAQCBweXRob24tc2hlbGwt Y29tcGxldGlvbi1zZXR1cC1jb2RlCiAgICAgY29tcGxldGlvbnMgPSBbXQogICAgIGNvbXBsZXRl ciA9IE5vbmUKIAorICAgIGltcG9ydCBqc29uCiAgICAgdHJ5OgotICAgICAgICBpbXBvcnQgcmVh ZGxpbmUKKyAgICAgICAgaW1wb3J0IHJlYWRsaW5lLCByZQogCiAgICAgICAgIHRyeToKICAgICAg ICAgICAgIGltcG9ydCBfX2J1aWx0aW5fXwpAQCAtNDMzMSwxNiArNDMzMSwyOSBAQCBweXRob24t c2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlCiAKICAgICAgICAgaXNfaXB5dGhvbiA9ICgnX19J UFlUSE9OX18nIGluIGJ1aWx0aW5zIG9yCiAgICAgICAgICAgICAgICAgICAgICAgJ19fSVBZVEhP Tl9fYWN0aXZlJyBpbiBidWlsdGlucykKLSAgICAgICAgc3BsaXRzID0gdGV4dC5zcGxpdCgpCi0g ICAgICAgIGlzX21vZHVsZSA9IHNwbGl0cyBhbmQgc3BsaXRzWzBdIGluICgnZnJvbScsICdpbXBv cnQnKQotCi0gICAgICAgIGlmIGlzX2lweXRob24gYW5kIGlzX21vZHVsZToKLSAgICAgICAgICAg IGZyb20gSVB5dGhvbi5jb3JlLmNvbXBsZXRlcmxpYiBpbXBvcnQgbW9kdWxlX2NvbXBsZXRpb24K LSAgICAgICAgICAgIGNvbXBsZXRpb25zID0gbW9kdWxlX2NvbXBsZXRpb24odGV4dC5zdHJpcCgp KQotICAgICAgICBlbGlmIGlzX2lweXRob24gYW5kICdfX0lQJyBpbiBidWlsdGluczoKLSAgICAg ICAgICAgIGNvbXBsZXRpb25zID0gX19JUC5jb21wbGV0ZSh0ZXh0KQotICAgICAgICBlbGlmIGlz X2lweXRob24gYW5kICdnZXRfaXB5dGhvbicgaW4gYnVpbHRpbnM6Ci0gICAgICAgICAgICBjb21w bGV0aW9ucyA9IGdldF9pcHl0aG9uKCkuQ29tcGxldGVyLmFsbF9jb21wbGV0aW9ucyh0ZXh0KQor CisgICAgICAgIGlmIGlzX2lweXRob24gYW5kICdnZXRfaXB5dGhvbicgaW4gYnVpbHRpbnM6Cisg ICAgICAgICAgICBkZWYgZmlsdGVyX2MocHJlZml4LCBjKToKKyAgICAgICAgICAgICAgICBpZiBy ZS5tYXRjaCgnXysoaT9bMC05XSspPyQnLCBjKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu IEZhbHNlCisgICAgICAgICAgICAgICAgZWxpZiBjWzBdID09ICclJyBhbmQgbm90IHJlLm1hdGNo KCdbJWEtekEtWl0rJCcsIHByZWZpeCk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxz ZQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgICAgIGltcG9ydCBJUHl0 aG9uCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaWYgSVB5dGhvbi52ZXJzaW9u X2luZm9bMF0gPj0gNjoKKyAgICAgICAgICAgICAgICAgICAgZnJvbSBJUHl0aG9uLmNvcmUuY29t cGxldGVyIGltcG9ydCBwcm92aXNpb25hbGNvbXBsZXRlcgorICAgICAgICAgICAgICAgICAgICB3 aXRoIHByb3Zpc2lvbmFsY29tcGxldGVyKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBjb21w bGV0aW9ucyA9IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYy50ZXh0LCBjLnN0YXJ0 LCBjLmVuZCwgYy50eXBlIG9yICc/JywgYy5zaWduYXR1cmUgb3IgJyddCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBjIGluIGdldF9pcHl0aG9uKCkuQ29tcGxldGVyLmNvbXBsZXRp b25zKHRleHQsIGxlbih0ZXh0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZmls dGVyX2ModGV4dCwgYy50ZXh0KV0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgICAgICBwYXJ0LCBtYXRjaGVzID0gZ2V0X2lweXRob24oKS5Db21wbGV0ZXIuY29tcGxldGUo bGluZV9idWZmZXI9dGV4dCkKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnMgPSBbdGV4 dCArIG1bbGVuKHBhcnQpOl0gZm9yIG0gaW4gbWF0Y2hlcyBpZiBmaWx0ZXJfYyh0ZXh0LCBtKV0K KyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6 CiAgICAgICAgICAgICAjIFRyeSB0byByZXVzZSBjdXJyZW50IGNvbXBsZXRlci4KICAgICAgICAg ICAgIGNvbXBsZXRlciA9IHJlYWRsaW5lLmdldF9jb21wbGV0ZXIoKQpAQCAtNDM2Myw3ICs0Mzc2 LDcgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZQogICAgIGZpbmFsbHk6CiAg ICAgICAgIGlmIGdldGF0dHIoY29tcGxldGVyLCAnUFlUSE9OX0VMX1dSQVBQRUQnLCBGYWxzZSk6 CiAgICAgICAgICAgICBjb21wbGV0ZXIucHJpbnRfbW9kZSA9IFRydWUKLSAgICByZXR1cm4gY29t cGxldGlvbnMiCisgICAgcmV0dXJuIGpzb24uZHVtcHMoY29tcGxldGlvbnMpIgogICAiQ29kZSB1 c2VkIHRvIHNldHVwIGNvbXBsZXRpb24gaW4gaW5mZXJpb3IgUHl0aG9uIHByb2Nlc3Nlcy4iCiAg IDp0eXBlICdzdHJpbmcpCiAKQEAgLTQ0MDQsNiArNDQxNyw3OSBAQCBweXRob24tc2hlbGwtY29t cGxldGlvbi1uYXRpdmUtdHJ5LW91dHB1dC10aW1lb3V0CiAgIDp2ZXJzaW9uICIyNS4xIgogICA6 dHlwZSAnZmxvYXQpCiAKKyhkZWZjdXN0b20gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRl ciAnYXV0bworICAiVGhlIHJlYWRsaW5lIGNvbXBsZXRlciB1c2VkIGZvciBQeXRob24gc2hlbGwg Y29tcGxldGlvbi4KK0lmIHRoZSB2YWx1ZSBpcyBub24tbmlsLCBQeXRob24gc2hlbGwgd2lsbCBz ZXR1cCB0aGUgcmVhZGxpbmUKK2NvbXBsZXRlciB1bmxlc3MgaXQgaGFzIGJlZW4gc2V0IGVsc2V3 aGVyZSAoZS5nLiBpbiB0aGUKK1BZVEhPTlNUQVJUVVAgZmlsZSkuICBCZWxvdyBhcmUgcG9zc2li bGUgdmFsdWVzOgorLSBgYXV0byc6IHRoZSBjb21wbGV0ZXIgaXMgZGV0ZXJtaW5lZCBhY2NvcmRp bmcgdG8gdGhlCitpbnRlcnByZXRlci4gIFNwZWNpZmljYWxseSwgdGhlIElQeXRob24gY29tcGxl dGVyLCBkZWZpbmVkIGluCitgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWlweXRob24tc2V0dXAtY29k ZScsIGlzIHVzZWQgd2hlbiB0aGUKK2ludGVycHJldGVyIGlzIGlweXRob24sIG90aGVyd2lzZSB0 aGUgSmVkaSBjb21wbGV0ZXIgaXMgdXNlZC4KKy0gYSBzdHJpbmc6IFB5dGhvbiBjb2RlIHRvIHNl dHVwIHRoZSByZWFkbGluZS4gSXQgc2hvdWxkIGRlZmluZQordGhlIGZ1bmN0aW9uIGBfX1BZVEhP Tl9FTF9zZXR1cF9yZWFkbGluZV9jb21wbGV0ZXInLiAgU2VlCitgcHl0aG9uLXNoZWxsLXJlYWRs aW5lLWplZGktc2V0dXAtY29kZScgZm9yIHJlZmVyZW5jZS4KKy0gYG5pbCc6IFB5dGhvbiBzaGVs bCB3aWxsIGRvIG5vdGhpbmcuCisKK0luIGFueSBjYXNlLCBpZiB0aGUgY29tcGxldGVyIGlzIG5v dCBzZXQgc3VjY2Vzc2Z1bGx5IGluIHRoZSBlbmQsCitmYWxsYmFjayB0byB0aGUgYnVpbHQtaW4g cmxjb21wbGV0ZXIuIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgIDp0YWcgIkF1dG9tYXRpYyIg YXV0bykKKyAgICAgICAgICAgICAgICAgKGNvbnN0ICA6dGFnICJObyBjb25maWd1cmF0aW9uIiBu aWwpCisgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRhZyAiUHl0aG9uIHNldHVwIGNvZGUiKSkK KyAgOnZlcnNpb24gIjMwLjEiKQorCisoZGVmdmFyIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21w bGV0ZXItZGVsaW1zIG5pbAorICAiV29yZCBkZWxpbWl0ZXJzIHVzZWQgYnkgdGhlIHJlYWRsaW5l IGNvbXBsZXRlci4KK0l0IGlzIGF1dG9tYXRpY2FsbHkgc2V0IGJ5IFB5dGhvbiBzaGVsbC4iKQor CisoZGVmY29uc3QgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWplZGktc2V0dXAtY29kZQorICAiCitk ZWYgX19QWVRIT05fRUxfc2V0dXBfcmVhZGxpbmVfY29tcGxldGVyKCk6CisgICAgZnJvbSBqZWRp LnV0aWxzIGltcG9ydCBzZXR1cF9yZWFkbGluZQorICAgIHNldHVwX3JlYWRsaW5lKCkiCisgICJD b2RlIHVzZWQgdG8gc2V0dXAgcmVhZGxpbmUgY29tcGxldGVyIHdpdGggSmVkaS4iKQorCisoZGVm Y29uc3QgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWlweXRob24tc2V0dXAtY29kZQorICAiCitkZWYg X19QWVRIT05fRUxfc2V0dXBfcmVhZGxpbmVfY29tcGxldGVyKCk6CisgICAgaW1wb3J0IHJlYWRs aW5lLCByZSwganNvbiwgSVB5dGhvbgorCisgICAgY2xhc3MgX19pcHl0aG9uX1JMOgorICAgICAg ICBkZWYgX19pbml0X18oc2VsZiwgdik6CisgICAgICAgICAgICBzZWxmLnZlcnNpb24gPSB2CisK KyAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBwcmVmaXgsIGMpOgorICAgICAgICAgICAgaWYgcmUu bWF0Y2goJ18rKGk/WzAtOV0rKT8kJywgYyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNl CisgICAgICAgICAgICBlbGlmIGNbMF0gPT0gJyUnIGFuZCBub3QgcmUubWF0Y2goJ1slYS16QS1a XSskJywgcHJlZml4KToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAg IHJldHVybiBUcnVlCisKKyAgICAgICAgZGVmIGNvbXBsZXRlKHNlbGYsIHRleHQsIHN0YXRlKToK KyAgICAgICAgICAgIGlmIHN0YXRlID09IDA6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAg ICAgICAgICAgICAgICBpZiBzZWxmLnZlcnNpb24gPj0gNjoKKyAgICAgICAgICAgICAgICAgICAg ICAgIGZyb20gSVB5dGhvbi5jb3JlLmNvbXBsZXRlciBpbXBvcnQgcHJvdmlzaW9uYWxjb21wbGV0 ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggcHJvdmlzaW9uYWxjb21wbGV0ZXIoKToK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hdGNoZXMgPSBbanNvbi5kdW1wcyhb CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjLnRleHQsIGMuc3RhcnQsIGMuZW5k LCBjLnR5cGUgb3IgJz8nLCBjLnNpZ25hdHVyZSBvciAnJ10KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGMgaW4gZ2V0X2lweXRob24oKS5Db21wbGV0ZXIuY29tcGxldGlvbnMo dGV4dCwgbGVuKHRleHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxm LmZpbHRlcih0ZXh0LCBjLnRleHQpXSldCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgICAgICAgICAgICBwYXJ0LCBtYXRjaGVzID0gZ2V0X2lweXRob24oKS5Db21wbGV0 ZXIuY29tcGxldGUobGluZV9idWZmZXI9dGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYubWF0Y2hlcyA9IFt0ZXh0ICsgbVtsZW4ocGFydCk6XSBmb3IgbSBpbiBtYXRjaGVzCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5maWx0ZXIodGV4dCwg bSldCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAg ICAgcGFzcworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLm1h dGNoZXNbc3RhdGVdCisgICAgICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAg ICAgICByZXR1cm4gTm9uZQorCisgICAgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcihfX2lweXRob25f UkwoSVB5dGhvbi52ZXJzaW9uX2luZm9bMF0pLmNvbXBsZXRlKQorICAgIHJlYWRsaW5lLnNldF9j b21wbGV0ZXJfZGVsaW1zKCcnKSIKKyAgIkNvZGUgdXNlZCB0byBzZXR1cCByZWFkbGluZSBjb21w bGV0ZXIgZm9yIElQeXRob24uIikKKwogKGRlZnZhciBweXRob24tc2hlbGwtY29tcGxldGlvbi1u YXRpdmUtcmVkaXJlY3QtYnVmZmVyCiAgICIgKlB5dGhvbiBjb21wbGV0aW9ucyByZWRpcmVjdCoi CiAgICJCdWZmZXIgdG8gYmUgdXNlZCB0byByZWRpcmVjdCBvdXRwdXQgb2YgcmVhZGxpbmUgY29t bWFuZHMuIikKQEAgLTQ0MjcsNyArNDUxMywyMCBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1u YXRpdmUtdHJ5CiAoZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXNldHVwICgp CiAgICJUcnkgdG8gc2V0dXAgbmF0aXZlIGNvbXBsZXRpb24sIHJldHVybiBub24tbmlsIG9uIHN1 Y2Nlc3MuIgogICAobGV0KiAoKHByb2Nlc3MgKHB5dGhvbi1zaGVsbC1nZXQtcHJvY2VzcykpCi0g ICAgICAgICAob3V0cHV0IChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0ICIKKyAg ICAgICAgIChjb21wbGV0ZXIgKHBjYXNlIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXIK KyAgICAgICAgICAgICAgICAgICAgICAoJ2F1dG8KKyAgICAgICAgICAgICAgICAgICAgICAgKGlm IChzdHJpbmctbWF0Y2gtcCAiaXB5dGhvblsyM10/XFwnIiBweXRob24tc2hlbGwtaW50ZXJwcmV0 ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tc2hlbGwtcmVhZGxpbmUtaXB5 dGhvbi1zZXR1cC1jb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsLXJl YWRsaW5lLWplZGktc2V0dXAtY29kZSkpCisgICAgICAgICAgICAgICAgICAgICAgKChwcmVkIHN0 cmluZ3ApIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXIpCisgICAgICAgICAgICAgICAg ICAgICAgKF8gIiIpKSkKKyAgICAgICAgIChvdXRwdXQgKHB5dGhvbi1zaGVsbC1zZW5kLXN0cmlu Zy1uby1vdXRwdXQKKyAgICAgICAgICAgICAgICAgIChjb25jYXQgIgordHJ5OgorICAgIGRlbCBf X1BZVEhPTl9FTF9zZXR1cF9yZWFkbGluZV9jb21wbGV0ZXIKK2V4Y2VwdDoKKyAgICBwYXNzCisi IGNvbXBsZXRlciAiCiBkZWYgX19QWVRIT05fRUxfbmF0aXZlX2NvbXBsZXRpb25fc2V0dXAoKToK ICAgICB0cnk6CiAgICAgICAgIGltcG9ydCByZWFkbGluZQpAQCAtNDUwMCwxMSArNDU5OSwyMyBA QCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXAKICAgICAgICAgICAgICAgICBl bHNlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbgogCisgICAgICAgIGRl ZiBpc19ybGNvbXBsZXRlcihjb21wbGV0ZXIpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg ICAgICAgIGlmIGNvbXBsZXRlci5fX3NlbGZfXy5fX21vZHVsZV9fID09ICdybGNvbXBsZXRlcic6 CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBleGNlcHQgRXhj ZXB0aW9uOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCiAgICAgICAgIGNvbXBsZXRl ciA9IHJlYWRsaW5lLmdldF9jb21wbGV0ZXIoKQogCi0gICAgICAgIGlmIG5vdCBjb21wbGV0ZXI6 Ci0gICAgICAgICAgICAjIFVzZWQgYXMgbGFzdCByZXNvcnQgdG8gYXZvaWQgYnJlYWtpbmcgY3Vz dG9taXphdGlvbnMuCi0gICAgICAgICAgICBpbXBvcnQgcmxjb21wbGV0ZXIKKyAgICAgICAgaWYg bm90IGNvbXBsZXRlciBvciBpc19ybGNvbXBsZXRlcihjb21wbGV0ZXIpOgorICAgICAgICAgICAg dHJ5OgorICAgICAgICAgICAgICAgIF9fUFlUSE9OX0VMX3NldHVwX3JlYWRsaW5lX2NvbXBsZXRl cigpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgIyBVc2VkIGFzIGxhc3Qg cmVzb3J0IHRvIGF2b2lkIGJyZWFraW5nIGN1c3RvbWl6YXRpb25zLgorICAgICAgICAgICAgICAg IGltcG9ydCBybGNvbXBsZXRlcgogICAgICAgICAgICAgY29tcGxldGVyID0gcmVhZGxpbmUuZ2V0 X2NvbXBsZXRlcigpCiAKICAgICAgICAgaWYgY29tcGxldGVyIGFuZCBub3QgZ2V0YXR0cihjb21w bGV0ZXIsICdQWVRIT05fRUxfV1JBUFBFRCcsIEZhbHNlKToKQEAgLTQ1MzksOSArNDY1MCwxMyBA QCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXAKICAgICAgICAgcHJpbnQgKCdw eXRob24uZWw6IG5hdGl2ZSBjb21wbGV0aW9uIHNldHVwIGZhaWxlZCwgJXM6ICVzJwogICAgICAg ICAgICAgICAgJSBzeXMuZXhjX2luZm8oKVs6Ml0pCiAKLV9fUFlUSE9OX0VMX25hdGl2ZV9jb21w bGV0aW9uX3NldHVwKCkiIHByb2Nlc3MpKSkKK19fUFlUSE9OX0VMX25hdGl2ZV9jb21wbGV0aW9u X3NldHVwKCkiKSBwcm9jZXNzKSkpCiAgICAgKHdoZW4gKHN0cmluZy1tYXRjaC1wICJweXRob25c XC5lbDogbmF0aXZlIGNvbXBsZXRpb24gc2V0dXAgbG9hZGVkIgogICAgICAgICAgICAgICAgICAg ICAgICAgICBvdXRwdXQpCisgICAgICAoc2V0cS1sb2NhbCBweXRob24tc2hlbGwtcmVhZGxpbmUt Y29tcGxldGVyLWRlbGltcworICAgICAgICAgICAgICAgICAgKHN0cmluZy10cmltLXJpZ2h0Cisg ICAgICAgICAgICAgICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRwdXQKKyAg ICAgICAgICAgICAgICAgICAgImltcG9ydCByZWFkbGluZTsgcHJpbnQocmVhZGxpbmUuZ2V0X2Nv bXBsZXRlcl9kZWxpbXMoKSkiKSkpCiAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0 aXZlLXRyeSkpKSkKIAogKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJu LW9mZiAoJm9wdGlvbmFsIG1zZykKQEAgLTQ2MDksNiArNDcyNCw4IEBAIHB5dGhvbi1zaGVsbC1j b21wbGV0aW9uLW5hdGl2ZS1nZXQtY29tcGxldGlvbnMKICAgICAobGV0KiAoKG9yaWdpbmFsLWZp bHRlci1mbiAocHJvY2Vzcy1maWx0ZXIgcHJvY2VzcykpCiAgICAgICAgICAgIChyZWRpcmVjdC1i dWZmZXIgKGdldC1idWZmZXItY3JlYXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1yZWRpcmVjdC1idWZmZXIpKQorICAgICAgICAg ICAoc2VwIChpZiAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGlt cyAiIikKKyAgICAgICAgICAgICAgICAgICAgIltcblxyXSsiICJbIFxmXHRcblxyXHYoKV0rIikp CiAgICAgICAgICAgICh0cmlnZ2VyICJcdCIpCiAgICAgICAgICAgIChuZXctaW5wdXQgKGNvbmNh dCBpbnB1dCB0cmlnZ2VyKSkKICAgICAgICAgICAgKGlucHV0LWxlbmd0aApAQCAtNDY1MSwzMiAr NDc2OCw2MyBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZ2V0LWNvbXBsZXRpb25z CiAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5h dGl2ZS1vdXRwdXQtdGltZW91dAogICAgICAgICAgICAgICAgICAgICAgY29taW50LXJlZGlyZWN0 LWZpbmlzaGVkLXJlZ2V4cCkKICAgICAgICAgICAgICAgICAocmUtc2VhcmNoLWJhY2t3YXJkICIw X19kdW1teV9jb21wbGV0aW9uX18iIG5pbCB0KQotICAgICAgICAgICAgICAgIChjbC1yZW1vdmUt ZHVwbGljYXRlcwotICAgICAgICAgICAgICAgICAoc3BsaXQtc3RyaW5nCi0gICAgICAgICAgICAg ICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCi0gICAgICAgICAgICAgICAgICAg KGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQtbWluKSkKLSAgICAgICAgICAgICAgICAg ICJbIFxmXHRcblxyXHYoKV0rIiB0KQotICAgICAgICAgICAgICAgICA6dGVzdCAjJ3N0cmluZz0p KSkpCisgICAgICAgICAgICAgICAgKGxldCAoKHN0ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9w ZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0 aW9uKSAocG9pbnQtbWluKSkpKQorICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmc9ICJbIiAo c3Vic3RyaW5nIHN0ciAwIDEpKQorICAgICAgICAgICAgICAgICAgICAgIChjb25kaXRpb24tY2Fz ZSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi0tcGFyc2UtanNvbi1hcnJh eSBzdHIpCisgICAgICAgICAgICAgICAgICAgICAgICAodCAoY2wtcmVtb3ZlLWR1cGxpY2F0ZXMg KHNwbGl0LXN0cmluZyBzdHIgc2VwIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOnRlc3QgIydzdHJpbmc9KSkpCisgICAgICAgICAgICAgICAgICAg IChjbC1yZW1vdmUtZHVwbGljYXRlcyAoc3BsaXQtc3RyaW5nIHN0ciBzZXAgdCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0ZXN0ICMnc3RyaW5nPSkpKSkpKQog ICAgICAgICAoc2V0LXByb2Nlc3MtZmlsdGVyIHByb2Nlc3Mgb3JpZ2luYWwtZmlsdGVyLWZuKSkp KSkKIAogKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucyAocHJv Y2VzcyBpbnB1dCkKICAgIkdldCBjb21wbGV0aW9ucyBvZiBJTlBVVCB1c2luZyBQUk9DRVNTLiIK ICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCi0gICAgKGxl dCAoKGNvbXBsZXRpb25zCi0gICAgICAgICAgIChweXRob24tdXRpbC1zdHJpcC1zdHJpbmcKLSAg ICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0Ci0gICAgICAgICAg ICAgKGZvcm1hdAotICAgICAgICAgICAgICAiJXNcbnByaW50KCc7Jy5qb2luKF9fUFlUSE9OX0VM X2dldF9jb21wbGV0aW9ucyglcykpKSIKKyAgICAocHl0aG9uLS1wYXJzZS1qc29uLWFycmF5Cisg ICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0CisgICAgICAoZm9ybWF0ICIl c1xucHJpbnQoX19QWVRIT05fRUxfZ2V0X2NvbXBsZXRpb25zKCVzKSkiCiAgICAgICAgICAgICAg IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAgICAgICAgICAgICAgKHB5dGhv bi1zaGVsbC0tZW5jb2RlLXN0cmluZyBpbnB1dCkpCi0gICAgICAgICAgICAgcHJvY2VzcykpKSkK LSAgICAgICh3aGVuICg+IChsZW5ndGggY29tcGxldGlvbnMpIDIpCi0gICAgICAgIChzcGxpdC1z dHJpbmcgY29tcGxldGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAiXidcXHxeXCJcXHw7XFx8 JyRcXHxcIiQiIHQpKSkpKQorICAgICAgcHJvY2VzcykpKSkKIAogKGRlZnZhci1sb2NhbCBweXRo b24tc2hlbGwtLWNhcGYtY2FjaGUgbmlsCiAgICJWYXJpYWJsZSB0byBzdG9yZSBjYWNoZWQgY29t cGxldGlvbnMgYW5kIGludmFsaWRhdGlvbiBrZXlzLiIpCiAKKyhkZWZ1biBweXRob24tc2hlbGwt LWdldC1tdWx0aWxpbmUtaW5wdXQgKCkKKyAgIlJldHVybiBsaW5lcyBhdCBhIG11bHRpLWxpbmUg aW5wdXQgaW4gUHl0aG9uIHNoZWxsLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGxldCAoKHAg KHBvaW50KSkgbGluZXMpCisgICAgICAod2hlbiAocHJvZ24KKyAgICAgICAgICAgICAgKGJlZ2lu bmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAobG9va2luZy1iYWNrIHB5dGhvbi1zaGVsbC1w cm9tcHQtYmxvY2stcmVnZXhwIChwb3MtYm9sKSkpCisgICAgICAgIChwdXNoIChidWZmZXItc3Vi c3RyaW5nLW5vLXByb3BlcnRpZXMgKHBvaW50KSBwKSBsaW5lcykKKyAgICAgICAgKHdoaWxlIChw cm9nbiAoY29taW50LXByZXZpb3VzLXByb21wdCAxKQorICAgICAgICAgICAgICAgICAgICAgIChs b29raW5nLWJhY2sgcHl0aG9uLXNoZWxsLXByb21wdC1ibG9jay1yZWdleHAgKHBvcy1ib2wpKSkK KyAgICAgICAgICAocHVzaCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChwb2ludCkg KHBvcy1lb2wpKSBsaW5lcykpCisgICAgICAgIChwdXNoIChidWZmZXItc3Vic3RyaW5nLW5vLXBy b3BlcnRpZXMgKHBvaW50KSAocG9zLWVvbCkpIGxpbmVzKSkKKyAgICAgIGxpbmVzKSkpCisKKyhk ZWZ1biBweXRob24tc2hlbGwtLWV4dHJhLWNvbXBsZXRpb24tY29udGV4dCAoKQorICAiUmV0dXJu IGV4dHJhIGNvbXBsZXRpb24gY29udGV4dCBvZiBjdXJyZW50IGxpbmUgaW4gUHl0aG9uIHNoZWxs LgorSXQgY3VycmVudGx5IHN1cHBvcnRzIG11bHRpLWxpbmUgZnVuY3Rpb24gY2FsbC4iCisgIChs ZXQgKChsaW5lcyAocHl0aG9uLXNoZWxsLS1nZXQtbXVsdGlsaW5lLWlucHV0KSkgYmVnKQorICAg ICh3aGVuIChub3QgKHplcm9wIChsZW5ndGggbGluZXMpKSkKKyAgICAgICh3aXRoLXRlbXAtYnVm ZmVyCisgICAgICAgIChkZWxheS1tb2RlLWhvb2tzCisgICAgICAgICAgKGluc2VydCAoc3RyaW5n LWpvaW4gbGluZXMgIlxuIikpCisgICAgICAgICAgKHB5dGhvbi1tb2RlKQorICAgICAgICAgIChz ZXRxIGJlZyAocG9zLWJvbCkpCisgICAgICAgICAgKHB5dGhvbi1uYXYtdXAtbGlzdCAtMSkKKyAg ICAgICAgICAod2hlbiAoPCAocG9pbnQpIGJlZykKKyAgICAgICAgICAgICh3aGlsZSAocmUtc2Vh cmNoLWJhY2t3YXJkCisgICAgICAgICAgICAgICAgICAgIChweXRob24tcnggc3ltYm9sLW5hbWUp IChwb3MtYm9sKSB0KSkKKyAgICAgICAgICAgIChzdHJpbmctcmVwbGFjZQorICAgICAgICAgICAg ICJcbiIgIiIgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAgICAgICAgICAg ICAgICAgIChwb2ludCkKKyAgICAgICAgICAgICAgICAgICAgICAocHJvZ24gKGdvdG8tY2hhciAo cG9pbnQtbWF4KSkgKHBvcy1lb2wgMCkpKSkpKSkpKSkKKwogKGRlZnVuIHB5dGhvbi1zaGVsbC1j b21wbGV0aW9uLWF0LXBvaW50ICgmb3B0aW9uYWwgcHJvY2VzcykKICAgIkZ1bmN0aW9uIGZvciBg Y29tcGxldGlvbi1hdC1wb2ludC1mdW5jdGlvbnMnIGluIGBpbmZlcmlvci1weXRob24tbW9kZScu CiBPcHRpb25hbCBhcmd1bWVudCBQUk9DRVNTIGZvcmNlcyBjb21wbGV0aW9ucyB0byBiZSByZXRy aWV2ZWQKQEAgLTQ2ODcsMjEgKzQ4MzUsMjEgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQt cG9pbnQKICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBXb3JraW5nIG9uIGEgc2hlbGwgYnVm ZmVyOiB1c2UgcHJvbXB0IGVuZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIChweXRo b24tdXRpbC1jb21pbnQtbGFzdC1wcm9tcHQpKQogICAgICAgICAgICAgICAgICAgICAgICAobGlu ZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKLSAgICAgICAgIChpbXBvcnQtc3RhdGVtZW50Ci0gICAg ICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaC1wCi0gICAgICAgICAgICAgICAgIChyeCAoKiBzcGFj ZSkgd29yZC1zdGFydCAob3IgImZyb20iICJpbXBvcnQiKSB3b3JkLWVuZCBzcGFjZSkKLSAgICAg ICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBsaW5lLXN0YXJ0IChw b2ludCkpKQotICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBsaW5l LXN0YXJ0IChwb2ludCkpKSkKKyAgICAgICAgIChuby1kZWxpbXMgKHdpdGgtY3VycmVudC1idWZm ZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCisgICAgICAgICAgICAgICAgICAgICAgKGlmIHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1lbmFibGUKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMgIiIp CisgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAgImlweXRob25bMjNdP1xc JyIgcHl0aG9uLXNoZWxsLWludGVycHJldGVyKSkpKQogICAgICAgICAgKHN0YXJ0CiAgICAgICAg ICAgKGlmICg8IChwb2ludCkgbGluZS1zdGFydCkKICAgICAgICAgICAgICAgKHBvaW50KQogICAg ICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCi0gICAgICAgICAgICAgIChpZiAobm90IChyZS1zZWFy Y2gtYmFja3dhcmQKLSAgICAgICAgICAgICAgICAgICAgICAgIChweXRob24tcngKLSAgICAgICAg ICAgICAgICAgICAgICAgICAob3Igd2hpdGVzcGFjZSBvcGVuLXBhcmVuIGNsb3NlLXBhcmVuCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZy1kZWxpbWl0ZXIgc2ltcGxlLW9wZXJh dG9yKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtc3RhcnQKLSAgICAgICAgICAgICAg ICAgICAgICAgIHQgMSkpCisgICAgICAgICAgICAgIChpZiAob3Igbm8tZGVsaW1zCisgICAgICAg ICAgICAgICAgICAgICAgKG5vdCAocmUtc2VhcmNoLWJhY2t3YXJkCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHB5dGhvbi1yeAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3Ig d2hpdGVzcGFjZSBvcGVuLXBhcmVuIGNsb3NlLXBhcmVuCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJpbmctZGVsaW1pdGVyIHNpbXBsZS1vcGVyYXRvcikpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGluZS1zdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IHQgMSkpKQogICAgICAgICAgICAgICAgICAgbGluZS1zdGFydAogICAgICAgICAgICAgICAgIChm b3J3YXJkLWNoYXIgKGxlbmd0aCAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgMCkpKQogICAg ICAgICAgICAgICAgIChwb2ludCkpKSkpCkBAIC00NzQxLDE4ICs0ODg5LDU4IEBAIHB5dGhvbi1z aGVsbC1jb21wbGV0aW9uLWF0LXBvaW50CiAgICAgICAgICAgICAgICAgICAodCAjJ3B5dGhvbi1z aGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1nZXQtY29tcGxldGlvbnMpKSkpCiAgICAgICAgICAocHJl di1wcm9tcHQgKGNhciBweXRob24tc2hlbGwtLWNhcGYtY2FjaGUpKQogICAgICAgICAgKHJlIChv ciAoY2FkciBweXRob24tc2hlbGwtLWNhcGYtY2FjaGUpIHJlZ2V4cC11bm1hdGNoYWJsZSkpCi0g ICAgICAgICAocHJlZml4IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgc3RhcnQgZW5k KSkpCisgICAgICAgICAocHJlZml4IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgc3Rh cnQgZW5kKSkKKyAgICAgICAgIChwcmVmaXgtb2Zmc2V0IDApCisgICAgICAgICA7OyBTZW5kIGV4 dHJhIGNvbnRleHQgZm9yIGNhc2VzIGxpa2UgY29tcGxldGluZyBmdW5jdGlvbgorICAgICAgICAg OzsgcGFyYW1ldGVycyBmb3IgbXVsdGktbGluZSBmdW5jdGlvbiBjYWxsLgorICAgICAgICAgKGV4 dHJhLWNvbnRleHQgKGFuZCBuby1kZWxpbXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHB5dGhvbi1zaGVsbC0tZXh0cmEtY29tcGxldGlvbi1jb250ZXh0KSkpCisgICAgICAgICAoZXh0 cmEtb2Zmc2V0IChsZW5ndGggZXh0cmEtY29udGV4dCkpKQorICAgICh1bmxlc3MgKHplcm9wIGV4 dHJhLW9mZnNldCkKKyAgICAgIChzZXRxIHByZWZpeCAoY29uY2F0IGV4dHJhLWNvbnRleHQgcHJl Zml4KSkpCiAgICAgOzsgVG8gaW52YWxpZGF0ZSB0aGUgY2FjaGUsIHdlIGNoZWNrIGlmIHRoZSBw cm9tcHQgcG9zaXRpb24gb3IgdGhlCiAgICAgOzsgY29tcGxldGlvbiBwcmVmaXggY2hhbmdlZC4K ICAgICAodW5sZXNzIChhbmQgKGVxdWFsIHByZXYtcHJvbXB0IChjYXIgcHJvbXB0LWJvdW5kYXJp ZXMpKQotICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoIHJlIHByZWZpeCkpCisgICAgICAg ICAgICAgICAgIChzdHJpbmctbWF0Y2ggcmUgcHJlZml4KQorICAgICAgICAgICAgICAgICAoc2V0 cSBwcmVmaXgtb2Zmc2V0ICgtIChsZW5ndGggcHJlZml4KSAobWF0Y2gtZW5kIDEpKSkpCiAgICAg ICAoc2V0cSBweXRob24tc2hlbGwtLWNhcGYtY2FjaGUKICAgICAgICAgICAgIGAoLChjYXIgcHJv bXB0LWJvdW5kYXJpZXMpCiAgICAgICAgICAgICAgICwoaWYgKHN0cmluZy1lbXB0eS1wIHByZWZp eCkKICAgICAgICAgICAgICAgICAgICByZWdleHAtdW5tYXRjaGFibGUKLSAgICAgICAgICAgICAg ICAgKGNvbmNhdCAiXFxgIiAocmVnZXhwLXF1b3RlIHByZWZpeCkgIlxcKD86XFxzd1xcfFxcc19c XCkqXFwnIikpCi0gICAgICAgICAgICAgICxAKGZ1bmNhbGwgY29tcGxldGlvbi1mbiBwcm9jZXNz IChvciBpbXBvcnQtc3RhdGVtZW50IHByZWZpeCkpKSkpCi0gICAgKGxpc3Qgc3RhcnQgZW5kIChj ZGRyIHB5dGhvbi1zaGVsbC0tY2FwZi1jYWNoZSkpKSkKKyAgICAgICAgICAgICAgICAgKGNvbmNh dCAiXFxgXFwoIiAocmVnZXhwLXF1b3RlIHByZWZpeCkgIlxcKVxcKD86XFxzd1xcfFxcc19cXCkq XFwnIikpCisgICAgICAgICAgICAgICxAKGZ1bmNhbGwgY29tcGxldGlvbi1mbiBwcm9jZXNzIHBy ZWZpeCkpKSkKKyAgICAobGV0ICgoY2FuZHMgKGNkZHIgcHl0aG9uLXNoZWxsLS1jYXBmLWNhY2hl KSkpCisgICAgICAoY29uZAorICAgICAgICgoc3RyaW5ncCAoY2FyIGNhbmRzKSkKKyAgICAgICAg KGlmIG5vLWRlbGltcworICAgICAgICAgICAgOzsgUmVkdWNlIGNvbXBsZXRpb24gY2FuZGlkYXRl cyBkdWUgdG8gbG9uZyBwcmVmaXguCisgICAgICAgICAgICAoaWYtbGV0ICgoTHAgKGxlbmd0aCBw cmVmaXgpKQorICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctbWF0Y2ggIlxcKFxcc3dcXHxc XHNfXFwpK1xcJyIgcHJlZml4KSkKKyAgICAgICAgICAgICAgICAgICAgIChMIChtYXRjaC1iZWdp bm5pbmcgMCkpKQorICAgICAgICAgICAgICAgIDs7IElmIGV4dHJhLW9mZnNldCBpcyBub3QgemVy bzoKKyAgICAgICAgICAgICAgICA7OyAgICAgICAgICAgICAgICAgIHN0YXJ0ICAgICAgICAgICAg ICBlbmQKKyAgICAgICAgICAgICAgICA7OyBvLS0tLS0tLS0tLS0tLS0tLS0tby0tLS0tLS0tLW8t LS0tLS0tbworICAgICAgICAgICAgICAgIDs7IHw8LSBleHRyYS1vZmZzZXQgLT58CisgICAgICAg ICAgICAgICAgOzsgfDwtLS0tLS0tLS0tLSBMIC0tLS0tLS0tLS0tLT58CisgICAgICAgICAgICAg ICAgOzsgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldy1zdGFydAorICAgICAgICAgICAgICAg IChsaXN0ICgrIHN0YXJ0IEwgKC0gZXh0cmEtb2Zmc2V0KSkgZW5kCisgICAgICAgICAgICAgICAg ICAgICAgKG1hcGNhciAobGFtYmRhIChzKSAoc3Vic3RyaW5nIHMgTCkpIGNhbmRzKSkKKyAgICAg ICAgICAgICAgKGxpc3QgZW5kIGVuZCAobWFwY2FyIChsYW1iZGEgKHMpIChzdWJzdHJpbmcgcyBM cCkpIGNhbmRzKSkpCisgICAgICAgICAgKGxpc3Qgc3RhcnQgZW5kIGNhbmRzKSkpCisgICAgICAg OzsgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24oLW5hdGl2ZSktZ2V0LWNvbXBsZXRpb25zIG1heSBw cm9kdWNlCisgICAgICAgOzsgYSBsaXN0IG9mICh0ZXh0IHN0YXJ0IGVuZCB0eXBlIHNpZ25hdHVy ZSkgZm9yIGNvbXBsZXRpb24uCisgICAgICAgOzsgU2VlIGBweXRob24tc2hlbGwtcmVhZGxpbmUt aXB5dGhvbi1zZXR1cC1jb2RlJyBhbmQKKyAgICAgICA7OyBgcHl0aG9uLXNoZWxsLWNvbXBsZXRp b24tc2V0dXAtY29kZScuCisgICAgICAgKChjb25zcCAoY2FyIGNhbmRzKSkKKyAgICAgICAgKGxp c3QgKCsgc3RhcnQgKG50aCAxIChjYXIgY2FuZHMpKSAoLSBleHRyYS1vZmZzZXQpKQorICAgICAg ICAgICAgICA7OyBDYW5kaWRhdGVzIG1heSBiZSBjYWNoZWQsIHNvIHRoZSBlbmQgcG9zaXRpb24g c2hvdWxkCisgICAgICAgICAgICAgIDs7IGJlIGFkanVzdGVkIGFjY29yZGluZyB0byBjdXJyZW50 IGNvbXBsZXRpb24gcHJlZml4LgorICAgICAgICAgICAgICAoKyBzdGFydCAobnRoIDIgKGNhciBj YW5kcykpICgtIGV4dHJhLW9mZnNldCkgcHJlZml4LW9mZnNldCkKKyAgICAgICAgICAgICAgY2Fu ZHMKKyAgICAgICAgICAgICAgOmFubm90YXRpb24tZnVuY3Rpb24KKyAgICAgICAgICAgICAgKGxh bWJkYSAoYykgKGNvbmNhdCAiICIgKG50aCAzIChhc3NvYyBjIGNhbmRzKSkpKQorICAgICAgICAg ICAgICA6Y29tcGFueS1kb2NzaWcKKyAgICAgICAgICAgICAgKGxhbWJkYSAoYykgKG50aCA0IChh c3NvYyBjIGNhbmRzKSkpKSkpKSkpCiAKIChkZWZpbmUtb2Jzb2xldGUtZnVuY3Rpb24tYWxpYXMK ICAgJ3B5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWNvbXBsZXRlLWF0LXBvaW50CmRpZmYgLS1naXQg YS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9wcm9nbW9k ZXMvcHl0aG9uLXRlc3RzLmVsCmluZGV4IDk3ZmZkNWZlMjBmLi5mNjkyNmM0MjFmZSAxMDA2NDQK LS0tIGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKKysrIGIvdGVzdC9saXNw L3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKQEAgLTQ3ODcsNiArNDc4Nyw4NCBAQCBweXRob24t c2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1uYXRpdmUtMQogICAgICAoZW5kLW9mLWxpbmUgMCkK ICAgICAgKHNob3VsZC1ub3QgKG50aCAyIChweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2lu dCkpKSkpKQogCisoZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbW9kdWxlICgpCisgICJD aGVjayBpZiBtb2R1bGVzIGNhbiBiZSBjb21wbGV0ZWQgaW4gUHl0aG9uIHNoZWxsLiIKKyAgKGlu c2VydCAiaW1wb3J0IGRhdGV0IikKKyAgKGNvbXBsZXRpb24tYXQtcG9pbnQpCisgIChiZWdpbm5p bmctb2YtbGluZSkKKyAgKHNob3VsZCAobG9va2luZy1hdC1wICJpbXBvcnQgZGF0ZXRpbWUiKSkK KyAgKGtpbGwtbGluZSkKKyAgKGluc2VydCAiZnJvbSBkYXRldCIpCisgIChjb21wbGV0aW9uLWF0 LXBvaW50KQorICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgIChzaG91bGQgKGxvb2tpbmctYXQtcCAi ZnJvbSBkYXRldGltZSIpKQorICAoZW5kLW9mLWxpbmUpCisgIChpbnNlcnQgIiBpbXBvcnQgdGlt ZWQiKQorICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgKGJlZ2lubmluZy1vZi1saW5lKQorICAo c2hvdWxkIChsb29raW5nLWF0LXAgImZyb20gZGF0ZXRpbWUgaW1wb3J0IHRpbWVkZWx0YSIpKQor ICAoa2lsbC1saW5lKSkKKworKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXBhcmFtZXRl cnMgKCkKKyAgIkNoZWNrIGlmIHBhcmFtZXRlcnMgY2FuIGJlIGNvbXBsZXRlZCBpbiBQeXRob24g c2hlbGwuIgorICAoaW5zZXJ0ICJpbXBvcnQgcmUiKQorICAoY29taW50LXNlbmQtaW5wdXQpCisg IChweXRob24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0KQorICAoaW5zZXJ0ICJyZS5zcGxp dCgnYicsICdhYmMnLCBtYXhzIikKKyAgKGNvbXBsZXRpb24tYXQtcG9pbnQpCisgIChzaG91bGQg KHN0cmluZz0gInJlLnNwbGl0KCdiJywgJ2FiYycsIG1heHNwbGl0PSIKKyAgICAgICAgICAgICAg ICAgICAoYnVmZmVyLXN1YnN0cmluZyAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChwb2ludCkp KSkKKyAgKGluc2VydCAiMCwgIikKKyAgKHNob3VsZCAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24t YXQtcG9pbnQpKQorICA7OyBUZXN0IGlmIGNhY2hlIGlzIHVzZWQuCisgIChjbC1sZXRmICgoKHN5 bWJvbC1mdW5jdGlvbiAncHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tZ2V0LWNvbXBsZXRpb25zKQor ICAgICAgICAgICAgICdpZ25vcmUpCisgICAgICAgICAgICAoKHN5bWJvbC1mdW5jdGlvbiAncHl0 aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLWdldC1jb21wbGV0aW9ucykKKyAgICAgICAgICAg ICAnaWdub3JlKSkKKyAgICAoaW5zZXJ0ICJmbGEiKQorICAgIChjb21wbGV0aW9uLWF0LXBvaW50 KQorICAgIChzaG91bGQgKHN0cmluZz0gInJlLnNwbGl0KCdiJywgJ2FiYycsIG1heHNwbGl0PTAs IGZsYWdzPSIKKyAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nIChsaW5lLWJl Z2lubmluZy1wb3NpdGlvbikgKHBvaW50KSkpKSkKKyAgKGJlZ2lubmluZy1vZi1saW5lKQorICAo a2lsbC1saW5lKSkKKworKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW11bHRpLWxpbmUt ZnVuY3Rpb24tY2FsbCAoKQorICAiQ2hlY2sgaWYgcGFyYW1ldGVycyBjYW4gYmUgY29tcGxldGVk IGluIG11bHRpLWxpbmUgZnVuY3Rpb24gY2FsbC4iCisgIChpbnNlcnQgInJlLnNwbGl0KCdiJywg J2FiYycsIikKKyAgKGNvbWludC1zZW5kLWlucHV0KQorICAocHl0aG9uLXRlc3RzLXNoZWxsLXdh aXQtZm9yLXByb21wdCkKKyAgKGluc2VydCAibWF4cyIpCisgIChjb21wbGV0aW9uLWF0LXBvaW50 KQorICAoc2hvdWxkIChzdHJpbmc9ICJtYXhzcGxpdD0iCisgICAgICAgICAgICAgICAgICAgKGJ1 ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQpKSkpKQorCiso ZXJ0LWRlZnRlc3QgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtamVkaS1jb21wbGV0 ZXIgKCkKKyAgIkNoZWNrIGlmIFB5dGhvbiBzaGVsbCBjb21wbGV0aW9uIHdvcmtzIHdpdGggSmVk aS4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kIHB5dGhvbi10ZXN0cy1zaGVsbC1p bnRlcnByZXRlcikpCisgIChweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlci13aXRoLXNoZWxs CisgICAiIgorICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgorICAgICAocHl0aG9u LXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCisgICAgIChza2lwLXVubGVzcyAoc3Ry aW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyAiIikpCisgICAgIChw eXRob24tc2hlbGwtY29tcGxldGlvbi1tb2R1bGUpCisgICAgIChweXRob24tc2hlbGwtY29tcGxl dGlvbi1wYXJhbWV0ZXJzKQorICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbXVsdGktbGlu ZS1mdW5jdGlvbi1jYWxsKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXNoZWxsLWNvbXBsZXRp b24tYXQtcG9pbnQtaXB5dGhvbiAoKQorICAiQ2hlY2sgaWYgUHl0aG9uIHNoZWxsIGNvbXBsZXRp b24gd29ya3MgZm9yIElQeXRob24uIgorICAobGV0ICgocHl0aG9uLXNoZWxsLWludGVycHJldGVy ICJpcHl0aG9uIikKKyAgICAgICAgKHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlci1hcmdzICItaSAt LXNpbXBsZS1wcm9tcHQiKSkKKyAgICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCBweXRo b24tc2hlbGwtaW50ZXJwcmV0ZXIpKQorICAgIChweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZl ci13aXRoLXNoZWxsCisgICAgICIiCisgICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZm ZXIKKyAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmKQorICAg ICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1tb2R1bGUpCisgICAgICAgKHB5dGhvbi1zaGVs bC1jb21wbGV0aW9uLXBhcmFtZXRlcnMpCisgICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9u LW5hdGl2ZS10dXJuLW9uKQorICAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1tb2R1bGUp CisgICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXBhcmFtZXRlcnMpCisgICAgICAgKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLW11bHRpLWxpbmUtZnVuY3Rpb24tY2FsbCkpKSkpCiAKIAwK IDs7OyBQREIgVHJhY2sgaW50ZWdyYXRpb24KLS0gCjIuMjUuMQoK --000000000000d47fde060f9b4a94-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 23 09:15:43 2024 Received: (at 68559) by debbugs.gnu.org; 23 Jan 2024 14:15:43 +0000 Received: from localhost ([127.0.0.1]:42507 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rSHZ1-0007og-IL for submit@debbugs.gnu.org; Tue, 23 Jan 2024 09:15:43 -0500 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]:58870) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rSHYy-0007oR-E7 for 68559@debbugs.gnu.org; Tue, 23 Jan 2024 09:15:41 -0500 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-6dd85328325so114999b3a.1 for <68559@debbugs.gnu.org>; Tue, 23 Jan 2024 06:15:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706019330; x=1706624130; darn=debbugs.gnu.org; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=RaEayjhGvJl6C2xo86ks6UjXhpqu4e6Wcu/OUKxTQOA=; b=Gghl2KgCAmg9nfxFWU5dJn6jrRpIVCbFduxuAKYEIACkQ4OgSBf9u5l1xmrXR/h0GA UCIUUxnYmjxuPiMjJNwc0AzwRcBiwhn7EX0Y6v0YN0vpE74U4mtclq07H71AvMUqa+fW iBcMLdUPfsMtwgq0+Ptkqun/QaBnH9BS9kAyOxIvjXeNmgTh/WvVUPEw8R2oHGva3ZOl dMlh3z2C6FP05yyMdiFAW4DQ16f01MwslPnXMiG6av8UjpIq2ttRXzfIs4R8Nh6EyVJC jrkcePijdM6rGC+l1z2uyZ33NPiZ4nU5oeX8rbuBA73WIUN2AAjnemFuLjoaw1oc8bwk RWXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706019330; x=1706624130; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=RaEayjhGvJl6C2xo86ks6UjXhpqu4e6Wcu/OUKxTQOA=; b=TAY86IBclX6rji/JPFU/qIvf8/Hsg4OzTVqjRzisHGRM1/meX2A99Yr5eTog7ErTDx cDDsHDDgg4GP/IrGbhzC9MBUP/KTXaNq3mcGcZy3Ib63yYmXHnvetgbQSX+fzzTwlqA1 qNmxRmrrNQRBa6qywffhVMVFJRURJH7F8aVeTr2HoT0nOG31Apc8CnekOuJqVCuLJsYO 7yKf43RWkUytRJYrjKq6auHxSVgwPt3NxxhFF3BHKli1+6yovx932gpKHCoOxCBhKjzF 1ePnHDVQVP/2uQvvkXqJ52HuJTgZJshIJJUWqcxAFac+TKnjvfCwstAQoOlOcydT6syE jvTQ== X-Gm-Message-State: AOJu0Yy6LW2NsdkUllZcAbFlNi8kv9yKX4FnSexfHh4Kkwl/JqdwLh0c YVs89DpsL1d4/xxaWFGmLOR7h7x+LlMFFJ3rS+89QWf6FHr+u1M9/0eqN5J1 X-Google-Smtp-Source: AGHT+IEK+ySysVvZJO7fYOHfYS6xrFCJiIQ66emncW0mZCUP/+pcjDKAT8QV0pva71S26L8gydkNrA== X-Received: by 2002:a05:6a00:4602:b0:6db:d978:9047 with SMTP id ko2-20020a056a00460200b006dbd9789047mr6446890pfb.1.1706019328829; Tue, 23 Jan 2024 06:15:28 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id x33-20020a631721000000b005ceac534e47sm10246672pgl.51.2024.01.23.06.15.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jan 2024 06:15:28 -0800 (PST) Date: Tue, 23 Jan 2024 23:15:30 +0900 Message-ID: From: kobarity To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: References: <83zfx39mcy.fsf@gnu.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-2022-JP X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Liu Hui wrote: > kobarity $BP2(B2024$BG/(B1$B7n(B21$BF|<~F|(B 17:34$B > > Is it possible to allow completion of keyword arguments in a > > multi-line function call like the following? > > > > #+begin_src python > > re.split( > > 'b', > > 'abc', > > maxs > > #+end_src > > I have added experimental support in the attached patch, can you test > it please? Thank you. I tried the new patch and confirmed that the Python Shell buffer allows keyword argument completion on multi-line function calls. However, my expectation is that it can be done in Python buffer as well (after calling `python-shell-send-buffer'). Is this also possible? > > I am not sure if Python snippets should be separated. Do other > > language supports keep them separate? > > I think it allows to reduce code duplication (e.g. the IPython support > code existing in both python-shell-completion-setup-code and > python-shell-readline-ipython-setup-code) and make code more simple. > It seems other languages do not contain as many code snippets as > python.el. Sorry, I misunderstood that snippets meant skeletons. I agree that python.el has long Python codes, which is not easy to maintain. Are you proposing to separate the snippets into .py file? If it's acceptable from the Emacs' source code management perspective, I think that is a good approach. From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 24 05:07:58 2024 Received: (at 68559) by debbugs.gnu.org; 24 Jan 2024 10:07:58 +0000 Received: from localhost ([127.0.0.1]:44487 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rSaAm-0004IY-Q0 for submit@debbugs.gnu.org; Wed, 24 Jan 2024 05:07:58 -0500 Received: from mail-vs1-xe32.google.com ([2607:f8b0:4864:20::e32]:42006) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rSaAj-0004IH-DK for 68559@debbugs.gnu.org; Wed, 24 Jan 2024 05:07:54 -0500 Received: by mail-vs1-xe32.google.com with SMTP id ada2fe7eead31-467010c1c72so3217653137.0 for <68559@debbugs.gnu.org>; Wed, 24 Jan 2024 02:07:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706090862; x=1706695662; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=jyxxdWTFkRyRajIWGneJ5bO+YeSDbHKvPBr5cr3AORo=; b=jJ5PVDOhB/p1MjeP+tC1d99537B3FcdUtJVOBSWkqzwsEQWo7DaeYjIgV7SnmskDJ+ Rd3p0J8qvbxMa9lKqgimIC6dG/7m//qovvyJT8WzmwtSykMFuIYzxBzapVSCRZoBzGzU lHbqV7TyhA2ZWwmjr4ITR53pmoFg2tuC3pXWW/Lr/MICRc/H1cCV9BNFl177A6hmSKZS EE/cjFgZSAcWtlTzR/BEoRn/WypnXygW4dQqTIcrjmfjuLHhrswyIZVnMcc55KbAZU3j 3R0UOxoT82M2MmDusmfohwvDnwhCIB8Ri4FQpMHIbI6fva1+CGdXgIfSEVRfbuv1srDv j0xA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706090862; x=1706695662; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=jyxxdWTFkRyRajIWGneJ5bO+YeSDbHKvPBr5cr3AORo=; b=wO+N9tgNESMdDmWa+nkX2zTv/8xwMpIar8pPqIcx3Z767trXTMiun8Mzdwy7SB+zWK ZPcnbyPtmUHfJvNIdCFjPZo3zwP0ruKeTH8DH8k20vWBPsB/YRlthpiTjaAE5o4gZ8ST 0veKlLmkOWmUajbwN2YlFZizDhs20jc1JNqtBB2hSNIQEtXE7cROK/Ln7UeuWkk3vNNu DEMK2vQDJU9V3pB/7/FeTR7FQ7G4qfzyuQt3t3MWIJlGYmKldzqCWmLyUrGmhph0p1+R JGO36Edbm/Fo2LANetCCIL+M8TKD4BirErTW5Mphv9Sqez5ifmF+kFHViuiLxkVDueW9 77aA== X-Gm-Message-State: AOJu0YxeuR7MHI/kAz9OA1jHHlJnvKMLNSdaLn8AfjFJveAAtiCnPOcs z851D2SZxnJVswQCn5NYUWYxyXc78LKyc3L0pwEB43WMxxoXGTs4oz+PiMqOG2moIqob+T3Q2du fQKh8a6y2yWZ7RNHWKmnYroFiOCQ= X-Google-Smtp-Source: AGHT+IGHraavSnTAR56kLxAISB9A9pi9C4p9oD/mubcnZmeRY2hBrGziRR1vjWkvXHeqg1hJyErHoP5ZV2Pq+NL61zw= X-Received: by 2002:a05:6102:3950:b0:46a:fec8:b072 with SMTP id f16-20020a056102395000b0046afec8b072mr453533vsu.23.1706090862508; Wed, 24 Jan 2024 02:07:42 -0800 (PST) MIME-Version: 1.0 References: <83zfx39mcy.fsf@gnu.org> In-Reply-To: From: Liu Hui Date: Wed, 24 Jan 2024 18:07:30 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: kobarity Content-Type: multipart/mixed; boundary="000000000000d09a70060fae3b8a" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --000000000000d09a70060fae3b8a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable kobarity =E4=BA=8E2024=E5=B9=B41=E6=9C=8823=E6=97=A5= =E5=91=A8=E4=BA=8C 22:15=E5=86=99=E9=81=93=EF=BC=9A > Thank you. I tried the new patch and confirmed that the Python Shell > buffer allows keyword argument completion on multi-line function > calls. However, my expectation is that it can be done in Python > buffer as well (after calling `python-shell-send-buffer'). Is this > also possible? Thank you for the feedback. I have updated the patch to add support in Python buffer. > > > I am not sure if Python snippets should be separated. Do other > > > language supports keep them separate? > > > > I think it allows to reduce code duplication (e.g. the IPython support > > code existing in both python-shell-completion-setup-code and > > python-shell-readline-ipython-setup-code) and make code more simple. > > It seems other languages do not contain as many code snippets as > > python.el. > > Sorry, I misunderstood that snippets meant skeletons. I agree that > python.el has long Python codes, which is not easy to maintain. Are > you proposing to separate the snippets into .py file? If it's > acceptable from the Emacs' source code management perspective, I think > that is a good approach. Yes, I'd like to at least put some flags and functions shared by python-shell-completion-native-setup and python-*-setup-code in a separate .py file. On the other hand, they are not changed frequently, so it is not in urgent need. --000000000000d09a70060fae3b8a Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Improve-Python-shell-completion-bug-68559.patch" Content-Disposition: attachment; filename="0001-Improve-Python-shell-completion-bug-68559.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lrrmejpn0 RnJvbSBhYmVmZWMxMWQ1Mjg3NWE3NjcwM2MyNWMwOTk4YjVkNzc1NDQyYTdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAxOCBKYW4gMjAyNCAxMjowMDowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEltcHJvdmUg UHl0aG9uIHNoZWxsIGNvbXBsZXRpb24gKGJ1ZyM2ODU1OSkKCiogbGlzcC9wcm9nbW9kZXMvcHl0 aG9uLmVsIChweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlKTogRml4CnRoZSBjb21w bGV0aW9uIGNvZGUgb2YgSVB5dGhvbi4gIENoYW5nZSB0aGUgcmV0dXJuIHZhbHVlIHRvIEpTT04K c3RyaW5nIGFuZCAuLi4KKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucyk6 IC4uLiBzaW1wbGlmeSBwYXJzaW5nLgooaW5mZXJpb3ItcHl0aG9uLW1vZGUpOiBVcGRhdGUgZG9j c3RyaW5nLgoocHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlcik6IE5ldyBvcHRpb24uCihw eXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcykKKHB5dGhvbi1zaGVsbC0tcmVh ZGxpbmUtamVkaS1zZXR1cC1jb2RlKQoocHl0aG9uLXNoZWxsLS1yZWFkbGluZS1pcHl0aG9uLXNl dHVwLWNvZGUpOiBOZXcgdmFyaWFibGVzLgoocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZl LXNldHVwKTogU2V0dXAgYSBzdWl0YWJsZSByZWFkbGluZQpjb21wbGV0ZXIgYW5kIHNldCB0aGUg Y29tcGxldGVyIGRlbGltaXRlci4KKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1nZXQt Y29tcGxldGlvbnMpOiBDb252ZXJ0IG91dHB1dApzdHJpbmcgdG8gY29tcGxldGlvbnMgcHJvcGVy bHkuCihweXRob24tc2hlbGwtLWdldC1tdWx0aWxpbmUtaW5wdXQpCihweXRob24tc2hlbGwtLWV4 dHJhLWNvbXBsZXRpb24tY29udGV4dCkKKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWV4dHJhLWNv bnRleHQpOiBOZXcgZnVuY3Rpb25zLgoocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQp OiBTZW5kIHRleHQgYmVnaW5uaW5nIGZyb20gdGhlIGxpbmUKc3RhcnQgaWYgdGhlIGNvbXBsZXRp b24gYmFja2VuZCBkb2VzIG5vdCBuZWVkIHdvcmQgc3BsaXR0aW5nLiAgUmVtb3ZlCnRoZSBkZXRl Y3Rpb24gb2YgaW1wb3J0IHN0YXRlbWVudCBiZWNhdXNlIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9y ZS4KQ3JlYXRlIHByb3BlciBjb21wbGV0aW9uIHRhYmxlIGJhc2VkIG9uIGNvbXBsZXRpb25zIHJl dHVybmVkIGZyb20KZGlmZmVyZW50IGJhY2tlbmRzLgoKKiB0ZXN0L2xpc3AvcHJvZ21vZGVzL3B5 dGhvbi10ZXN0cy5lbCAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSk6CihweXRob24t dGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycyk6CihweXRob24tdGVzdHMtLWNvbXBsZXRpb24t ZXh0cmEtY29udGV4dCk6IE5ldyBoZWxwZXIgZnVuY3Rpb25zLgoocHl0aG9uLXNoZWxsLWNvbXBs ZXRpb24tYXQtcG9pbnQtamVkaS1jb21wbGV0ZXIpOgoocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24t YXQtcG9pbnQtaXB5dGhvbik6IE5ldyB0ZXN0cy4KCiogZXRjL05FV1M6IEFubm91bmNlIHRoZSBj aGFuZ2UuCi0tLQogZXRjL05FV1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwog bGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsICAgICAgICAgICAgfCAzMDQgKysrKysrKysrKysrKysr KysrKysrKystLS0tLQogdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwgfCAgNzgg KysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzMzYgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRleCAwM2I4YzNiNTE3YS4u NmZkMzM3NzI3YzUgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0xMDI5 LDYgKzEwMjksMTIgQEAgaW5zdGVhZCBvZjoKIFRoaXMgYWxsb3dzIHRoZSB1c2VyIHRvIHNwZWNp ZnkgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byB0aGUgbm9uCiBpbnRlcmFjdGl2ZSBQeXRob24g aW50ZXJwcmV0ZXIgc3BlY2lmaWVkIGJ5ICdweXRob24taW50ZXJwcmV0ZXInLgogCisqKiogTmV3 IHVzZXIgb3B0aW9uICdweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyJy4KK1RoaXMgYWxs b3dzIHRoZSB1c2VyIHRvIHNwZWNpZnkgdGhlIHJlYWRsaW5lIGNvbXBsZXRlciB1c2VkIGZvciBQ eXRob24KK3NoZWxsIGNvbXBsZXRpb24uICBUaGUgZGVmYXVsdCBpcyAnYXV0bycsIHdoaWNoIG1l YW5zIGEgc3VpdGFibGUKK2NvbXBsZXRlciB3aWxsIGJlIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxs eSBhY2NvcmRpbmcgdG8gdGhlIFB5dGhvbgoraW50ZXJwcmV0ZXIuCisKICoqIHVzZS1wYWNrYWdl CiAKICsrKwpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIGIvbGlzcC9wcm9n bW9kZXMvcHl0aG9uLmVsCmluZGV4IGZmNzk5ZTFlNjYyLi42MzQ0NWFiMGU1MCAxMDA2NDQKLS0t IGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5l bApAQCAtMTI4LDkgKzEyOCw5IEBACiA7OyByZWNlaXZpbmcgZXNjYXBlIHNlcXVlbmNlcyAod2l0 aCBzb21lIGxpbWl0YXRpb25zLCBpLmUuIGNvbXBsZXRpb24KIDs7IGluIGJsb2NrcyBkb2VzIG5v dCB3b3JrKS4gIFRoZSBjb2RlIGV4ZWN1dGVkIGZvciB0aGUgImZhbGxiYWNrIgogOzsgY29tcGxl dGlvbiBjYW4gYmUgZm91bmQgaW4gYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUn IGFuZAotOzsgYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXN0cmluZy1jb2RlJyB2YXJpYWJsZXMu ICBUaGVpciBkZWZhdWx0Ci07OyB2YWx1ZXMgZW5hYmxlIGNvbXBsZXRpb24gZm9yIGJvdGggQ1B5 dGhvbiBhbmQgSVB5dGhvbiwgYW5kIHByb2JhYmx5Ci07OyBhbnkgcmVhZGxpbmUgYmFzZWQgc2hl bGwgKGl0J3Mga25vd24gdG8gd29yayB3aXRoIFB5UHkpLiAgSWYgeW91cgorOzsgYHB5dGhvbi1z aGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucycuICBUaGVpciBkZWZhdWx0IHZhbHVlcwor OzsgZW5hYmxlIGNvbXBsZXRpb24gZm9yIGJvdGggQ1B5dGhvbiBhbmQgSVB5dGhvbiwgYW5kIHBy b2JhYmx5IGFueQorOzsgcmVhZGxpbmUgYmFzZWQgc2hlbGwgKGl0J3Mga25vd24gdG8gd29yayB3 aXRoIFB5UHkpLiAgSWYgeW91cgogOzsgUHl0aG9uIGluc3RhbGxhdGlvbiBsYWNrcyByZWFkbGlu ZSAobGlrZSBDUHl0aG9uIGZvciBXaW5kb3dzKSwKIDs7IGluc3RhbGxpbmcgcHlyZWFkbGluZSAo VVJMIGBodHRwczovL2lweXRob24ub3JnL3B5cmVhZGxpbmUuaHRtbCcpCiA7OyBzaG91bGQgc3Vm ZmljZS4gIFRvIHRyb3VibGVzaG9vdCB3aHkgeW91IGFyZSBub3QgZ2V0dGluZyBhbnkKQEAgLTM2 MDEsNyArMzYwMSw2IEBAIGluZmVyaW9yLXB5dGhvbi1tb2RlCiBgcHl0aG9uLXNoZWxsLXByb21w dC1ibG9jay1yZWdleHAnLAogYHB5dGhvbi1zaGVsbC1mb250LWxvY2stZW5hYmxlJywKIGBweXRo b24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlJywKLWBweXRob24tc2hlbGwtY29tcGxldGlv bi1zdHJpbmctY29kZScsCiBgcHl0aG9uLWVsZG9jLXNldHVwLWNvZGUnLAogYHB5dGhvbi1mZmFw LXNldHVwLWNvZGUnIGNhbgogY3VzdG9taXplIHRoaXMgbW9kZSBmb3IgZGlmZmVyZW50IFB5dGhv biBpbnRlcnByZXRlcnMuCkBAIC00MzE5LDggKzQzMTgsOSBAQCBweXRob24tc2hlbGwtY29tcGxl dGlvbi1zZXR1cC1jb2RlCiAgICAgY29tcGxldGlvbnMgPSBbXQogICAgIGNvbXBsZXRlciA9IE5v bmUKIAorICAgIGltcG9ydCBqc29uCiAgICAgdHJ5OgotICAgICAgICBpbXBvcnQgcmVhZGxpbmUK KyAgICAgICAgaW1wb3J0IHJlYWRsaW5lLCByZQogCiAgICAgICAgIHRyeToKICAgICAgICAgICAg IGltcG9ydCBfX2J1aWx0aW5fXwpAQCAtNDMzMSwxNiArNDMzMSwyOSBAQCBweXRob24tc2hlbGwt Y29tcGxldGlvbi1zZXR1cC1jb2RlCiAKICAgICAgICAgaXNfaXB5dGhvbiA9ICgnX19JUFlUSE9O X18nIGluIGJ1aWx0aW5zIG9yCiAgICAgICAgICAgICAgICAgICAgICAgJ19fSVBZVEhPTl9fYWN0 aXZlJyBpbiBidWlsdGlucykKLSAgICAgICAgc3BsaXRzID0gdGV4dC5zcGxpdCgpCi0gICAgICAg IGlzX21vZHVsZSA9IHNwbGl0cyBhbmQgc3BsaXRzWzBdIGluICgnZnJvbScsICdpbXBvcnQnKQot Ci0gICAgICAgIGlmIGlzX2lweXRob24gYW5kIGlzX21vZHVsZToKLSAgICAgICAgICAgIGZyb20g SVB5dGhvbi5jb3JlLmNvbXBsZXRlcmxpYiBpbXBvcnQgbW9kdWxlX2NvbXBsZXRpb24KLSAgICAg ICAgICAgIGNvbXBsZXRpb25zID0gbW9kdWxlX2NvbXBsZXRpb24odGV4dC5zdHJpcCgpKQotICAg ICAgICBlbGlmIGlzX2lweXRob24gYW5kICdfX0lQJyBpbiBidWlsdGluczoKLSAgICAgICAgICAg IGNvbXBsZXRpb25zID0gX19JUC5jb21wbGV0ZSh0ZXh0KQotICAgICAgICBlbGlmIGlzX2lweXRo b24gYW5kICdnZXRfaXB5dGhvbicgaW4gYnVpbHRpbnM6Ci0gICAgICAgICAgICBjb21wbGV0aW9u cyA9IGdldF9pcHl0aG9uKCkuQ29tcGxldGVyLmFsbF9jb21wbGV0aW9ucyh0ZXh0KQorCisgICAg ICAgIGlmIGlzX2lweXRob24gYW5kICdnZXRfaXB5dGhvbicgaW4gYnVpbHRpbnM6CisgICAgICAg ICAgICBkZWYgZmlsdGVyX2MocHJlZml4LCBjKToKKyAgICAgICAgICAgICAgICBpZiByZS5tYXRj aCgnXysoaT9bMC05XSspPyQnLCBjKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNl CisgICAgICAgICAgICAgICAgZWxpZiBjWzBdID09ICclJyBhbmQgbm90IHJlLm1hdGNoKCdbJWEt ekEtWl0rJCcsIHByZWZpeCk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAg ICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgICAgIGltcG9ydCBJUHl0aG9uCisg ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaWYgSVB5dGhvbi52ZXJzaW9uX2luZm9b MF0gPj0gNjoKKyAgICAgICAgICAgICAgICAgICAgZnJvbSBJUHl0aG9uLmNvcmUuY29tcGxldGVy IGltcG9ydCBwcm92aXNpb25hbGNvbXBsZXRlcgorICAgICAgICAgICAgICAgICAgICB3aXRoIHBy b3Zpc2lvbmFsY29tcGxldGVyKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9u cyA9IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYy50ZXh0LCBjLnN0YXJ0LCBjLmVu ZCwgYy50eXBlIG9yICc/JywgYy5zaWduYXR1cmUgb3IgJyddCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZvciBjIGluIGdldF9pcHl0aG9uKCkuQ29tcGxldGVyLmNvbXBsZXRpb25zKHRl eHQsIGxlbih0ZXh0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZmlsdGVyX2Mo dGV4dCwgYy50ZXh0KV0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg ICBwYXJ0LCBtYXRjaGVzID0gZ2V0X2lweXRob24oKS5Db21wbGV0ZXIuY29tcGxldGUobGluZV9i dWZmZXI9dGV4dCkKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnMgPSBbdGV4dCArIG1b bGVuKHBhcnQpOl0gZm9yIG0gaW4gbWF0Y2hlcyBpZiBmaWx0ZXJfYyh0ZXh0LCBtKV0KKyAgICAg ICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6CiAgICAg ICAgICAgICAjIFRyeSB0byByZXVzZSBjdXJyZW50IGNvbXBsZXRlci4KICAgICAgICAgICAgIGNv bXBsZXRlciA9IHJlYWRsaW5lLmdldF9jb21wbGV0ZXIoKQpAQCAtNDM2Myw3ICs0Mzc2LDcgQEAg cHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZQogICAgIGZpbmFsbHk6CiAgICAgICAg IGlmIGdldGF0dHIoY29tcGxldGVyLCAnUFlUSE9OX0VMX1dSQVBQRUQnLCBGYWxzZSk6CiAgICAg ICAgICAgICBjb21wbGV0ZXIucHJpbnRfbW9kZSA9IFRydWUKLSAgICByZXR1cm4gY29tcGxldGlv bnMiCisgICAgcmV0dXJuIGpzb24uZHVtcHMoY29tcGxldGlvbnMpIgogICAiQ29kZSB1c2VkIHRv IHNldHVwIGNvbXBsZXRpb24gaW4gaW5mZXJpb3IgUHl0aG9uIHByb2Nlc3Nlcy4iCiAgIDp0eXBl ICdzdHJpbmcpCiAKQEAgLTQ0MDQsNiArNDQxNyw3OCBAQCBweXRob24tc2hlbGwtY29tcGxldGlv bi1uYXRpdmUtdHJ5LW91dHB1dC10aW1lb3V0CiAgIDp2ZXJzaW9uICIyNS4xIgogICA6dHlwZSAn ZmxvYXQpCiAKKyhkZWZjdXN0b20gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlciAnYXV0 bworICAiVGhlIHJlYWRsaW5lIGNvbXBsZXRlciB1c2VkIGZvciBQeXRob24gc2hlbGwgY29tcGxl dGlvbi4KK0lmIHRoZSB2YWx1ZSBpcyBub24tbmlsLCBQeXRob24gc2hlbGwgd2lsbCBzZXR1cCB0 aGUgcmVhZGxpbmUKK2NvbXBsZXRlciB1bmxlc3MgaXQgaGFzIGJlZW4gc2V0IGVsc2V3aGVyZSAo ZS5nLiBpbiB0aGUKK1BZVEhPTlNUQVJUVVAgZmlsZSkuICBCZWxvdyBhcmUgcG9zc2libGUgdmFs dWVzOgorLSBgYXV0byc6IHRoZSBjb21wbGV0ZXIgaXMgZGV0ZXJtaW5lZCBhY2NvcmRpbmcgdG8g dGhlCitpbnRlcnByZXRlci4gIFNwZWNpZmljYWxseSwgdGhlIElQeXRob24gY29tcGxldGVyLCBk ZWZpbmVkIGluCitgcHl0aG9uLXNoZWxsLS1yZWFkbGluZS1pcHl0aG9uLXNldHVwLWNvZGUnLCBp cyB1c2VkIHdoZW4gdGhlCitpbnRlcnByZXRlciBpcyBpcHl0aG9uLCBvdGhlcndpc2UgdGhlIEpl ZGkgY29tcGxldGVyIGlzIHVzZWQuCistIGEgc3RyaW5nOiBQeXRob24gY29kZSB0byBzZXR1cCB0 aGUgcmVhZGxpbmUuICBTZWUKK2BweXRob24tc2hlbGwtLXJlYWRsaW5lLWplZGktc2V0dXAtY29k ZScgZm9yIHJlZmVyZW5jZS4KKy0gYG5pbCc6IFB5dGhvbiBzaGVsbCB3aWxsIGRvIG5vdGhpbmcu CisKK0luIGFueSBjYXNlLCBpZiB0aGUgY29tcGxldGVyIGlzIG5vdCBzZXQgc3VjY2Vzc2Z1bGx5 IGluIHRoZSBlbmQsCitmYWxsYmFjayB0byB0aGUgYnVpbHQtaW4gcmxjb21wbGV0ZXIuIgorICA6 dHlwZSAnKGNob2ljZSAoY29uc3QgIDp0YWcgIkF1dG9tYXRpYyIgYXV0bykKKyAgICAgICAgICAg ICAgICAgKGNvbnN0ICA6dGFnICJObyBjb25maWd1cmF0aW9uIiBuaWwpCisgICAgICAgICAgICAg ICAgIChzdHJpbmcgOnRhZyAiUHl0aG9uIHNldHVwIGNvZGUiKSkKKyAgOnZlcnNpb24gIjMwLjEi KQorCisoZGVmdmFyIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zIG5pbAor ICAiV29yZCBkZWxpbWl0ZXJzIHVzZWQgYnkgdGhlIHJlYWRsaW5lIGNvbXBsZXRlci4KK0l0IGlz IGF1dG9tYXRpY2FsbHkgc2V0IGJ5IFB5dGhvbiBzaGVsbC4iKQorCisoZGVmY29uc3QgcHl0aG9u LXNoZWxsLS1yZWFkbGluZS1qZWRpLXNldHVwLWNvZGUKKyAgIgorZGVmIF9fUFlUSE9OX0VMX3Nl dHVwX3JlYWRsaW5lX2NvbXBsZXRlcigpOgorICAgIGZyb20gamVkaS51dGlscyBpbXBvcnQgc2V0 dXBfcmVhZGxpbmUKKyAgICBzZXR1cF9yZWFkbGluZSgpIgorICAiQ29kZSB1c2VkIHRvIHNldHVw IHJlYWRsaW5lIGNvbXBsZXRlciB3aXRoIEplZGkuIikKKworKGRlZmNvbnN0IHB5dGhvbi1zaGVs bC0tcmVhZGxpbmUtaXB5dGhvbi1zZXR1cC1jb2RlCisgICIKK2RlZiBfX1BZVEhPTl9FTF9zZXR1 cF9yZWFkbGluZV9jb21wbGV0ZXIoKToKKyAgICBpbXBvcnQgcmVhZGxpbmUsIHJlLCBqc29uLCBJ UHl0aG9uCisKKyAgICBjbGFzcyBfX2lweXRob25fUkw6CisgICAgICAgIGRlZiBfX2luaXRfXyhz ZWxmLCB2KToKKyAgICAgICAgICAgIHNlbGYudmVyc2lvbiA9IHYKKworICAgICAgICBkZWYgZmls dGVyKHNlbGYsIHByZWZpeCwgYyk6CisgICAgICAgICAgICBpZiByZS5tYXRjaCgnXysoaT9bMC05 XSspPyQnLCBjKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGVs aWYgY1swXSA9PSAnJScgYW5kIG5vdCByZS5tYXRjaCgnWyVhLXpBLVpdKyQnLCBwcmVmaXgpOgor ICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgcmV0dXJuIFRydWUKKwor ICAgICAgICBkZWYgY29tcGxldGUoc2VsZiwgdGV4dCwgc3RhdGUpOgorICAgICAgICAgICAgaWYg c3RhdGUgPT0gMDoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGlm IHNlbGYudmVyc2lvbiA+PSA2OgorICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSBJUHl0aG9u LmNvcmUuY29tcGxldGVyIGltcG9ydCBwcm92aXNpb25hbGNvbXBsZXRlcgorICAgICAgICAgICAg ICAgICAgICAgICAgd2l0aCBwcm92aXNpb25hbGNvbXBsZXRlcigpOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYubWF0Y2hlcyA9IFtqc29uLmR1bXBzKFsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW2MudGV4dCwgYy5zdGFydCwgYy5lbmQsIGMudHlwZSBvciAnPycs IGMuc2lnbmF0dXJlIG9yICcnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig YyBpbiBnZXRfaXB5dGhvbigpLkNvbXBsZXRlci5jb21wbGV0aW9ucyh0ZXh0LCBsZW4odGV4dCkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZmlsdGVyKHRleHQsIGMu dGV4dCldKV0KKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg ICAgIHBhcnQsIG1hdGNoZXMgPSBnZXRfaXB5dGhvbigpLkNvbXBsZXRlci5jb21wbGV0ZShsaW5l X2J1ZmZlcj10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaGVzID0gW3Rl eHQgKyBtW2xlbihwYXJ0KTpdIGZvciBtIGluIG1hdGNoZXMKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmZpbHRlcih0ZXh0LCBtKV0KKyAgICAgICAgICAg ICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg ICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYubWF0Y2hlc1tzdGF0ZV0KKyAg ICAgICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25l CisKKyAgICByZWFkbGluZS5zZXRfY29tcGxldGVyKF9faXB5dGhvbl9STChJUHl0aG9uLnZlcnNp b25faW5mb1swXSkuY29tcGxldGUpCisgICAgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcl9kZWxpbXMo JycpIgorICAiQ29kZSB1c2VkIHRvIHNldHVwIHJlYWRsaW5lIGNvbXBsZXRlciBmb3IgSVB5dGhv bi4iKQorCiAoZGVmdmFyIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1yZWRpcmVjdC1i dWZmZXIKICAgIiAqUHl0aG9uIGNvbXBsZXRpb25zIHJlZGlyZWN0KiIKICAgIkJ1ZmZlciB0byBi ZSB1c2VkIHRvIHJlZGlyZWN0IG91dHB1dCBvZiByZWFkbGluZSBjb21tYW5kcy4iKQpAQCAtNDQy Nyw3ICs0NTEyLDIwIEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10cnkKIChkZWZ1 biBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXAgKCkKICAgIlRyeSB0byBzZXR1 cCBuYXRpdmUgY29tcGxldGlvbiwgcmV0dXJuIG5vbi1uaWwgb24gc3VjY2Vzcy4iCiAgIChsZXQq ICgocHJvY2VzcyAocHl0aG9uLXNoZWxsLWdldC1wcm9jZXNzKSkKLSAgICAgICAgIChvdXRwdXQg KHB5dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRwdXQgIgorICAgICAgICAgKGNvbXBsZXRl ciAocGNhc2UgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlcgorICAgICAgICAgICAgICAg ICAgICAgICgnYXV0bworICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZy1tYXRjaC1w ICJpcHl0aG9uWzIzXT9cXCciIHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlcikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIHB5dGhvbi1zaGVsbC0tcmVhZGxpbmUtaXB5dGhvbi1zZXR1cC1jb2Rl CisgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsLS1yZWFkbGluZS1qZWRpLXNl dHVwLWNvZGUpKQorICAgICAgICAgICAgICAgICAgICAgICgocHJlZCBzdHJpbmdwKSBweXRob24t c2hlbGwtcmVhZGxpbmUtY29tcGxldGVyKQorICAgICAgICAgICAgICAgICAgICAgIChfICIiKSkp CisgICAgICAgICAob3V0cHV0IChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0Cisg ICAgICAgICAgICAgICAgICAoY29uY2F0ICIKK3RyeToKKyAgICBkZWwgX19QWVRIT05fRUxfc2V0 dXBfcmVhZGxpbmVfY29tcGxldGVyCitleGNlcHQ6CisgICAgcGFzcworIiBjb21wbGV0ZXIgIgog ZGVmIF9fUFlUSE9OX0VMX25hdGl2ZV9jb21wbGV0aW9uX3NldHVwKCk6CiAgICAgdHJ5OgogICAg ICAgICBpbXBvcnQgcmVhZGxpbmUKQEAgLTQ1MDAsMTEgKzQ1OTgsMjMgQEAgcHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tbmF0aXZlLXNldHVwCiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24KIAorICAgICAgICBkZWYgaXNfcmxjb21wbGV0 ZXIoY29tcGxldGVyKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBjb21w bGV0ZXIuX19zZWxmX18uX19tb2R1bGVfXyA9PSAncmxjb21wbGV0ZXInOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAg ICAgICAgICAgICByZXR1cm4gRmFsc2UKKwogICAgICAgICBjb21wbGV0ZXIgPSByZWFkbGluZS5n ZXRfY29tcGxldGVyKCkKIAotICAgICAgICBpZiBub3QgY29tcGxldGVyOgotICAgICAgICAgICAg IyBVc2VkIGFzIGxhc3QgcmVzb3J0IHRvIGF2b2lkIGJyZWFraW5nIGN1c3RvbWl6YXRpb25zLgot ICAgICAgICAgICAgaW1wb3J0IHJsY29tcGxldGVyCisgICAgICAgIGlmIG5vdCBjb21wbGV0ZXIg b3IgaXNfcmxjb21wbGV0ZXIoY29tcGxldGVyKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg ICAgICAgICBfX1BZVEhPTl9FTF9zZXR1cF9yZWFkbGluZV9jb21wbGV0ZXIoKQorICAgICAgICAg ICAgZXhjZXB0OgorICAgICAgICAgICAgICAgICMgVXNlZCBhcyBsYXN0IHJlc29ydCB0byBhdm9p ZCBicmVha2luZyBjdXN0b21pemF0aW9ucy4KKyAgICAgICAgICAgICAgICBpbXBvcnQgcmxjb21w bGV0ZXIKICAgICAgICAgICAgIGNvbXBsZXRlciA9IHJlYWRsaW5lLmdldF9jb21wbGV0ZXIoKQog CiAgICAgICAgIGlmIGNvbXBsZXRlciBhbmQgbm90IGdldGF0dHIoY29tcGxldGVyLCAnUFlUSE9O X0VMX1dSQVBQRUQnLCBGYWxzZSk6CkBAIC00NTM5LDkgKzQ2NDksMTMgQEAgcHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tbmF0aXZlLXNldHVwCiAgICAgICAgIHByaW50ICgncHl0aG9uLmVsOiBuYXRp dmUgY29tcGxldGlvbiBzZXR1cCBmYWlsZWQsICVzOiAlcycKICAgICAgICAgICAgICAgICUgc3lz LmV4Y19pbmZvKClbOjJdKQogCi1fX1BZVEhPTl9FTF9uYXRpdmVfY29tcGxldGlvbl9zZXR1cCgp IiBwcm9jZXNzKSkpCitfX1BZVEhPTl9FTF9uYXRpdmVfY29tcGxldGlvbl9zZXR1cCgpIikgcHJv Y2VzcykpKQogICAgICh3aGVuIChzdHJpbmctbWF0Y2gtcCAicHl0aG9uXFwuZWw6IG5hdGl2ZSBj b21wbGV0aW9uIHNldHVwIGxvYWRlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0 KQorICAgICAgKHNldHEtbG9jYWwgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxp bXMKKyAgICAgICAgICAgICAgICAgIChzdHJpbmctdHJpbS1yaWdodAorICAgICAgICAgICAgICAg ICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0CisgICAgICAgICAgICAgICAg ICAgICJpbXBvcnQgcmVhZGxpbmU7IHByaW50KHJlYWRsaW5lLmdldF9jb21wbGV0ZXJfZGVsaW1z KCkpIikpKQogICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10cnkpKSkpCiAK IChkZWZ1biBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vZmYgKCZvcHRpb25h bCBtc2cpCkBAIC00NjA5LDYgKzQ3MjMsOCBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRp dmUtZ2V0LWNvbXBsZXRpb25zCiAgICAgKGxldCogKChvcmlnaW5hbC1maWx0ZXItZm4gKHByb2Nl c3MtZmlsdGVyIHByb2Nlc3MpKQogICAgICAgICAgICAocmVkaXJlY3QtYnVmZmVyIChnZXQtYnVm ZmVyLWNyZWF0ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tc2hlbGwtY29t cGxldGlvbi1uYXRpdmUtcmVkaXJlY3QtYnVmZmVyKSkKKyAgICAgICAgICAgKHNlcCAoaWYgKHN0 cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMgIiIpCisgICAgICAg ICAgICAgICAgICAgICJbXG5ccl0rIiAiWyBcZlx0XG5cclx2KCldKyIpKQogICAgICAgICAgICAo dHJpZ2dlciAiXHQiKQogICAgICAgICAgICAobmV3LWlucHV0IChjb25jYXQgaW5wdXQgdHJpZ2dl cikpCiAgICAgICAgICAgIChpbnB1dC1sZW5ndGgKQEAgLTQ2NTEsMjggKzQ3NjcsNzIgQEAgcHl0 aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLWdldC1jb21wbGV0aW9ucwogICAgICAgICAgICAg ICAgICAgICAgcHJvY2VzcyBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtb3V0cHV0LXRp bWVvdXQKICAgICAgICAgICAgICAgICAgICAgIGNvbWludC1yZWRpcmVjdC1maW5pc2hlZC1yZWdl eHApCiAgICAgICAgICAgICAgICAgKHJlLXNlYXJjaC1iYWNrd2FyZCAiMF9fZHVtbXlfY29tcGxl dGlvbl9fIiBuaWwgdCkKLSAgICAgICAgICAgICAgICAoY2wtcmVtb3ZlLWR1cGxpY2F0ZXMKLSAg ICAgICAgICAgICAgICAgKHNwbGl0LXN0cmluZwotICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1z dWJzdHJpbmctbm8tcHJvcGVydGllcwotICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmlu Zy1wb3NpdGlvbikgKHBvaW50LW1pbikpCi0gICAgICAgICAgICAgICAgICAiWyBcZlx0XG5cclx2 KCldKyIgdCkKLSAgICAgICAgICAgICAgICAgOnRlc3QgIydzdHJpbmc9KSkpKQorICAgICAgICAg ICAgICAgIChsZXQgKChzdHIgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKHBvaW50LW1p bikpKSkKKyAgICAgICAgICAgICAgICAgIChpZiAoc3RyaW5nPSAiWyIgKHN1YnN0cmluZyBzdHIg MCAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAoY29uZGl0aW9uLWNhc2UgbmlsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIChweXRob24tLXBhcnNlLWpzb24tYXJyYXkgc3RyKQorICAgICAg ICAgICAgICAgICAgICAgICAgKHQgKGNsLXJlbW92ZS1kdXBsaWNhdGVzIChzcGxpdC1zdHJpbmcg c3RyIHNlcCB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDp0ZXN0ICMnc3RyaW5nPSkpKQorICAgICAgICAgICAgICAgICAgICAoY2wtcmVtb3ZlLWR1 cGxpY2F0ZXMgKHNwbGl0LXN0cmluZyBzdHIgc2VwIHQpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6dGVzdCAjJ3N0cmluZz0pKSkpKSkKICAgICAgICAgKHNldC1w cm9jZXNzLWZpbHRlciBwcm9jZXNzIG9yaWdpbmFsLWZpbHRlci1mbikpKSkpCiAKIChkZWZ1biBw eXRob24tc2hlbGwtY29tcGxldGlvbi1nZXQtY29tcGxldGlvbnMgKHByb2Nlc3MgaW5wdXQpCiAg ICJHZXQgY29tcGxldGlvbnMgb2YgSU5QVVQgdXNpbmcgUFJPQ0VTUy4iCiAgICh3aXRoLWN1cnJl bnQtYnVmZmVyIChwcm9jZXNzLWJ1ZmZlciBwcm9jZXNzKQotICAgIChsZXQgKChjb21wbGV0aW9u cwotICAgICAgICAgICAocHl0aG9uLXV0aWwtc3RyaXAtc3RyaW5nCi0gICAgICAgICAgICAocHl0 aG9uLXNoZWxsLXNlbmQtc3RyaW5nLW5vLW91dHB1dAotICAgICAgICAgICAgIChmb3JtYXQKLSAg ICAgICAgICAgICAgIiVzXG5wcmludCgnOycuam9pbihfX1BZVEhPTl9FTF9nZXRfY29tcGxldGlv bnMoJXMpKSkiCisgICAgKHB5dGhvbi0tcGFyc2UtanNvbi1hcnJheQorICAgICAocHl0aG9uLXNo ZWxsLXNlbmQtc3RyaW5nLW5vLW91dHB1dAorICAgICAgKGZvcm1hdCAiJXNcbnByaW50KF9fUFlU SE9OX0VMX2dldF9jb21wbGV0aW9ucyglcykpIgogICAgICAgICAgICAgICBweXRob24tc2hlbGwt Y29tcGxldGlvbi1zZXR1cC1jb2RlCiAgICAgICAgICAgICAgIChweXRob24tc2hlbGwtLWVuY29k ZS1zdHJpbmcgaW5wdXQpKQotICAgICAgICAgICAgIHByb2Nlc3MpKSkpCi0gICAgICAod2hlbiAo PiAobGVuZ3RoIGNvbXBsZXRpb25zKSAyKQotICAgICAgICAoc3BsaXQtc3RyaW5nIGNvbXBsZXRp b25zCi0gICAgICAgICAgICAgICAgICAgICAgIl4nXFx8XlwiXFx8O1xcfCckXFx8XCIkIiB0KSkp KSkKKyAgICAgIHByb2Nlc3MpKSkpCisKKyhkZWZ1biBweXRob24tc2hlbGwtLWdldC1tdWx0aWxp bmUtaW5wdXQgKCkKKyAgIlJldHVybiBsaW5lcyBhdCBhIG11bHRpLWxpbmUgaW5wdXQgaW4gUHl0 aG9uIHNoZWxsLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGxldCAoKHAgKHBvaW50KSkgbGlu ZXMpCisgICAgICAod2hlbiAocHJvZ24KKyAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5l KQorICAgICAgICAgICAgICAobG9va2luZy1iYWNrIHB5dGhvbi1zaGVsbC1wcm9tcHQtYmxvY2st cmVnZXhwIChwb3MtYm9sKSkpCisgICAgICAgIChwdXNoIChidWZmZXItc3Vic3RyaW5nLW5vLXBy b3BlcnRpZXMgKHBvaW50KSBwKSBsaW5lcykKKyAgICAgICAgKHdoaWxlIChwcm9nbiAoY29taW50 LXByZXZpb3VzLXByb21wdCAxKQorICAgICAgICAgICAgICAgICAgICAgIChsb29raW5nLWJhY2sg cHl0aG9uLXNoZWxsLXByb21wdC1ibG9jay1yZWdleHAgKHBvcy1ib2wpKSkKKyAgICAgICAgICAo cHVzaCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChwb2ludCkgKHBvcy1lb2wpKSBs aW5lcykpCisgICAgICAgIChwdXNoIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKHBv aW50KSAocG9zLWVvbCkpIGxpbmVzKSkKKyAgICAgIGxpbmVzKSkpCisKKyhkZWZ1biBweXRob24t c2hlbGwtLWV4dHJhLWNvbXBsZXRpb24tY29udGV4dCAoKQorICAiR2V0IGV4dHJhIGNvbXBsZXRp b24gY29udGV4dCBvZiBjdXJyZW50IGlucHV0IGluIFB5dGhvbiBzaGVsbC4iCisgIChsZXQgKChs aW5lcyAocHl0aG9uLXNoZWxsLS1nZXQtbXVsdGlsaW5lLWlucHV0KSkKKyAgICAgICAgKHB5dGhv bi1pbmRlbnQtZ3Vlc3MtaW5kZW50LW9mZnNldCBuaWwpKQorICAgICh3aGVuIChub3QgKHplcm9w IChsZW5ndGggbGluZXMpKSkKKyAgICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgICAgIChkZWxh eS1tb2RlLWhvb2tzCisgICAgICAgICAgKGluc2VydCAoc3RyaW5nLWpvaW4gbGluZXMgIlxuIikp CisgICAgICAgICAgKHB5dGhvbi1tb2RlKQorICAgICAgICAgIChweXRob24tc2hlbGwtY29tcGxl dGlvbi1leHRyYS1jb250ZXh0KSkpKSkpCisKKyhkZWZ1biBweXRob24tc2hlbGwtY29tcGxldGlv bi1leHRyYS1jb250ZXh0ICgmb3B0aW9uYWwgcG9zKQorICAiR2V0IGV4dHJhIGNvbXBsZXRpb24g Y29udGV4dCBhdCBwb3NpdGlvbiBQT1MgaW4gUHl0aG9uIGJ1ZmZlci4KK0lmIG9wdGlvbmFsIGFy Z3VtZW50IFBPUyBpcyBuaWwsIHVzZSBjdXJyZW50IHBvc2l0aW9uLgorCitSZWFkbGluZSBjb21w bGV0ZXJzIGNvdWxkIHVzZSBjdXJyZW50IGxpbmUgYXMgdGhlIGNvbXBsZXRpb24KK2NvbnRleHQs IHdoaWNoIG1heSBiZSBpbnN1ZmZpY2llbnQuICBJbiB0aGlzIGZ1bmN0aW9uLCBleHRyYQorY29u dGV4dCAoZS5nLiBtdWx0aS1saW5lIGZ1bmN0aW9uIGNhbGwpIGlzIGZvdW5kIGFuZCByZWZvcm1h dHRlZAorYXMgb25lIGxpbmUsIHdoaWNoIGlzIHJlcXVpcmVkIGJ5IG5hdGl2ZSBjb21wbGV0aW9u LiIKKyAgKGxldCAoYm91bmQgcCkKKyAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgIChhbmQgcG9z IChnb3RvLWNoYXIgcG9zKSkKKyAgICAgIChzZXRxIGJvdW5kIChwb3MtYm9sKSkKKyAgICAgIChw eXRob24tbmF2LXVwLWxpc3QgLTEpCisgICAgICAod2hlbiAoYW5kICg8IChwb2ludCkgYm91bmQp CisgICAgICAgICAgICAgICAgIChsb29raW5nLWJhY2sKKyAgICAgICAgICAgICAgICAgIChweXRo b24tcnggKCsgKG9yICIuIiBzeW1ib2wtbmFtZSkpKSAocG9zLWJvbCkgdCkpCisgICAgICAgIChz ZXRxIHAgKG1hdGNoLWJlZ2lubmluZyAwKSkpKQorICAgICh3aGVuIHAKKyAgICAgIChyZXBsYWNl LXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAiXG5bIFx0XSoiICIiIChidWZmZXItc3Vic3RyaW5n LW5vLXByb3BlcnRpZXMgcCAoMS0gYm91bmQpKSkpKSkKIAogKGRlZnZhci1sb2NhbCBweXRob24t c2hlbGwtLWNhcGYtY2FjaGUgbmlsCiAgICJWYXJpYWJsZSB0byBzdG9yZSBjYWNoZWQgY29tcGxl dGlvbnMgYW5kIGludmFsaWRhdGlvbiBrZXlzLiIpCkBAIC00Njg3LDIxICs0ODQ3LDIxIEBAIHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50CiAgICAgICAgICAgICAgICAgICAgICAgICAg OzsgV29ya2luZyBvbiBhIHNoZWxsIGJ1ZmZlcjogdXNlIHByb21wdCBlbmQuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNkciAocHl0aG9uLXV0aWwtY29taW50LWxhc3QtcHJvbXB0KSkKICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCi0gICAgICAg ICAoaW1wb3J0LXN0YXRlbWVudAotICAgICAgICAgICh3aGVuIChzdHJpbmctbWF0Y2gtcAotICAg ICAgICAgICAgICAgICAocnggKCogc3BhY2UpIHdvcmQtc3RhcnQgKG9yICJmcm9tIiAiaW1wb3J0 Iikgd29yZC1lbmQgc3BhY2UpCi0gICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5v LXByb3BlcnRpZXMgbGluZS1zdGFydCAocG9pbnQpKSkKLSAgICAgICAgICAgIChidWZmZXItc3Vi c3RyaW5nLW5vLXByb3BlcnRpZXMgbGluZS1zdGFydCAocG9pbnQpKSkpCisgICAgICAgICAobm8t ZGVsaW1zICh3aXRoLWN1cnJlbnQtYnVmZmVyIChwcm9jZXNzLWJ1ZmZlciBwcm9jZXNzKQorICAg ICAgICAgICAgICAgICAgICAgIChpZiBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZW5h YmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmc9IHB5dGhvbi1zaGVsbC1yZWFk bGluZS1jb21wbGV0ZXItZGVsaW1zICIiKQorICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmlu Zy1tYXRjaC1wICJpcHl0aG9uWzIzXT9cXCciIHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlcikpKSkK ICAgICAgICAgIChzdGFydAogICAgICAgICAgIChpZiAoPCAocG9pbnQpIGxpbmUtc3RhcnQpCiAg ICAgICAgICAgICAgIChwb2ludCkKICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgotICAgICAg ICAgICAgICAoaWYgKG5vdCAocmUtc2VhcmNoLWJhY2t3YXJkCi0gICAgICAgICAgICAgICAgICAg ICAgICAocHl0aG9uLXJ4Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKG9yIHdoaXRlc3BhY2Ug b3Blbi1wYXJlbiBjbG9zZS1wYXJlbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJp bmctZGVsaW1pdGVyIHNpbXBsZS1vcGVyYXRvcikpCi0gICAgICAgICAgICAgICAgICAgICAgICBs aW5lLXN0YXJ0Ci0gICAgICAgICAgICAgICAgICAgICAgICB0IDEpKQorICAgICAgICAgICAgICAo aWYgKG9yIG5vLWRlbGltcworICAgICAgICAgICAgICAgICAgICAgIChub3QgKHJlLXNlYXJjaC1i YWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChweXRob24tcngKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKG9yIHdoaXRlc3BhY2Ugb3Blbi1wYXJlbiBjbG9zZS1wYXJl bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLWRlbGltaXRlciBzaW1w bGUtb3BlcmF0b3IpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtc3RhcnQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0IDEpKSkKICAgICAgICAgICAgICAgICAgIGxpbmUt c3RhcnQKICAgICAgICAgICAgICAgICAoZm9yd2FyZC1jaGFyIChsZW5ndGggKG1hdGNoLXN0cmlu Zy1uby1wcm9wZXJ0aWVzIDApKSkKICAgICAgICAgICAgICAgICAocG9pbnQpKSkpKQpAQCAtNDc0 MSwxOCArNDkwMSw1OCBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludAogICAgICAg ICAgICAgICAgICAgKHQgIydweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZ2V0LWNvbXBs ZXRpb25zKSkpKQogICAgICAgICAgKHByZXYtcHJvbXB0IChjYXIgcHl0aG9uLXNoZWxsLS1jYXBm LWNhY2hlKSkKICAgICAgICAgIChyZSAob3IgKGNhZHIgcHl0aG9uLXNoZWxsLS1jYXBmLWNhY2hl KSByZWdleHAtdW5tYXRjaGFibGUpKQotICAgICAgICAgKHByZWZpeCAoYnVmZmVyLXN1YnN0cmlu Zy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpKQorICAgICAgICAgKHByZWZpeCAoYnVmZmVyLXN1 YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpCisgICAgICAgICAocHJlZml4LW9mZnNl dCAwKQorICAgICAgICAgKGV4dHJhLWNvbnRleHQgKHdoZW4gbm8tZGVsaW1zCisgICAgICAgICAg ICAgICAgICAgICAgICAgIChpZiBpcy1zaGVsbC1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChweXRob24tc2hlbGwtLWV4dHJhLWNvbXBsZXRpb24tY29udGV4dCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tZXh0cmEtY29u dGV4dCkpKSkKKyAgICAgICAgIChleHRyYS1vZmZzZXQgKGxlbmd0aCBleHRyYS1jb250ZXh0KSkp CisgICAgKHVubGVzcyAoemVyb3AgZXh0cmEtb2Zmc2V0KQorICAgICAgKHNldHEgcHJlZml4IChj b25jYXQgZXh0cmEtY29udGV4dCBwcmVmaXgpKSkKICAgICA7OyBUbyBpbnZhbGlkYXRlIHRoZSBj YWNoZSwgd2UgY2hlY2sgaWYgdGhlIHByb21wdCBwb3NpdGlvbiBvciB0aGUKICAgICA7OyBjb21w bGV0aW9uIHByZWZpeCBjaGFuZ2VkLgogICAgICh1bmxlc3MgKGFuZCAoZXF1YWwgcHJldi1wcm9t cHQgKGNhciBwcm9tcHQtYm91bmRhcmllcykpCi0gICAgICAgICAgICAgICAgIChzdHJpbmctbWF0 Y2ggcmUgcHJlZml4KSkKKyAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCByZSBwcmVmaXgp CisgICAgICAgICAgICAgICAgIChzZXRxIHByZWZpeC1vZmZzZXQgKC0gKGxlbmd0aCBwcmVmaXgp IChtYXRjaC1lbmQgMSkpKSkKICAgICAgIChzZXRxIHB5dGhvbi1zaGVsbC0tY2FwZi1jYWNoZQog ICAgICAgICAgICAgYCgsKGNhciBwcm9tcHQtYm91bmRhcmllcykKICAgICAgICAgICAgICAgLChp ZiAoc3RyaW5nLWVtcHR5LXAgcHJlZml4KQogICAgICAgICAgICAgICAgICAgIHJlZ2V4cC11bm1h dGNoYWJsZQotICAgICAgICAgICAgICAgICAoY29uY2F0ICJcXGAiIChyZWdleHAtcXVvdGUgcHJl Zml4KSAiXFwoPzpcXHN3XFx8XFxzX1xcKSpcXCciKSkKLSAgICAgICAgICAgICAgLEAoZnVuY2Fs bCBjb21wbGV0aW9uLWZuIHByb2Nlc3MgKG9yIGltcG9ydC1zdGF0ZW1lbnQgcHJlZml4KSkpKSkK LSAgICAobGlzdCBzdGFydCBlbmQgKGNkZHIgcHl0aG9uLXNoZWxsLS1jYXBmLWNhY2hlKSkpKQor ICAgICAgICAgICAgICAgICAoY29uY2F0ICJcXGBcXCgiIChyZWdleHAtcXVvdGUgcHJlZml4KSAi XFwpXFwoPzpcXHN3XFx8XFxzX1xcKSpcXCciKSkKKyAgICAgICAgICAgICAgLEAoZnVuY2FsbCBj b21wbGV0aW9uLWZuIHByb2Nlc3MgcHJlZml4KSkpKQorICAgIChsZXQgKChjYW5kcyAoY2RkciBw eXRob24tc2hlbGwtLWNhcGYtY2FjaGUpKSkKKyAgICAgIChjb25kCisgICAgICAgKChzdHJpbmdw IChjYXIgY2FuZHMpKQorICAgICAgICAoaWYgbm8tZGVsaW1zCisgICAgICAgICAgICA7OyBSZWR1 Y2UgY29tcGxldGlvbiBjYW5kaWRhdGVzIGR1ZSB0byBsb25nIHByZWZpeC4KKyAgICAgICAgICAg IChpZi1sZXQgKChMcCAobGVuZ3RoIHByZWZpeCkpCisgICAgICAgICAgICAgICAgICAgICAoKHN0 cmluZy1tYXRjaCAiXFwoXFxzd1xcfFxcc19cXCkrXFwnIiBwcmVmaXgpKQorICAgICAgICAgICAg ICAgICAgICAgKEwgKG1hdGNoLWJlZ2lubmluZyAwKSkpCisgICAgICAgICAgICAgICAgOzsgSWYg ZXh0cmEtb2Zmc2V0IGlzIG5vdCB6ZXJvOgorICAgICAgICAgICAgICAgIDs7ICAgICAgICAgICAg ICAgICAgc3RhcnQgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIDs7IG8tLS0tLS0t LS0tLS0tLS0tLS1vLS0tLS0tLS0tby0tLS0tLS1vCisgICAgICAgICAgICAgICAgOzsgfDwtIGV4 dHJhLW9mZnNldCAtPnwKKyAgICAgICAgICAgICAgICA7OyB8PC0tLS0tLS0tLS0tIEwgLS0tLS0t LS0tLS0tPnwKKyAgICAgICAgICAgICAgICA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3 LXN0YXJ0CisgICAgICAgICAgICAgICAgKGxpc3QgKCsgc3RhcnQgTCAoLSBleHRyYS1vZmZzZXQp KSBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKHMpIChzdWJzdHJp bmcgcyBMKSkgY2FuZHMpKQorICAgICAgICAgICAgICAobGlzdCBlbmQgZW5kIChtYXBjYXIgKGxh bWJkYSAocykgKHN1YnN0cmluZyBzIExwKSkgY2FuZHMpKSkKKyAgICAgICAgICAobGlzdCBzdGFy dCBlbmQgY2FuZHMpKSkKKyAgICAgICA7OyBweXRob24tc2hlbGwtY29tcGxldGlvbigtbmF0aXZl KS1nZXQtY29tcGxldGlvbnMgbWF5IHByb2R1Y2UKKyAgICAgICA7OyBhIGxpc3Qgb2YgKHRleHQg c3RhcnQgZW5kIHR5cGUgc2lnbmF0dXJlKSBmb3IgY29tcGxldGlvbi4KKyAgICAgICA7OyBTZWUg YHB5dGhvbi1zaGVsbC1yZWFkbGluZS1pcHl0aG9uLXNldHVwLWNvZGUnIGFuZAorICAgICAgIDs7 IGBweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlJy4KKyAgICAgICAoKGNvbnNwIChj YXIgY2FuZHMpKQorICAgICAgICAobGlzdCAoKyBzdGFydCAobnRoIDEgKGNhciBjYW5kcykpICgt IGV4dHJhLW9mZnNldCkpCisgICAgICAgICAgICAgIDs7IENhbmRpZGF0ZXMgbWF5IGJlIGNhY2hl ZCwgc28gdGhlIGVuZCBwb3NpdGlvbiBzaG91bGQKKyAgICAgICAgICAgICAgOzsgYmUgYWRqdXN0 ZWQgYWNjb3JkaW5nIHRvIGN1cnJlbnQgY29tcGxldGlvbiBwcmVmaXguCisgICAgICAgICAgICAg ICgrIHN0YXJ0IChudGggMiAoY2FyIGNhbmRzKSkgKC0gZXh0cmEtb2Zmc2V0KSBwcmVmaXgtb2Zm c2V0KQorICAgICAgICAgICAgICBjYW5kcworICAgICAgICAgICAgICA6YW5ub3RhdGlvbi1mdW5j dGlvbgorICAgICAgICAgICAgICAobGFtYmRhIChjKSAoY29uY2F0ICIgIiAobnRoIDMgKGFzc29j IGMgY2FuZHMpKSkpCisgICAgICAgICAgICAgIDpjb21wYW55LWRvY3NpZworICAgICAgICAgICAg ICAobGFtYmRhIChjKSAobnRoIDQgKGFzc29jIGMgY2FuZHMpKSkpKSkpKSkKIAogKGRlZmluZS1v YnNvbGV0ZS1mdW5jdGlvbi1hbGlhcwogICAncHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tY29tcGxl dGUtYXQtcG9pbnQKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3Rz LmVsIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKaW5kZXggOTdmZmQ1ZmUy MGYuLmFlMjNmZjhlYmUyIDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10 ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbApAQCAtNDc4 Nyw2ICs0Nzg3LDg0IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LW5hdGl2ZS0x CiAgICAgIChlbmQtb2YtbGluZSAwKQogICAgICAoc2hvdWxkLW5vdCAobnRoIDIgKHB5dGhvbi1z aGVsbC1jb21wbGV0aW9uLWF0LXBvaW50KSkpKSkpCiAKKyhkZWZ1biBweXRob24tdGVzdHMtLWNv bXBsZXRpb24tbW9kdWxlICgpCisgICJDaGVjayBpZiBtb2R1bGVzIGNhbiBiZSBjb21wbGV0ZWQg aW4gUHl0aG9uIHNoZWxsLiIKKyAgKGluc2VydCAiaW1wb3J0IGRhdGV0IikKKyAgKGNvbXBsZXRp b24tYXQtcG9pbnQpCisgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgKHNob3VsZCAobG9va2luZy1h dC1wICJpbXBvcnQgZGF0ZXRpbWUiKSkKKyAgKGtpbGwtbGluZSkKKyAgKGluc2VydCAiZnJvbSBk YXRldCIpCisgIChjb21wbGV0aW9uLWF0LXBvaW50KQorICAoYmVnaW5uaW5nLW9mLWxpbmUpCisg IChzaG91bGQgKGxvb2tpbmctYXQtcCAiZnJvbSBkYXRldGltZSIpKQorICAoZW5kLW9mLWxpbmUp CisgIChpbnNlcnQgIiBpbXBvcnQgdGltZWQiKQorICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAg KGJlZ2lubmluZy1vZi1saW5lKQorICAoc2hvdWxkIChsb29raW5nLWF0LXAgImZyb20gZGF0ZXRp bWUgaW1wb3J0IHRpbWVkZWx0YSIpKQorICAoa2lsbC1saW5lKSkKKworKGRlZnVuIHB5dGhvbi10 ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzICgpCisgICJDaGVjayBpZiBwYXJhbWV0ZXJzIGNh biBiZSBjb21wbGV0ZWQgaW4gUHl0aG9uIHNoZWxsLiIKKyAgKGluc2VydCAiaW1wb3J0IHJlIikK KyAgKGNvbWludC1zZW5kLWlucHV0KQorICAocHl0aG9uLXRlc3RzLXNoZWxsLXdhaXQtZm9yLXBy b21wdCkKKyAgKGluc2VydCAicmUuc3BsaXQoJ2InLCAnYWJjJywgbWF4cyIpCisgIChjb21wbGV0 aW9uLWF0LXBvaW50KQorICAoc2hvdWxkIChzdHJpbmc9ICJyZS5zcGxpdCgnYicsICdhYmMnLCBt YXhzcGxpdD0iCisgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVn aW5uaW5nLXBvc2l0aW9uKSAocG9pbnQpKSkpCisgIChpbnNlcnQgIjAsICIpCisgIChzaG91bGQg KHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50KSkKKyAgOzsgVGVzdCBpZiBjYWNoZSBp cyB1c2VkLgorICAoY2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rpb24gJ3B5dGhvbi1zaGVsbC1jb21w bGV0aW9uLWdldC1jb21wbGV0aW9ucykKKyAgICAgICAgICAgICAnaWdub3JlKQorICAgICAgICAg ICAgKChzeW1ib2wtZnVuY3Rpb24gJ3B5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1nZXQt Y29tcGxldGlvbnMpCisgICAgICAgICAgICAgJ2lnbm9yZSkpCisgICAgKGluc2VydCAiZmxhIikK KyAgICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgICAoc2hvdWxkIChzdHJpbmc9ICJyZS5zcGxp dCgnYicsICdhYmMnLCBtYXhzcGxpdD0wLCBmbGFncz0iCisgICAgICAgICAgICAgICAgICAgICAo YnVmZmVyLXN1YnN0cmluZyAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChwb2ludCkpKSkpCisg IChiZWdpbm5pbmctb2YtbGluZSkKKyAgKGtpbGwtbGluZSkpCisKKyhkZWZ1biBweXRob24tdGVz dHMtLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCAoKQorICAiQ2hlY2sgaWYgZXh0cmEgY29udGV4 dCBpcyB1c2VkIGZvciBjb21wbGV0aW9uLiIKKyAgKGluc2VydCAicmUuc3BsaXQoJ2InLCAnYWJj JywiKQorICAoY29taW50LXNlbmQtaW5wdXQpCisgIChweXRob24tdGVzdHMtc2hlbGwtd2FpdC1m b3ItcHJvbXB0KQorICAoaW5zZXJ0ICJtYXhzIikKKyAgKGNvbXBsZXRpb24tYXQtcG9pbnQpCisg IChzaG91bGQgKHN0cmluZz0gIm1heHNwbGl0PSIKKyAgICAgICAgICAgICAgICAgICAoYnVmZmVy LXN1YnN0cmluZyAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChwb2ludCkpKSkpCisKKyhlcnQt ZGVmdGVzdCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1qZWRpLWNvbXBsZXRlciAo KQorICAiQ2hlY2sgaWYgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24gd29ya3Mgd2l0aCBKZWRpLiIK KyAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgcHl0aG9uLXRlc3RzLXNoZWxsLWludGVy cHJldGVyKSkKKyAgKHB5dGhvbi10ZXN0cy13aXRoLXRlbXAtYnVmZmVyLXdpdGgtc2hlbGwKKyAg ICIiCisgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgIChweXRob24tc2hl bGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbikKKyAgICAgKHNraXAtdW5sZXNzIChzdHJpbmc9 IHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zICIiKSkKKyAgICAgKHB5dGhv bi10ZXN0cy0tY29tcGxldGlvbi1tb2R1bGUpCisgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRp b24tcGFyYW1ldGVycykKKyAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1leHRyYS1jb250 ZXh0KSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQt aXB5dGhvbiAoKQorICAiQ2hlY2sgaWYgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24gd29ya3MgZm9y IElQeXRob24uIgorICAobGV0ICgocHl0aG9uLXNoZWxsLWludGVycHJldGVyICJpcHl0aG9uIikK KyAgICAgICAgKHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlci1hcmdzICItaSAtLXNpbXBsZS1wcm9t cHQiKSkKKyAgICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCBweXRob24tc2hlbGwtaW50 ZXJwcmV0ZXIpKQorICAgIChweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlci13aXRoLXNoZWxs CisgICAgICIiCisgICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAgICAo cHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmKQorICAgICAgIChweXRob24t dGVzdHMtLWNvbXBsZXRpb24tbW9kdWxlKQorICAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRp b24tcGFyYW1ldGVycykKKyAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1 cm4tb24pCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1tb2R1bGUpCisgICAgICAg KHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzKQorICAgICAgIChweXRob24tdGVz dHMtLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCkpKSkpCiAKIAwKIDs7OyBQREIgVHJhY2sgaW50 ZWdyYXRpb24KLS0gCjIuMjUuMQoK --000000000000d09a70060fae3b8a-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 25 10:39:12 2024 Received: (at 68559) by debbugs.gnu.org; 25 Jan 2024 15:39:12 +0000 Received: from localhost ([127.0.0.1]:48918 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rT1ou-0006Nf-Fn for submit@debbugs.gnu.org; Thu, 25 Jan 2024 10:39:12 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]:47161) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rT1or-0006NP-WC for 68559@debbugs.gnu.org; Thu, 25 Jan 2024 10:39:10 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-1d730b6943bso26568475ad.2 for <68559@debbugs.gnu.org>; Thu, 25 Jan 2024 07:39:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706197138; x=1706801938; darn=debbugs.gnu.org; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=WhYxFdHXErvC0Zs9J/bPTIAcQ9PnAsiL9BuWlxMklfk=; b=ft1cJFLL3X0aLm2cILtOnwznoXphcQyscE3SfjZfUEU9SaGoLbJPfxUQ5E4tqR+VgM b4wzT2nWvLaj0VJ7u0U2eec8Q2+YVw0E4r3x7fSzI5VBKW6y1Gy1+yJ0GUCAJi79kenS XSmb/3ZjIRwzudZN0WJj67K//NqrPL4zamInVoBv3dSZZHBEGn7ZMtB4m80kFZnndCFV wH1PvHPS15jBPSeRGXEGAl4YRTdPQLEj9XqvJf2209ZhWT33a9DlUjQmy+gWD3ILYY+Y 9R5jJsqDAkHeuFX2uf7YG5YzGrePsZ3s6jo93RwZfe3Q/F8YAHpZ5Po4MNXC0rtoNElP MMJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706197138; x=1706801938; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=WhYxFdHXErvC0Zs9J/bPTIAcQ9PnAsiL9BuWlxMklfk=; b=qzOJ0+eX1ScT1lEZENSleiEG5mmwbDqF/CmPR3SPcpE4qKlLxTSbOFPPK2+Vl82uie uNKdXbBGgJByrWCUpc5yMETAafqL7Zrlpt9PRBwEIQw7S2jupzjzvCM4IbcPcGqsQalI H2oRXtnz8GNY9kCHlwDlW3cEFyMN1iBXlPfOyrAL+4PbdpgbVL6/zdaEdF4yDqoec/FO 8DXTxScycvSgH09eU9KGE+WMPEoVm5gE5qbWGEiZ18kyGgEI4+591m53Y6CHTFD1zaTf ZJcnCV9ORzXqstl/RjgP6TWBAMVf8GWn9Naj3ZziNlxTMRA19mgChynK8SN6opcnCGee s51g== X-Gm-Message-State: AOJu0YzLF7U0NC2nbToVS1/X/pwlsMFfEMG32OAd6n0C2SpgfMsmTTIG hTIf1hplWEtIRxQXoAZPd1g907PzObLG9v/kBFc2oX/2bFQcsnPD X-Google-Smtp-Source: AGHT+IHV05U1h95aAKMfbdKsy3hRd8pHDuDQO34H6xiwwVJvp7D4n5UroEx6kp0UYQBwkTdvXQ1ViQ== X-Received: by 2002:a17:90a:1c90:b0:290:85a:dba1 with SMTP id t16-20020a17090a1c9000b00290085adba1mr702494pjt.5.1706197137837; Thu, 25 Jan 2024 07:38:57 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id pt4-20020a17090b3d0400b0029354ce5634sm245805pjb.32.2024.01.25.07.38.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jan 2024 07:38:56 -0800 (PST) Date: Fri, 26 Jan 2024 00:38:52 +0900 Message-ID: From: kobarity To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: References: <83zfx39mcy.fsf@gnu.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-2022-JP X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Liu Hui wrote: > kobarity $BP2(B2024$BG/(B1$B7n(B23$BF|<~Fs(B 22:15$B > Thank you. I tried the new patch and confirmed that the Python Shell > > buffer allows keyword argument completion on multi-line function > > calls. However, my expectation is that it can be done in Python > > buffer as well (after calling `python-shell-send-buffer'). Is this > > also possible? > Thank you for the feedback. I have updated the patch to add support in > Python buffer. Thank you. It's working very nice. I apologize for reporting in the piecemeal fashion, but I have noticed the following differences from the current completion. 1. Module names cannot be completed in Python buffer. 2. Completion is not working in comments. I'm not sure if the completion should work in comments, but some people might want it because the current python-mode allows it in both Python buffer and Python Shell buffer. From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 26 05:12:48 2024 Received: (at 68559) by debbugs.gnu.org; 26 Jan 2024 10:12:48 +0000 Received: from localhost ([127.0.0.1]:50494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rTJCY-0000sZ-UV for submit@debbugs.gnu.org; Fri, 26 Jan 2024 05:12:48 -0500 Received: from mail-vs1-xe30.google.com ([2607:f8b0:4864:20::e30]:53379) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rTJCV-0000sL-Ks for 68559@debbugs.gnu.org; Fri, 26 Jan 2024 05:12:45 -0500 Received: by mail-vs1-xe30.google.com with SMTP id ada2fe7eead31-46b20b23ff7so35119137.2 for <68559@debbugs.gnu.org>; Fri, 26 Jan 2024 02:12:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706263951; x=1706868751; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=iyWHULdN5if/Eq3F9yV7erjZFbvpzBBhClr9jUBrghE=; b=P5z2TB76wBFOTJV7F0cEYSSAhL81uXlVuoj9Uo5jMSSyMt6UPh9Algd+dZzHiNnsaA 2W0Lv7+n7cJ1y/Vvo1ALOb88b1hMavKxXy+sLpT66Tn3QCBwtCI5vCltgNiaCzcHwjLd 3FvyP6X3LXLYwglPF4dfR+riWJt5QnLeIc+URxE5qA6MyBA7jLL7MWmusFYqPgdv/nYW cMPAhib6Aw/gfPvNMklVluzFrdY8eGQI8gzVoIQHGvnLqFsREhoPo08IhtHuvlFHCt+5 dJSbDqVnljJ94+fkt7pL3fQFHzsAS1dXw9puyqwxInTwqgHzDNtP5cKSis+BsUHrhH// /vlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706263951; x=1706868751; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=iyWHULdN5if/Eq3F9yV7erjZFbvpzBBhClr9jUBrghE=; b=IrUk4od1KqCnQZb4Gn46NSDRDuJ1WXfzZ18RteJy0N+iwhRRhi6lCMx8A2f2BeSInF zMB4rOvMnox005vHo1K8DSfgJJur7UljEHZlvZLx20WpHDd68YEV/AFN/7bsV+piMjAV FjJTQuzzrEV7fGfTgeYZYv3FrJgx4trwksZz2TpaKPxmuxoICow1TU7gpE6Lfs21UF/b 7hOj2nvapN+tiXE+xMUiobCRwmP2oSnbB1MFagjaU+a1BiILXLeL1a9i/RnZ6j9MUFHh l0nw60d+5BIKXPtkA/ZmsyR30fw0dwcSn7THw7JzRUznxIfPtfi3sE4afmFBasbphakX 990g== X-Gm-Message-State: AOJu0Yw2rqOkKnxX4147yup0dc7Gk1CvDlLYE2AdPrUbYsxzkJq0W/GU bH5ESWKTuk+BiHFS5q93BfaK2bD9qYSggUOjwd1mP/ABL6j398Px8NxCjP6y6tyQxmcVIoT0fJ0 oXXdbRWK3BVBChJw5Q/587cULk6o= X-Google-Smtp-Source: AGHT+IEJzz/ycMwbn/0lk7G09HciMc2Bw0lA4tVXuAcvjaa592Qeb+00E3EAs3Od/fC2JqmC/e44D0Ylo7MOFt7TGcA= X-Received: by 2002:a05:6102:32cc:b0:46b:159e:bf04 with SMTP id o12-20020a05610232cc00b0046b159ebf04mr973711vss.2.1706263951585; Fri, 26 Jan 2024 02:12:31 -0800 (PST) MIME-Version: 1.0 References: <83zfx39mcy.fsf@gnu.org> In-Reply-To: From: Liu Hui Date: Fri, 26 Jan 2024 18:12:19 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: kobarity Content-Type: multipart/mixed; boundary="000000000000ba4f8b060fd68849" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --000000000000ba4f8b060fd68849 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable kobarity =E4=BA=8E2024=E5=B9=B41=E6=9C=8825=E6=97=A5= =E5=91=A8=E5=9B=9B 23:38=E5=86=99=E9=81=93=EF=BC=9A > > Liu Hui wrote: > > kobarity =E4=BA=8E2024=E5=B9=B41=E6=9C=8823=E6=97= =A5=E5=91=A8=E4=BA=8C 22:15=E5=86=99=E9=81=93=EF=BC=9A > > > Thank you. I tried the new patch and confirmed that the Python Shell > > > buffer allows keyword argument completion on multi-line function > > > calls. However, my expectation is that it can be done in Python > > > buffer as well (after calling `python-shell-send-buffer'). Is this > > > also possible? > > Thank you for the feedback. I have updated the patch to add support in > > Python buffer. > > Thank you. It's working very nice. > > I apologize for reporting in the piecemeal fashion, but I have noticed > the following differences from the current completion. No worries. I appreciate your valuable feedback for improving the quality of the patch. > 1. Module names cannot be completed in Python buffer. Can you elaborate? The completion of module names never worked for me except using IPython with non-native completion mechanism. Because module names cannot be completed using vanilla python interpreter in the terminal, they are also not completed even with the patch, unless jedi is available. > 2. Completion is not working in comments. > > I'm not sure if the completion should work in comments, but some > people might want it because the current python-mode allows it in both > Python buffer and Python Shell buffer. Thanks for pointing it out. The attached patch should now restore previous basic completion behavior in comments. --000000000000ba4f8b060fd68849 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Improve-Python-shell-completion-bug-68559.patch" Content-Disposition: attachment; filename="0001-Improve-Python-shell-completion-bug-68559.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lruhgpuf0 RnJvbSA3NzBiMzA2ZmM5YWMyNDA2NTE3NTM2ZTUyNzY2NDk1NzhhMTg5NTVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAxOCBKYW4gMjAyNCAxMjowMDowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEltcHJvdmUg UHl0aG9uIHNoZWxsIGNvbXBsZXRpb24gKGJ1ZyM2ODU1OSkKCiogbGlzcC9wcm9nbW9kZXMvcHl0 aG9uLmVsIChweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlKTogRml4CnRoZSBjb21w bGV0aW9uIGNvZGUgb2YgSVB5dGhvbi4gIENoYW5nZSB0aGUgcmV0dXJuIHZhbHVlIHRvIEpTT04K c3RyaW5nIGFuZCAuLi4KKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucyk6 IC4uLiBzaW1wbGlmeSBwYXJzaW5nLgooaW5mZXJpb3ItcHl0aG9uLW1vZGUpOiBVcGRhdGUgZG9j c3RyaW5nLgoocHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlcik6IE5ldyBvcHRpb24uCihw eXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyk6IE5ldyB2YXJpYWJsZSBpbmRp Y2F0aW5nIHRoZQp3b3JkIGRlbGltaXRlcnMgb2YgcmVhZGxpbmUgY29tcGxldGVyLgoocHl0aG9u LXNoZWxsLS1yZWFkbGluZS1qZWRpLXNldHVwLWNvZGUpCihweXRob24tc2hlbGwtLXJlYWRsaW5l LWlweXRob24tc2V0dXAtY29kZSk6IE5ldyBpbnRlcm5hbCB2YXJpYWJsZXMuCihweXRob24tc2hl bGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXApOiBTZXR1cCBhIHN1aXRhYmxlIHJlYWRsaW5lCmNv bXBsZXRlciBhbmQgc2V0IHRoZSBjb21wbGV0ZXIgZGVsaW1pdGVyLgoocHl0aG9uLXNoZWxsLWNv bXBsZXRpb24tbmF0aXZlLWdldC1jb21wbGV0aW9ucyk6IENvbnZlcnQgb3V0cHV0CnN0cmluZyB0 byBjb21wbGV0aW9ucyBwcm9wZXJseS4KKHB5dGhvbi1zaGVsbC0tZ2V0LW11bHRpbGluZS1pbnB1 dCkKKHB5dGhvbi1zaGVsbC0tZXh0cmEtY29tcGxldGlvbi1jb250ZXh0KQoocHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCk6IE5ldyBmdW5jdGlvbnMuCihweXRob24tc2hlbGwt Y29tcGxldGlvbi1hdC1wb2ludCk6IFNlbmQgdGV4dCBiZWdpbm5pbmcgZnJvbSB0aGUgbGluZQpz dGFydCBpZiB0aGUgY29tcGxldGlvbiBiYWNrZW5kIGRvZXMgbm90IG5lZWQgd29yZCBzcGxpdHRp bmcuICBSZW1vdmUKdGhlIGRldGVjdGlvbiBvZiBpbXBvcnQgc3RhdGVtZW50IGJlY2F1c2UgaXQg aXMgbm90IG5lZWRlZCBhbnltb3JlLgpDcmVhdGUgcHJvcGVyIGNvbXBsZXRpb24gdGFibGUgYmFz ZWQgb24gY29tcGxldGlvbnMgcmV0dXJuZWQgZnJvbQpkaWZmZXJlbnQgYmFja2VuZHMuCgoqIHRl c3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIChweXRob24tdGVzdHMtLWNvbXBsZXRp b24tbW9kdWxlKToKKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzKToKKHB5dGhv bi10ZXN0cy0tY29tcGxldGlvbi1leHRyYS1jb250ZXh0KTogTmV3IGhlbHBlciBmdW5jdGlvbnMu CihweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1qZWRpLWNvbXBsZXRlcik6CihweXRo b24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1pcHl0aG9uKTogTmV3IHRlc3RzLgoKKiBldGMv TkVXUzogQW5ub3VuY2UgdGhlIGNoYW5nZS4KLS0tCiBldGMvTkVXUyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgNiArCiBsaXNwL3Byb2dtb2Rlcy9weXRob24uZWwgICAgICAgICAgICB8 IDMwOSArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiB0ZXN0L2xpc3AvcHJvZ21vZGVzL3B5 dGhvbi10ZXN0cy5lbCB8ICA3OCArKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDM0MSBpbnNlcnRp b25zKCspLCA1MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdT CmluZGV4IGExODc0MzEzNTAyLi45ZjA1YmRmNDcwNSAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysr IGIvZXRjL05FV1MKQEAgLTEwNDcsNiArMTA0NywxMiBAQCBpbnN0ZWFkIG9mOgogVGhpcyBhbGxv d3MgdGhlIHVzZXIgdG8gc3BlY2lmeSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHRvIHRoZSBub24K IGludGVyYWN0aXZlIFB5dGhvbiBpbnRlcnByZXRlciBzcGVjaWZpZWQgYnkgJ3B5dGhvbi1pbnRl cnByZXRlcicuCiAKKyoqKiBOZXcgdXNlciBvcHRpb24gJ3B5dGhvbi1zaGVsbC1yZWFkbGluZS1j b21wbGV0ZXInLgorVGhpcyBhbGxvd3MgdGhlIHVzZXIgdG8gc3BlY2lmeSB0aGUgcmVhZGxpbmUg Y29tcGxldGVyIHVzZWQgZm9yIFB5dGhvbgorc2hlbGwgY29tcGxldGlvbi4gIFRoZSBkZWZhdWx0 IGlzICdhdXRvJywgd2hpY2ggbWVhbnMgYSBzdWl0YWJsZQorY29tcGxldGVyIHdpbGwgYmUgY29u ZmlndXJlZCBhdXRvbWF0aWNhbGx5IGFjY29yZGluZyB0byB0aGUgUHl0aG9uCitpbnRlcnByZXRl ci4KKwogKiogdXNlLXBhY2thZ2UKIAogKysrCmRpZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rlcy9w eXRob24uZWwgYi9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwKaW5kZXggZmY3OTllMWU2NjIuLjhl Nzk5OGVlOGY2IDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwKKysrIGIvbGlz cC9wcm9nbW9kZXMvcHl0aG9uLmVsCkBAIC0xMjgsOSArMTI4LDkgQEAKIDs7IHJlY2VpdmluZyBl c2NhcGUgc2VxdWVuY2VzICh3aXRoIHNvbWUgbGltaXRhdGlvbnMsIGkuZS4gY29tcGxldGlvbgog OzsgaW4gYmxvY2tzIGRvZXMgbm90IHdvcmspLiAgVGhlIGNvZGUgZXhlY3V0ZWQgZm9yIHRoZSAi ZmFsbGJhY2siCiA7OyBjb21wbGV0aW9uIGNhbiBiZSBmb3VuZCBpbiBgcHl0aG9uLXNoZWxsLWNv bXBsZXRpb24tc2V0dXAtY29kZScgYW5kCi07OyBgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc3Ry aW5nLWNvZGUnIHZhcmlhYmxlcy4gIFRoZWlyIGRlZmF1bHQKLTs7IHZhbHVlcyBlbmFibGUgY29t cGxldGlvbiBmb3IgYm90aCBDUHl0aG9uIGFuZCBJUHl0aG9uLCBhbmQgcHJvYmFibHkKLTs7IGFu eSByZWFkbGluZSBiYXNlZCBzaGVsbCAoaXQncyBrbm93biB0byB3b3JrIHdpdGggUHlQeSkuICBJ ZiB5b3VyCis7OyBgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tZ2V0LWNvbXBsZXRpb25zJy4gIFRo ZWlyIGRlZmF1bHQgdmFsdWVzCis7OyBlbmFibGUgY29tcGxldGlvbiBmb3IgYm90aCBDUHl0aG9u IGFuZCBJUHl0aG9uLCBhbmQgcHJvYmFibHkgYW55Cis7OyByZWFkbGluZSBiYXNlZCBzaGVsbCAo aXQncyBrbm93biB0byB3b3JrIHdpdGggUHlQeSkuICBJZiB5b3VyCiA7OyBQeXRob24gaW5zdGFs bGF0aW9uIGxhY2tzIHJlYWRsaW5lIChsaWtlIENQeXRob24gZm9yIFdpbmRvd3MpLAogOzsgaW5z dGFsbGluZyBweXJlYWRsaW5lIChVUkwgYGh0dHBzOi8vaXB5dGhvbi5vcmcvcHlyZWFkbGluZS5o dG1sJykKIDs7IHNob3VsZCBzdWZmaWNlLiAgVG8gdHJvdWJsZXNob290IHdoeSB5b3UgYXJlIG5v dCBnZXR0aW5nIGFueQpAQCAtMzYwMSw3ICszNjAxLDYgQEAgaW5mZXJpb3ItcHl0aG9uLW1vZGUK IGBweXRob24tc2hlbGwtcHJvbXB0LWJsb2NrLXJlZ2V4cCcsCiBgcHl0aG9uLXNoZWxsLWZvbnQt bG9jay1lbmFibGUnLAogYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUnLAotYHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLXN0cmluZy1jb2RlJywKIGBweXRob24tZWxkb2Mtc2V0dXAt Y29kZScsCiBgcHl0aG9uLWZmYXAtc2V0dXAtY29kZScgY2FuCiBjdXN0b21pemUgdGhpcyBtb2Rl IGZvciBkaWZmZXJlbnQgUHl0aG9uIGludGVycHJldGVycy4KQEAgLTQzMTksOCArNDMxOCw5IEBA IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAgICBjb21wbGV0aW9ucyA9IFtd CiAgICAgY29tcGxldGVyID0gTm9uZQogCisgICAgaW1wb3J0IGpzb24KICAgICB0cnk6Ci0gICAg ICAgIGltcG9ydCByZWFkbGluZQorICAgICAgICBpbXBvcnQgcmVhZGxpbmUsIHJlCiAKICAgICAg ICAgdHJ5OgogICAgICAgICAgICAgaW1wb3J0IF9fYnVpbHRpbl9fCkBAIC00MzMxLDE2ICs0MzMx LDI5IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKIAogICAgICAgICBpc19p cHl0aG9uID0gKCdfX0lQWVRIT05fXycgaW4gYnVpbHRpbnMgb3IKICAgICAgICAgICAgICAgICAg ICAgICAnX19JUFlUSE9OX19hY3RpdmUnIGluIGJ1aWx0aW5zKQotICAgICAgICBzcGxpdHMgPSB0 ZXh0LnNwbGl0KCkKLSAgICAgICAgaXNfbW9kdWxlID0gc3BsaXRzIGFuZCBzcGxpdHNbMF0gaW4g KCdmcm9tJywgJ2ltcG9ydCcpCi0KLSAgICAgICAgaWYgaXNfaXB5dGhvbiBhbmQgaXNfbW9kdWxl OgotICAgICAgICAgICAgZnJvbSBJUHl0aG9uLmNvcmUuY29tcGxldGVybGliIGltcG9ydCBtb2R1 bGVfY29tcGxldGlvbgotICAgICAgICAgICAgY29tcGxldGlvbnMgPSBtb2R1bGVfY29tcGxldGlv bih0ZXh0LnN0cmlwKCkpCi0gICAgICAgIGVsaWYgaXNfaXB5dGhvbiBhbmQgJ19fSVAnIGluIGJ1 aWx0aW5zOgotICAgICAgICAgICAgY29tcGxldGlvbnMgPSBfX0lQLmNvbXBsZXRlKHRleHQpCi0g ICAgICAgIGVsaWYgaXNfaXB5dGhvbiBhbmQgJ2dldF9pcHl0aG9uJyBpbiBidWlsdGluczoKLSAg ICAgICAgICAgIGNvbXBsZXRpb25zID0gZ2V0X2lweXRob24oKS5Db21wbGV0ZXIuYWxsX2NvbXBs ZXRpb25zKHRleHQpCisKKyAgICAgICAgaWYgaXNfaXB5dGhvbiBhbmQgJ2dldF9pcHl0aG9uJyBp biBidWlsdGluczoKKyAgICAgICAgICAgIGRlZiBmaWx0ZXJfYyhwcmVmaXgsIGMpOgorICAgICAg ICAgICAgICAgIGlmIHJlLm1hdGNoKCdfKyhpP1swLTldKyk/JCcsIGMpOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICAgICBlbGlmIGNbMF0gPT0gJyUnIGFu ZCBub3QgcmUubWF0Y2goJ1slYS16QS1aXSskJywgcHJlZml4KToKKyAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICAg ICAgaW1wb3J0IElQeXRob24KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBJ UHl0aG9uLnZlcnNpb25faW5mb1swXSA+PSA2OgorICAgICAgICAgICAgICAgICAgICBmcm9tIElQ eXRob24uY29yZS5jb21wbGV0ZXIgaW1wb3J0IHByb3Zpc2lvbmFsY29tcGxldGVyCisgICAgICAg ICAgICAgICAgICAgIHdpdGggcHJvdmlzaW9uYWxjb21wbGV0ZXIoKToKKyAgICAgICAgICAgICAg ICAgICAgICAgIGNvbXBsZXRpb25zID0gWworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtj LnRleHQsIGMuc3RhcnQsIGMuZW5kLCBjLnR5cGUgb3IgJz8nLCBjLnNpZ25hdHVyZSBvciAnJ10K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGMgaW4gZ2V0X2lweXRob24oKS5Db21w bGV0ZXIuY29tcGxldGlvbnModGV4dCwgbGVuKHRleHQpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBmaWx0ZXJfYyh0ZXh0LCBjLnRleHQpXQorICAgICAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgICAgIHBhcnQsIG1hdGNoZXMgPSBnZXRfaXB5dGhvbigpLkNvbXBs ZXRlci5jb21wbGV0ZShsaW5lX2J1ZmZlcj10ZXh0KQorICAgICAgICAgICAgICAgICAgICBjb21w bGV0aW9ucyA9IFt0ZXh0ICsgbVtsZW4ocGFydCk6XSBmb3IgbSBpbiBtYXRjaGVzIGlmIGZpbHRl cl9jKHRleHQsIG0pXQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHBhc3MK ICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMgVHJ5IHRvIHJldXNlIGN1cnJlbnQgY29tcGxl dGVyLgogICAgICAgICAgICAgY29tcGxldGVyID0gcmVhZGxpbmUuZ2V0X2NvbXBsZXRlcigpCkBA IC00MzYzLDcgKzQzNzYsNyBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlCiAg ICAgZmluYWxseToKICAgICAgICAgaWYgZ2V0YXR0cihjb21wbGV0ZXIsICdQWVRIT05fRUxfV1JB UFBFRCcsIEZhbHNlKToKICAgICAgICAgICAgIGNvbXBsZXRlci5wcmludF9tb2RlID0gVHJ1ZQot ICAgIHJldHVybiBjb21wbGV0aW9ucyIKKyAgICByZXR1cm4ganNvbi5kdW1wcyhjb21wbGV0aW9u cykiCiAgICJDb2RlIHVzZWQgdG8gc2V0dXAgY29tcGxldGlvbiBpbiBpbmZlcmlvciBQeXRob24g cHJvY2Vzc2VzLiIKICAgOnR5cGUgJ3N0cmluZykKIApAQCAtNDQwNCw2ICs0NDE3LDc4IEBAIHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10cnktb3V0cHV0LXRpbWVvdXQKICAgOnZlcnNp b24gIjI1LjEiCiAgIDp0eXBlICdmbG9hdCkKIAorKGRlZmN1c3RvbSBweXRob24tc2hlbGwtcmVh ZGxpbmUtY29tcGxldGVyICdhdXRvCisgICJUaGUgcmVhZGxpbmUgY29tcGxldGVyIHVzZWQgZm9y IFB5dGhvbiBzaGVsbCBjb21wbGV0aW9uLgorSWYgdGhlIHZhbHVlIGlzIG5vbi1uaWwsIFB5dGhv biBzaGVsbCB3aWxsIHNldHVwIHRoZSByZWFkbGluZQorY29tcGxldGVyIHVubGVzcyBpdCBoYXMg YmVlbiBzZXQgZWxzZXdoZXJlIChlLmcuIGluIHRoZQorUFlUSE9OU1RBUlRVUCBmaWxlKS4gIEJl bG93IGFyZSBwb3NzaWJsZSB2YWx1ZXM6CistIGBhdXRvJzogdGhlIGNvbXBsZXRlciBpcyBkZXRl cm1pbmVkIGFjY29yZGluZyB0byB0aGUKK2ludGVycHJldGVyLiAgU3BlY2lmaWNhbGx5LCB0aGUg SVB5dGhvbiBjb21wbGV0ZXIsIGRlZmluZWQgaW4KK2BweXRob24tc2hlbGwtLXJlYWRsaW5lLWlw eXRob24tc2V0dXAtY29kZScsIGlzIHVzZWQgd2hlbiB0aGUKK2ludGVycHJldGVyIGlzIGlweXRo b24sIG90aGVyd2lzZSB0aGUgSmVkaSBjb21wbGV0ZXIgaXMgdXNlZC4KKy0gYSBzdHJpbmc6IFB5 dGhvbiBjb2RlIHRvIHNldHVwIHRoZSByZWFkbGluZS4gIFNlZQorYHB5dGhvbi1zaGVsbC0tcmVh ZGxpbmUtamVkaS1zZXR1cC1jb2RlJyBmb3IgcmVmZXJlbmNlLgorLSBgbmlsJzogUHl0aG9uIHNo ZWxsIHdpbGwgZG8gbm90aGluZy4KKworSW4gYW55IGNhc2UsIGlmIHRoZSBjb21wbGV0ZXIgaXMg bm90IHNldCBzdWNjZXNzZnVsbHkgaW4gdGhlIGVuZCwKK2ZhbGxiYWNrIHRvIHRoZSBidWlsdC1p biBybGNvbXBsZXRlci4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zdCAgOnRhZyAiQXV0b21hdGlj IiBhdXRvKQorICAgICAgICAgICAgICAgICAoY29uc3QgIDp0YWcgIk5vIGNvbmZpZ3VyYXRpb24i IG5pbCkKKyAgICAgICAgICAgICAgICAgKHN0cmluZyA6dGFnICJQeXRob24gc2V0dXAgY29kZSIp KQorICA6dmVyc2lvbiAiMzAuMSIpCisKKyhkZWZ2YXIgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNv bXBsZXRlci1kZWxpbXMgbmlsCisgICJXb3JkIGRlbGltaXRlcnMgdXNlZCBieSB0aGUgcmVhZGxp bmUgY29tcGxldGVyLgorSXQgaXMgYXV0b21hdGljYWxseSBzZXQgYnkgUHl0aG9uIHNoZWxsLiIp CisKKyhkZWZjb25zdCBweXRob24tc2hlbGwtLXJlYWRsaW5lLWplZGktc2V0dXAtY29kZQorICAi CitkZWYgX19QWVRIT05fRUxfc2V0dXBfcmVhZGxpbmVfY29tcGxldGVyKCk6CisgICAgZnJvbSBq ZWRpLnV0aWxzIGltcG9ydCBzZXR1cF9yZWFkbGluZQorICAgIHNldHVwX3JlYWRsaW5lKCkiCisg ICJDb2RlIHVzZWQgdG8gc2V0dXAgcmVhZGxpbmUgY29tcGxldGVyIHdpdGggSmVkaS4iKQorCiso ZGVmY29uc3QgcHl0aG9uLXNoZWxsLS1yZWFkbGluZS1pcHl0aG9uLXNldHVwLWNvZGUKKyAgIgor ZGVmIF9fUFlUSE9OX0VMX3NldHVwX3JlYWRsaW5lX2NvbXBsZXRlcigpOgorICAgIGltcG9ydCBy ZWFkbGluZSwgcmUsIGpzb24sIElQeXRob24KKworICAgIGNsYXNzIF9faXB5dGhvbl9STDoKKyAg ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHYpOgorICAgICAgICAgICAgc2VsZi52ZXJzaW9uID0g dgorCisgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgcHJlZml4LCBjKToKKyAgICAgICAgICAgIGlm IHJlLm1hdGNoKCdfKyhpP1swLTldKyk/JCcsIGMpOgorICAgICAgICAgICAgICAgIHJldHVybiBG YWxzZQorICAgICAgICAgICAgZWxpZiBjWzBdID09ICclJyBhbmQgbm90IHJlLm1hdGNoKCdbJWEt ekEtWl0rJCcsIHByZWZpeCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg ICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIGRlZiBjb21wbGV0ZShzZWxmLCB0ZXh0LCBzdGF0 ZSk6CisgICAgICAgICAgICBpZiBzdGF0ZSA9PSAwOgorICAgICAgICAgICAgICAgIHRyeToKKyAg ICAgICAgICAgICAgICAgICAgaWYgc2VsZi52ZXJzaW9uID49IDY6CisgICAgICAgICAgICAgICAg ICAgICAgICBmcm9tIElQeXRob24uY29yZS5jb21wbGV0ZXIgaW1wb3J0IHByb3Zpc2lvbmFsY29t cGxldGVyCisgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHByb3Zpc2lvbmFsY29tcGxldGVy KCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXRjaGVzID0gW2pzb24uZHVt cHMoWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYy50ZXh0LCBjLnN0YXJ0LCBj LmVuZCwgYy50eXBlIG9yICc/JywgYy5zaWduYXR1cmUgb3IgJyddCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBjIGluIGdldF9pcHl0aG9uKCkuQ29tcGxldGVyLmNvbXBsZXRp b25zKHRleHQsIGxlbih0ZXh0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg c2VsZi5maWx0ZXIodGV4dCwgYy50ZXh0KV0pXQorICAgICAgICAgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgICAgICAgICAgcGFydCwgbWF0Y2hlcyA9IGdldF9pcHl0aG9uKCkuQ29t cGxldGVyLmNvbXBsZXRlKGxpbmVfYnVmZmVyPXRleHQpCisgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLm1hdGNoZXMgPSBbdGV4dCArIG1bbGVuKHBhcnQpOl0gZm9yIG0gaW4gbWF0Y2hlcwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZmlsdGVyKHRl eHQsIG0pXQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAg ICAgICAgIHBhc3MKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5tYXRjaGVzW3N0YXRlXQorICAgICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CisgICAgICAg ICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIHJlYWRsaW5lLnNldF9jb21wbGV0ZXIoX19pcHl0 aG9uX1JMKElQeXRob24udmVyc2lvbl9pbmZvWzBdKS5jb21wbGV0ZSkKKyAgICByZWFkbGluZS5z ZXRfY29tcGxldGVyX2RlbGltcygnJykiCisgICJDb2RlIHVzZWQgdG8gc2V0dXAgcmVhZGxpbmUg Y29tcGxldGVyIGZvciBJUHl0aG9uLiIpCisKIChkZWZ2YXIgcHl0aG9uLXNoZWxsLWNvbXBsZXRp b24tbmF0aXZlLXJlZGlyZWN0LWJ1ZmZlcgogICAiICpQeXRob24gY29tcGxldGlvbnMgcmVkaXJl Y3QqIgogICAiQnVmZmVyIHRvIGJlIHVzZWQgdG8gcmVkaXJlY3Qgb3V0cHV0IG9mIHJlYWRsaW5l IGNvbW1hbmRzLiIpCkBAIC00NDI3LDcgKzQ1MTIsMjAgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRp b24tbmF0aXZlLXRyeQogKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1zZXR1 cCAoKQogICAiVHJ5IHRvIHNldHVwIG5hdGl2ZSBjb21wbGV0aW9uLCByZXR1cm4gbm9uLW5pbCBv biBzdWNjZXNzLiIKICAgKGxldCogKChwcm9jZXNzIChweXRob24tc2hlbGwtZ2V0LXByb2Nlc3Mp KQotICAgICAgICAgKG91dHB1dCAocHl0aG9uLXNoZWxsLXNlbmQtc3RyaW5nLW5vLW91dHB1dCAi CisgICAgICAgICAoY29tcGxldGVyIChwY2FzZSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxl dGVyCisgICAgICAgICAgICAgICAgICAgICAgKCdhdXRvCisgICAgICAgICAgICAgICAgICAgICAg IChpZiAoc3RyaW5nLW1hdGNoLXAgImlweXRob25bMjNdP1xcJyIgcHl0aG9uLXNoZWxsLWludGVy cHJldGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsLS1yZWFkbGlu ZS1pcHl0aG9uLXNldHVwLWNvZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tc2hl bGwtLXJlYWRsaW5lLWplZGktc2V0dXAtY29kZSkpCisgICAgICAgICAgICAgICAgICAgICAgKChw cmVkIHN0cmluZ3ApIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXIpCisgICAgICAgICAg ICAgICAgICAgICAgKF8gIiIpKSkKKyAgICAgICAgIChvdXRwdXQgKHB5dGhvbi1zaGVsbC1zZW5k LXN0cmluZy1uby1vdXRwdXQKKyAgICAgICAgICAgICAgICAgIChjb25jYXQgIgordHJ5OgorICAg IGRlbCBfX1BZVEhPTl9FTF9zZXR1cF9yZWFkbGluZV9jb21wbGV0ZXIKK2V4Y2VwdDoKKyAgICBw YXNzCisiIGNvbXBsZXRlciAiCiBkZWYgX19QWVRIT05fRUxfbmF0aXZlX2NvbXBsZXRpb25fc2V0 dXAoKToKICAgICB0cnk6CiAgICAgICAgIGltcG9ydCByZWFkbGluZQpAQCAtNDUwMCwxMSArNDU5 OCwyMyBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXAKICAgICAgICAgICAg ICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbgogCisgICAg ICAgIGRlZiBpc19ybGNvbXBsZXRlcihjb21wbGV0ZXIpOgorICAgICAgICAgICAgdHJ5OgorICAg ICAgICAgICAgICAgIGlmIGNvbXBsZXRlci5fX3NlbGZfXy5fX21vZHVsZV9fID09ICdybGNvbXBs ZXRlcic6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBleGNl cHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCiAgICAgICAgIGNv bXBsZXRlciA9IHJlYWRsaW5lLmdldF9jb21wbGV0ZXIoKQogCi0gICAgICAgIGlmIG5vdCBjb21w bGV0ZXI6Ci0gICAgICAgICAgICAjIFVzZWQgYXMgbGFzdCByZXNvcnQgdG8gYXZvaWQgYnJlYWtp bmcgY3VzdG9taXphdGlvbnMuCi0gICAgICAgICAgICBpbXBvcnQgcmxjb21wbGV0ZXIKKyAgICAg ICAgaWYgbm90IGNvbXBsZXRlciBvciBpc19ybGNvbXBsZXRlcihjb21wbGV0ZXIpOgorICAgICAg ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIF9fUFlUSE9OX0VMX3NldHVwX3JlYWRsaW5lX2Nv bXBsZXRlcigpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgIyBVc2VkIGFz IGxhc3QgcmVzb3J0IHRvIGF2b2lkIGJyZWFraW5nIGN1c3RvbWl6YXRpb25zLgorICAgICAgICAg ICAgICAgIGltcG9ydCBybGNvbXBsZXRlcgogICAgICAgICAgICAgY29tcGxldGVyID0gcmVhZGxp bmUuZ2V0X2NvbXBsZXRlcigpCiAKICAgICAgICAgaWYgY29tcGxldGVyIGFuZCBub3QgZ2V0YXR0 cihjb21wbGV0ZXIsICdQWVRIT05fRUxfV1JBUFBFRCcsIEZhbHNlKToKQEAgLTQ1MzksOSArNDY0 OSwxMyBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXAKICAgICAgICAgcHJp bnQgKCdweXRob24uZWw6IG5hdGl2ZSBjb21wbGV0aW9uIHNldHVwIGZhaWxlZCwgJXM6ICVzJwog ICAgICAgICAgICAgICAgJSBzeXMuZXhjX2luZm8oKVs6Ml0pCiAKLV9fUFlUSE9OX0VMX25hdGl2 ZV9jb21wbGV0aW9uX3NldHVwKCkiIHByb2Nlc3MpKSkKK19fUFlUSE9OX0VMX25hdGl2ZV9jb21w bGV0aW9uX3NldHVwKCkiKSBwcm9jZXNzKSkpCiAgICAgKHdoZW4gKHN0cmluZy1tYXRjaC1wICJw eXRob25cXC5lbDogbmF0aXZlIGNvbXBsZXRpb24gc2V0dXAgbG9hZGVkIgogICAgICAgICAgICAg ICAgICAgICAgICAgICBvdXRwdXQpCisgICAgICAoc2V0cS1sb2NhbCBweXRob24tc2hlbGwtcmVh ZGxpbmUtY29tcGxldGVyLWRlbGltcworICAgICAgICAgICAgICAgICAgKHN0cmluZy10cmltLXJp Z2h0CisgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRw dXQKKyAgICAgICAgICAgICAgICAgICAgImltcG9ydCByZWFkbGluZTsgcHJpbnQocmVhZGxpbmUu Z2V0X2NvbXBsZXRlcl9kZWxpbXMoKSkiKSkpCiAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRp b24tbmF0aXZlLXRyeSkpKSkKIAogKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2 ZS10dXJuLW9mZiAoJm9wdGlvbmFsIG1zZykKQEAgLTQ2MDksNiArNDcyMyw4IEBAIHB5dGhvbi1z aGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1nZXQtY29tcGxldGlvbnMKICAgICAobGV0KiAoKG9yaWdp bmFsLWZpbHRlci1mbiAocHJvY2Vzcy1maWx0ZXIgcHJvY2VzcykpCiAgICAgICAgICAgIChyZWRp cmVjdC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1yZWRpcmVjdC1idWZmZXIpKQorICAg ICAgICAgICAoc2VwIChpZiAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVy LWRlbGltcyAiIikKKyAgICAgICAgICAgICAgICAgICAgIltcblxyXSsiICJbIFxmXHRcblxyXHYo KV0rIikpCiAgICAgICAgICAgICh0cmlnZ2VyICJcdCIpCiAgICAgICAgICAgIChuZXctaW5wdXQg KGNvbmNhdCBpbnB1dCB0cmlnZ2VyKSkKICAgICAgICAgICAgKGlucHV0LWxlbmd0aApAQCAtNDY1 MSwyOCArNDc2Nyw3MiBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZ2V0LWNvbXBs ZXRpb25zCiAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzIHB5dGhvbi1zaGVsbC1jb21wbGV0 aW9uLW5hdGl2ZS1vdXRwdXQtdGltZW91dAogICAgICAgICAgICAgICAgICAgICAgY29taW50LXJl ZGlyZWN0LWZpbmlzaGVkLXJlZ2V4cCkKICAgICAgICAgICAgICAgICAocmUtc2VhcmNoLWJhY2t3 YXJkICIwX19kdW1teV9jb21wbGV0aW9uX18iIG5pbCB0KQotICAgICAgICAgICAgICAgIChjbC1y ZW1vdmUtZHVwbGljYXRlcwotICAgICAgICAgICAgICAgICAoc3BsaXQtc3RyaW5nCi0gICAgICAg ICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCi0gICAgICAgICAgICAg ICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQtbWluKSkKLSAgICAgICAgICAg ICAgICAgICJbIFxmXHRcblxyXHYoKV0rIiB0KQotICAgICAgICAgICAgICAgICA6dGVzdCAjJ3N0 cmluZz0pKSkpCisgICAgICAgICAgICAgICAgKGxldCAoKHN0ciAoYnVmZmVyLXN1YnN0cmluZy1u by1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5n LXBvc2l0aW9uKSAocG9pbnQtbWluKSkpKQorICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmc9 ICJbIiAoc3Vic3RyaW5nIHN0ciAwIDEpKQorICAgICAgICAgICAgICAgICAgICAgIChjb25kaXRp b24tY2FzZSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi0tcGFyc2UtanNv bi1hcnJheSBzdHIpCisgICAgICAgICAgICAgICAgICAgICAgICAodCAoY2wtcmVtb3ZlLWR1cGxp Y2F0ZXMgKHNwbGl0LXN0cmluZyBzdHIgc2VwIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOnRlc3QgIydzdHJpbmc9KSkpCisgICAgICAgICAgICAg ICAgICAgIChjbC1yZW1vdmUtZHVwbGljYXRlcyAoc3BsaXQtc3RyaW5nIHN0ciBzZXAgdCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0ZXN0ICMnc3RyaW5nPSkp KSkpKQogICAgICAgICAoc2V0LXByb2Nlc3MtZmlsdGVyIHByb2Nlc3Mgb3JpZ2luYWwtZmlsdGVy LWZuKSkpKSkKIAogKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9u cyAocHJvY2VzcyBpbnB1dCkKICAgIkdldCBjb21wbGV0aW9ucyBvZiBJTlBVVCB1c2luZyBQUk9D RVNTLiIKICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCi0g ICAgKGxldCAoKGNvbXBsZXRpb25zCi0gICAgICAgICAgIChweXRob24tdXRpbC1zdHJpcC1zdHJp bmcKLSAgICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0Ci0gICAg ICAgICAgICAgKGZvcm1hdAotICAgICAgICAgICAgICAiJXNcbnByaW50KCc7Jy5qb2luKF9fUFlU SE9OX0VMX2dldF9jb21wbGV0aW9ucyglcykpKSIKKyAgICAocHl0aG9uLS1wYXJzZS1qc29uLWFy cmF5CisgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0CisgICAgICAoZm9y bWF0ICIlc1xucHJpbnQoX19QWVRIT05fRUxfZ2V0X2NvbXBsZXRpb25zKCVzKSkiCiAgICAgICAg ICAgICAgIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAgICAgICAgICAgICAg KHB5dGhvbi1zaGVsbC0tZW5jb2RlLXN0cmluZyBpbnB1dCkpCi0gICAgICAgICAgICAgcHJvY2Vz cykpKSkKLSAgICAgICh3aGVuICg+IChsZW5ndGggY29tcGxldGlvbnMpIDIpCi0gICAgICAgIChz cGxpdC1zdHJpbmcgY29tcGxldGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAiXidcXHxeXCJc XHw7XFx8JyRcXHxcIiQiIHQpKSkpKQorICAgICAgcHJvY2VzcykpKSkKKworKGRlZnVuIHB5dGhv bi1zaGVsbC0tZ2V0LW11bHRpbGluZS1pbnB1dCAoKQorICAiUmV0dXJuIGxpbmVzIGF0IGEgbXVs dGktbGluZSBpbnB1dCBpbiBQeXRob24gc2hlbGwuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAo bGV0ICgocCAocG9pbnQpKSBsaW5lcykKKyAgICAgICh3aGVuIChwcm9nbgorICAgICAgICAgICAg ICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgIChsb29raW5nLWJhY2sgcHl0aG9u LXNoZWxsLXByb21wdC1ibG9jay1yZWdleHAgKHBvcy1ib2wpKSkKKyAgICAgICAgKHB1c2ggKGJ1 ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQpIHApIGxpbmVzKQorICAgICAgICAo d2hpbGUgKHByb2duIChjb21pbnQtcHJldmlvdXMtcHJvbXB0IDEpCisgICAgICAgICAgICAgICAg ICAgICAgKGxvb2tpbmctYmFjayBweXRob24tc2hlbGwtcHJvbXB0LWJsb2NrLXJlZ2V4cCAocG9z LWJvbCkpKQorICAgICAgICAgIChwdXNoIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMg KHBvaW50KSAocG9zLWVvbCkpIGxpbmVzKSkKKyAgICAgICAgKHB1c2ggKGJ1ZmZlci1zdWJzdHJp bmctbm8tcHJvcGVydGllcyAocG9pbnQpIChwb3MtZW9sKSkgbGluZXMpKQorICAgICAgbGluZXMp KSkKKworKGRlZnVuIHB5dGhvbi1zaGVsbC0tZXh0cmEtY29tcGxldGlvbi1jb250ZXh0ICgpCisg ICJHZXQgZXh0cmEgY29tcGxldGlvbiBjb250ZXh0IG9mIGN1cnJlbnQgaW5wdXQgaW4gUHl0aG9u IHNoZWxsLiIKKyAgKGxldCAoKGxpbmVzIChweXRob24tc2hlbGwtLWdldC1tdWx0aWxpbmUtaW5w dXQpKQorICAgICAgICAocHl0aG9uLWluZGVudC1ndWVzcy1pbmRlbnQtb2Zmc2V0IG5pbCkpCisg ICAgKHdoZW4gKG5vdCAoemVyb3AgKGxlbmd0aCBsaW5lcykpKQorICAgICAgKHdpdGgtdGVtcC1i dWZmZXIKKyAgICAgICAgKGRlbGF5LW1vZGUtaG9va3MKKyAgICAgICAgICAoaW5zZXJ0IChzdHJp bmctam9pbiBsaW5lcyAiXG4iKSkKKyAgICAgICAgICAocHl0aG9uLW1vZGUpCisgICAgICAgICAg KHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQpKSkpKSkKKworKGRlZnVuIHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQgKCZvcHRpb25hbCBwb3MpCisgICJH ZXQgZXh0cmEgY29tcGxldGlvbiBjb250ZXh0IGF0IHBvc2l0aW9uIFBPUyBpbiBQeXRob24gYnVm ZmVyLgorSWYgb3B0aW9uYWwgYXJndW1lbnQgUE9TIGlzIG5pbCwgdXNlIGN1cnJlbnQgcG9zaXRp b24uCisKK1JlYWRsaW5lIGNvbXBsZXRlcnMgY291bGQgdXNlIGN1cnJlbnQgbGluZSBhcyB0aGUg Y29tcGxldGlvbgorY29udGV4dCwgd2hpY2ggbWF5IGJlIGluc3VmZmljaWVudC4gIEluIHRoaXMg ZnVuY3Rpb24sIGV4dHJhCitjb250ZXh0IChlLmcuIG11bHRpLWxpbmUgZnVuY3Rpb24gY2FsbCkg aXMgZm91bmQgYW5kIHJlZm9ybWF0dGVkCithcyBvbmUgbGluZSwgd2hpY2ggaXMgcmVxdWlyZWQg YnkgbmF0aXZlIGNvbXBsZXRpb24uIgorICAobGV0IChib3VuZCBwKQorICAgIChzYXZlLWV4Y3Vy c2lvbgorICAgICAgKGFuZCBwb3MgKGdvdG8tY2hhciBwb3MpKQorICAgICAgKHNldHEgYm91bmQg KHBvcy1ib2wpKQorICAgICAgKHB5dGhvbi1uYXYtdXAtbGlzdCAtMSkKKyAgICAgICh3aGVuIChh bmQgKDwgKHBvaW50KSBib3VuZCkKKyAgICAgICAgICAgICAgICAgKGxvb2tpbmctYmFjaworICAg ICAgICAgICAgICAgICAgKHB5dGhvbi1yeCAoKyAob3IgIi4iIHN5bWJvbC1uYW1lKSkpIChwb3Mt Ym9sKSB0KSkKKyAgICAgICAgKHNldHEgcCAobWF0Y2gtYmVnaW5uaW5nIDApKSkpCisgICAgKHdo ZW4gcAorICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICJcblsgXHRdKiIg IiIgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBwICgxLSBib3VuZCkpKSkpKQogCiAo ZGVmdmFyLWxvY2FsIHB5dGhvbi1zaGVsbC0tY2FwZi1jYWNoZSBuaWwKICAgIlZhcmlhYmxlIHRv IHN0b3JlIGNhY2hlZCBjb21wbGV0aW9ucyBhbmQgaW52YWxpZGF0aW9uIGtleXMuIikKQEAgLTQ2 ODcsMjEgKzQ4NDcsMjYgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQKICAgICAg ICAgICAgICAgICAgICAgICAgICA7OyBXb3JraW5nIG9uIGEgc2hlbGwgYnVmZmVyOiB1c2UgcHJv bXB0IGVuZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIChweXRob24tdXRpbC1jb21p bnQtbGFzdC1wcm9tcHQpKQogICAgICAgICAgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmct cG9zaXRpb24pKSkKLSAgICAgICAgIChpbXBvcnQtc3RhdGVtZW50Ci0gICAgICAgICAgKHdoZW4g KHN0cmluZy1tYXRjaC1wCi0gICAgICAgICAgICAgICAgIChyeCAoKiBzcGFjZSkgd29yZC1zdGFy dCAob3IgImZyb20iICJpbXBvcnQiKSB3b3JkLWVuZCBzcGFjZSkKLSAgICAgICAgICAgICAgICAg KGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBsaW5lLXN0YXJ0IChwb2ludCkpKQotICAg ICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBsaW5lLXN0YXJ0IChwb2lu dCkpKSkKKyAgICAgICAgIChuby1kZWxpbXMKKyAgICAgICAgICAoYW5kIChub3QgKGlmIGlzLXNo ZWxsLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAgKGVxICdmb250LWxvY2stY29tbWVu dC1mYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5ICgx LSAocG9pbnQpKSAnZmFjZSkpCisgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1zeW50YXgt Y29udGV4dCAnY29tbWVudCkpKQorICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIg KHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCisgICAgICAgICAgICAgICAgIChpZiBweXRob24tc2hl bGwtY29tcGxldGlvbi1uYXRpdmUtZW5hYmxlCisgICAgICAgICAgICAgICAgICAgICAoc3RyaW5n PSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyAiIikKKyAgICAgICAgICAg ICAgICAgICAoc3RyaW5nLW1hdGNoLXAgImlweXRob25bMjNdP1xcJyIgcHl0aG9uLXNoZWxsLWlu dGVycHJldGVyKSkpKSkKICAgICAgICAgIChzdGFydAogICAgICAgICAgIChpZiAoPCAocG9pbnQp IGxpbmUtc3RhcnQpCiAgICAgICAgICAgICAgIChwb2ludCkKICAgICAgICAgICAgIChzYXZlLWV4 Y3Vyc2lvbgotICAgICAgICAgICAgICAoaWYgKG5vdCAocmUtc2VhcmNoLWJhY2t3YXJkCi0gICAg ICAgICAgICAgICAgICAgICAgICAocHl0aG9uLXJ4Ci0gICAgICAgICAgICAgICAgICAgICAgICAg KG9yIHdoaXRlc3BhY2Ugb3Blbi1wYXJlbiBjbG9zZS1wYXJlbgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJpbmctZGVsaW1pdGVyIHNpbXBsZS1vcGVyYXRvcikpCi0gICAgICAgICAg ICAgICAgICAgICAgICBsaW5lLXN0YXJ0Ci0gICAgICAgICAgICAgICAgICAgICAgICB0IDEpKQor ICAgICAgICAgICAgICAoaWYgKG9yIG5vLWRlbGltcworICAgICAgICAgICAgICAgICAgICAgIChu b3QgKHJlLXNlYXJjaC1iYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChweXRo b24tcngKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIHdoaXRlc3BhY2Ugb3Blbi1w YXJlbiBjbG9zZS1wYXJlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5n LWRlbGltaXRlciBzaW1wbGUtb3BlcmF0b3IpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpbmUtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0IDEpKSkKICAgICAgICAg ICAgICAgICAgIGxpbmUtc3RhcnQKICAgICAgICAgICAgICAgICAoZm9yd2FyZC1jaGFyIChsZW5n dGggKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDApKSkKICAgICAgICAgICAgICAgICAocG9p bnQpKSkpKQpAQCAtNDc0MSwxOCArNDkwNiw1OCBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1h dC1wb2ludAogICAgICAgICAgICAgICAgICAgKHQgIydweXRob24tc2hlbGwtY29tcGxldGlvbi1u YXRpdmUtZ2V0LWNvbXBsZXRpb25zKSkpKQogICAgICAgICAgKHByZXYtcHJvbXB0IChjYXIgcHl0 aG9uLXNoZWxsLS1jYXBmLWNhY2hlKSkKICAgICAgICAgIChyZSAob3IgKGNhZHIgcHl0aG9uLXNo ZWxsLS1jYXBmLWNhY2hlKSByZWdleHAtdW5tYXRjaGFibGUpKQotICAgICAgICAgKHByZWZpeCAo YnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpKQorICAgICAgICAgKHBy ZWZpeCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpCisgICAgICAg ICAocHJlZml4LW9mZnNldCAwKQorICAgICAgICAgKGV4dHJhLWNvbnRleHQgKHdoZW4gbm8tZGVs aW1zCisgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBpcy1zaGVsbC1idWZmZXIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChweXRob24tc2hlbGwtLWV4dHJhLWNvbXBsZXRpb24t Y29udGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBs ZXRpb24tZXh0cmEtY29udGV4dCkpKSkKKyAgICAgICAgIChleHRyYS1vZmZzZXQgKGxlbmd0aCBl eHRyYS1jb250ZXh0KSkpCisgICAgKHVubGVzcyAoemVyb3AgZXh0cmEtb2Zmc2V0KQorICAgICAg KHNldHEgcHJlZml4IChjb25jYXQgZXh0cmEtY29udGV4dCBwcmVmaXgpKSkKICAgICA7OyBUbyBp bnZhbGlkYXRlIHRoZSBjYWNoZSwgd2UgY2hlY2sgaWYgdGhlIHByb21wdCBwb3NpdGlvbiBvciB0 aGUKICAgICA7OyBjb21wbGV0aW9uIHByZWZpeCBjaGFuZ2VkLgogICAgICh1bmxlc3MgKGFuZCAo ZXF1YWwgcHJldi1wcm9tcHQgKGNhciBwcm9tcHQtYm91bmRhcmllcykpCi0gICAgICAgICAgICAg ICAgIChzdHJpbmctbWF0Y2ggcmUgcHJlZml4KSkKKyAgICAgICAgICAgICAgICAgKHN0cmluZy1t YXRjaCByZSBwcmVmaXgpCisgICAgICAgICAgICAgICAgIChzZXRxIHByZWZpeC1vZmZzZXQgKC0g KGxlbmd0aCBwcmVmaXgpIChtYXRjaC1lbmQgMSkpKSkKICAgICAgIChzZXRxIHB5dGhvbi1zaGVs bC0tY2FwZi1jYWNoZQogICAgICAgICAgICAgYCgsKGNhciBwcm9tcHQtYm91bmRhcmllcykKICAg ICAgICAgICAgICAgLChpZiAoc3RyaW5nLWVtcHR5LXAgcHJlZml4KQogICAgICAgICAgICAgICAg ICAgIHJlZ2V4cC11bm1hdGNoYWJsZQotICAgICAgICAgICAgICAgICAoY29uY2F0ICJcXGAiIChy ZWdleHAtcXVvdGUgcHJlZml4KSAiXFwoPzpcXHN3XFx8XFxzX1xcKSpcXCciKSkKLSAgICAgICAg ICAgICAgLEAoZnVuY2FsbCBjb21wbGV0aW9uLWZuIHByb2Nlc3MgKG9yIGltcG9ydC1zdGF0ZW1l bnQgcHJlZml4KSkpKSkKLSAgICAobGlzdCBzdGFydCBlbmQgKGNkZHIgcHl0aG9uLXNoZWxsLS1j YXBmLWNhY2hlKSkpKQorICAgICAgICAgICAgICAgICAoY29uY2F0ICJcXGBcXCgiIChyZWdleHAt cXVvdGUgcHJlZml4KSAiXFwpXFwoPzpcXHN3XFx8XFxzX1xcKSpcXCciKSkKKyAgICAgICAgICAg ICAgLEAoZnVuY2FsbCBjb21wbGV0aW9uLWZuIHByb2Nlc3MgcHJlZml4KSkpKQorICAgIChsZXQg KChjYW5kcyAoY2RkciBweXRob24tc2hlbGwtLWNhcGYtY2FjaGUpKSkKKyAgICAgIChjb25kCisg ICAgICAgKChzdHJpbmdwIChjYXIgY2FuZHMpKQorICAgICAgICAoaWYgbm8tZGVsaW1zCisgICAg ICAgICAgICA7OyBSZWR1Y2UgY29tcGxldGlvbiBjYW5kaWRhdGVzIGR1ZSB0byBsb25nIHByZWZp eC4KKyAgICAgICAgICAgIChpZi1sZXQgKChMcCAobGVuZ3RoIHByZWZpeCkpCisgICAgICAgICAg ICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFwoXFxzd1xcfFxcc19cXCkrXFwnIiBwcmVmaXgp KQorICAgICAgICAgICAgICAgICAgICAgKEwgKG1hdGNoLWJlZ2lubmluZyAwKSkpCisgICAgICAg ICAgICAgICAgOzsgSWYgZXh0cmEtb2Zmc2V0IGlzIG5vdCB6ZXJvOgorICAgICAgICAgICAgICAg IDs7ICAgICAgICAgICAgICAgICAgc3RhcnQgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg ICAgIDs7IG8tLS0tLS0tLS0tLS0tLS0tLS1vLS0tLS0tLS0tby0tLS0tLS1vCisgICAgICAgICAg ICAgICAgOzsgfDwtIGV4dHJhLW9mZnNldCAtPnwKKyAgICAgICAgICAgICAgICA7OyB8PC0tLS0t LS0tLS0tIEwgLS0tLS0tLS0tLS0tPnwKKyAgICAgICAgICAgICAgICA7OyAgICAgICAgICAgICAg ICAgICAgICAgICAgbmV3LXN0YXJ0CisgICAgICAgICAgICAgICAgKGxpc3QgKCsgc3RhcnQgTCAo LSBleHRyYS1vZmZzZXQpKSBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1i ZGEgKHMpIChzdWJzdHJpbmcgcyBMKSkgY2FuZHMpKQorICAgICAgICAgICAgICAobGlzdCBlbmQg ZW5kIChtYXBjYXIgKGxhbWJkYSAocykgKHN1YnN0cmluZyBzIExwKSkgY2FuZHMpKSkKKyAgICAg ICAgICAobGlzdCBzdGFydCBlbmQgY2FuZHMpKSkKKyAgICAgICA7OyBweXRob24tc2hlbGwtY29t cGxldGlvbigtbmF0aXZlKS1nZXQtY29tcGxldGlvbnMgbWF5IHByb2R1Y2UKKyAgICAgICA7OyBh IGxpc3Qgb2YgKHRleHQgc3RhcnQgZW5kIHR5cGUgc2lnbmF0dXJlKSBmb3IgY29tcGxldGlvbi4K KyAgICAgICA7OyBTZWUgYHB5dGhvbi1zaGVsbC0tcmVhZGxpbmUtaXB5dGhvbi1zZXR1cC1jb2Rl JyBhbmQKKyAgICAgICA7OyBgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZScuCisg ICAgICAgKChjb25zcCAoY2FyIGNhbmRzKSkKKyAgICAgICAgKGxpc3QgKCsgc3RhcnQgKG50aCAx IChjYXIgY2FuZHMpKSAoLSBleHRyYS1vZmZzZXQpKQorICAgICAgICAgICAgICA7OyBDYW5kaWRh dGVzIG1heSBiZSBjYWNoZWQsIHNvIHRoZSBlbmQgcG9zaXRpb24gc2hvdWxkCisgICAgICAgICAg ICAgIDs7IGJlIGFkanVzdGVkIGFjY29yZGluZyB0byBjdXJyZW50IGNvbXBsZXRpb24gcHJlZml4 LgorICAgICAgICAgICAgICAoKyBzdGFydCAobnRoIDIgKGNhciBjYW5kcykpICgtIGV4dHJhLW9m ZnNldCkgcHJlZml4LW9mZnNldCkKKyAgICAgICAgICAgICAgY2FuZHMKKyAgICAgICAgICAgICAg OmFubm90YXRpb24tZnVuY3Rpb24KKyAgICAgICAgICAgICAgKGxhbWJkYSAoYykgKGNvbmNhdCAi ICIgKG50aCAzIChhc3NvYyBjIGNhbmRzKSkpKQorICAgICAgICAgICAgICA6Y29tcGFueS1kb2Nz aWcKKyAgICAgICAgICAgICAgKGxhbWJkYSAoYykgKG50aCA0IChhc3NvYyBjIGNhbmRzKSkpKSkp KSkpCiAKIChkZWZpbmUtb2Jzb2xldGUtZnVuY3Rpb24tYWxpYXMKICAgJ3B5dGhvbi1zaGVsbC1j b21wbGV0aW9uLWNvbXBsZXRlLWF0LXBvaW50CmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvcHJvZ21v ZGVzL3B5dGhvbi10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVs CmluZGV4IDk3ZmZkNWZlMjBmLi5hZTIzZmY4ZWJlMiAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL3By b2dtb2Rlcy9weXRob24tdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24t dGVzdHMuZWwKQEAgLTQ3ODcsNiArNDc4Nyw4NCBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1h dC1wb2ludC1uYXRpdmUtMQogICAgICAoZW5kLW9mLWxpbmUgMCkKICAgICAgKHNob3VsZC1ub3Qg KG50aCAyIChweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCkpKSkpKQogCisoZGVmdW4g cHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSAoKQorICAiQ2hlY2sgaWYgbW9kdWxlcyBj YW4gYmUgY29tcGxldGVkIGluIFB5dGhvbiBzaGVsbC4iCisgIChpbnNlcnQgImltcG9ydCBkYXRl dCIpCisgIChjb21wbGV0aW9uLWF0LXBvaW50KQorICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgIChz aG91bGQgKGxvb2tpbmctYXQtcCAiaW1wb3J0IGRhdGV0aW1lIikpCisgIChraWxsLWxpbmUpCisg IChpbnNlcnQgImZyb20gZGF0ZXQiKQorICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgKGJlZ2lu bmluZy1vZi1saW5lKQorICAoc2hvdWxkIChsb29raW5nLWF0LXAgImZyb20gZGF0ZXRpbWUiKSkK KyAgKGVuZC1vZi1saW5lKQorICAoaW5zZXJ0ICIgaW1wb3J0IHRpbWVkIikKKyAgKGNvbXBsZXRp b24tYXQtcG9pbnQpCisgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgKHNob3VsZCAobG9va2luZy1h dC1wICJmcm9tIGRhdGV0aW1lIGltcG9ydCB0aW1lZGVsdGEiKSkKKyAgKGtpbGwtbGluZSkpCisK KyhkZWZ1biBweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycyAoKQorICAiQ2hlY2sg aWYgcGFyYW1ldGVycyBjYW4gYmUgY29tcGxldGVkIGluIFB5dGhvbiBzaGVsbC4iCisgIChpbnNl cnQgImltcG9ydCByZSIpCisgIChjb21pbnQtc2VuZC1pbnB1dCkKKyAgKHB5dGhvbi10ZXN0cy1z aGVsbC13YWl0LWZvci1wcm9tcHQpCisgIChpbnNlcnQgInJlLnNwbGl0KCdiJywgJ2FiYycsIG1h eHMiKQorICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgKHNob3VsZCAoc3RyaW5nPSAicmUuc3Bs aXQoJ2InLCAnYWJjJywgbWF4c3BsaXQ9IgorICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vi c3RyaW5nIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKHBvaW50KSkpKQorICAoaW5zZXJ0ICIw LCAiKQorICAoc2hvdWxkIChweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCkpCisgIDs7 IFRlc3QgaWYgY2FjaGUgaXMgdXNlZC4KKyAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdw eXRob24tc2hlbGwtY29tcGxldGlvbi1nZXQtY29tcGxldGlvbnMpCisgICAgICAgICAgICAgJ2ln bm9yZSkKKyAgICAgICAgICAgICgoc3ltYm9sLWZ1bmN0aW9uICdweXRob24tc2hlbGwtY29tcGxl dGlvbi1uYXRpdmUtZ2V0LWNvbXBsZXRpb25zKQorICAgICAgICAgICAgICdpZ25vcmUpKQorICAg IChpbnNlcnQgImZsYSIpCisgICAgKGNvbXBsZXRpb24tYXQtcG9pbnQpCisgICAgKHNob3VsZCAo c3RyaW5nPSAicmUuc3BsaXQoJ2InLCAnYWJjJywgbWF4c3BsaXQ9MCwgZmxhZ3M9IgorICAgICAg ICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9u KSAocG9pbnQpKSkpKQorICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgIChraWxsLWxpbmUpKQorCiso ZGVmdW4gcHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQgKCkKKyAgIkNoZWNr IGlmIGV4dHJhIGNvbnRleHQgaXMgdXNlZCBmb3IgY29tcGxldGlvbi4iCisgIChpbnNlcnQgInJl LnNwbGl0KCdiJywgJ2FiYycsIikKKyAgKGNvbWludC1zZW5kLWlucHV0KQorICAocHl0aG9uLXRl c3RzLXNoZWxsLXdhaXQtZm9yLXByb21wdCkKKyAgKGluc2VydCAibWF4cyIpCisgIChjb21wbGV0 aW9uLWF0LXBvaW50KQorICAoc2hvdWxkIChzdHJpbmc9ICJtYXhzcGxpdD0iCisgICAgICAgICAg ICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9p bnQpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQt amVkaS1jb21wbGV0ZXIgKCkKKyAgIkNoZWNrIGlmIFB5dGhvbiBzaGVsbCBjb21wbGV0aW9uIHdv cmtzIHdpdGggSmVkaS4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kIHB5dGhvbi10 ZXN0cy1zaGVsbC1pbnRlcnByZXRlcikpCisgIChweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZl ci13aXRoLXNoZWxsCisgICAiIgorICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgor ICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCisgICAgIChza2lw LXVubGVzcyAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyAi IikpCisgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tbW9kdWxlKQorICAgICAocHl0aG9u LXRlc3RzLS1jb21wbGV0aW9uLXBhcmFtZXRlcnMpCisgICAgIChweXRob24tdGVzdHMtLWNvbXBs ZXRpb24tZXh0cmEtY29udGV4dCkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi1zaGVsbC1jb21w bGV0aW9uLWF0LXBvaW50LWlweXRob24gKCkKKyAgIkNoZWNrIGlmIFB5dGhvbiBzaGVsbCBjb21w bGV0aW9uIHdvcmtzIGZvciBJUHl0aG9uLiIKKyAgKGxldCAoKHB5dGhvbi1zaGVsbC1pbnRlcnBy ZXRlciAiaXB5dGhvbiIpCisgICAgICAgIChweXRob24tc2hlbGwtaW50ZXJwcmV0ZXItYXJncyAi LWkgLS1zaW1wbGUtcHJvbXB0IikpCisgICAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQg cHl0aG9uLXNoZWxsLWludGVycHJldGVyKSkKKyAgICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1i dWZmZXItd2l0aC1zaGVsbAorICAgICAiIgorICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwt YnVmZmVyCisgICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9mZikK KyAgICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSkKKyAgICAgICAocHl0aG9u LXRlc3RzLS1jb21wbGV0aW9uLXBhcmFtZXRlcnMpCisgICAgICAgKHB5dGhvbi1zaGVsbC1jb21w bGV0aW9uLW5hdGl2ZS10dXJuLW9uKQorICAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24t bW9kdWxlKQorICAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycykKKyAg ICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQpKSkpKQogCiAMCiA7 OzsgUERCIFRyYWNrIGludGVncmF0aW9uCi0tIAoyLjI1LjEKCg== --000000000000ba4f8b060fd68849-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 28 08:22:31 2024 Received: (at 68559) by debbugs.gnu.org; 28 Jan 2024 13:22:31 +0000 Received: from localhost ([127.0.0.1]:56847 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rU57H-0004cW-1p for submit@debbugs.gnu.org; Sun, 28 Jan 2024 08:22:31 -0500 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]:51493) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rU57C-0004cF-SX for 68559@debbugs.gnu.org; Sun, 28 Jan 2024 08:22:29 -0500 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-6dd8cba736aso1329464a34.3 for <68559@debbugs.gnu.org>; Sun, 28 Jan 2024 05:22:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706448133; x=1707052933; darn=debbugs.gnu.org; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=6kXrcNUysodIwW039+pBaWtH/nLhLyQFGEsxVLbZuW8=; b=gkVH3sQIFzNjlUqxI/oPfulGuFrls8WjKxDumT8xTdKWEWbmo5uRJ+GkHgt++H+Yg4 jXyVhiKXN/qXp9js5CF2uwHDZnKoW32zHZiwvsyFbi8X8fN/VtBQuEqPaQIbFd5AE+fr RngJje8nHz8fVuFXLno19RBeqIixYo/ACHu8vLywWTRzgMhAwaH26kalqIWLFXdRCuWe PJyVth78lDUP6sggP4UzlyY69v2eCeRYw/LOWgYelRd488lOJSEZZXNlktSKFsnj8Err UE1Sh7UFRnFOhYNFMuJ50JoJPNZLCJ6pPZUz09u0sDKyjnU20aqNvb2B805cCvdxZrAG rR3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706448133; x=1707052933; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=6kXrcNUysodIwW039+pBaWtH/nLhLyQFGEsxVLbZuW8=; b=IXt71VrFbotnyIbs0hiwxlk/OPpJ0gQo3vYw2oXXWUC6ei/jf8Hd0oI5Wqk7i1jefn 1XQEN90H6EmBYT20n6QVDH1Nr5e6oAA5q2baas6I+a5MRwSV7lvyj4+FzeBqktfOoxFN QAFzLnYSW9Sgp+wKt5KJwul1o3jUsqtiTnDPrnby5Wpq7/fBneoQnNG7yFP0imfcpiSa ZtsnWcH25gek6s73AJk5lBZx4EVfOi24khjkdjSYSJrndq0j2CPJf4bOEkQ0oO030iRM kcYKVYJQQ5p0/VUZqh3n3m6GzHAlYQRWE006yMUzN+G3g2y4yq4MGFFfxHep4tB7Rxkm GTiA== X-Gm-Message-State: AOJu0YwHJqBswvHLUfSvTonSkSceZlyvnHoImvfr6g5+N+jyUPiUtPGq oCx3RX5J1kxjzEa+dJc6eRq80xjUzBTb6twWL/rzHpNDxJUl9twH X-Google-Smtp-Source: AGHT+IEGGlWq0nREa4EcEksmUd9R4/keOeU/TmyAgUSCTP+52qSB3ZuYS4ihh4EtfytvuMap4pnvNw== X-Received: by 2002:a05:6359:4c10:b0:178:68c4:5c2f with SMTP id kj16-20020a0563594c1000b0017868c45c2fmr270955rwc.50.1706448133102; Sun, 28 Jan 2024 05:22:13 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id y5-20020a17090a8b0500b002904cba0ffbsm6290066pjn.32.2024.01.28.05.22.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jan 2024 05:22:12 -0800 (PST) Date: Sun, 28 Jan 2024 22:22:11 +0900 Message-ID: From: kobarity To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: References: <83zfx39mcy.fsf@gnu.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-2022-JP X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Liu Hui wrote: > kobarity $BP2(B2024$BG/(B1$B7n(B25$BF|<~;M(B 23:38$B > 1. Module names cannot be completed in Python buffer. > Can you elaborate? The completion of module names never worked for me > except using IPython with non-native completion mechanism. > > Because module names cannot be completed using vanilla python > interpreter in the terminal, they are also not completed even with the > patch, unless jedi is available. Hmm, I must have done something wrong. I cannot reproduce the problem of module name completion even with the previous patch. As for the current python-mode, I was able to complete the module names because I enabled Jedi in PYTHONSTARTUP. Sorry for the confusion. I'm experiencing strange behavior regarding completion of import statement in a block in Python buffer. If I try to type the following lines and then try to complete it, it will fail. #+begin_src python try: im #+end_src However, when I try to complete at the beginning of the second line: #+begin_src python try: #+end_src "import" keyword also appears as a candidate. If I cancel the candidates and type "im" and try to complete it, it will succeed. This behavior does not occur in Python Shell buffer. Another thing I noticed is the multi-line import statement. If the import statement is one-line, each items (IGNORECASE and MULTILINE in the example below) can be completed. #+begin_src python from re import IGNORECASE, MULTILINE #+end_src However, they cannot be completed if the import statement spans multi-line. #+begin_src python from re import ( IGN #+end_src This happens in both Python buffer and Python Shell buffer. Perhaps this is a limitation of Jedi completer? > > 2. Completion is not working in comments. > > > > I'm not sure if the completion should work in comments, but some > > people might want it because the current python-mode allows it in both > > Python buffer and Python Shell buffer. > > Thanks for pointing it out. The attached patch should now restore > previous basic completion behavior in comments. Thanks, I confirmed that basic completion (without keyword argument completion) can be performed within comments. From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 29 08:15:37 2024 Received: (at 68559) by debbugs.gnu.org; 29 Jan 2024 13:15:37 +0000 Received: from localhost ([127.0.0.1]:59270 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rURU9-00039a-5M for submit@debbugs.gnu.org; Mon, 29 Jan 2024 08:15:37 -0500 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]:53696) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rURU6-00039K-Ny for 68559@debbugs.gnu.org; Mon, 29 Jan 2024 08:15:35 -0500 Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-5cdbc4334edso1143185a12.3 for <68559@debbugs.gnu.org>; Mon, 29 Jan 2024 05:15:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706534120; x=1707138920; darn=debbugs.gnu.org; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=SFe0VE1P0R830HmXAsCFcjhexR5OOVkfcAcsu4CkfxU=; b=Nm7Tneg7vT1ZU/nBblKvcsS/DehafWYAWpUH9N1NpoIMkux1g7vfvi0RAgacCTpmmf Ev0bcxEb28hK9x5hpZ/WPg8qopoMQB+8Lon3u8HEXuB9QdJrDC/RsTbS9aQrfhPNRrxZ JPCTeMIQ1vnMaLKkA3/13YbfhvYPP//XX3qyl4MWtVQz0V9ffxmqHr/+0cS2a4kilbJE yC4UnRrkA+4boOJsWU2Tz4fitPrmzFbMLEACOC2tNpr/a6hgpGBnHV7edOKxxLs2jjHE X/0FrQ+TF7yorp4+RwPbx7CyBX38kymMknUTMUnh7FibgmgD8fpsCho/j3B5ZeI31F1k mVIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706534120; x=1707138920; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=SFe0VE1P0R830HmXAsCFcjhexR5OOVkfcAcsu4CkfxU=; b=TVDNagymJd7LBxxloJmyYEEisU3nyT/twflrWxZsN4ctYG8Hq81fMLVEB7FMEMDpoI 0U9pVTQgv/OaZ7x2ssUYCELUZ5XwCdhu1mjiOm3YqFu/C3DDcFOSDw5JDl+XOKA1K9/d ixi93vQ1w180FFXm82y8eK9hMcLpCoVKSTCvkV9l7J3Upmtjfw2hO7Sk1kDh65fmIx9K Xi1tTXoWXCyTXETM5+0T0bUoYHSS+SSPWOWkgf6+4zyL7w8LJZ68hBeel6pGvVVmEdUx 0HWGFQs72K7BC4ShzVdnCinCh14BBlBg2/PVdJIJA40pcDZeXKOtHVCez6uQRCJkaTCC 85BA== X-Gm-Message-State: AOJu0Yw5laDN7fwKqpMWVqrCgp+CzzlRfCuw0Yw/T8sCE+kFfUxM4Ekk oOLAWYaX9Qe5IaZJ853B8E6tW1YGHO+XO++vu/uXY4+8FQuHUlf5 X-Google-Smtp-Source: AGHT+IG4ASC7j7jb2hydd5bftif3Hn7ejim6wNDyxJfjHy8Wz6oc5mnU4AZ08d/QqtywMd8xQCGLPQ== X-Received: by 2002:a17:90a:1307:b0:293:ff02:664d with SMTP id h7-20020a17090a130700b00293ff02664dmr1972583pja.4.1706534120227; Mon, 29 Jan 2024 05:15:20 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id d15-20020a17090a498f00b00291000d8210sm8032683pjh.19.2024.01.29.05.15.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jan 2024 05:15:19 -0800 (PST) Date: Mon, 29 Jan 2024 22:15:20 +0900 Message-ID: From: kobarity To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: References: <83zfx39mcy.fsf@gnu.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) kobarity wrote: > Liu Hui wrote: > > Thanks for pointing it out. The attached patch should now restore > > previous basic completion behavior in comments. > > Thanks, I confirmed that basic completion (without keyword argument > completion) can be performed within comments. One additional comment regarding ERT. pyenv installs an ipython shim to the shims directory, if there is at least one virtualenv providing ipython. It can be found by `executable-find'. However, it is not usable unless the virtualenv is activated. As a result, the `python-shell-completion-at-point-ipython' ERT would fail unless a virtualenv which provides ipython is activated. This may be something pyenv users should take care of, but it is more convenient for pyenv users like me to make the following changes. diff --git a/test/lisp/progmodes/python-tests.el b/test/lisp/progmodes/python-tests.el index ae23ff8ebe2..9452f136cfb 100644 --- a/test/lisp/progmodes/python-tests.el +++ b/test/lisp/progmodes/python-tests.el @@ -4854,7 +4854,10 @@ python-shell-completion-at-point-ipython "Check if Python shell completion works for IPython." (let ((python-shell-interpreter "ipython") (python-shell-interpreter-args "-i --simple-prompt")) - (skip-unless (executable-find python-shell-interpreter)) + (skip-unless + (and + (executable-find python-shell-interpreter) + (eql (call-process python-shell-interpreter nil nil nil "--version") 0))) (python-tests-with-temp-buffer-with-shell "" (python-shell-with-shell-buffer From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 29 19:44:09 2024 Received: (at control) by debbugs.gnu.org; 30 Jan 2024 00:44:09 +0000 Received: from localhost ([127.0.0.1]:34018 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rUcET-0005yo-CQ for submit@debbugs.gnu.org; Mon, 29 Jan 2024 19:44:09 -0500 Received: from mail-lj1-x22d.google.com ([2a00:1450:4864:20::22d]:48563) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rUcER-0005xd-Lx for control@debbugs.gnu.org; Mon, 29 Jan 2024 19:44:08 -0500 Received: by mail-lj1-x22d.google.com with SMTP id 38308e7fff4ca-2d0512f6e32so13913221fa.1 for ; Mon, 29 Jan 2024 16:43:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706575433; x=1707180233; darn=debbugs.gnu.org; h=to:subject:message-id:date:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=urv+Uzcx/owkZ7JCR3I8oDkF+RCe9EFdqlzeBRQFCDI=; b=i6i9p3NCcSWKrDfaHfvcegnzVuQHdmfEfnDbHGC8SgcFTLLoN79YZA2ySpOIrO4ygG NMcfl0KvCQs0ouZDz7n06hWnpmg9U1XjLZ+uOx2H+1roI8wySEyzuUOfr0MVgbUOsBle t2UYxeSk+7utVf3jcPBk5TWElah3Aok11J5MKtJ0/koWcQ8WkYN1DJlpMibIvBqeuDI+ WpH2pn4X2NQrHnxq5qf8qqFooQNUSf+EvUktyd76M4e4zDCsa54Z0Vq7i8oCU4B7dScA lNzBDFInmnBWA7BqgAL4IJccyVZJ4WBXXFpoyK+48dDvomAkInTuenOHBUe1sUKchMNw Xo5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706575433; x=1707180233; h=to:subject:message-id:date:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=urv+Uzcx/owkZ7JCR3I8oDkF+RCe9EFdqlzeBRQFCDI=; b=t/dvP/EzePZXS7HTcU/QRzXE60DVP1SupcdPgE8c2WO0GB2iGrbquhO5A6y32UyECV 0ZDJs2y2vTI6VdEMvHarNu9QffcHqCmCLqi8Myn++4jhI5gKZUmkDbWMgFLrCwQZyxFV UFJnYaE68dbvcLPVTOgHNXXrB2biC6xr9Gb75W9agjSV1BKUQIIa23TgMk6m2KYPm+16 KCOvcZPFksFuO99hyZFQlzNcf1pYt9lJAYkTxiKA1XdrA5/GkeE5CrKnJbzpFg96n+ji qLbDDB5+/YXufTHl2iappJVV2ZFtQyljWRJkV2WU9RTL3iRGoCaqdHHbiYVTtziE/1S2 VHvQ== X-Gm-Message-State: AOJu0Yw83vBRAeMh8xwAEk4M6ZNydwuuqglUuJN35yPeIc5vwafzFFtM /tYdS7eKiFtDtr4mKUOsXoM04O7KfAv1+fq9lkffZmi1MjLZ7i5fVXMyN4OPM6adZT+S/Qwduu7 J2wXx7p+luP2KZa8YVN1khlb2hTXWTYWixNc= X-Google-Smtp-Source: AGHT+IGdalAOH+LQ/w1/w6MOZCBjjGlBm7fO7PldHVR1VS+OWZYA3Vii7vKPQ20oOIy6hVTEKekRAH6Zb9uMwSbBsLU= X-Received: by 2002:a2e:a99a:0:b0:2cf:4199:d513 with SMTP id x26-20020a2ea99a000000b002cf4199d513mr6046324ljq.5.1706575433088; Mon, 29 Jan 2024 16:43:53 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 29 Jan 2024 19:43:52 -0500 From: Stefan Kangas MIME-Version: 1.0 Date: Mon, 29 Jan 2024 19:43:52 -0500 Message-ID: Subject: control message for bug #68559 To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) severity 68559 wishlist quit From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 01 04:52:41 2024 Received: (at 68559) by debbugs.gnu.org; 1 Feb 2024 09:52:41 +0000 Received: from localhost ([127.0.0.1]:40245 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rVTkP-00052u-FJ for submit@debbugs.gnu.org; Thu, 01 Feb 2024 04:52:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52132) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rVTkO-00052j-Cs for 68559@debbugs.gnu.org; Thu, 01 Feb 2024 04:52:40 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rVTk8-00059s-Bb; Thu, 01 Feb 2024 04:52:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=TWg0LufrM05is+QL3gzY8P8w/Is5HlzfyyCQKLbdzig=; b=hdEBVUk2oFL2 3aAnZYHnbr1vsQBNrslb4t9xO9pweQvJWTjkV+1R+bu+Iz3OoMEm6KAUvST+7lPP5+E10Vjs1KT/N 8qONbUyRodpwkmgO4xrzJesbCVdvXTsbIr/BGNL1wnyRbAVy9RS3ZuIX6MbywGn2Zk9jTRT0jsWYE uESwAFSoNpw/1HJxoIiT+2Ym7kD6x3sdV6Q8i/CYLMdvLttWNmVShjtXhYynXcOLjP4Se+JQYoMpG +GtYKmTeBHEnwvHCjDNpMgkIVQclkQlW6K8h4l0S97s+qQy188bvbP3Sjztxyud7HSKDK7l5DWRI2 nyvFU6TPR9bthxYSiW4fOA==; Date: Thu, 01 Feb 2024 11:52:19 +0200 Message-Id: <865xz81pgs.fsf@gnu.org> From: Eli Zaretskii To: kobarity In-Reply-To: (message from kobarity on Mon, 29 Jan 2024 22:15:20 +0900) Subject: Re: bug#68559: [PATCH] Improve Python shell completion References: <83zfx39mcy.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 68559 Cc: liuhui1610@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Mon, 29 Jan 2024 22:15:20 +0900 > From: kobarity > Cc: Eli Zaretskii , > 68559@debbugs.gnu.org > > kobarity wrote: > > Liu Hui wrote: > > > Thanks for pointing it out. The attached patch should now restore > > > previous basic completion behavior in comments. > > > > Thanks, I confirmed that basic completion (without keyword argument > > completion) can be performed within comments. > > One additional comment regarding ERT. pyenv installs an ipython shim > to the shims directory, if there is at least one virtualenv providing > ipython. It can be found by `executable-find'. However, it is not > usable unless the virtualenv is activated. As a result, the > `python-shell-completion-at-point-ipython' ERT would fail unless a > virtualenv which provides ipython is activated. > > This may be something pyenv users should take care of, but it is more > convenient for pyenv users like me to make the following changes. Do we have a consensus about this issue? Should I install the original patch, or are you still discussing it, and an updated patch will be posted soon? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 01 09:40:23 2024 Received: (at 68559) by debbugs.gnu.org; 1 Feb 2024 14:40:23 +0000 Received: from localhost ([127.0.0.1]:40712 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rVYEp-00057K-5Y for submit@debbugs.gnu.org; Thu, 01 Feb 2024 09:40:23 -0500 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]:44319) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rVYEm-000575-P6 for 68559@debbugs.gnu.org; Thu, 01 Feb 2024 09:40:21 -0500 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1d932f6ccfaso7848915ad.1 for <68559@debbugs.gnu.org>; Thu, 01 Feb 2024 06:40:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706798405; x=1707403205; darn=debbugs.gnu.org; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=+bp1dmsftqDTDcRStwEPfUxisyviyELLaHTQvhO4gEk=; b=MQptbmhCwGY/h1HEDH5BwBmoFWbaevVN0L0rU8GIitNg5q2xxJyHcwaqCgvDViWK/e RoHhXfmTX0q97wZyNfwPTMGgDyQYXnS/LEtjGBRO74dkpOG1QrxQ8BJTe4j1LxYKzPPK FMWpAh4pBKmtwi4TchuY1o51zWbb08R2iQma6+AY85PnklVZhHEAwTFF/mEz38Y9vcqC aHyEIsCkW/3sbU4Gz/lwrXQx8g1t+jjCP47F6eJr+O37PlGxZALbjXQk2s7GCo1joXmx e6PYVGbtl/YLnEjo38X0i8d+gzj9embQH6dudEMqxmUrmj+DMSbRmr0izOHr6cPmi6ql vbqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706798405; x=1707403205; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=+bp1dmsftqDTDcRStwEPfUxisyviyELLaHTQvhO4gEk=; b=OX18+nEvZIABtMQGMPPn30THN5tAP0Y+HCSBIVTMsoOvDA7ZXZShiQojJqUC3amZQG SqMPxzGSJfuFHgEMFThK8L4pXDdmmNH7BTKXx7c8mMi0SDl93Y2TfhDKT+64fCqGbgYg ZZLTCddjf2HrC/qT0/E+3lyqDaEvaulNFCV/a5nLiTJ4eomVP1Qxaw3pNw11cwD+huh8 5nXqFIem8M/fz3WNnvkQscRXP7FrqGm5tslA4eRzZFlzxsDFEobeuItG1CAkG6RUeBlE EaZt55imTSWL3ThYylLn0OrDyy94SO89cmAxQOTinBnimiIR0A75exwpvVHzjbRgeHpv /AVw== X-Gm-Message-State: AOJu0YzUgmvUg2sGH0ZAghR6wugbdNLcLr0XJHrBT1s2k61FPgiJdCTq dB9KW6ndQmLrTLeMVcoQUNNI/lQ41BNqvmrIiYKqWOvvgDf1sflK X-Google-Smtp-Source: AGHT+IH5mSTqJWjkU59tIdB6EqvTyTOOqCBJ0q9i77VC4tmnz0MsqKttwxGsNrLmGx2nkZLoJeecqA== X-Received: by 2002:a17:90a:8682:b0:296:e93:cdc with SMTP id p2-20020a17090a868200b002960e930cdcmr2130825pjn.16.1706798404693; Thu, 01 Feb 2024 06:40:04 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCXmFbobpGEG/iBguV3k3Fama3ySrY7Ysenv6FzOr9SxSvatA/ilhISgIgQEhkxReCELk6oCkRM644NS4/6tzAA+N8Uhdwc= Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id db16-20020a17090ad65000b0029608793122sm1931767pjb.20.2024.02.01.06.40.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Feb 2024 06:40:04 -0800 (PST) Date: Thu, 01 Feb 2024 23:39:58 +0900 Message-ID: From: kobarity To: Eli Zaretskii Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: <865xz81pgs.fsf@gnu.org> References: <83zfx39mcy.fsf@gnu.org> <865xz81pgs.fsf@gnu.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: liuhui1610@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii wrote: > > Date: Mon, 29 Jan 2024 22:15:20 +0900 > > From: kobarity > > Cc: Eli Zaretskii , > > 68559@debbugs.gnu.org > > > > kobarity wrote: > > > Liu Hui wrote: > > > > Thanks for pointing it out. The attached patch should now restore > > > > previous basic completion behavior in comments. > > > > > > Thanks, I confirmed that basic completion (without keyword argument > > > completion) can be performed within comments. > > > > One additional comment regarding ERT. pyenv installs an ipython shim > > to the shims directory, if there is at least one virtualenv providing > > ipython. It can be found by `executable-find'. However, it is not > > usable unless the virtualenv is activated. As a result, the > > `python-shell-completion-at-point-ipython' ERT would fail unless a > > virtualenv which provides ipython is activated. > > > > This may be something pyenv users should take care of, but it is more > > convenient for pyenv users like me to make the following changes. > > Do we have a consensus about this issue? Should I install the > original patch, or are you still discussing it, and an updated patch > will be posted soon? > > Thanks. Although I think there are a few things left unanswered, the latest patch sent on Jan 26th is very worthwhile and stable enough to be installed. So, unless Liu is preparing a new patch, I agree that the latest patch should be installed. That way more people can try it and find the problem, if any. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 01 10:03:10 2024 Received: (at 68559) by debbugs.gnu.org; 1 Feb 2024 15:03:10 +0000 Received: from localhost ([127.0.0.1]:42994 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rVYas-0006Xj-Cy for submit@debbugs.gnu.org; Thu, 01 Feb 2024 10:03:10 -0500 Received: from mail-oi1-x22b.google.com ([2607:f8b0:4864:20::22b]:57700) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rVYao-0006X7-4D for 68559@debbugs.gnu.org; Thu, 01 Feb 2024 10:03:09 -0500 Received: by mail-oi1-x22b.google.com with SMTP id 5614622812f47-3bbb4806f67so693315b6e.3 for <68559@debbugs.gnu.org>; Thu, 01 Feb 2024 07:02:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706799770; x=1707404570; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=bTON14GXrAJHqd7OOn353+MC+B+j8SzFxJrYzZfcQeA=; b=KCBkauau4zgrjQvSCzM7Ifxg7ugICCe1Z2Qwa1LqQBa9aoDzwBFMqLV2/ppi1lDXhZ pGsv481oPqVMxeU7HgNjPUtUeKqcff2An6r4Xxx2W7mM21DzMQsb2AMiFV5muHYL7e0u luuq5YUHaSUZ73LMeMISscZ6ogXhAyyEaZGu+7eK9TemGJZPgWFQz3gW0H0lT1UyVYis S0Pf9khCpLPhVrZ1tUq0L44iNd2tEykEVpWlaf92Uc6Kagwyg/qRDNANrAsGN8phd4X0 LtGpiae2Trc6uq0bRyHTGy5Dh+qSdp0YxnAfWOHOTFyo62mFsJosywRSXmIVHuOm+IRd gidw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706799770; x=1707404570; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bTON14GXrAJHqd7OOn353+MC+B+j8SzFxJrYzZfcQeA=; b=ls1ikn57Apf8UJfKLFtZQc6ehrLYrlHMsHBGh37yloi1JEZ1WPasbgE/nuStUk4oV+ QiSjigEesyLMc2tPARpvLEf1MKcMwkBMfeWKlSt3h8CRe8QKRbI7YdwQE2BnNGrQ3zlw BnU0CjEeJ7mYdBsHSmpKyPDJ29hsqpkhB/W4E5Rrgksx/PvyrlteoYq0bNMHv/4ZpsPQ TMsdH8vvwItSlFDVGZoW6h4E5/KdtDvDNsWWerbX9E8ZpQWa/QhxgEs2asdRuwEOyR8E QELgEDrUjwZIHZ2ebJEm2Ki/jFwvB6XZKwRkX21fx1sHJ5/VHBP7n6536H5WV9IUs7mD OACg== X-Gm-Message-State: AOJu0YxEnp0B5kmXxJbWWwzNneOMG1m/vm8tuPLVvUQFcseYuaQnXbtr L3CliSLb+8A/toBOhbq1pmNQ2ObEZofCHy8ek6OLCYI7KatOsICJnNUpsKgPYUUVRGKX3jP7LUu r93Ttw1vMv62UOtjIaarurV60Zjw= X-Google-Smtp-Source: AGHT+IEesImz0sYttAepMGH8EEg2Y8UWvF3CD+6bEcMRRPdgcHrM4N2FnfA2tzGutTWaw8Rx4UhoxhJALOWaNKoDDOo= X-Received: by 2002:a05:6808:1205:b0:3bd:4d55:6004 with SMTP id a5-20020a056808120500b003bd4d556004mr4878299oil.47.1706799770251; Thu, 01 Feb 2024 07:02:50 -0800 (PST) MIME-Version: 1.0 References: <83zfx39mcy.fsf@gnu.org> <865xz81pgs.fsf@gnu.org> In-Reply-To: From: Liu Hui Date: Thu, 1 Feb 2024 23:02:38 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: kobarity Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) kobarity =E4=BA=8E2024=E5=B9=B42=E6=9C=881=E6=97=A5=E5= =91=A8=E5=9B=9B 22:40=E5=86=99=E9=81=93=EF=BC=9A > > Eli Zaretskii wrote: > > Do we have a consensus about this issue? Should I install the > > original patch, or are you still discussing it, and an updated patch > > will be posted soon? > > > > Thanks. > > Although I think there are a few things left unanswered, the latest > patch sent on Jan 26th is very worthwhile and stable enough to be > installed. So, unless Liu is preparing a new patch, I agree that the > latest patch should be installed. That way more people can try it and > find the problem, if any. Sorry for the late reply. Recent events have occupied all my time. I plan to update the patch in the next day or two to address remaining concerns. From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 04 07:10:15 2024 Received: (at 68559) by debbugs.gnu.org; 4 Feb 2024 12:10:15 +0000 Received: from localhost ([127.0.0.1]:48269 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rWbK9-0003OG-K9 for submit@debbugs.gnu.org; Sun, 04 Feb 2024 07:10:15 -0500 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]:54685) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rWbK5-0003Nx-MJ for 68559@debbugs.gnu.org; Sun, 04 Feb 2024 07:10:11 -0500 Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-517ab9a4a13so3503149a12.1 for <68559@debbugs.gnu.org>; Sun, 04 Feb 2024 04:09:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707048592; x=1707653392; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from :references:from:to:cc:subject:date:message-id:reply-to; bh=hKGCWl1espj2PlrlgPWszEgn2NKLDU6YKMrBzd3U89Y=; b=WH9r43hbWd7AQhYrdiTS/XHRNEEmvUddE1BSK8uWEs9KM4pOy4pTndnvnnwGgG3nJs 3PQuTrPja8uIiuhrRJkRo7G4VkR+vy7+4NNp68dnHqdVNSPLRETGkbX7kAkh2lJDGWkB 5js5Hhrq3mFXjjj8hrHEjZzGKPbxqmn/w0NlFXAlace6GX5ddlvjO5LkbKf1ouI9RC8y E7yUL20J6xkWvlrDe2jYTCi2/yE9rpd4jJ0ha8SOQkkuOsAKvx7AVMVBAV9B24+/69hP /nWko2En8WBcJg0RJ0jl+et/7U/vz+7TJyteKd8ufSrS0/BtEa+6Qcv7qitNtmX9O2Xi O7mA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707048592; x=1707653392; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from :references:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hKGCWl1espj2PlrlgPWszEgn2NKLDU6YKMrBzd3U89Y=; b=ecRBuWOZRvbj0/Xio1x/HS6u6rcyKznPaHkDQwWmpv7nKvgkvy82/3MA0JVvJ830HY oXfMROW80as8chubxnVC3Z4IvyFphilXdJPRWf+B/l9DgUVTVRtWNojTS1WbhDGpFHdf aH4wPsqH6+rXKD98ZGJvn4UqurI2NsqBja8A4ud1mCwip3c5XmrFMN5CqXnqegA9TTgc 1n90dS21BA5ghZ8kH63k9Mmb+rChRTrtcF3RUs4+P6C6SIH5lCJqE2l3SKfdv0QtlbKX FeS6p4yqMIiw0NkBsiME0T/Sg7c8lbWtyx8iTbtl0iUTL0O1kATTbBtafm2Er2tgAIr6 kp5g== X-Gm-Message-State: AOJu0Yz+gnpAZIk+6PFeRijDaAlxwkP9EAn9q12c5Rvhm5QsuQBEiyCb kqIDykpOwiTeW6e8r8SJSrMMK5rAVW6r1Ps/VJR8SeUU8Ph5UEYm7OGCuLhi19s= X-Google-Smtp-Source: AGHT+IFoPhsfzfS6lONDUsSlRHCErF+uDeOaMOk28865pkkYpNdR0OIYjJbsKriBv7fKYnVjyWzLVQ== X-Received: by 2002:a05:6a20:9c8d:b0:19e:4a68:46d0 with SMTP id mj13-20020a056a209c8d00b0019e4a6846d0mr8538728pzb.60.1707048591664; Sun, 04 Feb 2024 04:09:51 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCVhpeW+ZBFJN2WuWioF+dLqO1JqAX92H3SIVYH3UmRipaHAzAQQuWIUcSmmh9CTN6TKCFNGIm74HfXij4V3ecqyimh4zoU= Received: from laptop ([112.36.174.104]) by smtp.gmail.com with ESMTPSA id ei29-20020a056a0080dd00b006dfebfd0481sm4745974pfb.7.2024.02.04.04.09.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 04 Feb 2024 04:09:51 -0800 (PST) References: <83zfx39mcy.fsf@gnu.org> From: Liu Hui To: kobarity Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-reply-to: Date: Sun, 04 Feb 2024 20:09:42 +0800 Message-ID: <87a5og8m7t.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain kobarity writes: > I'm experiencing strange behavior regarding completion of import > statement in a block in Python buffer. If I try to type the following > lines and then try to complete it, it will fail. > > #+begin_src python > try: > im > #+end_src The problem can be reproduced by running python with jedi completer in a terminal. The reason is that readline completer can only see the text in the current line, i.e. " im"; in this case, jedi does not complete the text to " import". Similarly, the jedi completer cannot complete "except" after ex: try: pass ex| > However, when I try to complete at the beginning of the second line: > > #+begin_src python > try: > > #+end_src > > > "import" keyword also appears as a candidate. If I cancel the > candidates and type "im" and try to complete it, it will succeed. It is because jedi produces completions including " import" for blank string " ". Due to the same prefix between " " and " im", completion cache is reused for the latter. Then " import" can be completed. It is more a limitation of readline completer than a problem with jedi, as we cannot provide proper completion context for jedi. We may define a custom completer to combine jedi and rlcompleter, e.g. (setq python-shell-readline-completer " def __PYTHON_EL_setup_readline_completer(): import readline, rlcompleter import re, sys, os, __main__ from jedi import Interpreter class MyJediRL: def __init__(self): self.rlcompleter = rlcompleter.Completer() self.rldelim = readline.get_completer_delims() def complete(self, text, state): if state == 0: sys.path.insert(0, os.getcwd()) try: interpreter = Interpreter(text, [__main__.__dict__]) completions = interpreter.complete(fuzzy=False) self.matches = [ text[:len(text) - c._like_name_length] + c.name_with_symbols for c in completions ] # try rlcompleter sub = re.split('[' + re.escape(self.rldelim) + ']', text)[-1] i = 0 while True: completion = self.rlcompleter.complete(sub, i) if not completion: break i += 1 completion = text[:len(text)-len(sub)] + completion.rstrip(' ()') if completion not in self.matches: self.matches.append(completion) except: raise finally: sys.path.pop(0) try: return self.matches[state] except IndexError: return None readline.set_completer(MyJediRL().complete) readline.set_completer_delims('')") > Another thing I noticed is the multi-line import statement. If the > import statement is one-line, each items (IGNORECASE and MULTILINE in > the example below) can be completed. > > #+begin_src python > from re import IGNORECASE, MULTILINE > #+end_src > > > However, they cannot be completed if the import statement spans > multi-line. > > #+begin_src python > from re import ( > IGN > #+end_src > > This happens in both Python buffer and Python Shell buffer. Perhaps > this is a limitation of Jedi completer? Yes. Because readline completer cannot see cross-line context, I added the function "python-shell-completion-extra-context" in previous patch to address the case of multi-line function call. I have updated the attached patch to handle multi-line import statement. The change to python-tests.el has been incorporated in the patch. Thanks! --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Improve-Python-shell-completion-bug-68559.patch >From a5da22803e967bc7df5f227a49bb81ce44fdf204 Mon Sep 17 00:00:00 2001 From: Liu Hui Date: Thu, 18 Jan 2024 12:00:00 +0800 Subject: [PATCH] Improve Python shell completion (bug#68559) * lisp/progmodes/python.el (python-shell-completion-setup-code): Fix the completion code of IPython. Change the return value to JSON string and ... (python-shell-completion-get-completions): ... simplify parsing. (inferior-python-mode): Update docstring. (python-shell-readline-completer): New option. (python-shell-readline-completer-delims): New variable indicating the word delimiters of readline completer. (python-shell--readline-jedi-setup-code) (python-shell--readline-ipython-setup-code): New internal variables. (python-shell-completion-native-setup): Setup a suitable readline completer and set the completer delimiter. (python-shell-completion-native-get-completions): Convert output string to completions properly. (python-shell--get-multiline-input) (python-shell--extra-completion-context) (python-shell-completion-extra-context): New functions. (python-shell-completion-at-point): Send text beginning from the line start if the completion backend does not need word splitting. Remove the detection of import statement because it is not needed anymore. Create proper completion table based on completions returned from different backends. * test/lisp/progmodes/python-tests.el (python-tests--completion-module) (python-tests--completion-parameters) (python-tests--completion-extra-context): New helper functions. (python-shell-completion-at-point-jedi-completer) (python-shell-completion-at-point-ipython): New tests. * etc/NEWS: Announce the change. --- etc/NEWS | 6 + lisp/progmodes/python.el | 313 +++++++++++++++++++++++----- test/lisp/progmodes/python-tests.el | 91 ++++++++ 3 files changed, 358 insertions(+), 52 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 816613de4ec..2c8e70e4a15 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1086,6 +1086,12 @@ instead of: This allows the user to specify command line arguments to the non interactive Python interpreter specified by 'python-interpreter'. +*** New user option 'python-shell-readline-completer'. +This allows the user to specify the readline completer used for Python +shell completion. The default is 'auto', which means a suitable +completer will be configured automatically according to the Python +interpreter. + ** use-package +++ diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 9d840efb9da..0291f398a65 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -128,9 +128,9 @@ ;;; Commentary: ;; receiving escape sequences (with some limitations, i.e. completion ;; in blocks does not work). The code executed for the "fallback" ;; completion can be found in `python-shell-completion-setup-code' and -;; `python-shell-completion-string-code' variables. Their default -;; values enable completion for both CPython and IPython, and probably -;; any readline based shell (it's known to work with PyPy). If your +;; `python-shell-completion-get-completions'. Their default values +;; enable completion for both CPython and IPython, and probably any +;; readline based shell (it's known to work with PyPy). If your ;; Python installation lacks readline (like CPython for Windows), ;; installing pyreadline (URL `https://ipython.org/pyreadline.html') ;; should suffice. To troubleshoot why you are not getting any @@ -3604,7 +3604,6 @@ (define-derived-mode inferior-python-mode comint-mode "Inferior Python" `python-shell-prompt-block-regexp', `python-shell-font-lock-enable', `python-shell-completion-setup-code', -`python-shell-completion-string-code', `python-eldoc-setup-code', `python-ffap-setup-code' can customize this mode for different Python interpreters. @@ -4244,8 +4243,9 @@ (defcustom python-shell-completion-setup-code completions = [] completer = None + import json try: - import readline + import readline, re try: import __builtin__ @@ -4256,16 +4256,29 @@ (defcustom python-shell-completion-setup-code is_ipython = ('__IPYTHON__' in builtins or '__IPYTHON__active' in builtins) - splits = text.split() - is_module = splits and splits[0] in ('from', 'import') - - if is_ipython and is_module: - from IPython.core.completerlib import module_completion - completions = module_completion(text.strip()) - elif is_ipython and '__IP' in builtins: - completions = __IP.complete(text) - elif is_ipython and 'get_ipython' in builtins: - completions = get_ipython().Completer.all_completions(text) + + if is_ipython and 'get_ipython' in builtins: + def filter_c(prefix, c): + if re.match('_+(i?[0-9]+)?$', c): + return False + elif c[0] == '%' and not re.match('[%a-zA-Z]+$', prefix): + return False + return True + + import IPython + try: + if IPython.version_info[0] >= 6: + from IPython.core.completer import provisionalcompleter + with provisionalcompleter(): + completions = [ + [c.text, c.start, c.end, c.type or '?', c.signature or ''] + for c in get_ipython().Completer.completions(text, len(text)) + if filter_c(text, c.text)] + else: + part, matches = get_ipython().Completer.complete(line_buffer=text) + completions = [text + m[len(part):] for m in matches if filter_c(text, m)] + except: + pass else: # Try to reuse current completer. completer = readline.get_completer() @@ -4288,7 +4301,7 @@ (defcustom python-shell-completion-setup-code finally: if getattr(completer, 'PYTHON_EL_WRAPPED', False): completer.print_mode = True - return completions" + return json.dumps(completions)" "Code used to setup completion in inferior Python processes." :type 'string) @@ -4329,6 +4342,78 @@ (defcustom python-shell-completion-native-try-output-timeout 1.0 :version "25.1" :type 'float) +(defcustom python-shell-readline-completer 'auto + "The readline completer used for Python shell completion. +If the value is non-nil, Python shell will setup the readline +completer unless it has been set elsewhere (e.g. in the +PYTHONSTARTUP file). Below are possible values: +- `auto': the completer is determined according to the +interpreter. Specifically, the IPython completer, defined in +`python-shell--readline-ipython-setup-code', is used when the +interpreter is ipython, otherwise the Jedi completer is used. +- a string: Python code to setup the readline. See +`python-shell--readline-jedi-setup-code' for reference. +- `nil': Python shell will do nothing. + +In any case, if the completer is not set successfully in the end, +fallback to the built-in rlcompleter." + :type '(choice (const :tag "Automatic" auto) + (const :tag "No configuration" nil) + (string :tag "Python setup code")) + :version "30.1") + +(defvar python-shell-readline-completer-delims nil + "Word delimiters used by the readline completer. +It is automatically set by Python shell.") + +(defconst python-shell--readline-jedi-setup-code + " +def __PYTHON_EL_setup_readline_completer(): + from jedi.utils import setup_readline + setup_readline()" + "Code used to setup readline completer with Jedi.") + +(defconst python-shell--readline-ipython-setup-code + " +def __PYTHON_EL_setup_readline_completer(): + import readline, re, json, IPython + + class __ipython_RL: + def __init__(self, v): + self.version = v + + def filter(self, prefix, c): + if re.match('_+(i?[0-9]+)?$', c): + return False + elif c[0] == '%' and not re.match('[%a-zA-Z]+$', prefix): + return False + return True + + def complete(self, text, state): + if state == 0: + try: + if self.version >= 6: + from IPython.core.completer import provisionalcompleter + with provisionalcompleter(): + self.matches = [json.dumps([ + [c.text, c.start, c.end, c.type or '?', c.signature or ''] + for c in get_ipython().Completer.completions(text, len(text)) + if self.filter(text, c.text)])] + else: + part, matches = get_ipython().Completer.complete(line_buffer=text) + self.matches = [text + m[len(part):] for m in matches + if self.filter(text, m)] + except Exception: + pass + try: + return self.matches[state] + except IndexError: + return None + + readline.set_completer(__ipython_RL(IPython.version_info[0]).complete) + readline.set_completer_delims('')" + "Code used to setup readline completer for IPython.") + (defvar python-shell-completion-native-redirect-buffer " *Python completions redirect*" "Buffer to be used to redirect output of readline commands.") @@ -4352,7 +4437,20 @@ (defun python-shell-completion-native-try () (defun python-shell-completion-native-setup () "Try to setup native completion, return non-nil on success." (let* ((process (python-shell-get-process)) - (output (python-shell-send-string-no-output " + (completer (pcase python-shell-readline-completer + ('auto + (if (string-match-p "ipython[23]?\\'" python-shell-interpreter) + python-shell--readline-ipython-setup-code + python-shell--readline-jedi-setup-code)) + ((pred stringp) python-shell-readline-completer) + (_ ""))) + (output (python-shell-send-string-no-output + (concat " +try: + del __PYTHON_EL_setup_readline_completer +except: + pass +" completer " def __PYTHON_EL_native_completion_setup(): try: import readline @@ -4425,11 +4523,23 @@ (defun python-shell-completion-native-setup () else: return completion + def is_rlcompleter(completer): + try: + if completer.__self__.__module__ == 'rlcompleter': + return True + else: + return False + except Exception: + return False + completer = readline.get_completer() - if not completer: - # Used as last resort to avoid breaking customizations. - import rlcompleter + if not completer or is_rlcompleter(completer): + try: + __PYTHON_EL_setup_readline_completer() + except: + # Used as last resort to avoid breaking customizations. + import rlcompleter completer = readline.get_completer() if completer and not getattr(completer, 'PYTHON_EL_WRAPPED', False): @@ -4464,9 +4574,13 @@ (defun python-shell-completion-native-setup () print ('python.el: native completion setup failed, %s: %s' % sys.exc_info()[:2]) -__PYTHON_EL_native_completion_setup()" process))) +__PYTHON_EL_native_completion_setup()") process))) (when (string-match-p "python\\.el: native completion setup loaded" output) + (setq-local python-shell-readline-completer-delims + (string-trim-right + (python-shell-send-string-no-output + "import readline; print(readline.get_completer_delims())"))) (python-shell-completion-native-try)))) (defun python-shell-completion-native-turn-off (&optional msg) @@ -4534,6 +4648,8 @@ (defun python-shell-completion-native-get-completions (process input) (let* ((original-filter-fn (process-filter process)) (redirect-buffer (get-buffer-create python-shell-completion-native-redirect-buffer)) + (sep (if (string= python-shell-readline-completer-delims "") + "[\n\r]+" "[ \f\t\n\r\v()]+")) (trigger "\t") (new-input (concat input trigger)) (input-length @@ -4576,28 +4692,76 @@ (defun python-shell-completion-native-get-completions (process input) process python-shell-completion-native-output-timeout comint-redirect-finished-regexp) (re-search-backward "0__dummy_completion__" nil t) - (cl-remove-duplicates - (split-string - (buffer-substring-no-properties - (line-beginning-position) (point-min)) - "[ \f\t\n\r\v()]+" t) - :test #'string=)))) + (let ((str (buffer-substring-no-properties + (line-beginning-position) (point-min)))) + (if (string= "[" (substring str 0 1)) + (condition-case nil + (python--parse-json-array str) + (t (cl-remove-duplicates (split-string str sep t) + :test #'string=))) + (cl-remove-duplicates (split-string str sep t) + :test #'string=)))))) (set-process-filter process original-filter-fn))))) (defun python-shell-completion-get-completions (process input) "Get completions of INPUT using PROCESS." (with-current-buffer (process-buffer process) - (let ((completions - (python-util-strip-string - (python-shell-send-string-no-output - (format - "%s\nprint(';'.join(__PYTHON_EL_get_completions(%s)))" + (python--parse-json-array + (python-shell-send-string-no-output + (format "%s\nprint(__PYTHON_EL_get_completions(%s))" python-shell-completion-setup-code (python-shell--encode-string input)) - process)))) - (when (> (length completions) 2) - (split-string completions - "^'\\|^\"\\|;\\|'$\\|\"$" t))))) + process)))) + +(defun python-shell--get-multiline-input () + "Return lines at a multi-line input in Python shell." + (save-excursion + (let ((p (point)) lines) + (when (progn + (beginning-of-line) + (looking-back python-shell-prompt-block-regexp (pos-bol))) + (push (buffer-substring-no-properties (point) p) lines) + (while (progn (comint-previous-prompt 1) + (looking-back python-shell-prompt-block-regexp (pos-bol))) + (push (buffer-substring-no-properties (point) (pos-eol)) lines)) + (push (buffer-substring-no-properties (point) (pos-eol)) lines)) + lines))) + +(defun python-shell--extra-completion-context () + "Get extra completion context of current input in Python shell." + (let ((lines (python-shell--get-multiline-input)) + (python-indent-guess-indent-offset nil)) + (when (not (zerop (length lines))) + (with-temp-buffer + (delay-mode-hooks + (insert (string-join lines "\n")) + (python-mode) + (python-shell-completion-extra-context)))))) + +(defun python-shell-completion-extra-context (&optional pos) + "Get extra completion context at position POS in Python buffer. +If optional argument POS is nil, use current position. + +Readline completers could use current line as the completion +context, which may be insufficient. In this function, extra +context (e.g. multi-line function call) is found and reformatted +as one line, which is required by native completion." + (let (bound p) + (save-excursion + (and pos (goto-char pos)) + (setq bound (pos-bol)) + (python-nav-up-list -1) + (when (and (< (point) bound) + (or + (looking-back + (python-rx (group (+ (or "." symbol-name)))) (pos-bol) t) + (progn + (forward-line 0) + (looking-at "^[ \t]*\\(from \\)")))) + (setq p (match-beginning 1)))) + (when p + (replace-regexp-in-string + "\n[ \t]*" "" (buffer-substring-no-properties p (1- bound)))))) (defvar-local python-shell--capf-cache nil "Variable to store cached completions and invalidation keys.") @@ -4612,21 +4776,26 @@ (defun python-shell-completion-at-point (&optional process) ;; Working on a shell buffer: use prompt end. (cdr (python-util-comint-last-prompt)) (line-beginning-position))) - (import-statement - (when (string-match-p - (rx (* space) word-start (or "from" "import") word-end space) - (buffer-substring-no-properties line-start (point))) - (buffer-substring-no-properties line-start (point)))) + (no-delims + (and (not (if is-shell-buffer + (eq 'font-lock-comment-face + (get-text-property (1- (point)) 'face)) + (python-syntax-context 'comment))) + (with-current-buffer (process-buffer process) + (if python-shell-completion-native-enable + (string= python-shell-readline-completer-delims "") + (string-match-p "ipython[23]?\\'" python-shell-interpreter))))) (start (if (< (point) line-start) (point) (save-excursion - (if (not (re-search-backward - (python-rx - (or whitespace open-paren close-paren - string-delimiter simple-operator)) - line-start - t 1)) + (if (or no-delims + (not (re-search-backward + (python-rx + (or whitespace open-paren close-paren + string-delimiter simple-operator)) + line-start + t 1))) line-start (forward-char (length (match-string-no-properties 0))) (point))))) @@ -4666,18 +4835,58 @@ (defun python-shell-completion-at-point (&optional process) (t #'python-shell-completion-native-get-completions)))) (prev-prompt (car python-shell--capf-cache)) (re (or (cadr python-shell--capf-cache) regexp-unmatchable)) - (prefix (buffer-substring-no-properties start end))) + (prefix (buffer-substring-no-properties start end)) + (prefix-offset 0) + (extra-context (when no-delims + (if is-shell-buffer + (python-shell--extra-completion-context) + (python-shell-completion-extra-context)))) + (extra-offset (length extra-context))) + (unless (zerop extra-offset) + (setq prefix (concat extra-context prefix))) ;; To invalidate the cache, we check if the prompt position or the ;; completion prefix changed. (unless (and (equal prev-prompt (car prompt-boundaries)) - (string-match re prefix)) + (string-match re prefix) + (setq prefix-offset (- (length prefix) (match-end 1)))) (setq python-shell--capf-cache `(,(car prompt-boundaries) ,(if (string-empty-p prefix) regexp-unmatchable - (concat "\\`" (regexp-quote prefix) "\\(?:\\sw\\|\\s_\\)*\\'")) - ,@(funcall completion-fn process (or import-statement prefix))))) - (list start end (cddr python-shell--capf-cache)))) + (concat "\\`\\(" (regexp-quote prefix) "\\)\\(?:\\sw\\|\\s_\\)*\\'")) + ,@(funcall completion-fn process prefix)))) + (let ((cands (cddr python-shell--capf-cache))) + (cond + ((stringp (car cands)) + (if no-delims + ;; Reduce completion candidates due to long prefix. + (if-let ((Lp (length prefix)) + ((string-match "\\(\\sw\\|\\s_\\)+\\'" prefix)) + (L (match-beginning 0))) + ;; If extra-offset is not zero: + ;; start end + ;; o------------------o---------o-------o + ;; |<- extra-offset ->| + ;; |<----------- L ------------>| + ;; new-start + (list (+ start L (- extra-offset)) end + (mapcar (lambda (s) (substring s L)) cands)) + (list end end (mapcar (lambda (s) (substring s Lp)) cands))) + (list start end cands))) + ;; python-shell-completion(-native)-get-completions may produce + ;; a list of (text start end type signature) for completion. + ;; See `python-shell--readline-ipython-setup-code' and + ;; `python-shell-completion-setup-code'. + ((consp (car cands)) + (list (+ start (nth 1 (car cands)) (- extra-offset)) + ;; Candidates may be cached, so the end position should + ;; be adjusted according to current completion prefix. + (+ start (nth 2 (car cands)) (- extra-offset) prefix-offset) + cands + :annotation-function + (lambda (c) (concat " " (nth 3 (assoc c cands)))) + :company-docsig + (lambda (c) (nth 4 (assoc c cands))))))))) (define-obsolete-function-alias 'python-shell-completion-complete-at-point diff --git a/test/lisp/progmodes/python-tests.el b/test/lisp/progmodes/python-tests.el index 59957ff0712..9f9914896be 100644 --- a/test/lisp/progmodes/python-tests.el +++ b/test/lisp/progmodes/python-tests.el @@ -4799,6 +4799,97 @@ (ert-deftest python-shell-completion-at-point-native-1 () (end-of-line 0) (should-not (nth 2 (python-shell-completion-at-point)))))) +(defun python-tests--completion-module () + "Check if modules can be completed in Python shell." + (insert "import datet") + (completion-at-point) + (beginning-of-line) + (should (looking-at-p "import datetime")) + (kill-line) + (insert "from datet") + (completion-at-point) + (beginning-of-line) + (should (looking-at-p "from datetime")) + (end-of-line) + (insert " import timed") + (completion-at-point) + (beginning-of-line) + (should (looking-at-p "from datetime import timedelta")) + (kill-line)) + +(defun python-tests--completion-parameters () + "Check if parameters can be completed in Python shell." + (insert "import re") + (comint-send-input) + (python-tests-shell-wait-for-prompt) + (insert "re.split('b', 'abc', maxs") + (completion-at-point) + (should (string= "re.split('b', 'abc', maxsplit=" + (buffer-substring (line-beginning-position) (point)))) + (insert "0, ") + (should (python-shell-completion-at-point)) + ;; Test if cache is used. + (cl-letf (((symbol-function 'python-shell-completion-get-completions) + 'ignore) + ((symbol-function 'python-shell-completion-native-get-completions) + 'ignore)) + (insert "fla") + (completion-at-point) + (should (string= "re.split('b', 'abc', maxsplit=0, flags=" + (buffer-substring (line-beginning-position) (point))))) + (beginning-of-line) + (kill-line)) + +(defun python-tests--completion-extra-context () + "Check if extra context is used for completion." + (insert "re.split('b', 'abc',") + (comint-send-input) + (python-tests-shell-wait-for-prompt) + (insert "maxs") + (completion-at-point) + (should (string= "maxsplit=" + (buffer-substring (line-beginning-position) (point)))) + (insert "0)") + (comint-send-input) + (python-tests-shell-wait-for-prompt) + (insert "from re import (") + (comint-send-input) + (python-tests-shell-wait-for-prompt) + (insert "IGN") + (completion-at-point) + (should (string= "IGNORECASE" + (buffer-substring (line-beginning-position) (point))))) + +(ert-deftest python-shell-completion-at-point-jedi-completer () + "Check if Python shell completion works with Jedi." + (skip-unless (executable-find python-tests-shell-interpreter)) + (python-tests-with-temp-buffer-with-shell + "" + (python-shell-with-shell-buffer + (python-shell-completion-native-turn-on) + (skip-unless (string= python-shell-readline-completer-delims "")) + (python-tests--completion-module) + (python-tests--completion-parameters) + (python-tests--completion-extra-context)))) + +(ert-deftest python-shell-completion-at-point-ipython () + "Check if Python shell completion works for IPython." + (let ((python-shell-interpreter "ipython") + (python-shell-interpreter-args "-i --simple-prompt")) + (skip-unless + (and + (executable-find python-shell-interpreter) + (eql (call-process python-shell-interpreter nil nil nil "--version") 0))) + (python-tests-with-temp-buffer-with-shell + "" + (python-shell-with-shell-buffer + (python-shell-completion-native-turn-off) + (python-tests--completion-module) + (python-tests--completion-parameters) + (python-shell-completion-native-turn-on) + (python-tests--completion-module) + (python-tests--completion-parameters) + (python-tests--completion-extra-context))))) ;;; PDB Track integration -- 2.39.2 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 04 09:35:25 2024 Received: (at 68559) by debbugs.gnu.org; 4 Feb 2024 14:35:25 +0000 Received: from localhost ([127.0.0.1]:48484 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rWdaf-0001WI-1Y for submit@debbugs.gnu.org; Sun, 04 Feb 2024 09:35:25 -0500 Received: from mail-pg1-x52a.google.com ([2607:f8b0:4864:20::52a]:59761) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rWdaZ-0001Vx-I2 for 68559@debbugs.gnu.org; Sun, 04 Feb 2024 09:35:23 -0500 Received: by mail-pg1-x52a.google.com with SMTP id 41be03b00d2f7-5d3907ff128so3138628a12.3 for <68559@debbugs.gnu.org>; Sun, 04 Feb 2024 06:35:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707057301; x=1707662101; darn=debbugs.gnu.org; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=k/xrsysBgmaK0ocKi6r7mOD8lv/+d+O6765cA17sR5o=; b=lcCDCeD24tllGs4hmPOhV2+Wr9CmO4hfUGVJ5ec9O5XtFcJZpdzLglL7UgVzCob5wK tb2I4TYpHhhSL9MTWNOajSrYIw7gfmfNxzft2j8RCPTxzS2CGRjY4cQTa1Wm0Rusr/Uu EEdPl6mRYK2Xzh6hLzUrsq2K6a2XwsjKsJoXhPMlw8S7niYJ9KcgXYos17eFWtpQsGiI isJ1Wk4pIvLL7g5VR4z5K+/0JgP7+ZwoA4z9DS/G/xJQQShO7nY+dJKKhhICxSA59Xp0 gkxhGuyHeoCZnuS8v/E8Y3P1TRIg3WTTA596Urz8g9203H8Ev8ggPe7wVpq6zwAz+p46 MdHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707057301; x=1707662101; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=k/xrsysBgmaK0ocKi6r7mOD8lv/+d+O6765cA17sR5o=; b=jT0Hzee14X1Zwe5Lz4YJbIsr1CWOXMDCCAsQDUikdzRMOotnnctSII4+Q5mZb/heuH vaZyObOW0GaJV2EhhTrBzmexQGq+Q9bA77dbFK4A8LH/NjYAtsHnXPtDZ9Oy2YlwAUzN b+YGXuwL/739IE/tsxEmG9kGCRgmKFhgI6P6aDalGhGaYPeEGuhbrCfNOsmIRosUnHf5 5d3iUsV+QJdJFFqA8uujPXHwJeJOrqrS+k3NEx87XYytOPp/Y15jhCiRFlBHkPZXh6Sa X9ojS7kSg1Zc7UZjuRvurNdRnFu+Iwn6b3kB5wFBXmLa/Yt21D5wsVpBkvXbxQ7uiT9e 0jGQ== X-Gm-Message-State: AOJu0Ywwun4DwD7jVXoRo0tqj6dhVO2d0ZQEIqrnFtkiSPgck5VWrvyY qPFCvIHVZJXyE1Q6eFoAMtAriSCuiSZaWzXVqBSXygfkM5maLbOM X-Google-Smtp-Source: AGHT+IGTRE43Dd2eTj64xLoE7V+6wGZA/87I+5JxKHnGxvTWEZbBjb4YHrF6aTqz3Ogfsn+/xRViZA== X-Received: by 2002:a05:6a21:31c8:b0:19c:7ec8:467c with SMTP id zb8-20020a056a2131c800b0019c7ec8467cmr17876531pzb.23.1707057301552; Sun, 04 Feb 2024 06:35:01 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCU8+tRoOZlraslY0oUhLTHh7vmQL0eQx+/L5swbuTWhAfl7p0mcZwbtZe0NKqmnMcDlaN4hdN+H3MzLYEhD9awOkgp2o+4= Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id s17-20020a632151000000b005cd8044c6fesm5103840pgm.23.2024.02.04.06.35.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 04 Feb 2024 06:35:01 -0800 (PST) Date: Sun, 04 Feb 2024 23:35:00 +0900 Message-ID: From: kobarity To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: <87a5og8m7t.fsf@gmail.com> References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Liu Hui wrote: > kobarity writes: > > I'm experiencing strange behavior regarding completion of import > > statement in a block in Python buffer. If I try to type the following > > lines and then try to complete it, it will fail. > > > > #+begin_src python > > try: > > im > > #+end_src > > The problem can be reproduced by running python with jedi completer in > a terminal. The reason is that readline completer can only see the > text in the current line, i.e. " im"; in this case, jedi does not > complete the text to " import". > > Similarly, the jedi completer cannot complete "except" after ex: > > try: > pass > ex| > > > However, when I try to complete at the beginning of the second line: > > > > #+begin_src python > > try: > > > > #+end_src > > > > > > "import" keyword also appears as a candidate. If I cancel the > > candidates and type "im" and try to complete it, it will succeed. > > It is because jedi produces completions including " import" for > blank string " ". Due to the same prefix between " " and > " im", completion cache is reused for the latter. Then " import" > can be completed. > > It is more a limitation of readline completer than a problem with > jedi, as we cannot provide proper completion context for jedi. We may > define a custom completer to combine jedi and rlcompleter, e.g. > > (setq python-shell-readline-completer " > def __PYTHON_EL_setup_readline_completer(): > import readline, rlcompleter > import re, sys, os, __main__ > from jedi import Interpreter > > class MyJediRL: > def __init__(self): > self.rlcompleter = rlcompleter.Completer() > self.rldelim = readline.get_completer_delims() > > def complete(self, text, state): > if state == 0: > sys.path.insert(0, os.getcwd()) > try: > interpreter = Interpreter(text, [__main__.__dict__]) > completions = interpreter.complete(fuzzy=False) > self.matches = [ > text[:len(text) - c._like_name_length] + c.name_with_symbols > for c in completions > ] > > # try rlcompleter > sub = re.split('[' + re.escape(self.rldelim) + ']', text)[-1] > i = 0 > while True: > completion = self.rlcompleter.complete(sub, i) > if not completion: > break > i += 1 > completion = text[:len(text)-len(sub)] + completion.rstrip(' ()') > if completion not in self.matches: > self.matches.append(completion) > except: > raise > finally: > sys.path.pop(0) > try: > return self.matches[state] > except IndexError: > return None > > readline.set_completer(MyJediRL().complete) > readline.set_completer_delims('')") Thank you for the detailed explanation and the workaround. I confirmed that the problem is solved by the above workaround. Just to confirm, are you of the opinion that this workaround should not be the default? > > Another thing I noticed is the multi-line import statement. If the > > import statement is one-line, each items (IGNORECASE and MULTILINE in > > the example below) can be completed. > > > > #+begin_src python > > from re import IGNORECASE, MULTILINE > > #+end_src > > > > > > However, they cannot be completed if the import statement spans > > multi-line. > > > > #+begin_src python > > from re import ( > > IGN > > #+end_src > > > > This happens in both Python buffer and Python Shell buffer. Perhaps > > this is a limitation of Jedi completer? > > Yes. Because readline completer cannot see cross-line context, I added > the function "python-shell-completion-extra-context" in previous patch > to address the case of multi-line function call. I have updated the > attached patch to handle multi-line import statement. Thank you very much. I confirmed that the new patch allows completion of multi-line import statements. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 05 10:03:54 2024 Received: (at 68559) by debbugs.gnu.org; 5 Feb 2024 15:03:54 +0000 Received: from localhost ([127.0.0.1]:52031 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rX0Vk-0004ht-R8 for submit@debbugs.gnu.org; Mon, 05 Feb 2024 10:03:54 -0500 Received: from mail-ua1-x932.google.com ([2607:f8b0:4864:20::932]:59569) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rX0Vh-0004hd-Lu for 68559@debbugs.gnu.org; Mon, 05 Feb 2024 10:03:52 -0500 Received: by mail-ua1-x932.google.com with SMTP id a1e0cc1a2514c-7d6104e6c7aso1972546241.2 for <68559@debbugs.gnu.org>; Mon, 05 Feb 2024 07:03:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707145411; x=1707750211; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=igFZLgsqj5P6i5meALrgJt9n7/dTdsrPlIoe5entGjc=; b=O7hrvV79MjGwJDWgRMPU62aDDMyPuydTj5HKcf/JeMjEch0XXLXY7ZAxOiy7POJ2iA eXBxkLST3+yfHQGdCzMGxCpjCkg0SVoMuxxWD1r8xZBKoT8h/+Fghxyx3blgCl3sJVvK UBxVtLKIjM6aeP80yhZ+ok8L7h/3SqO3xR9NuK4M3oASNnLui46KvzjuA9LFOl8MwDrn wUtAn9+tYhz4eq24BAWs1xt3FgGaKWeaCRDkgb23mFh0uCykxgMV7Qxob4nLx+Xtfss0 1pN6PSNuLHScsbfzWLCmzn5xlXGR8X1bauBixE33l0kN9ov6bkA9g6nz6hxFAiIH7E/d g96w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707145411; x=1707750211; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=igFZLgsqj5P6i5meALrgJt9n7/dTdsrPlIoe5entGjc=; b=WFUdf1hKxETZvsn65Jd5BaCgTIo3AXM5T9HbfX+IeXj9Dt8gG3kUZd5nHPmMkyr77M 6l4bY3JkruncjkhDxnIflOx8504narC7nMt6wAPstermmNdJ+g3iItHtSqycSeAhj8/U kRQtA4ccGoBZcnNzitxlGBNcHISmpB0cKpxMAXuJNp7N3zIULzGiOumg/NsEAupwq8F7 LtU/s2CHfFhNx3EPfetpK2ADkJMePX8J6v+q+EL6FJCjiMm25W7/KutV1G9JZnRgdE2B qrvY8Oj/pMsMhTq3o6oMcBMT08EoCvsUAD+gIZ6MEBGGz2cjjvjA3aCGufBJF2SMTOtO 7XAA== X-Gm-Message-State: AOJu0YztbHVhnoDww1WFW/heK6PIzth3uyg/Gkdhr4yzZWzzHhyNk3cM de0kryh8HhaRjQ6fLl/GuABj+5+ymXcdQd+hetowSaTOKkSiAW40XrwRN/E+hq3X9kItwW53B8m ATW39W3BOhi1swJfG2ot4Jk71FXo= X-Google-Smtp-Source: AGHT+IErnuUZDrK6XKfgZOMYB4MdxnBh8g8Rjq6cTCfq0YhSu5B2Q03IHcnsj7yKGmvVF+hTlhSaSHAPvNlMltuOiyM= X-Received: by 2002:a05:6122:989:b0:4c0:23a8:df2a with SMTP id g9-20020a056122098900b004c023a8df2amr2038040vkd.10.1707145411152; Mon, 05 Feb 2024 07:03:31 -0800 (PST) MIME-Version: 1.0 References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> In-Reply-To: From: Liu Hui Date: Mon, 5 Feb 2024 23:03:19 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: kobarity Content-Type: multipart/mixed; boundary="000000000000d009a60610a3c38e" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --000000000000d009a60610a3c38e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Feb 4, 2024 at 10:35=E2=80=AFPM kobarity wrote= : > > It is more a limitation of readline completer than a problem with > > jedi, as we cannot provide proper completion context for jedi. We may > > define a custom completer to combine jedi and rlcompleter, e.g. > > > > (setq python-shell-readline-completer " > > def __PYTHON_EL_setup_readline_completer(): > > import readline, rlcompleter > > import re, sys, os, __main__ > > from jedi import Interpreter > > > > class MyJediRL: > > def __init__(self): > > self.rlcompleter =3D rlcompleter.Completer() > > self.rldelim =3D readline.get_completer_delims() > > > > def complete(self, text, state): > > if state =3D=3D 0: > > sys.path.insert(0, os.getcwd()) > > try: > > interpreter =3D Interpreter(text, [__main__.__dict_= _]) > > completions =3D interpreter.complete(fuzzy=3DFalse) > > self.matches =3D [ > > text[:len(text) - c._like_name_length] + c.name= _with_symbols > > for c in completions > > ] > > > > # try rlcompleter > > sub =3D re.split('[' + re.escape(self.rldelim) + ']= ', text)[-1] > > i =3D 0 > > while True: > > completion =3D self.rlcompleter.complete(sub, i= ) > > if not completion: > > break > > i +=3D 1 > > completion =3D text[:len(text)-len(sub)] + comp= letion.rstrip(' ()') > > if completion not in self.matches: > > self.matches.append(completion) > > except: > > raise > > finally: > > sys.path.pop(0) > > try: > > return self.matches[state] > > except IndexError: > > return None > > > > readline.set_completer(MyJediRL().complete) > > readline.set_completer_delims('')") > > Thank you for the detailed explanation and the workaround. I > confirmed that the problem is solved by the above workaround. Just to > confirm, are you of the opinion that this workaround should not be the > default? I'm not sure if we should add more Python code in the form of strings to python.el, which increases maintenance burden IMO. Maybe they could be distributed separately at ELPA/Git forges. Actually, I'm considering simplifying this patch to mainly fix the bug that python shell completion doesn't respect the delimiter of readline completer. The new patch has been attached. It should support the completer defined in the PYTHONSTARTUP file, e.g., jedi or a custom completer like the above one. WDYT? --000000000000d009a60610a3c38e Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Respect-the-delimiter-of-completer-in-Python-shell-c.patch" Content-Disposition: attachment; filename="0001-Respect-the-delimiter-of-completer-in-Python-shell-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ls92ab080 RnJvbSAwODI1OTZlOTA4ZWU0NWQxOGM1MGMzYjlmMGI1MDIwYjc3OWFkYjc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAxOCBKYW4gMjAyNCAxMjowMDowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFJlc3BlY3Qg dGhlIGRlbGltaXRlciBvZiBjb21wbGV0ZXIgaW4gUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24KCiog bGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsOiAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAt Y29kZSk6IEZpeAp0aGUgY29tcGxldGlvbiBjb2RlIG9mIElQeXRob24uICBDaGFuZ2UgdGhlIHJl dHVybiB2YWx1ZSB0byBKU09OIHN0cmluZwphbmQgLi4uCihweXRob24tc2hlbGwtY29tcGxldGlv bi1nZXQtY29tcGxldGlvbnMpOiAuLi4gc2ltcGxpZnkgcGFyc2luZy4KKGluZmVyaW9yLXB5dGhv bi1tb2RlKTogVXBkYXRlIGRvY3N0cmluZy4KKHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0 ZXItZGVsaW1zKTogTmV3IHZhcmlhYmxlIGluZGljYXRpbmcgdGhlCndvcmQgZGVsaW1pdGVycyBv ZiByZWFkbGluZSBjb21wbGV0ZXIuCihweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0 dXApOiBTZXQgdGhlIGNvbXBsZXRlciBkZWxpbWl0ZXIuCihweXRob24tc2hlbGwtY29tcGxldGlv bi1uYXRpdmUtZ2V0LWNvbXBsZXRpb25zKTogQ29udmVydCBvdXRwdXQgc3RyaW5nCnRvIGNvbXBs ZXRpb25zIHByb3Blcmx5LgoocHl0aG9uLXNoZWxsLS1nZXQtbXVsdGlsaW5lLWlucHV0KQoocHl0 aG9uLXNoZWxsLS1leHRyYS1jb21wbGV0aW9uLWNvbnRleHQpCihweXRob24tc2hlbGwtY29tcGxl dGlvbi1leHRyYS1jb250ZXh0KTogTmV3IGZ1bmN0aW9ucy4KKHB5dGhvbi1zaGVsbC1jb21wbGV0 aW9uLWF0LXBvaW50KTogU2VuZCB0ZXh0IGJlZ2lubmluZyBmcm9tIHRoZSBsaW5lCnN0YXJ0IGlm IHRoZSBjb21wbGV0aW9uIGJhY2tlbmQgZG9lcyBub3QgbmVlZCB3b3JkIHNwbGl0dGluZy4gIFJl bW92ZQp0aGUgZGV0ZWN0aW9uIG9mIGltcG9ydCBzdGF0ZW1lbnQgYmVjYXVzZSBpdCBpcyBub3Qg bmVlZGVkIGFueW1vcmUuCkNyZWF0ZSBwcm9wZXIgY29tcGxldGlvbiB0YWJsZSBiYXNlZCBvbiBj b21wbGV0aW9ucyByZXR1cm5lZCBmcm9tCmRpZmZlcmVudCBiYWNrZW5kcy4KCiogdGVzdC9saXNw L3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1tb2R1 bGUpCihweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycykKKHB5dGhvbi10ZXN0cy0t Y29tcGxldGlvbi1leHRyYS1jb250ZXh0KTogTmV3IGhlbHBlciBmdW5jdGlvbnMuCihweXRob24t c2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1qZWRpLWNvbXBsZXRlcikKKHB5dGhvbi1zaGVsbC1j b21wbGV0aW9uLWF0LXBvaW50LWlweXRob24pOiBOZXcgdGVzdHMuCgoqIGV0Yy9ORVdTOiBBbm5v dW5jZSB0aGUgY2hhbmdlLiAoYnVnIzY4NTU5KQotLS0KIGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5l bCAgICAgICAgICAgIHwgMjEyICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIHRlc3QvbGlz cC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIHwgIDkyICsrKysrKysrKysrKwogMiBmaWxlcyBj aGFuZ2VkLCAyNTcgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4 IDlkODQwZWZiOWRhLi40NTMzNmM4Mzk2ZiAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvcHl0 aG9uLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbApAQCAtMTI4LDkgKzEyOCw5IEBA IDs7OyBDb21tZW50YXJ5OgogOzsgcmVjZWl2aW5nIGVzY2FwZSBzZXF1ZW5jZXMgKHdpdGggc29t ZSBsaW1pdGF0aW9ucywgaS5lLiBjb21wbGV0aW9uCiA7OyBpbiBibG9ja3MgZG9lcyBub3Qgd29y aykuICBUaGUgY29kZSBleGVjdXRlZCBmb3IgdGhlICJmYWxsYmFjayIKIDs7IGNvbXBsZXRpb24g Y2FuIGJlIGZvdW5kIGluIGBweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlJyBhbmQK LTs7IGBweXRob24tc2hlbGwtY29tcGxldGlvbi1zdHJpbmctY29kZScgdmFyaWFibGVzLiAgVGhl aXIgZGVmYXVsdAotOzsgdmFsdWVzIGVuYWJsZSBjb21wbGV0aW9uIGZvciBib3RoIENQeXRob24g YW5kIElQeXRob24sIGFuZCBwcm9iYWJseQotOzsgYW55IHJlYWRsaW5lIGJhc2VkIHNoZWxsIChp dCdzIGtub3duIHRvIHdvcmsgd2l0aCBQeVB5KS4gIElmIHlvdXIKKzs7IGBweXRob24tc2hlbGwt Y29tcGxldGlvbi1nZXQtY29tcGxldGlvbnMnLiAgVGhlaXIgZGVmYXVsdCB2YWx1ZXMKKzs7IGVu YWJsZSBjb21wbGV0aW9uIGZvciBib3RoIENQeXRob24gYW5kIElQeXRob24sIGFuZCBwcm9iYWJs eSBhbnkKKzs7IHJlYWRsaW5lIGJhc2VkIHNoZWxsIChpdCdzIGtub3duIHRvIHdvcmsgd2l0aCBQ eVB5KS4gIElmIHlvdXIKIDs7IFB5dGhvbiBpbnN0YWxsYXRpb24gbGFja3MgcmVhZGxpbmUgKGxp a2UgQ1B5dGhvbiBmb3IgV2luZG93cyksCiA7OyBpbnN0YWxsaW5nIHB5cmVhZGxpbmUgKFVSTCBg aHR0cHM6Ly9pcHl0aG9uLm9yZy9weXJlYWRsaW5lLmh0bWwnKQogOzsgc2hvdWxkIHN1ZmZpY2Uu ICBUbyB0cm91Ymxlc2hvb3Qgd2h5IHlvdSBhcmUgbm90IGdldHRpbmcgYW55CkBAIC0zNjA0LDcg KzM2MDQsNiBAQCAoZGVmaW5lLWRlcml2ZWQtbW9kZSBpbmZlcmlvci1weXRob24tbW9kZSBjb21p bnQtbW9kZSAiSW5mZXJpb3IgUHl0aG9uIgogYHB5dGhvbi1zaGVsbC1wcm9tcHQtYmxvY2stcmVn ZXhwJywKIGBweXRob24tc2hlbGwtZm9udC1sb2NrLWVuYWJsZScsCiBgcHl0aG9uLXNoZWxsLWNv bXBsZXRpb24tc2V0dXAtY29kZScsCi1gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc3RyaW5nLWNv ZGUnLAogYHB5dGhvbi1lbGRvYy1zZXR1cC1jb2RlJywKIGBweXRob24tZmZhcC1zZXR1cC1jb2Rl JyBjYW4KIGN1c3RvbWl6ZSB0aGlzIG1vZGUgZm9yIGRpZmZlcmVudCBQeXRob24gaW50ZXJwcmV0 ZXJzLgpAQCAtNDI0NCw4ICs0MjQzLDkgQEAgKGRlZmN1c3RvbSBweXRob24tc2hlbGwtY29tcGxl dGlvbi1zZXR1cC1jb2RlCiAgICAgY29tcGxldGlvbnMgPSBbXQogICAgIGNvbXBsZXRlciA9IE5v bmUKCisgICAgaW1wb3J0IGpzb24KICAgICB0cnk6Ci0gICAgICAgIGltcG9ydCByZWFkbGluZQor ICAgICAgICBpbXBvcnQgcmVhZGxpbmUsIHJlCgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBp bXBvcnQgX19idWlsdGluX18KQEAgLTQyNTYsMTYgKzQyNTYsMjkgQEAgKGRlZmN1c3RvbSBweXRo b24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlCgogICAgICAgICBpc19pcHl0aG9uID0gKCdf X0lQWVRIT05fXycgaW4gYnVpbHRpbnMgb3IKICAgICAgICAgICAgICAgICAgICAgICAnX19JUFlU SE9OX19hY3RpdmUnIGluIGJ1aWx0aW5zKQotICAgICAgICBzcGxpdHMgPSB0ZXh0LnNwbGl0KCkK LSAgICAgICAgaXNfbW9kdWxlID0gc3BsaXRzIGFuZCBzcGxpdHNbMF0gaW4gKCdmcm9tJywgJ2lt cG9ydCcpCi0KLSAgICAgICAgaWYgaXNfaXB5dGhvbiBhbmQgaXNfbW9kdWxlOgotICAgICAgICAg ICAgZnJvbSBJUHl0aG9uLmNvcmUuY29tcGxldGVybGliIGltcG9ydCBtb2R1bGVfY29tcGxldGlv bgotICAgICAgICAgICAgY29tcGxldGlvbnMgPSBtb2R1bGVfY29tcGxldGlvbih0ZXh0LnN0cmlw KCkpCi0gICAgICAgIGVsaWYgaXNfaXB5dGhvbiBhbmQgJ19fSVAnIGluIGJ1aWx0aW5zOgotICAg ICAgICAgICAgY29tcGxldGlvbnMgPSBfX0lQLmNvbXBsZXRlKHRleHQpCi0gICAgICAgIGVsaWYg aXNfaXB5dGhvbiBhbmQgJ2dldF9pcHl0aG9uJyBpbiBidWlsdGluczoKLSAgICAgICAgICAgIGNv bXBsZXRpb25zID0gZ2V0X2lweXRob24oKS5Db21wbGV0ZXIuYWxsX2NvbXBsZXRpb25zKHRleHQp CisKKyAgICAgICAgaWYgaXNfaXB5dGhvbiBhbmQgJ2dldF9pcHl0aG9uJyBpbiBidWlsdGluczoK KyAgICAgICAgICAgIGRlZiBmaWx0ZXJfYyhwcmVmaXgsIGMpOgorICAgICAgICAgICAgICAgIGlm IHJlLm1hdGNoKCdfKyhpP1swLTldKyk/JCcsIGMpOgorICAgICAgICAgICAgICAgICAgICByZXR1 cm4gRmFsc2UKKyAgICAgICAgICAgICAgICBlbGlmIGNbMF0gPT0gJyUnIGFuZCBub3QgcmUubWF0 Y2goJ1slYS16QS1aXSskJywgcHJlZml4KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZh bHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICAgICAgaW1wb3J0IElQ eXRob24KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBJUHl0aG9uLnZlcnNp b25faW5mb1swXSA+PSA2OgorICAgICAgICAgICAgICAgICAgICBmcm9tIElQeXRob24uY29yZS5j b21wbGV0ZXIgaW1wb3J0IHByb3Zpc2lvbmFsY29tcGxldGVyCisgICAgICAgICAgICAgICAgICAg IHdpdGggcHJvdmlzaW9uYWxjb21wbGV0ZXIoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNv bXBsZXRpb25zID0gWworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjLnRleHQsIGMuc3Rh cnQsIGMuZW5kLCBjLnR5cGUgb3IgJz8nLCBjLnNpZ25hdHVyZSBvciAnJ10KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIGMgaW4gZ2V0X2lweXRob24oKS5Db21wbGV0ZXIuY29tcGxl dGlvbnModGV4dCwgbGVuKHRleHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBm aWx0ZXJfYyh0ZXh0LCBjLnRleHQpXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgICAgICAgIHBhcnQsIG1hdGNoZXMgPSBnZXRfaXB5dGhvbigpLkNvbXBsZXRlci5jb21wbGV0 ZShsaW5lX2J1ZmZlcj10ZXh0KQorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyA9IFt0 ZXh0ICsgbVtsZW4ocGFydCk6XSBmb3IgbSBpbiBtYXRjaGVzIGlmIGZpbHRlcl9jKHRleHQsIG0p XQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZWxz ZToKICAgICAgICAgICAgICMgVHJ5IHRvIHJldXNlIGN1cnJlbnQgY29tcGxldGVyLgogICAgICAg ICAgICAgY29tcGxldGVyID0gcmVhZGxpbmUuZ2V0X2NvbXBsZXRlcigpCkBAIC00Mjg4LDcgKzQz MDEsNyBAQCAoZGVmY3VzdG9tIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAg ICBmaW5hbGx5OgogICAgICAgICBpZiBnZXRhdHRyKGNvbXBsZXRlciwgJ1BZVEhPTl9FTF9XUkFQ UEVEJywgRmFsc2UpOgogICAgICAgICAgICAgY29tcGxldGVyLnByaW50X21vZGUgPSBUcnVlCi0g ICAgcmV0dXJuIGNvbXBsZXRpb25zIgorICAgIHJldHVybiBqc29uLmR1bXBzKGNvbXBsZXRpb25z KSIKICAgIkNvZGUgdXNlZCB0byBzZXR1cCBjb21wbGV0aW9uIGluIGluZmVyaW9yIFB5dGhvbiBw cm9jZXNzZXMuIgogICA6dHlwZSAnc3RyaW5nKQoKQEAgLTQzMjksNiArNDM0MiwxMCBAQCAoZGVm Y3VzdG9tIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10cnktb3V0cHV0LXRpbWVvdXQg MS4wCiAgIDp2ZXJzaW9uICIyNS4xIgogICA6dHlwZSAnZmxvYXQpCgorKGRlZnZhciBweXRob24t c2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyBuaWwKKyAgIldvcmQgZGVsaW1pdGVycyB1 c2VkIGJ5IHRoZSByZWFkbGluZSBjb21wbGV0ZXIuCitJdCBpcyBhdXRvbWF0aWNhbGx5IHNldCBi eSBQeXRob24gc2hlbGwuIikKKwogKGRlZnZhciBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRp dmUtcmVkaXJlY3QtYnVmZmVyCiAgICIgKlB5dGhvbiBjb21wbGV0aW9ucyByZWRpcmVjdCoiCiAg ICJCdWZmZXIgdG8gYmUgdXNlZCB0byByZWRpcmVjdCBvdXRwdXQgb2YgcmVhZGxpbmUgY29tbWFu ZHMuIikKQEAgLTQ0NjcsNiArNDQ4NCwxMCBAQCAoZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRp b24tbmF0aXZlLXNldHVwICgpCiBfX1BZVEhPTl9FTF9uYXRpdmVfY29tcGxldGlvbl9zZXR1cCgp IiBwcm9jZXNzKSkpCiAgICAgKHdoZW4gKHN0cmluZy1tYXRjaC1wICJweXRob25cXC5lbDogbmF0 aXZlIGNvbXBsZXRpb24gc2V0dXAgbG9hZGVkIgogICAgICAgICAgICAgICAgICAgICAgICAgICBv dXRwdXQpCisgICAgICAoc2V0cS1sb2NhbCBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVy LWRlbGltcworICAgICAgICAgICAgICAgICAgKHN0cmluZy10cmltLXJpZ2h0CisgICAgICAgICAg ICAgICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRwdXQKKyAgICAgICAgICAg ICAgICAgICAgImltcG9ydCByZWFkbGluZTsgcHJpbnQocmVhZGxpbmUuZ2V0X2NvbXBsZXRlcl9k ZWxpbXMoKSkiKSkpCiAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXRyeSkp KSkKCiAoZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmICgmb3B0 aW9uYWwgbXNnKQpAQCAtNDUzNCw2ICs0NTU1LDggQEAgKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21w bGV0aW9uLW5hdGl2ZS1nZXQtY29tcGxldGlvbnMgKHByb2Nlc3MgaW5wdXQpCiAgICAgKGxldCog KChvcmlnaW5hbC1maWx0ZXItZm4gKHByb2Nlc3MtZmlsdGVyIHByb2Nlc3MpKQogICAgICAgICAg ICAocmVkaXJlY3QtYnVmZmVyIChnZXQtYnVmZmVyLWNyZWF0ZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtcmVkaXJlY3QtYnVmZmVy KSkKKyAgICAgICAgICAgKHNlcCAoaWYgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNv bXBsZXRlci1kZWxpbXMgIiIpCisgICAgICAgICAgICAgICAgICAgICJbXG5ccl0rIiAiWyBcZlx0 XG5cclx2KCldKyIpKQogICAgICAgICAgICAodHJpZ2dlciAiXHQiKQogICAgICAgICAgICAobmV3 LWlucHV0IChjb25jYXQgaW5wdXQgdHJpZ2dlcikpCiAgICAgICAgICAgIChpbnB1dC1sZW5ndGgK QEAgLTQ1NzYsMjggKzQ1OTksODAgQEAgKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5h dGl2ZS1nZXQtY29tcGxldGlvbnMgKHByb2Nlc3MgaW5wdXQpCiAgICAgICAgICAgICAgICAgICAg ICBwcm9jZXNzIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1vdXRwdXQtdGltZW91dAog ICAgICAgICAgICAgICAgICAgICAgY29taW50LXJlZGlyZWN0LWZpbmlzaGVkLXJlZ2V4cCkKICAg ICAgICAgICAgICAgICAocmUtc2VhcmNoLWJhY2t3YXJkICIwX19kdW1teV9jb21wbGV0aW9uX18i IG5pbCB0KQotICAgICAgICAgICAgICAgIChjbC1yZW1vdmUtZHVwbGljYXRlcwotICAgICAgICAg ICAgICAgICAoc3BsaXQtc3RyaW5nCi0gICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmlu Zy1uby1wcm9wZXJ0aWVzCi0gICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0 aW9uKSAocG9pbnQtbWluKSkKLSAgICAgICAgICAgICAgICAgICJbIFxmXHRcblxyXHYoKV0rIiB0 KQotICAgICAgICAgICAgICAgICA6dGVzdCAjJ3N0cmluZz0pKSkpCisgICAgICAgICAgICAgICAg KGxldCAoKHN0ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQtbWluKSkpKQor ICAgICAgICAgICAgICAgICAgOzsgVGhlIHJlYWRsaW5lIGNvbXBsZXRlciBpcyBhbGxvd2VkIHRv IHJldHVybiBhIGxpc3QKKyAgICAgICAgICAgICAgICAgIDs7IG9mICh0ZXh0IHN0YXJ0IGVuZCB0 eXBlIHNpZ25hdHVyZSkgYXMgYSBKU09OCisgICAgICAgICAgICAgICAgICA7OyBzdHJpbmcuICBT ZWUgdGhlIHJldHVybiB2YWx1ZSBmb3IgSVB5dGhvbiBpbgorICAgICAgICAgICAgICAgICAgOzsg YHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUnLgorICAgICAgICAgICAgICAgICAg KGlmIChzdHJpbmc9ICJbIiAoc3Vic3RyaW5nIHN0ciAwIDEpKQorICAgICAgICAgICAgICAgICAg ICAgIChjb25kaXRpb24tY2FzZSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGhv bi0tcGFyc2UtanNvbi1hcnJheSBzdHIpCisgICAgICAgICAgICAgICAgICAgICAgICAodCAoY2wt cmVtb3ZlLWR1cGxpY2F0ZXMgKHNwbGl0LXN0cmluZyBzdHIgc2VwIHQpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnRlc3QgIydzdHJpbmc9KSkpCisg ICAgICAgICAgICAgICAgICAgIChjbC1yZW1vdmUtZHVwbGljYXRlcyAoc3BsaXQtc3RyaW5nIHN0 ciBzZXAgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0ZXN0 ICMnc3RyaW5nPSkpKSkpKQogICAgICAgICAoc2V0LXByb2Nlc3MtZmlsdGVyIHByb2Nlc3Mgb3Jp Z2luYWwtZmlsdGVyLWZuKSkpKSkKCiAoZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tZ2V0 LWNvbXBsZXRpb25zIChwcm9jZXNzIGlucHV0KQogICAiR2V0IGNvbXBsZXRpb25zIG9mIElOUFVU IHVzaW5nIFBST0NFU1MuIgogICAod2l0aC1jdXJyZW50LWJ1ZmZlciAocHJvY2Vzcy1idWZmZXIg cHJvY2VzcykKLSAgICAobGV0ICgoY29tcGxldGlvbnMKLSAgICAgICAgICAgKHB5dGhvbi11dGls LXN0cmlwLXN0cmluZwotICAgICAgICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1v dXRwdXQKLSAgICAgICAgICAgICAoZm9ybWF0Ci0gICAgICAgICAgICAgICIlc1xucHJpbnQoJzsn LmpvaW4oX19QWVRIT05fRUxfZ2V0X2NvbXBsZXRpb25zKCVzKSkpIgorICAgIChweXRob24tLXBh cnNlLWpzb24tYXJyYXkKKyAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRwdXQK KyAgICAgIChmb3JtYXQgIiVzXG5wcmludChfX1BZVEhPTl9FTF9nZXRfY29tcGxldGlvbnMoJXMp KSIKICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZQogICAg ICAgICAgICAgICAocHl0aG9uLXNoZWxsLS1lbmNvZGUtc3RyaW5nIGlucHV0KSkKLSAgICAgICAg ICAgICBwcm9jZXNzKSkpKQotICAgICAgKHdoZW4gKD4gKGxlbmd0aCBjb21wbGV0aW9ucykgMikK LSAgICAgICAgKHNwbGl0LXN0cmluZyBjb21wbGV0aW9ucwotICAgICAgICAgICAgICAgICAgICAg ICJeJ1xcfF5cIlxcfDtcXHwnJFxcfFwiJCIgdCkpKSkpCisgICAgICBwcm9jZXNzKSkpKQorCiso ZGVmdW4gcHl0aG9uLXNoZWxsLS1nZXQtbXVsdGlsaW5lLWlucHV0ICgpCisgICJSZXR1cm4gbGlu ZXMgYXQgYSBtdWx0aS1saW5lIGlucHV0IGluIFB5dGhvbiBzaGVsbC4iCisgIChzYXZlLWV4Y3Vy c2lvbgorICAgIChsZXQgKChwIChwb2ludCkpIGxpbmVzKQorICAgICAgKHdoZW4gKHByb2duCisg ICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgKGxvb2tpbmct YmFjayBweXRob24tc2hlbGwtcHJvbXB0LWJsb2NrLXJlZ2V4cCAocG9zLWJvbCkpKQorICAgICAg ICAocHVzaCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChwb2ludCkgcCkgbGluZXMp CisgICAgICAgICh3aGlsZSAocHJvZ24gKGNvbWludC1wcmV2aW91cy1wcm9tcHQgMSkKKyAgICAg ICAgICAgICAgICAgICAgICAobG9va2luZy1iYWNrIHB5dGhvbi1zaGVsbC1wcm9tcHQtYmxvY2st cmVnZXhwIChwb3MtYm9sKSkpCisgICAgICAgICAgKHB1c2ggKGJ1ZmZlci1zdWJzdHJpbmctbm8t cHJvcGVydGllcyAocG9pbnQpIChwb3MtZW9sKSkgbGluZXMpKQorICAgICAgICAocHVzaCAoYnVm ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChwb2ludCkgKHBvcy1lb2wpKSBsaW5lcykpCisg ICAgICBsaW5lcykpKQorCisoZGVmdW4gcHl0aG9uLXNoZWxsLS1leHRyYS1jb21wbGV0aW9uLWNv bnRleHQgKCkKKyAgIkdldCBleHRyYSBjb21wbGV0aW9uIGNvbnRleHQgb2YgY3VycmVudCBpbnB1 dCBpbiBQeXRob24gc2hlbGwuIgorICAobGV0ICgobGluZXMgKHB5dGhvbi1zaGVsbC0tZ2V0LW11 bHRpbGluZS1pbnB1dCkpCisgICAgICAgIChweXRob24taW5kZW50LWd1ZXNzLWluZGVudC1vZmZz ZXQgbmlsKSkKKyAgICAod2hlbiAobm90ICh6ZXJvcCAobGVuZ3RoIGxpbmVzKSkpCisgICAgICAo d2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgICAoZGVsYXktbW9kZS1ob29rcworICAgICAgICAgIChp bnNlcnQgKHN0cmluZy1qb2luIGxpbmVzICJcbiIpKQorICAgICAgICAgIChweXRob24tbW9kZSkK KyAgICAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCkpKSkpKQor CisoZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCAoJm9wdGlvbmFs IHBvcykKKyAgIkdldCBleHRyYSBjb21wbGV0aW9uIGNvbnRleHQgYXQgcG9zaXRpb24gUE9TIGlu IFB5dGhvbiBidWZmZXIuCitJZiBvcHRpb25hbCBhcmd1bWVudCBQT1MgaXMgbmlsLCB1c2UgY3Vy cmVudCBwb3NpdGlvbi4KKworUmVhZGxpbmUgY29tcGxldGVycyBjb3VsZCB1c2UgY3VycmVudCBs aW5lIGFzIHRoZSBjb21wbGV0aW9uCitjb250ZXh0LCB3aGljaCBtYXkgYmUgaW5zdWZmaWNpZW50 LiAgSW4gdGhpcyBmdW5jdGlvbiwgZXh0cmEKK2NvbnRleHQgKGUuZy4gbXVsdGktbGluZSBmdW5j dGlvbiBjYWxsKSBpcyBmb3VuZCBhbmQgcmVmb3JtYXR0ZWQKK2FzIG9uZSBsaW5lLCB3aGljaCBp cyByZXF1aXJlZCBieSBuYXRpdmUgY29tcGxldGlvbi4iCisgIChsZXQgKGJvdW5kIHApCisgICAg KHNhdmUtZXhjdXJzaW9uCisgICAgICAoYW5kIHBvcyAoZ290by1jaGFyIHBvcykpCisgICAgICAo c2V0cSBib3VuZCAocG9zLWJvbCkpCisgICAgICAocHl0aG9uLW5hdi11cC1saXN0IC0xKQorICAg ICAgKHdoZW4gKGFuZCAoPCAocG9pbnQpIGJvdW5kKQorICAgICAgICAgICAgICAgICAob3IKKyAg ICAgICAgICAgICAgICAgIChsb29raW5nLWJhY2sKKyAgICAgICAgICAgICAgICAgICAocHl0aG9u LXJ4IChncm91cCAoKyAob3IgIi4iIHN5bWJvbC1uYW1lKSkpKSAocG9zLWJvbCkgdCkKKyAgICAg ICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lIDAp CisgICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0ICJeWyBcdF0qXFwoZnJvbSBcXCkiKSkp KQorICAgICAgICAoc2V0cSBwIChtYXRjaC1iZWdpbm5pbmcgMSkpKSkKKyAgICAod2hlbiBwCisg ICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAgICAgIlxuWyBcdF0qIiAiIiAoYnVm ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHAgKDEtIGJvdW5kKSkpKSkpCgogKGRlZnZhci1s b2NhbCBweXRob24tc2hlbGwtLWNhcGYtY2FjaGUgbmlsCiAgICJWYXJpYWJsZSB0byBzdG9yZSBj YWNoZWQgY29tcGxldGlvbnMgYW5kIGludmFsaWRhdGlvbiBrZXlzLiIpCkBAIC00NjEyLDIxICs0 Njg3LDI2IEBAIChkZWZ1biBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCAoJm9wdGlv bmFsIHByb2Nlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgV29ya2luZyBvbiBhIHNo ZWxsIGJ1ZmZlcjogdXNlIHByb21wdCBlbmQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNk ciAocHl0aG9uLXV0aWwtY29taW50LWxhc3QtcHJvbXB0KSkKICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCi0gICAgICAgICAoaW1wb3J0LXN0YXRlbWVu dAotICAgICAgICAgICh3aGVuIChzdHJpbmctbWF0Y2gtcAotICAgICAgICAgICAgICAgICAocngg KCogc3BhY2UpIHdvcmQtc3RhcnQgKG9yICJmcm9tIiAiaW1wb3J0Iikgd29yZC1lbmQgc3BhY2Up Ci0gICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgbGluZS1z dGFydCAocG9pbnQpKSkKLSAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRp ZXMgbGluZS1zdGFydCAocG9pbnQpKSkpCisgICAgICAgICAobm8tZGVsaW1zCisgICAgICAgICAg KGFuZCAobm90IChpZiBpcy1zaGVsbC1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIChl cSAnZm9udC1sb2NrLWNvbW1lbnQtZmFjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChn ZXQtdGV4dC1wcm9wZXJ0eSAoMS0gKHBvaW50KSkgJ2ZhY2UpKQorICAgICAgICAgICAgICAgICAg ICAgIChweXRob24tc3ludGF4LWNvbnRleHQgJ2NvbW1lbnQpKSkKKyAgICAgICAgICAgICAgICh3 aXRoLWN1cnJlbnQtYnVmZmVyIChwcm9jZXNzLWJ1ZmZlciBwcm9jZXNzKQorICAgICAgICAgICAg ICAgICAoaWYgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLWVuYWJsZQorICAgICAgICAg ICAgICAgICAgICAgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxp bXMgIiIpCisgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wICJpcHl0aG9uWzIzXT9c XCciIHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlcikpKSkpCiAgICAgICAgICAoc3RhcnQKICAgICAg ICAgICAoaWYgKDwgKHBvaW50KSBsaW5lLXN0YXJ0KQogICAgICAgICAgICAgICAocG9pbnQpCiAg ICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KLSAgICAgICAgICAgICAgKGlmIChub3QgKHJlLXNl YXJjaC1iYWNrd2FyZAotICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1yeAotICAgICAg ICAgICAgICAgICAgICAgICAgIChvciB3aGl0ZXNwYWNlIG9wZW4tcGFyZW4gY2xvc2UtcGFyZW4K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLWRlbGltaXRlciBzaW1wbGUtb3Bl cmF0b3IpKQotICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1zdGFydAotICAgICAgICAgICAg ICAgICAgICAgICAgdCAxKSkKKyAgICAgICAgICAgICAgKGlmIChvciBuby1kZWxpbXMKKyAgICAg ICAgICAgICAgICAgICAgICAobm90IChyZS1zZWFyY2gtYmFja3dhcmQKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocHl0aG9uLXJ4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChv ciB3aGl0ZXNwYWNlIG9wZW4tcGFyZW4gY2xvc2UtcGFyZW4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cmluZy1kZWxpbWl0ZXIgc2ltcGxlLW9wZXJhdG9yKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaW5lLXN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdCAxKSkpCiAgICAgICAgICAgICAgICAgICBsaW5lLXN0YXJ0CiAgICAgICAgICAgICAgICAg KGZvcndhcmQtY2hhciAobGVuZ3RoIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAwKSkpCiAg ICAgICAgICAgICAgICAgKHBvaW50KSkpKSkKQEAgLTQ2NjYsMTggKzQ3NDYsNTYgQEAgKGRlZnVu IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50ICgmb3B0aW9uYWwgcHJvY2VzcykKICAg ICAgICAgICAgICAgICAgICh0ICMncHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLWdldC1j b21wbGV0aW9ucykpKSkKICAgICAgICAgIChwcmV2LXByb21wdCAoY2FyIHB5dGhvbi1zaGVsbC0t Y2FwZi1jYWNoZSkpCiAgICAgICAgICAocmUgKG9yIChjYWRyIHB5dGhvbi1zaGVsbC0tY2FwZi1j YWNoZSkgcmVnZXhwLXVubWF0Y2hhYmxlKSkKLSAgICAgICAgIChwcmVmaXggKGJ1ZmZlci1zdWJz dHJpbmctbm8tcHJvcGVydGllcyBzdGFydCBlbmQpKSkKKyAgICAgICAgIChwcmVmaXggKGJ1ZmZl ci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBzdGFydCBlbmQpKQorICAgICAgICAgKHByZWZpeC1v ZmZzZXQgMCkKKyAgICAgICAgIChleHRyYS1jb250ZXh0ICh3aGVuIG5vLWRlbGltcworICAgICAg ICAgICAgICAgICAgICAgICAgICAoaWYgaXMtc2hlbGwtYnVmZmVyCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLS1leHRyYS1jb21wbGV0aW9uLWNvbnRleHQpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWV4dHJh LWNvbnRleHQpKSkpCisgICAgICAgICAoZXh0cmEtb2Zmc2V0IChsZW5ndGggZXh0cmEtY29udGV4 dCkpKQorICAgICh1bmxlc3MgKHplcm9wIGV4dHJhLW9mZnNldCkKKyAgICAgIChzZXRxIHByZWZp eCAoY29uY2F0IGV4dHJhLWNvbnRleHQgcHJlZml4KSkpCiAgICAgOzsgVG8gaW52YWxpZGF0ZSB0 aGUgY2FjaGUsIHdlIGNoZWNrIGlmIHRoZSBwcm9tcHQgcG9zaXRpb24gb3IgdGhlCiAgICAgOzsg Y29tcGxldGlvbiBwcmVmaXggY2hhbmdlZC4KICAgICAodW5sZXNzIChhbmQgKGVxdWFsIHByZXYt cHJvbXB0IChjYXIgcHJvbXB0LWJvdW5kYXJpZXMpKQotICAgICAgICAgICAgICAgICAoc3RyaW5n LW1hdGNoIHJlIHByZWZpeCkpCisgICAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2ggcmUgcHJl Zml4KQorICAgICAgICAgICAgICAgICAoc2V0cSBwcmVmaXgtb2Zmc2V0ICgtIChsZW5ndGggcHJl Zml4KSAobWF0Y2gtZW5kIDEpKSkpCiAgICAgICAoc2V0cSBweXRob24tc2hlbGwtLWNhcGYtY2Fj aGUKICAgICAgICAgICAgIGAoLChjYXIgcHJvbXB0LWJvdW5kYXJpZXMpCiAgICAgICAgICAgICAg ICwoaWYgKHN0cmluZy1lbXB0eS1wIHByZWZpeCkKICAgICAgICAgICAgICAgICAgICByZWdleHAt dW5tYXRjaGFibGUKLSAgICAgICAgICAgICAgICAgKGNvbmNhdCAiXFxgIiAocmVnZXhwLXF1b3Rl IHByZWZpeCkgIlxcKD86XFxzd1xcfFxcc19cXCkqXFwnIikpCi0gICAgICAgICAgICAgICxAKGZ1 bmNhbGwgY29tcGxldGlvbi1mbiBwcm9jZXNzIChvciBpbXBvcnQtc3RhdGVtZW50IHByZWZpeCkp KSkpCi0gICAgKGxpc3Qgc3RhcnQgZW5kIChjZGRyIHB5dGhvbi1zaGVsbC0tY2FwZi1jYWNoZSkp KSkKKyAgICAgICAgICAgICAgICAgKGNvbmNhdCAiXFxgXFwoIiAocmVnZXhwLXF1b3RlIHByZWZp eCkgIlxcKVxcKD86XFxzd1xcfFxcc19cXCkqXFwnIikpCisgICAgICAgICAgICAgICxAKGZ1bmNh bGwgY29tcGxldGlvbi1mbiBwcm9jZXNzIHByZWZpeCkpKSkKKyAgICAobGV0ICgoY2FuZHMgKGNk ZHIgcHl0aG9uLXNoZWxsLS1jYXBmLWNhY2hlKSkpCisgICAgICAoY29uZAorICAgICAgICgoc3Ry aW5ncCAoY2FyIGNhbmRzKSkKKyAgICAgICAgKGlmIG5vLWRlbGltcworICAgICAgICAgICAgOzsg UmVkdWNlIGNvbXBsZXRpb24gY2FuZGlkYXRlcyBkdWUgdG8gbG9uZyBwcmVmaXguCisgICAgICAg ICAgICAoaWYtbGV0ICgoTHAgKGxlbmd0aCBwcmVmaXgpKQorICAgICAgICAgICAgICAgICAgICAg KChzdHJpbmctbWF0Y2ggIlxcKFxcc3dcXHxcXHNfXFwpK1xcJyIgcHJlZml4KSkKKyAgICAgICAg ICAgICAgICAgICAgIChMIChtYXRjaC1iZWdpbm5pbmcgMCkpKQorICAgICAgICAgICAgICAgIDs7 IElmIGV4dHJhLW9mZnNldCBpcyBub3QgemVybzoKKyAgICAgICAgICAgICAgICA7OyAgICAgICAg ICAgICAgICAgIHN0YXJ0ICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICA7OyBvLS0t LS0tLS0tLS0tLS0tLS0tby0tLS0tLS0tLW8tLS0tLS0tbworICAgICAgICAgICAgICAgIDs7IHw8 LSBleHRyYS1vZmZzZXQgLT58CisgICAgICAgICAgICAgICAgOzsgfDwtLS0tLS0tLS0tLSBMIC0t LS0tLS0tLS0tLT58CisgICAgICAgICAgICAgICAgOzsgICAgICAgICAgICAgICAgICAgICAgICAg IG5ldy1zdGFydAorICAgICAgICAgICAgICAgIChsaXN0ICgrIHN0YXJ0IEwgKC0gZXh0cmEtb2Zm c2V0KSkgZW5kCisgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAobGFtYmRhIChzKSAoc3Vi c3RyaW5nIHMgTCkpIGNhbmRzKSkKKyAgICAgICAgICAgICAgKGxpc3QgZW5kIGVuZCAobWFwY2Fy IChsYW1iZGEgKHMpIChzdWJzdHJpbmcgcyBMcCkpIGNhbmRzKSkpCisgICAgICAgICAgKGxpc3Qg c3RhcnQgZW5kIGNhbmRzKSkpCisgICAgICAgOzsgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24oLW5h dGl2ZSktZ2V0LWNvbXBsZXRpb25zIG1heSBwcm9kdWNlIGEKKyAgICAgICA7OyBsaXN0IG9mICh0 ZXh0IHN0YXJ0IGVuZCB0eXBlIHNpZ25hdHVyZSkgZm9yIGNvbXBsZXRpb24uCisgICAgICAgKChj b25zcCAoY2FyIGNhbmRzKSkKKyAgICAgICAgKGxpc3QgKCsgc3RhcnQgKG50aCAxIChjYXIgY2Fu ZHMpKSAoLSBleHRyYS1vZmZzZXQpKQorICAgICAgICAgICAgICA7OyBDYW5kaWRhdGVzIG1heSBi ZSBjYWNoZWQsIHNvIHRoZSBlbmQgcG9zaXRpb24gc2hvdWxkCisgICAgICAgICAgICAgIDs7IGJl IGFkanVzdGVkIGFjY29yZGluZyB0byBjdXJyZW50IGNvbXBsZXRpb24gcHJlZml4LgorICAgICAg ICAgICAgICAoKyBzdGFydCAobnRoIDIgKGNhciBjYW5kcykpICgtIGV4dHJhLW9mZnNldCkgcHJl Zml4LW9mZnNldCkKKyAgICAgICAgICAgICAgY2FuZHMKKyAgICAgICAgICAgICAgOmFubm90YXRp b24tZnVuY3Rpb24KKyAgICAgICAgICAgICAgKGxhbWJkYSAoYykgKGNvbmNhdCAiICIgKG50aCAz IChhc3NvYyBjIGNhbmRzKSkpKQorICAgICAgICAgICAgICA6Y29tcGFueS1kb2NzaWcKKyAgICAg ICAgICAgICAgKGxhbWJkYSAoYykgKG50aCA0IChhc3NvYyBjIGNhbmRzKSkpKSkpKSkpCgogKGRl ZmluZS1vYnNvbGV0ZS1mdW5jdGlvbi1hbGlhcwogICAncHl0aG9uLXNoZWxsLWNvbXBsZXRpb24t Y29tcGxldGUtYXQtcG9pbnQKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9u LXRlc3RzLmVsIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKaW5kZXggNTk5 NTdmZjA3MTIuLmFmNmMxOTliNWJkIDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5 dGhvbi10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbApA QCAtNDc5OSw2ICs0Nzk5LDk4IEBAIChlcnQtZGVmdGVzdCBweXRob24tc2hlbGwtY29tcGxldGlv bi1hdC1wb2ludC1uYXRpdmUtMSAoKQogICAgICAoZW5kLW9mLWxpbmUgMCkKICAgICAgKHNob3Vs ZC1ub3QgKG50aCAyIChweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCkpKSkpKQoKKyhk ZWZ1biBweXRob24tdGVzdHMtLWNvbXBsZXRpb24tbW9kdWxlICgpCisgICJDaGVjayBpZiBtb2R1 bGVzIGNhbiBiZSBjb21wbGV0ZWQgaW4gUHl0aG9uIHNoZWxsLiIKKyAgKGluc2VydCAiaW1wb3J0 IGRhdGV0IikKKyAgKGNvbXBsZXRpb24tYXQtcG9pbnQpCisgIChiZWdpbm5pbmctb2YtbGluZSkK KyAgKHNob3VsZCAobG9va2luZy1hdC1wICJpbXBvcnQgZGF0ZXRpbWUiKSkKKyAgKGtpbGwtbGlu ZSkKKyAgKGluc2VydCAiZnJvbSBkYXRldCIpCisgIChjb21wbGV0aW9uLWF0LXBvaW50KQorICAo YmVnaW5uaW5nLW9mLWxpbmUpCisgIChzaG91bGQgKGxvb2tpbmctYXQtcCAiZnJvbSBkYXRldGlt ZSIpKQorICAoZW5kLW9mLWxpbmUpCisgIChpbnNlcnQgIiBpbXBvcnQgdGltZWQiKQorICAoY29t cGxldGlvbi1hdC1wb2ludCkKKyAgKGJlZ2lubmluZy1vZi1saW5lKQorICAoc2hvdWxkIChsb29r aW5nLWF0LXAgImZyb20gZGF0ZXRpbWUgaW1wb3J0IHRpbWVkZWx0YSIpKQorICAoa2lsbC1saW5l KSkKKworKGRlZnVuIHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzICgpCisgICJD aGVjayBpZiBwYXJhbWV0ZXJzIGNhbiBiZSBjb21wbGV0ZWQgaW4gUHl0aG9uIHNoZWxsLiIKKyAg KGluc2VydCAiaW1wb3J0IHJlIikKKyAgKGNvbWludC1zZW5kLWlucHV0KQorICAocHl0aG9uLXRl c3RzLXNoZWxsLXdhaXQtZm9yLXByb21wdCkKKyAgKGluc2VydCAicmUuc3BsaXQoJ2InLCAnYWJj JywgbWF4cyIpCisgIChjb21wbGV0aW9uLWF0LXBvaW50KQorICAoc2hvdWxkIChzdHJpbmc9ICJy ZS5zcGxpdCgnYicsICdhYmMnLCBtYXhzcGxpdD0iCisgICAgICAgICAgICAgICAgICAgKGJ1ZmZl ci1zdWJzdHJpbmcgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQpKSkpCisgIChpbnNl cnQgIjAsICIpCisgIChzaG91bGQgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50KSkK KyAgOzsgVGVzdCBpZiBjYWNoZSBpcyB1c2VkLgorICAoY2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rp b24gJ3B5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucykKKyAgICAgICAgICAg ICAnaWdub3JlKQorICAgICAgICAgICAgKChzeW1ib2wtZnVuY3Rpb24gJ3B5dGhvbi1zaGVsbC1j b21wbGV0aW9uLW5hdGl2ZS1nZXQtY29tcGxldGlvbnMpCisgICAgICAgICAgICAgJ2lnbm9yZSkp CisgICAgKGluc2VydCAiZmxhIikKKyAgICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgICAoc2hv dWxkIChzdHJpbmc9ICJyZS5zcGxpdCgnYicsICdhYmMnLCBtYXhzcGxpdD0wLCBmbGFncz0iCisg ICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZyAobGluZS1iZWdpbm5pbmctcG9z aXRpb24pIChwb2ludCkpKSkpCisgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgKGtpbGwtbGluZSkp CisKKyhkZWZ1biBweXRob24tdGVzdHMtLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCAoKQorICAi Q2hlY2sgaWYgZXh0cmEgY29udGV4dCBpcyB1c2VkIGZvciBjb21wbGV0aW9uLiIKKyAgKGluc2Vy dCAicmUuc3BsaXQoJ2InLCAnYWJjJywiKQorICAoY29taW50LXNlbmQtaW5wdXQpCisgIChweXRo b24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0KQorICAoaW5zZXJ0ICJtYXhzIikKKyAgKGNv bXBsZXRpb24tYXQtcG9pbnQpCisgIChzaG91bGQgKHN0cmluZz0gIm1heHNwbGl0PSIKKyAgICAg ICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZyAobGluZS1iZWdpbm5pbmctcG9zaXRpb24p IChwb2ludCkpKSkKKyAgKGluc2VydCAiMCkiKQorICAoY29taW50LXNlbmQtaW5wdXQpCisgIChw eXRob24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0KQorICAoaW5zZXJ0ICJmcm9tIHJlIGlt cG9ydCAoIikKKyAgKGNvbWludC1zZW5kLWlucHV0KQorICAocHl0aG9uLXRlc3RzLXNoZWxsLXdh aXQtZm9yLXByb21wdCkKKyAgKGluc2VydCAiSUdOIikKKyAgKGNvbXBsZXRpb24tYXQtcG9pbnQp CisgIChzaG91bGQgKHN0cmluZz0gIklHTk9SRUNBU0UiCisgICAgICAgICAgICAgICAgICAgKGJ1 ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQpKSkpKQorCiso ZXJ0LWRlZnRlc3QgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtamVkaS1jb21wbGV0 ZXIgKCkKKyAgIkNoZWNrIGlmIFB5dGhvbiBzaGVsbCBjb21wbGV0aW9uIHdvcmtzIHdoZW4gSmVk aSBjb21wbGV0ZXIgaXMgdXNlZC4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kIHB5 dGhvbi10ZXN0cy1zaGVsbC1pbnRlcnByZXRlcikpCisgIChweXRob24tdGVzdHMtd2l0aC10ZW1w LWJ1ZmZlci13aXRoLXNoZWxsCisgICAiIgorICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1 ZmZlcgorICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCisgICAg IChza2lwLXVubGVzcyAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRl bGltcyAiIikpCisgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tbW9kdWxlKQorICAgICAo cHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLXBhcmFtZXRlcnMpCisgICAgIChweXRob24tdGVzdHMt LWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi1zaGVs bC1jb21wbGV0aW9uLWF0LXBvaW50LWlweXRob24gKCkKKyAgIkNoZWNrIGlmIFB5dGhvbiBzaGVs bCBjb21wbGV0aW9uIHdvcmtzIGZvciBJUHl0aG9uLiIKKyAgKGxldCAoKHB5dGhvbi1zaGVsbC1p bnRlcnByZXRlciAiaXB5dGhvbiIpCisgICAgICAgIChweXRob24tc2hlbGwtaW50ZXJwcmV0ZXIt YXJncyAiLWkgLS1zaW1wbGUtcHJvbXB0IikpCisgICAgKHNraXAtdW5sZXNzCisgICAgIChhbmQK KyAgICAgIChleGVjdXRhYmxlLWZpbmQgcHl0aG9uLXNoZWxsLWludGVycHJldGVyKQorICAgICAg KGVxbCAoY2FsbC1wcm9jZXNzIHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlciBuaWwgbmlsIG5pbCAi LS12ZXJzaW9uIikgMCkpKQorICAgIChweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlci13aXRo LXNoZWxsCisgICAgICIiCisgICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAg ICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmKQorICAgICAgIChw eXRob24tdGVzdHMtLWNvbXBsZXRpb24tbW9kdWxlKQorICAgICAgIChweXRob24tdGVzdHMtLWNv bXBsZXRpb24tcGFyYW1ldGVycykKKyAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0 aXZlLXR1cm4tb24pCisgICAgICAgKHNraXAtdW5sZXNzIChzdHJpbmc9IHB5dGhvbi1zaGVsbC1y ZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zICIiKSkKKyAgICAgICAocHl0aG9uLXRlc3RzLS1jb21w bGV0aW9uLW1vZHVsZSkKKyAgICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLXBhcmFtZXRl cnMpCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1leHRyYS1jb250ZXh0KSkpKSkK CiAMCiA7OzsgUERCIFRyYWNrIGludGVncmF0aW9uCi0tCjIuMzkuMgoK --000000000000d009a60610a3c38e-- From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 05 20:26:09 2024 Received: (at 68559) by debbugs.gnu.org; 6 Feb 2024 01:26:10 +0000 Received: from localhost ([127.0.0.1]:52869 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXADw-0001gp-Hu for submit@debbugs.gnu.org; Mon, 05 Feb 2024 20:26:09 -0500 Received: from mail-vk1-xa2b.google.com ([2607:f8b0:4864:20::a2b]:55483) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXADu-0001gL-Af for 68559@debbugs.gnu.org; Mon, 05 Feb 2024 20:26:07 -0500 Received: by mail-vk1-xa2b.google.com with SMTP id 71dfb90a1353d-4c01076b9faso1509915e0c.2 for <68559@debbugs.gnu.org>; Mon, 05 Feb 2024 17:25:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707182748; x=1707787548; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=n635+wz7NJcUOsaOH6FWJg+/MTZDNiLwv6QJF+iYmyA=; b=VEIn7IG5L6xi0u7XnQ/CywIrRs/PMXfHn1VYddPK+NxnHsg9uXMZ+M2IPSZhiRXF6t XJ/ah0kNlb82gHh5QyTveapUKO7E4krkA1zPlxaWqf8hWYQAGc5SvB0ypu308jw4K2Pc AgWPkgfTSFtBorpRWe+42gaiLMS5+3rd8PMB8PwbcuNyL1p8lpL+lrZezZnylASpfrqT jY2T+v2TV0InRzyl8Nq1PforDbrw1wxQkWVCc812rKEEC49b0sn45J9ZXWOpgQi7tr7X 9gvPHACd0jDB7KT5uQzp400EcjUgQqd/Y3HeLp/Gzx+nmIF8dKWsM2ekkr0/x7MHm3hX wbew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707182748; x=1707787548; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=n635+wz7NJcUOsaOH6FWJg+/MTZDNiLwv6QJF+iYmyA=; b=WkzB870AQaZM6y4XsNN92yHFN2jximkUtWlKsre2TyO+Y7ytCLWrnAkJjCr1bt/Tj8 wBm/n+2rPmSEU4XecZ3EkIo5WyXHZu6shuZLhIai/NhcdXIuPrSrlEB0cIiHsjy1jGQk 8HySZ6poLH+IzrIFLWAnOG5O77aZ3kZTHIUWZKQu+I6cIydPKzfTpAaMNNY5rTAUm6J1 rhx8Qad7T9tRuwq2mb+1UVNog1J7s5L1Y4R4JmBKIuz7xvyd6UUgAn6mY2dXn6GonmBl WO2OeUJdAY+WSgeAv3PLkVBXZTEjqdtF7U/pLB347HXCwuDxKTyG1Rxbf1X9a6R9bDH8 5EIw== X-Gm-Message-State: AOJu0YwzFZOLH/b5no+D0RPYFrLu+WuQfabvR0jX1r+kzlTChtCnoj7W OgIaIlEO2SA2fVJP0p+eU2sJZo56GTlMSDrcmeFeE8Hkr8MojThxE46U2a7xUFg+ipmz10/21dz xqew5pGu+iCeJDEHiBSOOQhmkVB0= X-Google-Smtp-Source: AGHT+IHH19JoaphQNN2x9+NHLLQTnla8wWG8VO31MLl2+8pXX4gkbMl+DsIbwyomzftgsQDNzXYx46I0+bq0z7GLvr8= X-Received: by 2002:ac5:c64f:0:b0:4c0:1a5c:9185 with SMTP id j15-20020ac5c64f000000b004c01a5c9185mr1180654vkl.4.1707182747765; Mon, 05 Feb 2024 17:25:47 -0800 (PST) MIME-Version: 1.0 References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> In-Reply-To: From: Liu Hui Date: Tue, 6 Feb 2024 09:25:36 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: kobarity Content-Type: multipart/mixed; boundary="0000000000003f86740610ac758f" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --0000000000003f86740610ac758f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Feb 5, 2024 at 11:03=E2=80=AFPM Liu Hui wrot= e: > > Thank you for the detailed explanation and the workaround. I > > confirmed that the problem is solved by the above workaround. Just to > > confirm, are you of the opinion that this workaround should not be the > > default? > > I'm not sure if we should add more Python code in the form of strings > to python.el, which increases maintenance burden IMO. Maybe they could > be distributed separately at ELPA/Git forges. > > Actually, I'm considering simplifying this patch to mainly fix the bug > that python shell completion doesn't respect the delimiter of readline > completer. The new patch has been attached. It should support > the completer defined in the PYTHONSTARTUP file, e.g., jedi or a > custom completer like the above one. WDYT? I have updated documentation about readline completer and fixed an error in commit log in the attach patch. --0000000000003f86740610ac758f Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Respect-the-delimiter-of-completer-in-Python-shell-c.patch" Content-Disposition: attachment; filename="0001-Respect-the-delimiter-of-completer-in-Python-shell-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ls9oicow0 RnJvbSA1MjllNWY2MTgwMTk3MTMwZWMzOWRiZGRkMzliMmFhMmI2ZGVmZjY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAxOCBKYW4gMjAyNCAxMjowMDowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFJlc3BlY3Qg dGhlIGRlbGltaXRlciBvZiBjb21wbGV0ZXIgaW4gUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24KCiog bGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsOiAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAt Y29kZSk6IEZpeAp0aGUgY29tcGxldGlvbiBjb2RlIG9mIElQeXRob24uICBDaGFuZ2UgdGhlIHJl dHVybiB2YWx1ZSB0byBKU09OIHN0cmluZwphbmQgLi4uCihweXRob24tc2hlbGwtY29tcGxldGlv bi1nZXQtY29tcGxldGlvbnMpOiAuLi4gc2ltcGxpZnkgcGFyc2luZy4KKGluZmVyaW9yLXB5dGhv bi1tb2RlKTogVXBkYXRlIGRvY3N0cmluZy4KKHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0 ZXItZGVsaW1zKTogTmV3IHZhcmlhYmxlIGluZGljYXRpbmcgdGhlCndvcmQgZGVsaW1pdGVycyBv ZiByZWFkbGluZSBjb21wbGV0ZXIuCihweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0 dXApOiBTZXQgdGhlIGNvbXBsZXRlciBkZWxpbWl0ZXIuCihweXRob24tc2hlbGwtY29tcGxldGlv bi1uYXRpdmUtZ2V0LWNvbXBsZXRpb25zKTogQ29udmVydCBvdXRwdXQgc3RyaW5nCnRvIGNvbXBs ZXRpb25zIHByb3Blcmx5LgoocHl0aG9uLXNoZWxsLS1nZXQtbXVsdGlsaW5lLWlucHV0KQoocHl0 aG9uLXNoZWxsLS1leHRyYS1jb21wbGV0aW9uLWNvbnRleHQpCihweXRob24tc2hlbGwtY29tcGxl dGlvbi1leHRyYS1jb250ZXh0KTogTmV3IGZ1bmN0aW9ucy4KKHB5dGhvbi1zaGVsbC1jb21wbGV0 aW9uLWF0LXBvaW50KTogU2VuZCB0ZXh0IGJlZ2lubmluZyBmcm9tIHRoZSBsaW5lCnN0YXJ0IGlm IHRoZSBjb21wbGV0aW9uIGJhY2tlbmQgZG9lcyBub3QgbmVlZCB3b3JkIHNwbGl0dGluZy4gIFJl bW92ZQp0aGUgZGV0ZWN0aW9uIG9mIGltcG9ydCBzdGF0ZW1lbnQgYmVjYXVzZSBpdCBpcyBub3Qg bmVlZGVkIGFueW1vcmUuCkNyZWF0ZSBwcm9wZXIgY29tcGxldGlvbiB0YWJsZSBiYXNlZCBvbiBj b21wbGV0aW9ucyByZXR1cm5lZCBmcm9tCmRpZmZlcmVudCBiYWNrZW5kcy4KCiogdGVzdC9saXNw L3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1tb2R1 bGUpCihweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycykKKHB5dGhvbi10ZXN0cy0t Y29tcGxldGlvbi1leHRyYS1jb250ZXh0KTogTmV3IGhlbHBlciBmdW5jdGlvbnMuCihweXRob24t c2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1qZWRpLWNvbXBsZXRlcikKKHB5dGhvbi1zaGVsbC1j b21wbGV0aW9uLWF0LXBvaW50LWlweXRob24pOiBOZXcgdGVzdHMuIChidWcjNjg1NTkpCi0tLQog bGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsICAgICAgICAgICAgfCAyMTggKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLQogdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwgfCAgOTIg KysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDI2MyBpbnNlcnRpb25zKCspLCA0NyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwgYi9saXNwL3By b2dtb2Rlcy9weXRob24uZWwKaW5kZXggOWQ4NDBlZmI5ZGEuLmQ4OGRhNGUyNzAwIDEwMDY0NAot LS0gYS9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9u LmVsCkBAIC0xMjgsOSArMTI4LDkgQEAgOzs7IENvbW1lbnRhcnk6CiA7OyByZWNlaXZpbmcgZXNj YXBlIHNlcXVlbmNlcyAod2l0aCBzb21lIGxpbWl0YXRpb25zLCBpLmUuIGNvbXBsZXRpb24KIDs7 IGluIGJsb2NrcyBkb2VzIG5vdCB3b3JrKS4gIFRoZSBjb2RlIGV4ZWN1dGVkIGZvciB0aGUgImZh bGxiYWNrIgogOzsgY29tcGxldGlvbiBjYW4gYmUgZm91bmQgaW4gYHB5dGhvbi1zaGVsbC1jb21w bGV0aW9uLXNldHVwLWNvZGUnIGFuZAotOzsgYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXN0cmlu Zy1jb2RlJyB2YXJpYWJsZXMuICBUaGVpciBkZWZhdWx0Ci07OyB2YWx1ZXMgZW5hYmxlIGNvbXBs ZXRpb24gZm9yIGJvdGggQ1B5dGhvbiBhbmQgSVB5dGhvbiwgYW5kIHByb2JhYmx5Ci07OyBhbnkg cmVhZGxpbmUgYmFzZWQgc2hlbGwgKGl0J3Mga25vd24gdG8gd29yayB3aXRoIFB5UHkpLiAgSWYg eW91cgorOzsgYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucycuICBUaGVp ciBkZWZhdWx0IHZhbHVlcworOzsgZW5hYmxlIGNvbXBsZXRpb24gZm9yIGJvdGggQ1B5dGhvbiBh bmQgSVB5dGhvbiwgYW5kIHByb2JhYmx5IGFueQorOzsgcmVhZGxpbmUgYmFzZWQgc2hlbGwgKGl0 J3Mga25vd24gdG8gd29yayB3aXRoIFB5UHkpLiAgSWYgeW91cgogOzsgUHl0aG9uIGluc3RhbGxh dGlvbiBsYWNrcyByZWFkbGluZSAobGlrZSBDUHl0aG9uIGZvciBXaW5kb3dzKSwKIDs7IGluc3Rh bGxpbmcgcHlyZWFkbGluZSAoVVJMIGBodHRwczovL2lweXRob24ub3JnL3B5cmVhZGxpbmUuaHRt bCcpCiA7OyBzaG91bGQgc3VmZmljZS4gIFRvIHRyb3VibGVzaG9vdCB3aHkgeW91IGFyZSBub3Qg Z2V0dGluZyBhbnkKQEAgLTE0MSw2ICsxNDEsMTIgQEAgOzs7IENvbW1lbnRhcnk6CiA7OyBJZiB5 b3Ugc2VlIGFuIGVycm9yLCB0aGVuIHlvdSBuZWVkIHRvIGVpdGhlciBpbnN0YWxsIHB5cmVhZGxp bmUgb3IKIDs7IHNldHVwIGN1c3RvbSBjb2RlIHRoYXQgYXZvaWRzIHRoYXQgZGVwZW5kZW5jeS4K IAorOzsgQnkgZGVmYXVsdCwgdGhlICJuYXRpdmUiIGNvbXBsZXRpb24gdXNlcyB0aGUgYnVpbHQt aW4gcmxjb21wbGV0ZXIuCis7OyBUbyB1c2Ugb3RoZXIgcmVhZGxpbmUgY29tcGxldGVyIChlLmcu IEplZGkpIG9yIGEgY3VzdG9tIG9uZSwgeW91IGp1c3QKKzs7IG5lZWQgdG8gc2V0IGl0IGluIHRo ZSBQWVRIT05TVEFSVFVQIGZpbGUuICBZb3UgY2FuIHNldCBhbgorOzsgRW1hY3Mtc3BlY2lmaWMg Y29tcGxldGVyIGJ5IHRlc3RpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCis7OyBJTlNJREVf RU1BQ1MuCisKIDs7IFNoZWxsIHZpcnR1YWxlbnYgc3VwcG9ydDogVGhlIHNoZWxsIGFsc28gY29u dGFpbnMgc3VwcG9ydCBmb3IKIDs7IHZpcnR1YWxlbnZzIGFuZCBvdGhlciBzcGVjaWFsIGVudmly b25tZW50IG1vZGlmaWNhdGlvbnMgdGhhbmtzIHRvCiA7OyBgcHl0aG9uLXNoZWxsLXByb2Nlc3Mt ZW52aXJvbm1lbnQnIGFuZCBgcHl0aG9uLXNoZWxsLWV4ZWMtcGF0aCcuCkBAIC0zNjA0LDcgKzM2 MTAsNiBAQCAoZGVmaW5lLWRlcml2ZWQtbW9kZSBpbmZlcmlvci1weXRob24tbW9kZSBjb21pbnQt bW9kZSAiSW5mZXJpb3IgUHl0aG9uIgogYHB5dGhvbi1zaGVsbC1wcm9tcHQtYmxvY2stcmVnZXhw JywKIGBweXRob24tc2hlbGwtZm9udC1sb2NrLWVuYWJsZScsCiBgcHl0aG9uLXNoZWxsLWNvbXBs ZXRpb24tc2V0dXAtY29kZScsCi1gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc3RyaW5nLWNvZGUn LAogYHB5dGhvbi1lbGRvYy1zZXR1cC1jb2RlJywKIGBweXRob24tZmZhcC1zZXR1cC1jb2RlJyBj YW4KIGN1c3RvbWl6ZSB0aGlzIG1vZGUgZm9yIGRpZmZlcmVudCBQeXRob24gaW50ZXJwcmV0ZXJz LgpAQCAtNDI0NCw4ICs0MjQ5LDkgQEAgKGRlZmN1c3RvbSBweXRob24tc2hlbGwtY29tcGxldGlv bi1zZXR1cC1jb2RlCiAgICAgY29tcGxldGlvbnMgPSBbXQogICAgIGNvbXBsZXRlciA9IE5vbmUK IAorICAgIGltcG9ydCBqc29uCiAgICAgdHJ5OgotICAgICAgICBpbXBvcnQgcmVhZGxpbmUKKyAg ICAgICAgaW1wb3J0IHJlYWRsaW5lLCByZQogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlt cG9ydCBfX2J1aWx0aW5fXwpAQCAtNDI1NiwxNiArNDI2MiwyOSBAQCAoZGVmY3VzdG9tIHB5dGhv bi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKIAogICAgICAgICBpc19pcHl0aG9uID0gKCdf X0lQWVRIT05fXycgaW4gYnVpbHRpbnMgb3IKICAgICAgICAgICAgICAgICAgICAgICAnX19JUFlU SE9OX19hY3RpdmUnIGluIGJ1aWx0aW5zKQotICAgICAgICBzcGxpdHMgPSB0ZXh0LnNwbGl0KCkK LSAgICAgICAgaXNfbW9kdWxlID0gc3BsaXRzIGFuZCBzcGxpdHNbMF0gaW4gKCdmcm9tJywgJ2lt cG9ydCcpCi0KLSAgICAgICAgaWYgaXNfaXB5dGhvbiBhbmQgaXNfbW9kdWxlOgotICAgICAgICAg ICAgZnJvbSBJUHl0aG9uLmNvcmUuY29tcGxldGVybGliIGltcG9ydCBtb2R1bGVfY29tcGxldGlv bgotICAgICAgICAgICAgY29tcGxldGlvbnMgPSBtb2R1bGVfY29tcGxldGlvbih0ZXh0LnN0cmlw KCkpCi0gICAgICAgIGVsaWYgaXNfaXB5dGhvbiBhbmQgJ19fSVAnIGluIGJ1aWx0aW5zOgotICAg ICAgICAgICAgY29tcGxldGlvbnMgPSBfX0lQLmNvbXBsZXRlKHRleHQpCi0gICAgICAgIGVsaWYg aXNfaXB5dGhvbiBhbmQgJ2dldF9pcHl0aG9uJyBpbiBidWlsdGluczoKLSAgICAgICAgICAgIGNv bXBsZXRpb25zID0gZ2V0X2lweXRob24oKS5Db21wbGV0ZXIuYWxsX2NvbXBsZXRpb25zKHRleHQp CisKKyAgICAgICAgaWYgaXNfaXB5dGhvbiBhbmQgJ2dldF9pcHl0aG9uJyBpbiBidWlsdGluczoK KyAgICAgICAgICAgIGRlZiBmaWx0ZXJfYyhwcmVmaXgsIGMpOgorICAgICAgICAgICAgICAgIGlm IHJlLm1hdGNoKCdfKyhpP1swLTldKyk/JCcsIGMpOgorICAgICAgICAgICAgICAgICAgICByZXR1 cm4gRmFsc2UKKyAgICAgICAgICAgICAgICBlbGlmIGNbMF0gPT0gJyUnIGFuZCBub3QgcmUubWF0 Y2goJ1slYS16QS1aXSskJywgcHJlZml4KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZh bHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICAgICAgaW1wb3J0IElQ eXRob24KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBJUHl0aG9uLnZlcnNp b25faW5mb1swXSA+PSA2OgorICAgICAgICAgICAgICAgICAgICBmcm9tIElQeXRob24uY29yZS5j b21wbGV0ZXIgaW1wb3J0IHByb3Zpc2lvbmFsY29tcGxldGVyCisgICAgICAgICAgICAgICAgICAg IHdpdGggcHJvdmlzaW9uYWxjb21wbGV0ZXIoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNv bXBsZXRpb25zID0gWworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjLnRleHQsIGMuc3Rh cnQsIGMuZW5kLCBjLnR5cGUgb3IgJz8nLCBjLnNpZ25hdHVyZSBvciAnJ10KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIGMgaW4gZ2V0X2lweXRob24oKS5Db21wbGV0ZXIuY29tcGxl dGlvbnModGV4dCwgbGVuKHRleHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBm aWx0ZXJfYyh0ZXh0LCBjLnRleHQpXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgICAgICAgIHBhcnQsIG1hdGNoZXMgPSBnZXRfaXB5dGhvbigpLkNvbXBsZXRlci5jb21wbGV0 ZShsaW5lX2J1ZmZlcj10ZXh0KQorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyA9IFt0 ZXh0ICsgbVtsZW4ocGFydCk6XSBmb3IgbSBpbiBtYXRjaGVzIGlmIGZpbHRlcl9jKHRleHQsIG0p XQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZWxz ZToKICAgICAgICAgICAgICMgVHJ5IHRvIHJldXNlIGN1cnJlbnQgY29tcGxldGVyLgogICAgICAg ICAgICAgY29tcGxldGVyID0gcmVhZGxpbmUuZ2V0X2NvbXBsZXRlcigpCkBAIC00Mjg4LDcgKzQz MDcsNyBAQCAoZGVmY3VzdG9tIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAg ICBmaW5hbGx5OgogICAgICAgICBpZiBnZXRhdHRyKGNvbXBsZXRlciwgJ1BZVEhPTl9FTF9XUkFQ UEVEJywgRmFsc2UpOgogICAgICAgICAgICAgY29tcGxldGVyLnByaW50X21vZGUgPSBUcnVlCi0g ICAgcmV0dXJuIGNvbXBsZXRpb25zIgorICAgIHJldHVybiBqc29uLmR1bXBzKGNvbXBsZXRpb25z KSIKICAgIkNvZGUgdXNlZCB0byBzZXR1cCBjb21wbGV0aW9uIGluIGluZmVyaW9yIFB5dGhvbiBw cm9jZXNzZXMuIgogICA6dHlwZSAnc3RyaW5nKQogCkBAIC00MzI5LDYgKzQzNDgsMTAgQEAgKGRl ZmN1c3RvbSBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHJ5LW91dHB1dC10aW1lb3V0 IDEuMAogICA6dmVyc2lvbiAiMjUuMSIKICAgOnR5cGUgJ2Zsb2F0KQogCisoZGVmdmFyIHB5dGhv bi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zIG5pbAorICAiV29yZCBkZWxpbWl0ZXJz IHVzZWQgYnkgdGhlIHJlYWRsaW5lIGNvbXBsZXRlci4KK0l0IGlzIGF1dG9tYXRpY2FsbHkgc2V0 IGJ5IFB5dGhvbiBzaGVsbC4iKQorCiAoZGVmdmFyIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5h dGl2ZS1yZWRpcmVjdC1idWZmZXIKICAgIiAqUHl0aG9uIGNvbXBsZXRpb25zIHJlZGlyZWN0KiIK ICAgIkJ1ZmZlciB0byBiZSB1c2VkIHRvIHJlZGlyZWN0IG91dHB1dCBvZiByZWFkbGluZSBjb21t YW5kcy4iKQpAQCAtNDQ2Nyw2ICs0NDkwLDEwIEBAIChkZWZ1biBweXRob24tc2hlbGwtY29tcGxl dGlvbi1uYXRpdmUtc2V0dXAgKCkKIF9fUFlUSE9OX0VMX25hdGl2ZV9jb21wbGV0aW9uX3NldHVw KCkiIHByb2Nlc3MpKSkKICAgICAod2hlbiAoc3RyaW5nLW1hdGNoLXAgInB5dGhvblxcLmVsOiBu YXRpdmUgY29tcGxldGlvbiBzZXR1cCBsb2FkZWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAg IG91dHB1dCkKKyAgICAgIChzZXRxLWxvY2FsIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0 ZXItZGVsaW1zCisgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRyaW0tcmlnaHQKKyAgICAgICAg ICAgICAgICAgICAocHl0aG9uLXNoZWxsLXNlbmQtc3RyaW5nLW5vLW91dHB1dAorICAgICAgICAg ICAgICAgICAgICAiaW1wb3J0IHJlYWRsaW5lOyBwcmludChyZWFkbGluZS5nZXRfY29tcGxldGVy X2RlbGltcygpKSIpKSkKICAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHJ5 KSkpKQogCiAoZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmICgm b3B0aW9uYWwgbXNnKQpAQCAtNDUzNCw2ICs0NTYxLDggQEAgKGRlZnVuIHB5dGhvbi1zaGVsbC1j b21wbGV0aW9uLW5hdGl2ZS1nZXQtY29tcGxldGlvbnMgKHByb2Nlc3MgaW5wdXQpCiAgICAgKGxl dCogKChvcmlnaW5hbC1maWx0ZXItZm4gKHByb2Nlc3MtZmlsdGVyIHByb2Nlc3MpKQogICAgICAg ICAgICAocmVkaXJlY3QtYnVmZmVyIChnZXQtYnVmZmVyLWNyZWF0ZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtcmVkaXJlY3QtYnVm ZmVyKSkKKyAgICAgICAgICAgKHNlcCAoaWYgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5l LWNvbXBsZXRlci1kZWxpbXMgIiIpCisgICAgICAgICAgICAgICAgICAgICJbXG5ccl0rIiAiWyBc Zlx0XG5cclx2KCldKyIpKQogICAgICAgICAgICAodHJpZ2dlciAiXHQiKQogICAgICAgICAgICAo bmV3LWlucHV0IChjb25jYXQgaW5wdXQgdHJpZ2dlcikpCiAgICAgICAgICAgIChpbnB1dC1sZW5n dGgKQEAgLTQ1NzYsMjggKzQ2MDUsODAgQEAgKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9u LW5hdGl2ZS1nZXQtY29tcGxldGlvbnMgKHByb2Nlc3MgaW5wdXQpCiAgICAgICAgICAgICAgICAg ICAgICBwcm9jZXNzIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1vdXRwdXQtdGltZW91 dAogICAgICAgICAgICAgICAgICAgICAgY29taW50LXJlZGlyZWN0LWZpbmlzaGVkLXJlZ2V4cCkK ICAgICAgICAgICAgICAgICAocmUtc2VhcmNoLWJhY2t3YXJkICIwX19kdW1teV9jb21wbGV0aW9u X18iIG5pbCB0KQotICAgICAgICAgICAgICAgIChjbC1yZW1vdmUtZHVwbGljYXRlcwotICAgICAg ICAgICAgICAgICAoc3BsaXQtc3RyaW5nCi0gICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0 cmluZy1uby1wcm9wZXJ0aWVzCi0gICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBv c2l0aW9uKSAocG9pbnQtbWluKSkKLSAgICAgICAgICAgICAgICAgICJbIFxmXHRcblxyXHYoKV0r IiB0KQotICAgICAgICAgICAgICAgICA6dGVzdCAjJ3N0cmluZz0pKSkpCisgICAgICAgICAgICAg ICAgKGxldCAoKHN0ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQtbWluKSkp KQorICAgICAgICAgICAgICAgICAgOzsgVGhlIHJlYWRsaW5lIGNvbXBsZXRlciBpcyBhbGxvd2Vk IHRvIHJldHVybiBhIGxpc3QKKyAgICAgICAgICAgICAgICAgIDs7IG9mICh0ZXh0IHN0YXJ0IGVu ZCB0eXBlIHNpZ25hdHVyZSkgYXMgYSBKU09OCisgICAgICAgICAgICAgICAgICA7OyBzdHJpbmcu ICBTZWUgdGhlIHJldHVybiB2YWx1ZSBmb3IgSVB5dGhvbiBpbgorICAgICAgICAgICAgICAgICAg OzsgYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUnLgorICAgICAgICAgICAgICAg ICAgKGlmIChzdHJpbmc9ICJbIiAoc3Vic3RyaW5nIHN0ciAwIDEpKQorICAgICAgICAgICAgICAg ICAgICAgIChjb25kaXRpb24tY2FzZSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHB5 dGhvbi0tcGFyc2UtanNvbi1hcnJheSBzdHIpCisgICAgICAgICAgICAgICAgICAgICAgICAodCAo Y2wtcmVtb3ZlLWR1cGxpY2F0ZXMgKHNwbGl0LXN0cmluZyBzdHIgc2VwIHQpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnRlc3QgIydzdHJpbmc9KSkp CisgICAgICAgICAgICAgICAgICAgIChjbC1yZW1vdmUtZHVwbGljYXRlcyAoc3BsaXQtc3RyaW5n IHN0ciBzZXAgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0 ZXN0ICMnc3RyaW5nPSkpKSkpKQogICAgICAgICAoc2V0LXByb2Nlc3MtZmlsdGVyIHByb2Nlc3Mg b3JpZ2luYWwtZmlsdGVyLWZuKSkpKSkKIAogKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9u LWdldC1jb21wbGV0aW9ucyAocHJvY2VzcyBpbnB1dCkKICAgIkdldCBjb21wbGV0aW9ucyBvZiBJ TlBVVCB1c2luZyBQUk9DRVNTLiIKICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVm ZmVyIHByb2Nlc3MpCi0gICAgKGxldCAoKGNvbXBsZXRpb25zCi0gICAgICAgICAgIChweXRob24t dXRpbC1zdHJpcC1zdHJpbmcKLSAgICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmct bm8tb3V0cHV0Ci0gICAgICAgICAgICAgKGZvcm1hdAotICAgICAgICAgICAgICAiJXNcbnByaW50 KCc7Jy5qb2luKF9fUFlUSE9OX0VMX2dldF9jb21wbGV0aW9ucyglcykpKSIKKyAgICAocHl0aG9u LS1wYXJzZS1qc29uLWFycmF5CisgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0 cHV0CisgICAgICAoZm9ybWF0ICIlc1xucHJpbnQoX19QWVRIT05fRUxfZ2V0X2NvbXBsZXRpb25z KCVzKSkiCiAgICAgICAgICAgICAgIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUK ICAgICAgICAgICAgICAgKHB5dGhvbi1zaGVsbC0tZW5jb2RlLXN0cmluZyBpbnB1dCkpCi0gICAg ICAgICAgICAgcHJvY2VzcykpKSkKLSAgICAgICh3aGVuICg+IChsZW5ndGggY29tcGxldGlvbnMp IDIpCi0gICAgICAgIChzcGxpdC1zdHJpbmcgY29tcGxldGlvbnMKLSAgICAgICAgICAgICAgICAg ICAgICAiXidcXHxeXCJcXHw7XFx8JyRcXHxcIiQiIHQpKSkpKQorICAgICAgcHJvY2VzcykpKSkK KworKGRlZnVuIHB5dGhvbi1zaGVsbC0tZ2V0LW11bHRpbGluZS1pbnB1dCAoKQorICAiUmV0dXJu IGxpbmVzIGF0IGEgbXVsdGktbGluZSBpbnB1dCBpbiBQeXRob24gc2hlbGwuIgorICAoc2F2ZS1l eGN1cnNpb24KKyAgICAobGV0ICgocCAocG9pbnQpKSBsaW5lcykKKyAgICAgICh3aGVuIChwcm9n bgorICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgIChsb29r aW5nLWJhY2sgcHl0aG9uLXNoZWxsLXByb21wdC1ibG9jay1yZWdleHAgKHBvcy1ib2wpKSkKKyAg ICAgICAgKHB1c2ggKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQpIHApIGxp bmVzKQorICAgICAgICAod2hpbGUgKHByb2duIChjb21pbnQtcHJldmlvdXMtcHJvbXB0IDEpCisg ICAgICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYmFjayBweXRob24tc2hlbGwtcHJvbXB0LWJs b2NrLXJlZ2V4cCAocG9zLWJvbCkpKQorICAgICAgICAgIChwdXNoIChidWZmZXItc3Vic3RyaW5n LW5vLXByb3BlcnRpZXMgKHBvaW50KSAocG9zLWVvbCkpIGxpbmVzKSkKKyAgICAgICAgKHB1c2gg KGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQpIChwb3MtZW9sKSkgbGluZXMp KQorICAgICAgbGluZXMpKSkKKworKGRlZnVuIHB5dGhvbi1zaGVsbC0tZXh0cmEtY29tcGxldGlv bi1jb250ZXh0ICgpCisgICJHZXQgZXh0cmEgY29tcGxldGlvbiBjb250ZXh0IG9mIGN1cnJlbnQg aW5wdXQgaW4gUHl0aG9uIHNoZWxsLiIKKyAgKGxldCAoKGxpbmVzIChweXRob24tc2hlbGwtLWdl dC1tdWx0aWxpbmUtaW5wdXQpKQorICAgICAgICAocHl0aG9uLWluZGVudC1ndWVzcy1pbmRlbnQt b2Zmc2V0IG5pbCkpCisgICAgKHdoZW4gKG5vdCAoemVyb3AgKGxlbmd0aCBsaW5lcykpKQorICAg ICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgKGRlbGF5LW1vZGUtaG9va3MKKyAgICAgICAg ICAoaW5zZXJ0IChzdHJpbmctam9pbiBsaW5lcyAiXG4iKSkKKyAgICAgICAgICAocHl0aG9uLW1v ZGUpCisgICAgICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQpKSkp KSkKKworKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQgKCZvcHRp b25hbCBwb3MpCisgICJHZXQgZXh0cmEgY29tcGxldGlvbiBjb250ZXh0IGF0IHBvc2l0aW9uIFBP UyBpbiBQeXRob24gYnVmZmVyLgorSWYgb3B0aW9uYWwgYXJndW1lbnQgUE9TIGlzIG5pbCwgdXNl IGN1cnJlbnQgcG9zaXRpb24uCisKK1JlYWRsaW5lIGNvbXBsZXRlcnMgY291bGQgdXNlIGN1cnJl bnQgbGluZSBhcyB0aGUgY29tcGxldGlvbgorY29udGV4dCwgd2hpY2ggbWF5IGJlIGluc3VmZmlj aWVudC4gIEluIHRoaXMgZnVuY3Rpb24sIGV4dHJhCitjb250ZXh0IChlLmcuIG11bHRpLWxpbmUg ZnVuY3Rpb24gY2FsbCkgaXMgZm91bmQgYW5kIHJlZm9ybWF0dGVkCithcyBvbmUgbGluZSwgd2hp Y2ggaXMgcmVxdWlyZWQgYnkgbmF0aXZlIGNvbXBsZXRpb24uIgorICAobGV0IChib3VuZCBwKQor ICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgKGFuZCBwb3MgKGdvdG8tY2hhciBwb3MpKQorICAg ICAgKHNldHEgYm91bmQgKHBvcy1ib2wpKQorICAgICAgKHB5dGhvbi1uYXYtdXAtbGlzdCAtMSkK KyAgICAgICh3aGVuIChhbmQgKDwgKHBvaW50KSBib3VuZCkKKyAgICAgICAgICAgICAgICAgKG9y CisgICAgICAgICAgICAgICAgICAobG9va2luZy1iYWNrCisgICAgICAgICAgICAgICAgICAgKHB5 dGhvbi1yeCAoZ3JvdXAgKCsgKG9yICIuIiBzeW1ib2wtbmFtZSkpKSkgKHBvcy1ib2wpIHQpCisg ICAgICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGlu ZSAwKQorICAgICAgICAgICAgICAgICAgICAobG9va2luZy1hdCAiXlsgXHRdKlxcKGZyb20gXFwp IikpKSkKKyAgICAgICAgKHNldHEgcCAobWF0Y2gtYmVnaW5uaW5nIDEpKSkpCisgICAgKHdoZW4g cAorICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICJcblsgXHRdKiIgIiIg KGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBwICgxLSBib3VuZCkpKSkpKQogCiAoZGVm dmFyLWxvY2FsIHB5dGhvbi1zaGVsbC0tY2FwZi1jYWNoZSBuaWwKICAgIlZhcmlhYmxlIHRvIHN0 b3JlIGNhY2hlZCBjb21wbGV0aW9ucyBhbmQgaW52YWxpZGF0aW9uIGtleXMuIikKQEAgLTQ2MTIs MjEgKzQ2OTMsMjYgQEAgKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50ICgm b3B0aW9uYWwgcHJvY2VzcykKICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBXb3JraW5nIG9u IGEgc2hlbGwgYnVmZmVyOiB1c2UgcHJvbXB0IGVuZC4KICAgICAgICAgICAgICAgICAgICAgICAg ICAoY2RyIChweXRob24tdXRpbC1jb21pbnQtbGFzdC1wcm9tcHQpKQogICAgICAgICAgICAgICAg ICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKLSAgICAgICAgIChpbXBvcnQtc3Rh dGVtZW50Ci0gICAgICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaC1wCi0gICAgICAgICAgICAgICAg IChyeCAoKiBzcGFjZSkgd29yZC1zdGFydCAob3IgImZyb20iICJpbXBvcnQiKSB3b3JkLWVuZCBz cGFjZSkKLSAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBs aW5lLXN0YXJ0IChwb2ludCkpKQotICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJv cGVydGllcyBsaW5lLXN0YXJ0IChwb2ludCkpKSkKKyAgICAgICAgIChuby1kZWxpbXMKKyAgICAg ICAgICAoYW5kIChub3QgKGlmIGlzLXNoZWxsLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAg ICAgKGVxICdmb250LWxvY2stY29tbWVudC1mYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGdldC10ZXh0LXByb3BlcnR5ICgxLSAocG9pbnQpKSAnZmFjZSkpCisgICAgICAgICAgICAg ICAgICAgICAgKHB5dGhvbi1zeW50YXgtY29udGV4dCAnY29tbWVudCkpKQorICAgICAgICAgICAg ICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCisgICAgICAg ICAgICAgICAgIChpZiBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZW5hYmxlCisgICAg ICAgICAgICAgICAgICAgICAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVy LWRlbGltcyAiIikKKyAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAgImlweXRob25b MjNdP1xcJyIgcHl0aG9uLXNoZWxsLWludGVycHJldGVyKSkpKSkKICAgICAgICAgIChzdGFydAog ICAgICAgICAgIChpZiAoPCAocG9pbnQpIGxpbmUtc3RhcnQpCiAgICAgICAgICAgICAgIChwb2lu dCkKICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgotICAgICAgICAgICAgICAoaWYgKG5vdCAo cmUtc2VhcmNoLWJhY2t3YXJkCi0gICAgICAgICAgICAgICAgICAgICAgICAocHl0aG9uLXJ4Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgKG9yIHdoaXRlc3BhY2Ugb3Blbi1wYXJlbiBjbG9zZS1w YXJlbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmctZGVsaW1pdGVyIHNpbXBs ZS1vcGVyYXRvcikpCi0gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLXN0YXJ0Ci0gICAgICAg ICAgICAgICAgICAgICAgICB0IDEpKQorICAgICAgICAgICAgICAoaWYgKG9yIG5vLWRlbGltcwor ICAgICAgICAgICAgICAgICAgICAgIChub3QgKHJlLXNlYXJjaC1iYWNrd2FyZAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChweXRob24tcngKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKG9yIHdoaXRlc3BhY2Ugb3Blbi1wYXJlbiBjbG9zZS1wYXJlbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyaW5nLWRlbGltaXRlciBzaW1wbGUtb3BlcmF0b3IpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0IDEpKSkKICAgICAgICAgICAgICAgICAgIGxpbmUtc3RhcnQKICAgICAgICAgICAg ICAgICAoZm9yd2FyZC1jaGFyIChsZW5ndGggKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDAp KSkKICAgICAgICAgICAgICAgICAocG9pbnQpKSkpKQpAQCAtNDY2NiwxOCArNDc1Miw1NiBAQCAo ZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQgKCZvcHRpb25hbCBwcm9jZXNz KQogICAgICAgICAgICAgICAgICAgKHQgIydweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUt Z2V0LWNvbXBsZXRpb25zKSkpKQogICAgICAgICAgKHByZXYtcHJvbXB0IChjYXIgcHl0aG9uLXNo ZWxsLS1jYXBmLWNhY2hlKSkKICAgICAgICAgIChyZSAob3IgKGNhZHIgcHl0aG9uLXNoZWxsLS1j YXBmLWNhY2hlKSByZWdleHAtdW5tYXRjaGFibGUpKQotICAgICAgICAgKHByZWZpeCAoYnVmZmVy LXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpKQorICAgICAgICAgKHByZWZpeCAo YnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpCisgICAgICAgICAocHJl Zml4LW9mZnNldCAwKQorICAgICAgICAgKGV4dHJhLWNvbnRleHQgKHdoZW4gbm8tZGVsaW1zCisg ICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBpcy1zaGVsbC1idWZmZXIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChweXRob24tc2hlbGwtLWV4dHJhLWNvbXBsZXRpb24tY29udGV4 dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24t ZXh0cmEtY29udGV4dCkpKSkKKyAgICAgICAgIChleHRyYS1vZmZzZXQgKGxlbmd0aCBleHRyYS1j b250ZXh0KSkpCisgICAgKHVubGVzcyAoemVyb3AgZXh0cmEtb2Zmc2V0KQorICAgICAgKHNldHEg cHJlZml4IChjb25jYXQgZXh0cmEtY29udGV4dCBwcmVmaXgpKSkKICAgICA7OyBUbyBpbnZhbGlk YXRlIHRoZSBjYWNoZSwgd2UgY2hlY2sgaWYgdGhlIHByb21wdCBwb3NpdGlvbiBvciB0aGUKICAg ICA7OyBjb21wbGV0aW9uIHByZWZpeCBjaGFuZ2VkLgogICAgICh1bmxlc3MgKGFuZCAoZXF1YWwg cHJldi1wcm9tcHQgKGNhciBwcm9tcHQtYm91bmRhcmllcykpCi0gICAgICAgICAgICAgICAgIChz dHJpbmctbWF0Y2ggcmUgcHJlZml4KSkKKyAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCBy ZSBwcmVmaXgpCisgICAgICAgICAgICAgICAgIChzZXRxIHByZWZpeC1vZmZzZXQgKC0gKGxlbmd0 aCBwcmVmaXgpIChtYXRjaC1lbmQgMSkpKSkKICAgICAgIChzZXRxIHB5dGhvbi1zaGVsbC0tY2Fw Zi1jYWNoZQogICAgICAgICAgICAgYCgsKGNhciBwcm9tcHQtYm91bmRhcmllcykKICAgICAgICAg ICAgICAgLChpZiAoc3RyaW5nLWVtcHR5LXAgcHJlZml4KQogICAgICAgICAgICAgICAgICAgIHJl Z2V4cC11bm1hdGNoYWJsZQotICAgICAgICAgICAgICAgICAoY29uY2F0ICJcXGAiIChyZWdleHAt cXVvdGUgcHJlZml4KSAiXFwoPzpcXHN3XFx8XFxzX1xcKSpcXCciKSkKLSAgICAgICAgICAgICAg LEAoZnVuY2FsbCBjb21wbGV0aW9uLWZuIHByb2Nlc3MgKG9yIGltcG9ydC1zdGF0ZW1lbnQgcHJl Zml4KSkpKSkKLSAgICAobGlzdCBzdGFydCBlbmQgKGNkZHIgcHl0aG9uLXNoZWxsLS1jYXBmLWNh Y2hlKSkpKQorICAgICAgICAgICAgICAgICAoY29uY2F0ICJcXGBcXCgiIChyZWdleHAtcXVvdGUg cHJlZml4KSAiXFwpXFwoPzpcXHN3XFx8XFxzX1xcKSpcXCciKSkKKyAgICAgICAgICAgICAgLEAo ZnVuY2FsbCBjb21wbGV0aW9uLWZuIHByb2Nlc3MgcHJlZml4KSkpKQorICAgIChsZXQgKChjYW5k cyAoY2RkciBweXRob24tc2hlbGwtLWNhcGYtY2FjaGUpKSkKKyAgICAgIChjb25kCisgICAgICAg KChzdHJpbmdwIChjYXIgY2FuZHMpKQorICAgICAgICAoaWYgbm8tZGVsaW1zCisgICAgICAgICAg ICA7OyBSZWR1Y2UgY29tcGxldGlvbiBjYW5kaWRhdGVzIGR1ZSB0byBsb25nIHByZWZpeC4KKyAg ICAgICAgICAgIChpZi1sZXQgKChMcCAobGVuZ3RoIHByZWZpeCkpCisgICAgICAgICAgICAgICAg ICAgICAoKHN0cmluZy1tYXRjaCAiXFwoXFxzd1xcfFxcc19cXCkrXFwnIiBwcmVmaXgpKQorICAg ICAgICAgICAgICAgICAgICAgKEwgKG1hdGNoLWJlZ2lubmluZyAwKSkpCisgICAgICAgICAgICAg ICAgOzsgSWYgZXh0cmEtb2Zmc2V0IGlzIG5vdCB6ZXJvOgorICAgICAgICAgICAgICAgIDs7ICAg ICAgICAgICAgICAgICAgc3RhcnQgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIDs7 IG8tLS0tLS0tLS0tLS0tLS0tLS1vLS0tLS0tLS0tby0tLS0tLS1vCisgICAgICAgICAgICAgICAg OzsgfDwtIGV4dHJhLW9mZnNldCAtPnwKKyAgICAgICAgICAgICAgICA7OyB8PC0tLS0tLS0tLS0t IEwgLS0tLS0tLS0tLS0tPnwKKyAgICAgICAgICAgICAgICA7OyAgICAgICAgICAgICAgICAgICAg ICAgICAgbmV3LXN0YXJ0CisgICAgICAgICAgICAgICAgKGxpc3QgKCsgc3RhcnQgTCAoLSBleHRy YS1vZmZzZXQpKSBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKHMp IChzdWJzdHJpbmcgcyBMKSkgY2FuZHMpKQorICAgICAgICAgICAgICAobGlzdCBlbmQgZW5kICht YXBjYXIgKGxhbWJkYSAocykgKHN1YnN0cmluZyBzIExwKSkgY2FuZHMpKSkKKyAgICAgICAgICAo bGlzdCBzdGFydCBlbmQgY2FuZHMpKSkKKyAgICAgICA7OyBweXRob24tc2hlbGwtY29tcGxldGlv bigtbmF0aXZlKS1nZXQtY29tcGxldGlvbnMgbWF5IHByb2R1Y2UgYQorICAgICAgIDs7IGxpc3Qg b2YgKHRleHQgc3RhcnQgZW5kIHR5cGUgc2lnbmF0dXJlKSBmb3IgY29tcGxldGlvbi4KKyAgICAg ICAoKGNvbnNwIChjYXIgY2FuZHMpKQorICAgICAgICAobGlzdCAoKyBzdGFydCAobnRoIDEgKGNh ciBjYW5kcykpICgtIGV4dHJhLW9mZnNldCkpCisgICAgICAgICAgICAgIDs7IENhbmRpZGF0ZXMg bWF5IGJlIGNhY2hlZCwgc28gdGhlIGVuZCBwb3NpdGlvbiBzaG91bGQKKyAgICAgICAgICAgICAg OzsgYmUgYWRqdXN0ZWQgYWNjb3JkaW5nIHRvIGN1cnJlbnQgY29tcGxldGlvbiBwcmVmaXguCisg ICAgICAgICAgICAgICgrIHN0YXJ0IChudGggMiAoY2FyIGNhbmRzKSkgKC0gZXh0cmEtb2Zmc2V0 KSBwcmVmaXgtb2Zmc2V0KQorICAgICAgICAgICAgICBjYW5kcworICAgICAgICAgICAgICA6YW5u b3RhdGlvbi1mdW5jdGlvbgorICAgICAgICAgICAgICAobGFtYmRhIChjKSAoY29uY2F0ICIgIiAo bnRoIDMgKGFzc29jIGMgY2FuZHMpKSkpCisgICAgICAgICAgICAgIDpjb21wYW55LWRvY3NpZwor ICAgICAgICAgICAgICAobGFtYmRhIChjKSAobnRoIDQgKGFzc29jIGMgY2FuZHMpKSkpKSkpKSkK IAogKGRlZmluZS1vYnNvbGV0ZS1mdW5jdGlvbi1hbGlhcwogICAncHl0aG9uLXNoZWxsLWNvbXBs ZXRpb24tY29tcGxldGUtYXQtcG9pbnQKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMv cHl0aG9uLXRlc3RzLmVsIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKaW5k ZXggNTk5NTdmZjA3MTIuLmFmNmMxOTliNWJkIDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21v ZGVzL3B5dGhvbi10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0 cy5lbApAQCAtNDc5OSw2ICs0Nzk5LDk4IEBAIChlcnQtZGVmdGVzdCBweXRob24tc2hlbGwtY29t cGxldGlvbi1hdC1wb2ludC1uYXRpdmUtMSAoKQogICAgICAoZW5kLW9mLWxpbmUgMCkKICAgICAg KHNob3VsZC1ub3QgKG50aCAyIChweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCkpKSkp KQogCisoZGVmdW4gcHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSAoKQorICAiQ2hlY2sg aWYgbW9kdWxlcyBjYW4gYmUgY29tcGxldGVkIGluIFB5dGhvbiBzaGVsbC4iCisgIChpbnNlcnQg ImltcG9ydCBkYXRldCIpCisgIChjb21wbGV0aW9uLWF0LXBvaW50KQorICAoYmVnaW5uaW5nLW9m LWxpbmUpCisgIChzaG91bGQgKGxvb2tpbmctYXQtcCAiaW1wb3J0IGRhdGV0aW1lIikpCisgIChr aWxsLWxpbmUpCisgIChpbnNlcnQgImZyb20gZGF0ZXQiKQorICAoY29tcGxldGlvbi1hdC1wb2lu dCkKKyAgKGJlZ2lubmluZy1vZi1saW5lKQorICAoc2hvdWxkIChsb29raW5nLWF0LXAgImZyb20g ZGF0ZXRpbWUiKSkKKyAgKGVuZC1vZi1saW5lKQorICAoaW5zZXJ0ICIgaW1wb3J0IHRpbWVkIikK KyAgKGNvbXBsZXRpb24tYXQtcG9pbnQpCisgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgKHNob3Vs ZCAobG9va2luZy1hdC1wICJmcm9tIGRhdGV0aW1lIGltcG9ydCB0aW1lZGVsdGEiKSkKKyAgKGtp bGwtbGluZSkpCisKKyhkZWZ1biBweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycyAo KQorICAiQ2hlY2sgaWYgcGFyYW1ldGVycyBjYW4gYmUgY29tcGxldGVkIGluIFB5dGhvbiBzaGVs bC4iCisgIChpbnNlcnQgImltcG9ydCByZSIpCisgIChjb21pbnQtc2VuZC1pbnB1dCkKKyAgKHB5 dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9tcHQpCisgIChpbnNlcnQgInJlLnNwbGl0KCdi JywgJ2FiYycsIG1heHMiKQorICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgKHNob3VsZCAoc3Ry aW5nPSAicmUuc3BsaXQoJ2InLCAnYWJjJywgbWF4c3BsaXQ9IgorICAgICAgICAgICAgICAgICAg IChidWZmZXItc3Vic3RyaW5nIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKHBvaW50KSkpKQor ICAoaW5zZXJ0ICIwLCAiKQorICAoc2hvdWxkIChweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1w b2ludCkpCisgIDs7IFRlc3QgaWYgY2FjaGUgaXMgdXNlZC4KKyAgKGNsLWxldGYgKCgoc3ltYm9s LWZ1bmN0aW9uICdweXRob24tc2hlbGwtY29tcGxldGlvbi1nZXQtY29tcGxldGlvbnMpCisgICAg ICAgICAgICAgJ2lnbm9yZSkKKyAgICAgICAgICAgICgoc3ltYm9sLWZ1bmN0aW9uICdweXRob24t c2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZ2V0LWNvbXBsZXRpb25zKQorICAgICAgICAgICAgICdp Z25vcmUpKQorICAgIChpbnNlcnQgImZsYSIpCisgICAgKGNvbXBsZXRpb24tYXQtcG9pbnQpCisg ICAgKHNob3VsZCAoc3RyaW5nPSAicmUuc3BsaXQoJ2InLCAnYWJjJywgbWF4c3BsaXQ9MCwgZmxh Z3M9IgorICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVnaW5u aW5nLXBvc2l0aW9uKSAocG9pbnQpKSkpKQorICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgIChraWxs LWxpbmUpKQorCisoZGVmdW4gcHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQg KCkKKyAgIkNoZWNrIGlmIGV4dHJhIGNvbnRleHQgaXMgdXNlZCBmb3IgY29tcGxldGlvbi4iCisg IChpbnNlcnQgInJlLnNwbGl0KCdiJywgJ2FiYycsIikKKyAgKGNvbWludC1zZW5kLWlucHV0KQor ICAocHl0aG9uLXRlc3RzLXNoZWxsLXdhaXQtZm9yLXByb21wdCkKKyAgKGluc2VydCAibWF4cyIp CisgIChjb21wbGV0aW9uLWF0LXBvaW50KQorICAoc2hvdWxkIChzdHJpbmc9ICJtYXhzcGxpdD0i CisgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVnaW5uaW5nLXBv c2l0aW9uKSAocG9pbnQpKSkpCisgIChpbnNlcnQgIjApIikKKyAgKGNvbWludC1zZW5kLWlucHV0 KQorICAocHl0aG9uLXRlc3RzLXNoZWxsLXdhaXQtZm9yLXByb21wdCkKKyAgKGluc2VydCAiZnJv bSByZSBpbXBvcnQgKCIpCisgIChjb21pbnQtc2VuZC1pbnB1dCkKKyAgKHB5dGhvbi10ZXN0cy1z aGVsbC13YWl0LWZvci1wcm9tcHQpCisgIChpbnNlcnQgIklHTiIpCisgIChjb21wbGV0aW9uLWF0 LXBvaW50KQorICAoc2hvdWxkIChzdHJpbmc9ICJJR05PUkVDQVNFIgorICAgICAgICAgICAgICAg ICAgIChidWZmZXItc3Vic3RyaW5nIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKHBvaW50KSkp KSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LWplZGkt Y29tcGxldGVyICgpCisgICJDaGVjayBpZiBQeXRob24gc2hlbGwgY29tcGxldGlvbiB3b3JrcyB3 aGVuIEplZGkgY29tcGxldGVyIGlzIHVzZWQuIgorICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUt ZmluZCBweXRob24tdGVzdHMtc2hlbGwtaW50ZXJwcmV0ZXIpKQorICAocHl0aG9uLXRlc3RzLXdp dGgtdGVtcC1idWZmZXItd2l0aC1zaGVsbAorICAgIiIKKyAgIChweXRob24tc2hlbGwtd2l0aC1z aGVsbC1idWZmZXIKKyAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9u KQorICAgICAoc2tpcC11bmxlc3MgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBs ZXRlci1kZWxpbXMgIiIpKQorICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSkK KyAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzKQorICAgICAocHl0aG9u LXRlc3RzLS1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRo b24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1pcHl0aG9uICgpCisgICJDaGVjayBpZiBQeXRo b24gc2hlbGwgY29tcGxldGlvbiB3b3JrcyBmb3IgSVB5dGhvbi4iCisgIChsZXQgKChweXRob24t c2hlbGwtaW50ZXJwcmV0ZXIgImlweXRob24iKQorICAgICAgICAocHl0aG9uLXNoZWxsLWludGVy cHJldGVyLWFyZ3MgIi1pIC0tc2ltcGxlLXByb21wdCIpKQorICAgIChza2lwLXVubGVzcworICAg ICAoYW5kCisgICAgICAoZXhlY3V0YWJsZS1maW5kIHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlcikK KyAgICAgIChlcWwgKGNhbGwtcHJvY2VzcyBweXRob24tc2hlbGwtaW50ZXJwcmV0ZXIgbmlsIG5p bCBuaWwgIi0tdmVyc2lvbiIpIDApKSkKKyAgICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZm ZXItd2l0aC1zaGVsbAorICAgICAiIgorICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVm ZmVyCisgICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9mZikKKyAg ICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSkKKyAgICAgICAocHl0aG9uLXRl c3RzLS1jb21wbGV0aW9uLXBhcmFtZXRlcnMpCisgICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0 aW9uLW5hdGl2ZS10dXJuLW9uKQorICAgICAgIChza2lwLXVubGVzcyAoc3RyaW5nPSBweXRob24t c2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyAiIikpCisgICAgICAgKHB5dGhvbi10ZXN0 cy0tY29tcGxldGlvbi1tb2R1bGUpCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1w YXJhbWV0ZXJzKQorICAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tZXh0cmEtY29udGV4 dCkpKSkpCiAKIAwKIDs7OyBQREIgVHJhY2sgaW50ZWdyYXRpb24KLS0gCjIuMzkuMgoK --0000000000003f86740610ac758f-- From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 06 10:13:01 2024 Received: (at 68559) by debbugs.gnu.org; 6 Feb 2024 15:13:01 +0000 Received: from localhost ([127.0.0.1]:54918 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXN88-0002XI-Nh for submit@debbugs.gnu.org; Tue, 06 Feb 2024 10:13:01 -0500 Received: from mail-pg1-x529.google.com ([2607:f8b0:4864:20::529]:58743) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXN87-0002X5-Ge for 68559@debbugs.gnu.org; Tue, 06 Feb 2024 10:13:00 -0500 Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-5d4d15ec7c5so5198634a12.1 for <68559@debbugs.gnu.org>; Tue, 06 Feb 2024 07:12:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707232360; x=1707837160; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=wlKcG7W7/tSl4++DBJ6CwxpyUBAoBYYBaHpmeDH85Co=; b=SLPL8kUcTkqVYPxd8hpKE07ClFlrbujjJd0rsuFC0BHaJcC8NBcwB/cla7tjPWeOJ7 4TGPLOidxawhgU5yuAvwqKzEhXwBMPxIYkw+WYFAoexfHDG+Wej/GBu3L4eV7mFy8WfE 94IYG5jo+Mzvx4Z6HcpeVUnRDtnaO8CIf0FrO/KROZpMt6/YpTIuKeaFj9wHp5EyYXLK FihxRcx9sj3BTDMd142YIcUHk9gnOdtpFEdxhhaBSSbmWTCx19tFQBVZtHjhxrlfnIwd PfKmiW7ICSkKzS4r1iMvb6f12Fm/qR3VqtA5QZBDTUmH1K7Yxk0rnAbKTYM/vcIZoibP rgaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707232360; x=1707837160; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=wlKcG7W7/tSl4++DBJ6CwxpyUBAoBYYBaHpmeDH85Co=; b=MJZ2e+E4iEaqEPlpzkBVCv9pIvEMXJxHh96JuZb3HhDlfw+G64vp378joBefgwwmqo skMOKU8ocGPRMCEjTMEXSPP9W+XrvvlEvbTyweb9JCWs2stFgBnGNw7U4EViUfN2OYJb 1+SqRe5B1cw8aCMtZ7xyLHrJ3gRYHv3mFT8r0zUy2P703KVd9RAAEHwQXBkyQX7NDd9B czMhjJd2YB84HW8kIRFMFG0w68bube63GY/8MLMjRns6R0hLDYmGkP+l8GAKVqJx8cmh Gfk8KxJnQp0Z8FhB4iI6n/inMgmr+YquExkpSxWwcqbxjywbZ23MovQXB0Xkq4usSg0v kwzQ== X-Gm-Message-State: AOJu0YyXwlbjMUWg1OuBlEByxIdi8+UIye4fPrSi5lQX5d3qKTSYCsjv 2bCtlSE0S2HbqE90ez0sHC/rSwMV0L97Vqt1J6qX4g+fn5F/0OgEQ4Hyw+v0 X-Google-Smtp-Source: AGHT+IFrrN2U8NGGtIRV1410fhD7soP6ljha6TVOAhUWw9kGNEclESG8DRN8wRt5gGe/XEeN+Ci83w== X-Received: by 2002:a17:90a:fe81:b0:293:eaec:fd67 with SMTP id co1-20020a17090afe8100b00293eaecfd67mr2447258pjb.14.1707232360311; Tue, 06 Feb 2024 07:12:40 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCX6MAn4MBTBYdl/iS0W+L7v1ce7A6waYvmoFijcwoMT9v/NlgkHdCn+gtsbzjC3fTcmT9li+YAl1/qGyQOFbHSERUKVvgQ= Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id mz17-20020a17090b379100b002966a13f2e9sm1753328pjb.37.2024.02.06.07.12.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Feb 2024 07:12:39 -0800 (PST) Date: Wed, 07 Feb 2024 00:12:39 +0900 Message-ID: From: kobarity To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Liu Hui wrote: > On Mon, Feb 5, 2024 at 11:03=E2=80=AFPM Liu Hui wr= ote: >=20 > > > Thank you for the detailed explanation and the workaround. I > > > confirmed that the problem is solved by the above workaround. Just to > > > confirm, are you of the opinion that this workaround should not be the > > > default? > > > > I'm not sure if we should add more Python code in the form of strings > > to python.el, which increases maintenance burden IMO. Maybe they could > > be distributed separately at ELPA/Git forges. > > > > Actually, I'm considering simplifying this patch to mainly fix the bug > > that python shell completion doesn't respect the delimiter of readline > > completer. The new patch has been attached. It should support > > the completer defined in the PYTHONSTARTUP file, e.g., jedi or a > > custom completer like the above one. WDYT? >=20 > I have updated documentation about readline completer and fixed an > error in commit log in the attach patch. Thanks, I understood your concern. I tried the new patch and confirmed that your MyJediRL can be used as a custom completer by storing it in a file specified in the PYTHONSTARTUP environment variable. This may be the better way to go. Sorry, I noticed one more thing. As written in the comments below, it would be better to use `line-beginning-position' and `line-end-position' instead of `pos-bol' and `pos-eol'. ;; This is a GNU ELPA :core package. Avoid functionality that is not ;; compatible with the version of Emacs recorded above. From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 07 08:22:58 2024 Received: (at 68559) by debbugs.gnu.org; 7 Feb 2024 13:22:58 +0000 Received: from localhost ([127.0.0.1]:55884 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXhtB-0002jM-Ie for submit@debbugs.gnu.org; Wed, 07 Feb 2024 08:22:58 -0500 Received: from mail-ua1-x92b.google.com ([2607:f8b0:4864:20::92b]:59765) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXht8-0002j9-Hp for 68559@debbugs.gnu.org; Wed, 07 Feb 2024 08:22:55 -0500 Received: by mail-ua1-x92b.google.com with SMTP id a1e0cc1a2514c-7d5bbbe57b9so289572241.3 for <68559@debbugs.gnu.org>; Wed, 07 Feb 2024 05:22:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707312155; x=1707916955; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=w2ZGopeEbMRQSmCWHh1HILVW/v07Ma1m0NDTimSXU/k=; b=aTfOveeEAhRbyuXK959yRpj58k1iasppEhb5KU+81wLm81nvoWEVHQu2wpHDqzOEHW iorZ+G56rtM9qfoHhmOtSDP7lgXp3mrcxhJKha/IJKw3cafT74IOUft3e8GhPWCOTbjd 8Tc0TPt1xN6sPXMqrCtGF9bAzBewY9xMz4yI/qkHdMfwUAx8u3oUSzeLdMFW8N3oEi/m xJxn9msmJVSWsuh4/1qTD56UKZTN5iap8lAErudCo6Xx/xgbaYB7PYM9ir+gQxeh2jtR wxgnxrSdXvVlhZGU/akqSQaruOmsfE1nRj/yb9oq1Dz24i+CgNrkXFKonS7vjeCmu40r TG9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707312155; x=1707916955; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=w2ZGopeEbMRQSmCWHh1HILVW/v07Ma1m0NDTimSXU/k=; b=IcQ5uqD9Ee79gU9DN5VY4uK5n622KBXfTzee62AJsFPidYaIxMdhspAerEP/UyQ4GW fiDO+RbSVOMbRukZ9+KKykrKg8twZWxpP3TxHIIufoyiVmIxposDs9/h7o1kuYzLl88a 736ACxHN1UnHpHiyVtMipWgiOPqcvf6ljNwSJFDarjD5E7P6iFmvT+c8HqeTqJCWH+kj eDE5/9ziFF/xcZ0IIBLsprCCF3c2y3vtFnlDNIITV+okdJdVpCy8qB5CzgnDtYPT32/F TkRfbXG4ABs6yuXtfZrqvtU3KH+OuMh3wFI39lrjEj+X609Uxs2/w9pYbin7BvzV+C0F mgiA== X-Gm-Message-State: AOJu0Yyiod2rYZbra5vYTc0Wkw+9u0JhTgodJvB+AWmA37RwMBHhhwDJ KiUdLcnhO5zwvg9nYUJqODTzUpw+C613XSWmjzfPP/sT544xuMPNCcb9J1MOgL+OaZ6KEjT7ZqY 96p++ARWb0IMepT09jf179NQL6JM= X-Google-Smtp-Source: AGHT+IHvKSFFZo513WdxIhq0dLd/wMmlbRZYdLs5jePo8r1RP3n7OljOY/pChp0ItG0p8zzZ6rdcdfS5JcxKfvN08r4= X-Received: by 2002:a05:6122:3a07:b0:4c0:309b:2755 with SMTP id fp7-20020a0561223a0700b004c0309b2755mr2704612vkb.3.1707312155075; Wed, 07 Feb 2024 05:22:35 -0800 (PST) MIME-Version: 1.0 References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> In-Reply-To: From: Liu Hui Date: Wed, 7 Feb 2024 21:22:23 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: kobarity Content-Type: multipart/mixed; boundary="0000000000008649db0610ca961f" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --0000000000008649db0610ca961f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Feb 6, 2024 at 11:12=E2=80=AFPM kobarity wrote= : > Sorry, I noticed one more thing. As written in the comments below, it > would be better to use `line-beginning-position' and > `line-end-position' instead of `pos-bol' and `pos-eol'. > > ;; This is a GNU ELPA :core package. Avoid functionality that is not > ;; compatible with the version of Emacs recorded above. Thanks for pointing it out! `pos-bol' was used because it can ignore the prompt in `python-shell--get-multiline-input'. Fortunately, I find `pos-bol' and `pos-eol' are available in the compat package since 29.1.1.0, so it should be enough to upgrade the compat version in Package-Requires. I have updated the attached patch. --0000000000008649db0610ca961f Content-Type: text/x-patch; charset="UTF-8"; name="0001-Respect-the-delimiter-of-completer-in-Python-shell-c.patch" Content-Disposition: attachment; filename="0001-Respect-the-delimiter-of-completer-in-Python-shell-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lsbtjvys0 RnJvbSBhNmRhNGMwYjg4MzI2ODU5ZGU1ODQ3YWFhOTc4MTZmODlmYzk3ODJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAxOCBKYW4gMjAyNCAxMjowMDowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFJlc3BlY3Qg dGhlIGRlbGltaXRlciBvZiBjb21wbGV0ZXIgaW4gUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24KCiog bGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsOiAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAt Y29kZSk6IEZpeAp0aGUgY29tcGxldGlvbiBjb2RlIG9mIElQeXRob24uICBDaGFuZ2UgdGhlIHJl dHVybiB2YWx1ZSB0byBKU09OIHN0cmluZwphbmQgLi4uCihweXRob24tc2hlbGwtY29tcGxldGlv bi1nZXQtY29tcGxldGlvbnMpOiAuLi4gc2ltcGxpZnkgcGFyc2luZy4KKGluZmVyaW9yLXB5dGhv bi1tb2RlKTogVXBkYXRlIGRvY3N0cmluZy4KKHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0 ZXItZGVsaW1zKTogTmV3IHZhcmlhYmxlIGluZGljYXRpbmcgdGhlCndvcmQgZGVsaW1pdGVycyBv ZiByZWFkbGluZSBjb21wbGV0ZXIuCihweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0 dXApOiBTZXQgdGhlIGNvbXBsZXRlciBkZWxpbWl0ZXIuCihweXRob24tc2hlbGwtY29tcGxldGlv bi1uYXRpdmUtZ2V0LWNvbXBsZXRpb25zKTogQ29udmVydCBvdXRwdXQgc3RyaW5nCnRvIGNvbXBs ZXRpb25zIHByb3Blcmx5LgoocHl0aG9uLXNoZWxsLS1nZXQtbXVsdGlsaW5lLWlucHV0KQoocHl0 aG9uLXNoZWxsLS1leHRyYS1jb21wbGV0aW9uLWNvbnRleHQpCihweXRob24tc2hlbGwtY29tcGxl dGlvbi1leHRyYS1jb250ZXh0KTogTmV3IGZ1bmN0aW9ucy4KKHB5dGhvbi1zaGVsbC1jb21wbGV0 aW9uLWF0LXBvaW50KTogU2VuZCB0ZXh0IGJlZ2lubmluZyBmcm9tIHRoZSBsaW5lCnN0YXJ0IGlm IHRoZSBjb21wbGV0aW9uIGJhY2tlbmQgZG9lcyBub3QgbmVlZCB3b3JkIHNwbGl0dGluZy4gIFJl bW92ZQp0aGUgZGV0ZWN0aW9uIG9mIGltcG9ydCBzdGF0ZW1lbnQgYmVjYXVzZSBpdCBpcyBub3Qg bmVlZGVkIGFueW1vcmUuCkNyZWF0ZSBwcm9wZXIgY29tcGxldGlvbiB0YWJsZSBiYXNlZCBvbiBj b21wbGV0aW9ucyByZXR1cm5lZCBmcm9tCmRpZmZlcmVudCBiYWNrZW5kcy4KCiogdGVzdC9saXNw L3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1tb2R1 bGUpCihweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycykKKHB5dGhvbi10ZXN0cy0t Y29tcGxldGlvbi1leHRyYS1jb250ZXh0KTogTmV3IGhlbHBlciBmdW5jdGlvbnMuCihweXRob24t c2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1qZWRpLWNvbXBsZXRlcikKKHB5dGhvbi1zaGVsbC1j b21wbGV0aW9uLWF0LXBvaW50LWlweXRob24pOiBOZXcgdGVzdHMuICAoYnVnIzY4NTU5KQotLS0K IGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCAgICAgICAgICAgIHwgMjIwICsrKysrKysrKysrKysr KysrKysrKystLS0tLS0KIHRlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIHwgIDky ICsrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyNjQgaW5zZXJ0aW9ucygrKSwgNDggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIGIvbGlzcC9w cm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4IDlkODQwZWZiOWRhLi5iMTY1NGI2YTVhYSAxMDA2NDQK LS0tIGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3B5dGhv bi5lbApAQCAtNSw3ICs1LDcgQEAgOzs7IHB5dGhvbi5lbCAtLS0gUHl0aG9uJ3MgZmx5aW5nIGNp cmN1cyBzdXBwb3J0IGZvciBFbWFjcyAtKi0gbGV4aWNhbC1iaW5kaW5nOgogOzsgQXV0aG9yOiBG YWJpw6FuIEUuIEdhbGxpbmEgPGZnYWxsaW5hQGdudS5vcmc+CiA7OyBVUkw6IGh0dHBzOi8vZ2l0 aHViLmNvbS9mZ2FsbGluYS9weXRob24uZWwKIDs7IFZlcnNpb246IDAuMjgKLTs7IFBhY2thZ2Ut UmVxdWlyZXM6ICgoZW1hY3MgIjI0LjQiKSAoY29tcGF0ICIyOC4xLjIuMSIpIChzZXEgIjIuMjMi KSkKKzs7IFBhY2thZ2UtUmVxdWlyZXM6ICgoZW1hY3MgIjI0LjQiKSAoY29tcGF0ICIyOS4xLjEu MCIpIChzZXEgIjIuMjMiKSkKIDs7IE1haW50YWluZXI6IGVtYWNzLWRldmVsQGdudS5vcmcKIDs7 IENyZWF0ZWQ6IEp1bCAyMDEwCiA7OyBLZXl3b3JkczogbGFuZ3VhZ2VzCkBAIC0xMjgsOSArMTI4 LDkgQEAgOzs7IENvbW1lbnRhcnk6CiA7OyByZWNlaXZpbmcgZXNjYXBlIHNlcXVlbmNlcyAod2l0 aCBzb21lIGxpbWl0YXRpb25zLCBpLmUuIGNvbXBsZXRpb24KIDs7IGluIGJsb2NrcyBkb2VzIG5v dCB3b3JrKS4gIFRoZSBjb2RlIGV4ZWN1dGVkIGZvciB0aGUgImZhbGxiYWNrIgogOzsgY29tcGxl dGlvbiBjYW4gYmUgZm91bmQgaW4gYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUn IGFuZAotOzsgYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXN0cmluZy1jb2RlJyB2YXJpYWJsZXMu ICBUaGVpciBkZWZhdWx0Ci07OyB2YWx1ZXMgZW5hYmxlIGNvbXBsZXRpb24gZm9yIGJvdGggQ1B5 dGhvbiBhbmQgSVB5dGhvbiwgYW5kIHByb2JhYmx5Ci07OyBhbnkgcmVhZGxpbmUgYmFzZWQgc2hl bGwgKGl0J3Mga25vd24gdG8gd29yayB3aXRoIFB5UHkpLiAgSWYgeW91cgorOzsgYHB5dGhvbi1z aGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucycuICBUaGVpciBkZWZhdWx0IHZhbHVlcwor OzsgZW5hYmxlIGNvbXBsZXRpb24gZm9yIGJvdGggQ1B5dGhvbiBhbmQgSVB5dGhvbiwgYW5kIHBy b2JhYmx5IGFueQorOzsgcmVhZGxpbmUgYmFzZWQgc2hlbGwgKGl0J3Mga25vd24gdG8gd29yayB3 aXRoIFB5UHkpLiAgSWYgeW91cgogOzsgUHl0aG9uIGluc3RhbGxhdGlvbiBsYWNrcyByZWFkbGlu ZSAobGlrZSBDUHl0aG9uIGZvciBXaW5kb3dzKSwKIDs7IGluc3RhbGxpbmcgcHlyZWFkbGluZSAo VVJMIGBodHRwczovL2lweXRob24ub3JnL3B5cmVhZGxpbmUuaHRtbCcpCiA7OyBzaG91bGQgc3Vm ZmljZS4gIFRvIHRyb3VibGVzaG9vdCB3aHkgeW91IGFyZSBub3QgZ2V0dGluZyBhbnkKQEAgLTE0 MSw2ICsxNDEsMTIgQEAgOzs7IENvbW1lbnRhcnk6CiA7OyBJZiB5b3Ugc2VlIGFuIGVycm9yLCB0 aGVuIHlvdSBuZWVkIHRvIGVpdGhlciBpbnN0YWxsIHB5cmVhZGxpbmUgb3IKIDs7IHNldHVwIGN1 c3RvbSBjb2RlIHRoYXQgYXZvaWRzIHRoYXQgZGVwZW5kZW5jeS4KIAorOzsgQnkgZGVmYXVsdCwg dGhlICJuYXRpdmUiIGNvbXBsZXRpb24gdXNlcyB0aGUgYnVpbHQtaW4gcmxjb21wbGV0ZXIuCis7 OyBUbyB1c2Ugb3RoZXIgcmVhZGxpbmUgY29tcGxldGVyIChlLmcuIEplZGkpIG9yIGEgY3VzdG9t IG9uZSwgeW91IGp1c3QKKzs7IG5lZWQgdG8gc2V0IGl0IGluIHRoZSBQWVRIT05TVEFSVFVQIGZp bGUuICBZb3UgY2FuIHNldCBhbgorOzsgRW1hY3Mtc3BlY2lmaWMgY29tcGxldGVyIGJ5IHRlc3Rp bmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCis7OyBJTlNJREVfRU1BQ1MuCisKIDs7IFNoZWxs IHZpcnR1YWxlbnYgc3VwcG9ydDogVGhlIHNoZWxsIGFsc28gY29udGFpbnMgc3VwcG9ydCBmb3IK IDs7IHZpcnR1YWxlbnZzIGFuZCBvdGhlciBzcGVjaWFsIGVudmlyb25tZW50IG1vZGlmaWNhdGlv bnMgdGhhbmtzIHRvCiA7OyBgcHl0aG9uLXNoZWxsLXByb2Nlc3MtZW52aXJvbm1lbnQnIGFuZCBg cHl0aG9uLXNoZWxsLWV4ZWMtcGF0aCcuCkBAIC0zNjA0LDcgKzM2MTAsNiBAQCAoZGVmaW5lLWRl cml2ZWQtbW9kZSBpbmZlcmlvci1weXRob24tbW9kZSBjb21pbnQtbW9kZSAiSW5mZXJpb3IgUHl0 aG9uIgogYHB5dGhvbi1zaGVsbC1wcm9tcHQtYmxvY2stcmVnZXhwJywKIGBweXRob24tc2hlbGwt Zm9udC1sb2NrLWVuYWJsZScsCiBgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZScs Ci1gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc3RyaW5nLWNvZGUnLAogYHB5dGhvbi1lbGRvYy1z ZXR1cC1jb2RlJywKIGBweXRob24tZmZhcC1zZXR1cC1jb2RlJyBjYW4KIGN1c3RvbWl6ZSB0aGlz IG1vZGUgZm9yIGRpZmZlcmVudCBQeXRob24gaW50ZXJwcmV0ZXJzLgpAQCAtNDI0NCw4ICs0MjQ5 LDkgQEAgKGRlZmN1c3RvbSBweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlCiAgICAg Y29tcGxldGlvbnMgPSBbXQogICAgIGNvbXBsZXRlciA9IE5vbmUKIAorICAgIGltcG9ydCBqc29u CiAgICAgdHJ5OgotICAgICAgICBpbXBvcnQgcmVhZGxpbmUKKyAgICAgICAgaW1wb3J0IHJlYWRs aW5lLCByZQogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGltcG9ydCBfX2J1aWx0aW5fXwpA QCAtNDI1NiwxNiArNDI2MiwyOSBAQCAoZGVmY3VzdG9tIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9u LXNldHVwLWNvZGUKIAogICAgICAgICBpc19pcHl0aG9uID0gKCdfX0lQWVRIT05fXycgaW4gYnVp bHRpbnMgb3IKICAgICAgICAgICAgICAgICAgICAgICAnX19JUFlUSE9OX19hY3RpdmUnIGluIGJ1 aWx0aW5zKQotICAgICAgICBzcGxpdHMgPSB0ZXh0LnNwbGl0KCkKLSAgICAgICAgaXNfbW9kdWxl ID0gc3BsaXRzIGFuZCBzcGxpdHNbMF0gaW4gKCdmcm9tJywgJ2ltcG9ydCcpCi0KLSAgICAgICAg aWYgaXNfaXB5dGhvbiBhbmQgaXNfbW9kdWxlOgotICAgICAgICAgICAgZnJvbSBJUHl0aG9uLmNv cmUuY29tcGxldGVybGliIGltcG9ydCBtb2R1bGVfY29tcGxldGlvbgotICAgICAgICAgICAgY29t cGxldGlvbnMgPSBtb2R1bGVfY29tcGxldGlvbih0ZXh0LnN0cmlwKCkpCi0gICAgICAgIGVsaWYg aXNfaXB5dGhvbiBhbmQgJ19fSVAnIGluIGJ1aWx0aW5zOgotICAgICAgICAgICAgY29tcGxldGlv bnMgPSBfX0lQLmNvbXBsZXRlKHRleHQpCi0gICAgICAgIGVsaWYgaXNfaXB5dGhvbiBhbmQgJ2dl dF9pcHl0aG9uJyBpbiBidWlsdGluczoKLSAgICAgICAgICAgIGNvbXBsZXRpb25zID0gZ2V0X2lw eXRob24oKS5Db21wbGV0ZXIuYWxsX2NvbXBsZXRpb25zKHRleHQpCisKKyAgICAgICAgaWYgaXNf aXB5dGhvbiBhbmQgJ2dldF9pcHl0aG9uJyBpbiBidWlsdGluczoKKyAgICAgICAgICAgIGRlZiBm aWx0ZXJfYyhwcmVmaXgsIGMpOgorICAgICAgICAgICAgICAgIGlmIHJlLm1hdGNoKCdfKyhpP1sw LTldKyk/JCcsIGMpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAg ICAgICAgICBlbGlmIGNbMF0gPT0gJyUnIGFuZCBub3QgcmUubWF0Y2goJ1slYS16QS1aXSskJywg cHJlZml4KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAg ICAgcmV0dXJuIFRydWUKKworICAgICAgICAgICAgaW1wb3J0IElQeXRob24KKyAgICAgICAgICAg IHRyeToKKyAgICAgICAgICAgICAgICBpZiBJUHl0aG9uLnZlcnNpb25faW5mb1swXSA+PSA2Ogor ICAgICAgICAgICAgICAgICAgICBmcm9tIElQeXRob24uY29yZS5jb21wbGV0ZXIgaW1wb3J0IHBy b3Zpc2lvbmFsY29tcGxldGVyCisgICAgICAgICAgICAgICAgICAgIHdpdGggcHJvdmlzaW9uYWxj b21wbGV0ZXIoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zID0gWworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFtjLnRleHQsIGMuc3RhcnQsIGMuZW5kLCBjLnR5cGUg b3IgJz8nLCBjLnNpZ25hdHVyZSBvciAnJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGMgaW4gZ2V0X2lweXRob24oKS5Db21wbGV0ZXIuY29tcGxldGlvbnModGV4dCwgbGVuKHRl eHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBmaWx0ZXJfYyh0ZXh0LCBjLnRl eHQpXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHBhcnQsIG1h dGNoZXMgPSBnZXRfaXB5dGhvbigpLkNvbXBsZXRlci5jb21wbGV0ZShsaW5lX2J1ZmZlcj10ZXh0 KQorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyA9IFt0ZXh0ICsgbVtsZW4ocGFydCk6 XSBmb3IgbSBpbiBtYXRjaGVzIGlmIGZpbHRlcl9jKHRleHQsIG0pXQorICAgICAgICAgICAgZXhj ZXB0OgorICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMg VHJ5IHRvIHJldXNlIGN1cnJlbnQgY29tcGxldGVyLgogICAgICAgICAgICAgY29tcGxldGVyID0g cmVhZGxpbmUuZ2V0X2NvbXBsZXRlcigpCkBAIC00Mjg4LDcgKzQzMDcsNyBAQCAoZGVmY3VzdG9t IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAgICBmaW5hbGx5OgogICAgICAg ICBpZiBnZXRhdHRyKGNvbXBsZXRlciwgJ1BZVEhPTl9FTF9XUkFQUEVEJywgRmFsc2UpOgogICAg ICAgICAgICAgY29tcGxldGVyLnByaW50X21vZGUgPSBUcnVlCi0gICAgcmV0dXJuIGNvbXBsZXRp b25zIgorICAgIHJldHVybiBqc29uLmR1bXBzKGNvbXBsZXRpb25zKSIKICAgIkNvZGUgdXNlZCB0 byBzZXR1cCBjb21wbGV0aW9uIGluIGluZmVyaW9yIFB5dGhvbiBwcm9jZXNzZXMuIgogICA6dHlw ZSAnc3RyaW5nKQogCkBAIC00MzI5LDYgKzQzNDgsMTAgQEAgKGRlZmN1c3RvbSBweXRob24tc2hl bGwtY29tcGxldGlvbi1uYXRpdmUtdHJ5LW91dHB1dC10aW1lb3V0IDEuMAogICA6dmVyc2lvbiAi MjUuMSIKICAgOnR5cGUgJ2Zsb2F0KQogCisoZGVmdmFyIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1j b21wbGV0ZXItZGVsaW1zIG5pbAorICAiV29yZCBkZWxpbWl0ZXJzIHVzZWQgYnkgdGhlIHJlYWRs aW5lIGNvbXBsZXRlci4KK0l0IGlzIGF1dG9tYXRpY2FsbHkgc2V0IGJ5IFB5dGhvbiBzaGVsbC4i KQorCiAoZGVmdmFyIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1yZWRpcmVjdC1idWZm ZXIKICAgIiAqUHl0aG9uIGNvbXBsZXRpb25zIHJlZGlyZWN0KiIKICAgIkJ1ZmZlciB0byBiZSB1 c2VkIHRvIHJlZGlyZWN0IG91dHB1dCBvZiByZWFkbGluZSBjb21tYW5kcy4iKQpAQCAtNDQ2Nyw2 ICs0NDkwLDEwIEBAIChkZWZ1biBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXAg KCkKIF9fUFlUSE9OX0VMX25hdGl2ZV9jb21wbGV0aW9uX3NldHVwKCkiIHByb2Nlc3MpKSkKICAg ICAod2hlbiAoc3RyaW5nLW1hdGNoLXAgInB5dGhvblxcLmVsOiBuYXRpdmUgY29tcGxldGlvbiBz ZXR1cCBsb2FkZWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCkKKyAgICAgIChz ZXRxLWxvY2FsIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zCisgICAgICAg ICAgICAgICAgICAoc3RyaW5nLXRyaW0tcmlnaHQKKyAgICAgICAgICAgICAgICAgICAocHl0aG9u LXNoZWxsLXNlbmQtc3RyaW5nLW5vLW91dHB1dAorICAgICAgICAgICAgICAgICAgICAiaW1wb3J0 IHJlYWRsaW5lOyBwcmludChyZWFkbGluZS5nZXRfY29tcGxldGVyX2RlbGltcygpKSIpKSkKICAg ICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHJ5KSkpKQogCiAoZGVmdW4gcHl0 aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmICgmb3B0aW9uYWwgbXNnKQpAQCAt NDUzNCw2ICs0NTYxLDggQEAgKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1n ZXQtY29tcGxldGlvbnMgKHByb2Nlc3MgaW5wdXQpCiAgICAgKGxldCogKChvcmlnaW5hbC1maWx0 ZXItZm4gKHByb2Nlc3MtZmlsdGVyIHByb2Nlc3MpKQogICAgICAgICAgICAocmVkaXJlY3QtYnVm ZmVyIChnZXQtYnVmZmVyLWNyZWF0ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRo b24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtcmVkaXJlY3QtYnVmZmVyKSkKKyAgICAgICAgICAg KHNlcCAoaWYgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMg IiIpCisgICAgICAgICAgICAgICAgICAgICJbXG5ccl0rIiAiWyBcZlx0XG5cclx2KCldKyIpKQog ICAgICAgICAgICAodHJpZ2dlciAiXHQiKQogICAgICAgICAgICAobmV3LWlucHV0IChjb25jYXQg aW5wdXQgdHJpZ2dlcikpCiAgICAgICAgICAgIChpbnB1dC1sZW5ndGgKQEAgLTQ1NzYsMjggKzQ2 MDUsODAgQEAgKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1nZXQtY29tcGxl dGlvbnMgKHByb2Nlc3MgaW5wdXQpCiAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzIHB5dGhv bi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1vdXRwdXQtdGltZW91dAogICAgICAgICAgICAgICAg ICAgICAgY29taW50LXJlZGlyZWN0LWZpbmlzaGVkLXJlZ2V4cCkKICAgICAgICAgICAgICAgICAo cmUtc2VhcmNoLWJhY2t3YXJkICIwX19kdW1teV9jb21wbGV0aW9uX18iIG5pbCB0KQotICAgICAg ICAgICAgICAgIChjbC1yZW1vdmUtZHVwbGljYXRlcwotICAgICAgICAgICAgICAgICAoc3BsaXQt c3RyaW5nCi0gICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVz Ci0gICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQtbWlu KSkKLSAgICAgICAgICAgICAgICAgICJbIFxmXHRcblxyXHYoKV0rIiB0KQotICAgICAgICAgICAg ICAgICA6dGVzdCAjJ3N0cmluZz0pKSkpCisgICAgICAgICAgICAgICAgKGxldCAoKHN0ciAoYnVm ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQtbWluKSkpKQorICAgICAgICAgICAgICAg ICAgOzsgVGhlIHJlYWRsaW5lIGNvbXBsZXRlciBpcyBhbGxvd2VkIHRvIHJldHVybiBhIGxpc3QK KyAgICAgICAgICAgICAgICAgIDs7IG9mICh0ZXh0IHN0YXJ0IGVuZCB0eXBlIHNpZ25hdHVyZSkg YXMgYSBKU09OCisgICAgICAgICAgICAgICAgICA7OyBzdHJpbmcuICBTZWUgdGhlIHJldHVybiB2 YWx1ZSBmb3IgSVB5dGhvbiBpbgorICAgICAgICAgICAgICAgICAgOzsgYHB5dGhvbi1zaGVsbC1j b21wbGV0aW9uLXNldHVwLWNvZGUnLgorICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmc9ICJb IiAoc3Vic3RyaW5nIHN0ciAwIDEpKQorICAgICAgICAgICAgICAgICAgICAgIChjb25kaXRpb24t Y2FzZSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi0tcGFyc2UtanNvbi1h cnJheSBzdHIpCisgICAgICAgICAgICAgICAgICAgICAgICAodCAoY2wtcmVtb3ZlLWR1cGxpY2F0 ZXMgKHNwbGl0LXN0cmluZyBzdHIgc2VwIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOnRlc3QgIydzdHJpbmc9KSkpCisgICAgICAgICAgICAgICAg ICAgIChjbC1yZW1vdmUtZHVwbGljYXRlcyAoc3BsaXQtc3RyaW5nIHN0ciBzZXAgdCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0ZXN0ICMnc3RyaW5nPSkpKSkp KQogICAgICAgICAoc2V0LXByb2Nlc3MtZmlsdGVyIHByb2Nlc3Mgb3JpZ2luYWwtZmlsdGVyLWZu KSkpKSkKIAogKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucyAo cHJvY2VzcyBpbnB1dCkKICAgIkdldCBjb21wbGV0aW9ucyBvZiBJTlBVVCB1c2luZyBQUk9DRVNT LiIKICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCi0gICAg KGxldCAoKGNvbXBsZXRpb25zCi0gICAgICAgICAgIChweXRob24tdXRpbC1zdHJpcC1zdHJpbmcK LSAgICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0Ci0gICAgICAg ICAgICAgKGZvcm1hdAotICAgICAgICAgICAgICAiJXNcbnByaW50KCc7Jy5qb2luKF9fUFlUSE9O X0VMX2dldF9jb21wbGV0aW9ucyglcykpKSIKKyAgICAocHl0aG9uLS1wYXJzZS1qc29uLWFycmF5 CisgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0CisgICAgICAoZm9ybWF0 ICIlc1xucHJpbnQoX19QWVRIT05fRUxfZ2V0X2NvbXBsZXRpb25zKCVzKSkiCiAgICAgICAgICAg ICAgIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAgICAgICAgICAgICAgKHB5 dGhvbi1zaGVsbC0tZW5jb2RlLXN0cmluZyBpbnB1dCkpCi0gICAgICAgICAgICAgcHJvY2Vzcykp KSkKLSAgICAgICh3aGVuICg+IChsZW5ndGggY29tcGxldGlvbnMpIDIpCi0gICAgICAgIChzcGxp dC1zdHJpbmcgY29tcGxldGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAiXidcXHxeXCJcXHw7 XFx8JyRcXHxcIiQiIHQpKSkpKQorICAgICAgcHJvY2VzcykpKSkKKworKGRlZnVuIHB5dGhvbi1z aGVsbC0tZ2V0LW11bHRpbGluZS1pbnB1dCAoKQorICAiUmV0dXJuIGxpbmVzIGF0IGEgbXVsdGkt bGluZSBpbnB1dCBpbiBQeXRob24gc2hlbGwuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAobGV0 ICgocCAocG9pbnQpKSBsaW5lcykKKyAgICAgICh3aGVuIChwcm9nbgorICAgICAgICAgICAgICAo YmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgIChsb29raW5nLWJhY2sgcHl0aG9uLXNo ZWxsLXByb21wdC1ibG9jay1yZWdleHAgKHBvcy1ib2wpKSkKKyAgICAgICAgKHB1c2ggKGJ1ZmZl ci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQpIHApIGxpbmVzKQorICAgICAgICAod2hp bGUgKHByb2duIChjb21pbnQtcHJldmlvdXMtcHJvbXB0IDEpCisgICAgICAgICAgICAgICAgICAg ICAgKGxvb2tpbmctYmFjayBweXRob24tc2hlbGwtcHJvbXB0LWJsb2NrLXJlZ2V4cCAocG9zLWJv bCkpKQorICAgICAgICAgIChwdXNoIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKHBv aW50KSAocG9zLWVvbCkpIGxpbmVzKSkKKyAgICAgICAgKHB1c2ggKGJ1ZmZlci1zdWJzdHJpbmct bm8tcHJvcGVydGllcyAocG9pbnQpIChwb3MtZW9sKSkgbGluZXMpKQorICAgICAgbGluZXMpKSkK KworKGRlZnVuIHB5dGhvbi1zaGVsbC0tZXh0cmEtY29tcGxldGlvbi1jb250ZXh0ICgpCisgICJH ZXQgZXh0cmEgY29tcGxldGlvbiBjb250ZXh0IG9mIGN1cnJlbnQgaW5wdXQgaW4gUHl0aG9uIHNo ZWxsLiIKKyAgKGxldCAoKGxpbmVzIChweXRob24tc2hlbGwtLWdldC1tdWx0aWxpbmUtaW5wdXQp KQorICAgICAgICAocHl0aG9uLWluZGVudC1ndWVzcy1pbmRlbnQtb2Zmc2V0IG5pbCkpCisgICAg KHdoZW4gKG5vdCAoemVyb3AgKGxlbmd0aCBsaW5lcykpKQorICAgICAgKHdpdGgtdGVtcC1idWZm ZXIKKyAgICAgICAgKGRlbGF5LW1vZGUtaG9va3MKKyAgICAgICAgICAoaW5zZXJ0IChzdHJpbmct am9pbiBsaW5lcyAiXG4iKSkKKyAgICAgICAgICAocHl0aG9uLW1vZGUpCisgICAgICAgICAgKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQpKSkpKSkKKworKGRlZnVuIHB5dGhv bi1zaGVsbC1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQgKCZvcHRpb25hbCBwb3MpCisgICJHZXQg ZXh0cmEgY29tcGxldGlvbiBjb250ZXh0IGF0IHBvc2l0aW9uIFBPUyBpbiBQeXRob24gYnVmZmVy LgorSWYgb3B0aW9uYWwgYXJndW1lbnQgUE9TIGlzIG5pbCwgdXNlIGN1cnJlbnQgcG9zaXRpb24u CisKK1JlYWRsaW5lIGNvbXBsZXRlcnMgY291bGQgdXNlIGN1cnJlbnQgbGluZSBhcyB0aGUgY29t cGxldGlvbgorY29udGV4dCwgd2hpY2ggbWF5IGJlIGluc3VmZmljaWVudC4gIEluIHRoaXMgZnVu Y3Rpb24sIGV4dHJhCitjb250ZXh0IChlLmcuIG11bHRpLWxpbmUgZnVuY3Rpb24gY2FsbCkgaXMg Zm91bmQgYW5kIHJlZm9ybWF0dGVkCithcyBvbmUgbGluZSwgd2hpY2ggaXMgcmVxdWlyZWQgYnkg bmF0aXZlIGNvbXBsZXRpb24uIgorICAobGV0IChib3VuZCBwKQorICAgIChzYXZlLWV4Y3Vyc2lv bgorICAgICAgKGFuZCBwb3MgKGdvdG8tY2hhciBwb3MpKQorICAgICAgKHNldHEgYm91bmQgKHBv cy1ib2wpKQorICAgICAgKHB5dGhvbi1uYXYtdXAtbGlzdCAtMSkKKyAgICAgICh3aGVuIChhbmQg KDwgKHBvaW50KSBib3VuZCkKKyAgICAgICAgICAgICAgICAgKG9yCisgICAgICAgICAgICAgICAg ICAobG9va2luZy1iYWNrCisgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1yeCAoZ3JvdXAgKCsg KG9yICIuIiBzeW1ib2wtbmFtZSkpKSkgKHBvcy1ib2wpIHQpCisgICAgICAgICAgICAgICAgICAo cHJvZ24KKyAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSAwKQorICAgICAgICAgICAg ICAgICAgICAobG9va2luZy1hdCAiXlsgXHRdKlxcKGZyb20gXFwpIikpKSkKKyAgICAgICAgKHNl dHEgcCAobWF0Y2gtYmVnaW5uaW5nIDEpKSkpCisgICAgKHdoZW4gcAorICAgICAgKHJlcGxhY2Ut cmVnZXhwLWluLXN0cmluZworICAgICAgICJcblsgXHRdKiIgIiIgKGJ1ZmZlci1zdWJzdHJpbmct bm8tcHJvcGVydGllcyBwICgxLSBib3VuZCkpKSkpKQogCiAoZGVmdmFyLWxvY2FsIHB5dGhvbi1z aGVsbC0tY2FwZi1jYWNoZSBuaWwKICAgIlZhcmlhYmxlIHRvIHN0b3JlIGNhY2hlZCBjb21wbGV0 aW9ucyBhbmQgaW52YWxpZGF0aW9uIGtleXMuIikKQEAgLTQ2MTIsMjEgKzQ2OTMsMjYgQEAgKGRl ZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50ICgmb3B0aW9uYWwgcHJvY2VzcykK ICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBXb3JraW5nIG9uIGEgc2hlbGwgYnVmZmVyOiB1 c2UgcHJvbXB0IGVuZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIChweXRob24tdXRp bC1jb21pbnQtbGFzdC1wcm9tcHQpKQogICAgICAgICAgICAgICAgICAgICAgICAobGluZS1iZWdp bm5pbmctcG9zaXRpb24pKSkKLSAgICAgICAgIChpbXBvcnQtc3RhdGVtZW50Ci0gICAgICAgICAg KHdoZW4gKHN0cmluZy1tYXRjaC1wCi0gICAgICAgICAgICAgICAgIChyeCAoKiBzcGFjZSkgd29y ZC1zdGFydCAob3IgImZyb20iICJpbXBvcnQiKSB3b3JkLWVuZCBzcGFjZSkKLSAgICAgICAgICAg ICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBsaW5lLXN0YXJ0IChwb2ludCkp KQotICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBsaW5lLXN0YXJ0 IChwb2ludCkpKSkKKyAgICAgICAgIChuby1kZWxpbXMKKyAgICAgICAgICAoYW5kIChub3QgKGlm IGlzLXNoZWxsLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAgKGVxICdmb250LWxvY2st Y29tbWVudC1mYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3Bl cnR5ICgxLSAocG9pbnQpKSAnZmFjZSkpCisgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1z eW50YXgtY29udGV4dCAnY29tbWVudCkpKQorICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1i dWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCisgICAgICAgICAgICAgICAgIChpZiBweXRo b24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZW5hYmxlCisgICAgICAgICAgICAgICAgICAgICAo c3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyAiIikKKyAgICAg ICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAgImlweXRob25bMjNdP1xcJyIgcHl0aG9uLXNo ZWxsLWludGVycHJldGVyKSkpKSkKICAgICAgICAgIChzdGFydAogICAgICAgICAgIChpZiAoPCAo cG9pbnQpIGxpbmUtc3RhcnQpCiAgICAgICAgICAgICAgIChwb2ludCkKICAgICAgICAgICAgIChz YXZlLWV4Y3Vyc2lvbgotICAgICAgICAgICAgICAoaWYgKG5vdCAocmUtc2VhcmNoLWJhY2t3YXJk Ci0gICAgICAgICAgICAgICAgICAgICAgICAocHl0aG9uLXJ4Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgKG9yIHdoaXRlc3BhY2Ugb3Blbi1wYXJlbiBjbG9zZS1wYXJlbgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJpbmctZGVsaW1pdGVyIHNpbXBsZS1vcGVyYXRvcikpCi0gICAg ICAgICAgICAgICAgICAgICAgICBsaW5lLXN0YXJ0Ci0gICAgICAgICAgICAgICAgICAgICAgICB0 IDEpKQorICAgICAgICAgICAgICAoaWYgKG9yIG5vLWRlbGltcworICAgICAgICAgICAgICAgICAg ICAgIChub3QgKHJlLXNlYXJjaC1iYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IChweXRob24tcngKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIHdoaXRlc3BhY2Ug b3Blbi1wYXJlbiBjbG9zZS1wYXJlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RyaW5nLWRlbGltaXRlciBzaW1wbGUtb3BlcmF0b3IpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpbmUtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0IDEpKSkKICAg ICAgICAgICAgICAgICAgIGxpbmUtc3RhcnQKICAgICAgICAgICAgICAgICAoZm9yd2FyZC1jaGFy IChsZW5ndGggKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDApKSkKICAgICAgICAgICAgICAg ICAocG9pbnQpKSkpKQpAQCAtNDY2NiwxOCArNDc1Miw1NiBAQCAoZGVmdW4gcHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tYXQtcG9pbnQgKCZvcHRpb25hbCBwcm9jZXNzKQogICAgICAgICAgICAgICAg ICAgKHQgIydweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZ2V0LWNvbXBsZXRpb25zKSkp KQogICAgICAgICAgKHByZXYtcHJvbXB0IChjYXIgcHl0aG9uLXNoZWxsLS1jYXBmLWNhY2hlKSkK ICAgICAgICAgIChyZSAob3IgKGNhZHIgcHl0aG9uLXNoZWxsLS1jYXBmLWNhY2hlKSByZWdleHAt dW5tYXRjaGFibGUpKQotICAgICAgICAgKHByZWZpeCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9w ZXJ0aWVzIHN0YXJ0IGVuZCkpKQorICAgICAgICAgKHByZWZpeCAoYnVmZmVyLXN1YnN0cmluZy1u by1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpCisgICAgICAgICAocHJlZml4LW9mZnNldCAwKQorICAg ICAgICAgKGV4dHJhLWNvbnRleHQgKHdoZW4gbm8tZGVsaW1zCisgICAgICAgICAgICAgICAgICAg ICAgICAgIChpZiBpcy1zaGVsbC1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChweXRob24tc2hlbGwtLWV4dHJhLWNvbXBsZXRpb24tY29udGV4dCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCkpKSkK KyAgICAgICAgIChleHRyYS1vZmZzZXQgKGxlbmd0aCBleHRyYS1jb250ZXh0KSkpCisgICAgKHVu bGVzcyAoemVyb3AgZXh0cmEtb2Zmc2V0KQorICAgICAgKHNldHEgcHJlZml4IChjb25jYXQgZXh0 cmEtY29udGV4dCBwcmVmaXgpKSkKICAgICA7OyBUbyBpbnZhbGlkYXRlIHRoZSBjYWNoZSwgd2Ug Y2hlY2sgaWYgdGhlIHByb21wdCBwb3NpdGlvbiBvciB0aGUKICAgICA7OyBjb21wbGV0aW9uIHBy ZWZpeCBjaGFuZ2VkLgogICAgICh1bmxlc3MgKGFuZCAoZXF1YWwgcHJldi1wcm9tcHQgKGNhciBw cm9tcHQtYm91bmRhcmllcykpCi0gICAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2ggcmUgcHJl Zml4KSkKKyAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCByZSBwcmVmaXgpCisgICAgICAg ICAgICAgICAgIChzZXRxIHByZWZpeC1vZmZzZXQgKC0gKGxlbmd0aCBwcmVmaXgpIChtYXRjaC1l bmQgMSkpKSkKICAgICAgIChzZXRxIHB5dGhvbi1zaGVsbC0tY2FwZi1jYWNoZQogICAgICAgICAg ICAgYCgsKGNhciBwcm9tcHQtYm91bmRhcmllcykKICAgICAgICAgICAgICAgLChpZiAoc3RyaW5n LWVtcHR5LXAgcHJlZml4KQogICAgICAgICAgICAgICAgICAgIHJlZ2V4cC11bm1hdGNoYWJsZQot ICAgICAgICAgICAgICAgICAoY29uY2F0ICJcXGAiIChyZWdleHAtcXVvdGUgcHJlZml4KSAiXFwo PzpcXHN3XFx8XFxzX1xcKSpcXCciKSkKLSAgICAgICAgICAgICAgLEAoZnVuY2FsbCBjb21wbGV0 aW9uLWZuIHByb2Nlc3MgKG9yIGltcG9ydC1zdGF0ZW1lbnQgcHJlZml4KSkpKSkKLSAgICAobGlz dCBzdGFydCBlbmQgKGNkZHIgcHl0aG9uLXNoZWxsLS1jYXBmLWNhY2hlKSkpKQorICAgICAgICAg ICAgICAgICAoY29uY2F0ICJcXGBcXCgiIChyZWdleHAtcXVvdGUgcHJlZml4KSAiXFwpXFwoPzpc XHN3XFx8XFxzX1xcKSpcXCciKSkKKyAgICAgICAgICAgICAgLEAoZnVuY2FsbCBjb21wbGV0aW9u LWZuIHByb2Nlc3MgcHJlZml4KSkpKQorICAgIChsZXQgKChjYW5kcyAoY2RkciBweXRob24tc2hl bGwtLWNhcGYtY2FjaGUpKSkKKyAgICAgIChjb25kCisgICAgICAgKChzdHJpbmdwIChjYXIgY2Fu ZHMpKQorICAgICAgICAoaWYgbm8tZGVsaW1zCisgICAgICAgICAgICA7OyBSZWR1Y2UgY29tcGxl dGlvbiBjYW5kaWRhdGVzIGR1ZSB0byBsb25nIHByZWZpeC4KKyAgICAgICAgICAgIChpZi1sZXQg KChMcCAobGVuZ3RoIHByZWZpeCkpCisgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRj aCAiXFwoXFxzd1xcfFxcc19cXCkrXFwnIiBwcmVmaXgpKQorICAgICAgICAgICAgICAgICAgICAg KEwgKG1hdGNoLWJlZ2lubmluZyAwKSkpCisgICAgICAgICAgICAgICAgOzsgSWYgZXh0cmEtb2Zm c2V0IGlzIG5vdCB6ZXJvOgorICAgICAgICAgICAgICAgIDs7ICAgICAgICAgICAgICAgICAgc3Rh cnQgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIDs7IG8tLS0tLS0tLS0tLS0tLS0t LS1vLS0tLS0tLS0tby0tLS0tLS1vCisgICAgICAgICAgICAgICAgOzsgfDwtIGV4dHJhLW9mZnNl dCAtPnwKKyAgICAgICAgICAgICAgICA7OyB8PC0tLS0tLS0tLS0tIEwgLS0tLS0tLS0tLS0tPnwK KyAgICAgICAgICAgICAgICA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3LXN0YXJ0Cisg ICAgICAgICAgICAgICAgKGxpc3QgKCsgc3RhcnQgTCAoLSBleHRyYS1vZmZzZXQpKSBlbmQKKyAg ICAgICAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKHMpIChzdWJzdHJpbmcgcyBMKSkg Y2FuZHMpKQorICAgICAgICAgICAgICAobGlzdCBlbmQgZW5kIChtYXBjYXIgKGxhbWJkYSAocykg KHN1YnN0cmluZyBzIExwKSkgY2FuZHMpKSkKKyAgICAgICAgICAobGlzdCBzdGFydCBlbmQgY2Fu ZHMpKSkKKyAgICAgICA7OyBweXRob24tc2hlbGwtY29tcGxldGlvbigtbmF0aXZlKS1nZXQtY29t cGxldGlvbnMgbWF5IHByb2R1Y2UgYQorICAgICAgIDs7IGxpc3Qgb2YgKHRleHQgc3RhcnQgZW5k IHR5cGUgc2lnbmF0dXJlKSBmb3IgY29tcGxldGlvbi4KKyAgICAgICAoKGNvbnNwIChjYXIgY2Fu ZHMpKQorICAgICAgICAobGlzdCAoKyBzdGFydCAobnRoIDEgKGNhciBjYW5kcykpICgtIGV4dHJh LW9mZnNldCkpCisgICAgICAgICAgICAgIDs7IENhbmRpZGF0ZXMgbWF5IGJlIGNhY2hlZCwgc28g dGhlIGVuZCBwb3NpdGlvbiBzaG91bGQKKyAgICAgICAgICAgICAgOzsgYmUgYWRqdXN0ZWQgYWNj b3JkaW5nIHRvIGN1cnJlbnQgY29tcGxldGlvbiBwcmVmaXguCisgICAgICAgICAgICAgICgrIHN0 YXJ0IChudGggMiAoY2FyIGNhbmRzKSkgKC0gZXh0cmEtb2Zmc2V0KSBwcmVmaXgtb2Zmc2V0KQor ICAgICAgICAgICAgICBjYW5kcworICAgICAgICAgICAgICA6YW5ub3RhdGlvbi1mdW5jdGlvbgor ICAgICAgICAgICAgICAobGFtYmRhIChjKSAoY29uY2F0ICIgIiAobnRoIDMgKGFzc29jIGMgY2Fu ZHMpKSkpCisgICAgICAgICAgICAgIDpjb21wYW55LWRvY3NpZworICAgICAgICAgICAgICAobGFt YmRhIChjKSAobnRoIDQgKGFzc29jIGMgY2FuZHMpKSkpKSkpKSkKIAogKGRlZmluZS1vYnNvbGV0 ZS1mdW5jdGlvbi1hbGlhcwogICAncHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tY29tcGxldGUtYXQt cG9pbnQKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIGIv dGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKaW5kZXggNTk5NTdmZjA3MTIuLmFm NmMxOTliNWJkIDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5l bAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbApAQCAtNDc5OSw2ICs0 Nzk5LDk4IEBAIChlcnQtZGVmdGVzdCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1u YXRpdmUtMSAoKQogICAgICAoZW5kLW9mLWxpbmUgMCkKICAgICAgKHNob3VsZC1ub3QgKG50aCAy IChweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCkpKSkpKQogCisoZGVmdW4gcHl0aG9u LXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSAoKQorICAiQ2hlY2sgaWYgbW9kdWxlcyBjYW4gYmUg Y29tcGxldGVkIGluIFB5dGhvbiBzaGVsbC4iCisgIChpbnNlcnQgImltcG9ydCBkYXRldCIpCisg IChjb21wbGV0aW9uLWF0LXBvaW50KQorICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgIChzaG91bGQg KGxvb2tpbmctYXQtcCAiaW1wb3J0IGRhdGV0aW1lIikpCisgIChraWxsLWxpbmUpCisgIChpbnNl cnQgImZyb20gZGF0ZXQiKQorICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgKGJlZ2lubmluZy1v Zi1saW5lKQorICAoc2hvdWxkIChsb29raW5nLWF0LXAgImZyb20gZGF0ZXRpbWUiKSkKKyAgKGVu ZC1vZi1saW5lKQorICAoaW5zZXJ0ICIgaW1wb3J0IHRpbWVkIikKKyAgKGNvbXBsZXRpb24tYXQt cG9pbnQpCisgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgKHNob3VsZCAobG9va2luZy1hdC1wICJm cm9tIGRhdGV0aW1lIGltcG9ydCB0aW1lZGVsdGEiKSkKKyAgKGtpbGwtbGluZSkpCisKKyhkZWZ1 biBweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycyAoKQorICAiQ2hlY2sgaWYgcGFy YW1ldGVycyBjYW4gYmUgY29tcGxldGVkIGluIFB5dGhvbiBzaGVsbC4iCisgIChpbnNlcnQgImlt cG9ydCByZSIpCisgIChjb21pbnQtc2VuZC1pbnB1dCkKKyAgKHB5dGhvbi10ZXN0cy1zaGVsbC13 YWl0LWZvci1wcm9tcHQpCisgIChpbnNlcnQgInJlLnNwbGl0KCdiJywgJ2FiYycsIG1heHMiKQor ICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgKHNob3VsZCAoc3RyaW5nPSAicmUuc3BsaXQoJ2In LCAnYWJjJywgbWF4c3BsaXQ9IgorICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5n IChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKHBvaW50KSkpKQorICAoaW5zZXJ0ICIwLCAiKQor ICAoc2hvdWxkIChweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCkpCisgIDs7IFRlc3Qg aWYgY2FjaGUgaXMgdXNlZC4KKyAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdweXRob24t c2hlbGwtY29tcGxldGlvbi1nZXQtY29tcGxldGlvbnMpCisgICAgICAgICAgICAgJ2lnbm9yZSkK KyAgICAgICAgICAgICgoc3ltYm9sLWZ1bmN0aW9uICdweXRob24tc2hlbGwtY29tcGxldGlvbi1u YXRpdmUtZ2V0LWNvbXBsZXRpb25zKQorICAgICAgICAgICAgICdpZ25vcmUpKQorICAgIChpbnNl cnQgImZsYSIpCisgICAgKGNvbXBsZXRpb24tYXQtcG9pbnQpCisgICAgKHNob3VsZCAoc3RyaW5n PSAicmUuc3BsaXQoJ2InLCAnYWJjJywgbWF4c3BsaXQ9MCwgZmxhZ3M9IgorICAgICAgICAgICAg ICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9p bnQpKSkpKQorICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgIChraWxsLWxpbmUpKQorCisoZGVmdW4g cHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQgKCkKKyAgIkNoZWNrIGlmIGV4 dHJhIGNvbnRleHQgaXMgdXNlZCBmb3IgY29tcGxldGlvbi4iCisgIChpbnNlcnQgInJlLnNwbGl0 KCdiJywgJ2FiYycsIikKKyAgKGNvbWludC1zZW5kLWlucHV0KQorICAocHl0aG9uLXRlc3RzLXNo ZWxsLXdhaXQtZm9yLXByb21wdCkKKyAgKGluc2VydCAibWF4cyIpCisgIChjb21wbGV0aW9uLWF0 LXBvaW50KQorICAoc2hvdWxkIChzdHJpbmc9ICJtYXhzcGxpdD0iCisgICAgICAgICAgICAgICAg ICAgKGJ1ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQpKSkp CisgIChpbnNlcnQgIjApIikKKyAgKGNvbWludC1zZW5kLWlucHV0KQorICAocHl0aG9uLXRlc3Rz LXNoZWxsLXdhaXQtZm9yLXByb21wdCkKKyAgKGluc2VydCAiZnJvbSByZSBpbXBvcnQgKCIpCisg IChjb21pbnQtc2VuZC1pbnB1dCkKKyAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9t cHQpCisgIChpbnNlcnQgIklHTiIpCisgIChjb21wbGV0aW9uLWF0LXBvaW50KQorICAoc2hvdWxk IChzdHJpbmc9ICJJR05PUkVDQVNFIgorICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3Ry aW5nIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKHBvaW50KSkpKSkKKworKGVydC1kZWZ0ZXN0 IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LWplZGktY29tcGxldGVyICgpCisgICJD aGVjayBpZiBQeXRob24gc2hlbGwgY29tcGxldGlvbiB3b3JrcyB3aGVuIEplZGkgY29tcGxldGVy IGlzIHVzZWQuIgorICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCBweXRob24tdGVzdHMt c2hlbGwtaW50ZXJwcmV0ZXIpKQorICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXItd2l0 aC1zaGVsbAorICAgIiIKKyAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAg KHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9uKQorICAgICAoc2tpcC11bmxl c3MgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMgIiIpKQor ICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSkKKyAgICAgKHB5dGhvbi10ZXN0 cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzKQorICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9u LWV4dHJhLWNvbnRleHQpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tc2hlbGwtY29tcGxldGlv bi1hdC1wb2ludC1pcHl0aG9uICgpCisgICJDaGVjayBpZiBQeXRob24gc2hlbGwgY29tcGxldGlv biB3b3JrcyBmb3IgSVB5dGhvbi4iCisgIChsZXQgKChweXRob24tc2hlbGwtaW50ZXJwcmV0ZXIg ImlweXRob24iKQorICAgICAgICAocHl0aG9uLXNoZWxsLWludGVycHJldGVyLWFyZ3MgIi1pIC0t c2ltcGxlLXByb21wdCIpKQorICAgIChza2lwLXVubGVzcworICAgICAoYW5kCisgICAgICAoZXhl Y3V0YWJsZS1maW5kIHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlcikKKyAgICAgIChlcWwgKGNhbGwt cHJvY2VzcyBweXRob24tc2hlbGwtaW50ZXJwcmV0ZXIgbmlsIG5pbCBuaWwgIi0tdmVyc2lvbiIp IDApKSkKKyAgICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXItd2l0aC1zaGVsbAorICAg ICAiIgorICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAgKHB5dGhv bi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9mZikKKyAgICAgICAocHl0aG9uLXRlc3Rz LS1jb21wbGV0aW9uLW1vZHVsZSkKKyAgICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLXBh cmFtZXRlcnMpCisgICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9u KQorICAgICAgIChza2lwLXVubGVzcyAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29t cGxldGVyLWRlbGltcyAiIikpCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1tb2R1 bGUpCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzKQorICAgICAg IChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCkpKSkpCiAKIAwKIDs7OyBQ REIgVHJhY2sgaW50ZWdyYXRpb24KLS0gCjIuMzkuMgoK --0000000000008649db0610ca961f-- From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 07 10:20:20 2024 Received: (at 68559) by debbugs.gnu.org; 7 Feb 2024 15:20:20 +0000 Received: from localhost ([127.0.0.1]:57620 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXjim-0000Xj-DD for submit@debbugs.gnu.org; Wed, 07 Feb 2024 10:20:20 -0500 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]:49378) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXjik-0000XV-56 for 68559@debbugs.gnu.org; Wed, 07 Feb 2024 10:20:18 -0500 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1d953fa3286so6393475ad.2 for <68559@debbugs.gnu.org>; Wed, 07 Feb 2024 07:20:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707319198; x=1707923998; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=4Oa+093vJ/su9qkJ+AcO64FcV+8fgsY4AGvC7Ag2p3w=; b=bYBJSNfMWhbefLkYMytcIKmI2qOFW8DFfqReytAKZBUco8aLWgyvJzewg7htH+E37g yqW9c7i3nTblG7BnIlUA5q7vAsLBmy3F16wd/RZa4sdtkzaM+5ErqQ05uSFLmWMbNV0B Rz+btBsUp+QRuVfkonHsSnaoi2/rwent+aYS4Jhw2gL6eM1Un1pw8NyegfNa13grqkLN vTAYoCO7lTi9oAd2vX0tkfTlCB/0Y1JuqoS2sj1wQlnzsX9y03P80xmrhLvoKsY1D7mt EvRPGZR8rSzUG7aYxpog5DRmnGfaIXszGMN0BVf1YQsleB2/87+O79uxXhJXvWLqVLRF wbjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707319198; x=1707923998; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=4Oa+093vJ/su9qkJ+AcO64FcV+8fgsY4AGvC7Ag2p3w=; b=fqRMZAKTWlfNJG3/OZxAK5PhM089tfgEHuq6mXOlbzMebvtS2t09VvfbF0RUn1imUW suE6ynGU35rRbtsbbSoZCA/iPqjRzlgSa7OPzLGmDS4BZcDGQFdvW7AZP5pwpmZBoWIt BszwxA10QED8jzXq8Cu5bOpoWdrGchXcqpT4B4V3uyy20LdWSXmINMrYxJX+2xS/6LsX +oqYO8rYPp7MPxWoApvzJiwkSDeDsoOw9UUceP9w6B8pi+uOFpuxQjUBaa5oEffYkntf HJTyAqJoERcTlzeOCevuFATQNiIlfvEFELNLKHXYY/lMQydF4zAVgvApAfQvvDC23wQv Dk+w== X-Gm-Message-State: AOJu0Yy2ymd95ivfHDRQhYUL+gSRDOwafo9t/MBVnqojMazBxzEl14UB BVXyxfI+64rA7tNph1cin9SyEiC3s/rqQe5PKF4kNR8NcHez2avo X-Google-Smtp-Source: AGHT+IFbAiUjzXsjg+JqzjsAs5zdF4fvrC2CwoS08Ixlu2VCxkIfGrQQ656ZWGS1okF61ERCszuSmg== X-Received: by 2002:a17:902:bb10:b0:1d9:ed80:607f with SMTP id im16-20020a170902bb1000b001d9ed80607fmr2194197plb.41.1707319197783; Wed, 07 Feb 2024 07:19:57 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCUMT21Ys/flZNzIYlczG0ioRaSoQEQae9LVsVMeNhDYzQy9R1DYH9ckuPOAqKl4m+I1rQ66vrvfzeiDy1hOGqO0KFy9m7c= Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id kh13-20020a170903064d00b001d94a461d2dsm1560866plb.73.2024.02.07.07.19.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Feb 2024 07:19:57 -0800 (PST) Date: Thu, 08 Feb 2024 00:19:55 +0900 Message-ID: From: kobarity To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Liu Hui wrote: > On Tue, Feb 6, 2024 at 11:12=E2=80=AFPM kobarity wro= te: >=20 > > Sorry, I noticed one more thing. As written in the comments below, it > > would be better to use `line-beginning-position' and > > `line-end-position' instead of `pos-bol' and `pos-eol'. > > > > ;; This is a GNU ELPA :core package. Avoid functionality that is not > > ;; compatible with the version of Emacs recorded above. >=20 > Thanks for pointing it out! `pos-bol' was used because it can ignore > the prompt in `python-shell--get-multiline-input'. Fortunately, I find > `pos-bol' and `pos-eol' are available in the compat package since > 29.1.1.0, so it should be enough to upgrade the compat version in > Package-Requires. I have updated the attached patch. I see. The patch looks good to me. I appreciate your efforts! From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 08 07:13:54 2024 Received: (at 68559) by debbugs.gnu.org; 8 Feb 2024 12:13:54 +0000 Received: from localhost ([127.0.0.1]:59297 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rY3Hu-0002i6-3O for submit@debbugs.gnu.org; Thu, 08 Feb 2024 07:13:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49832) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rY3Hs-0002ht-7x for 68559@debbugs.gnu.org; Thu, 08 Feb 2024 07:13:52 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rY3HY-0005IA-Iq; Thu, 08 Feb 2024 07:13:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=TKL0dhTK8cJ8X8i4OZr14uAbQP8fhlzDnXOTaOSydn4=; b=GKiV5GXy8pVTdBGqyVuq yu9dTteVL9l/98dHaBkXaejtneqeGMSAjZrYftImTHAasHI38A8navgkzIKQqzK30kN9AD/nlYfrB UQtHCFLvdZKWVLNhGpcP34FN88HQvINhIAIa8N1eUtvgW+eDfcmv9nurGMRGZNvCaYw8rbMKW39Mm +90FOzOe9FKaLfM1+8dbcNCbtbO/1Yj6WWT6tNKHPnTY+45du7jq/Eyt1sQecPW9trJmSRMLS5K/d eHlXvkwqllZoumPDGrpqtEFUpsmK8ZqgRo6B1z8omVJNeXYa4UFX5r15vwkX4HcFpnIH6t19uCDDA rsMy8fBLrcgSbA==; Date: Thu, 08 Feb 2024 14:13:30 +0200 Message-Id: <86sf23w3v9.fsf@gnu.org> From: Eli Zaretskii To: kobarity In-Reply-To: (message from kobarity on Thu, 08 Feb 2024 00:19:55 +0900) Subject: Re: bug#68559: [PATCH] Improve Python shell completion References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 68559 Cc: liuhui1610@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 08 Feb 2024 00:19:55 +0900 > From: kobarity > Cc: Eli Zaretskii , > 68559@debbugs.gnu.org > > Liu Hui wrote: > > On Tue, Feb 6, 2024 at 11:12 PM kobarity wrote: > > > > > Sorry, I noticed one more thing. As written in the comments below, it > > > would be better to use `line-beginning-position' and > > > `line-end-position' instead of `pos-bol' and `pos-eol'. > > > > > > ;; This is a GNU ELPA :core package. Avoid functionality that is not > > > ;; compatible with the version of Emacs recorded above. > > > > Thanks for pointing it out! `pos-bol' was used because it can ignore > > the prompt in `python-shell--get-multiline-input'. Fortunately, I find > > `pos-bol' and `pos-eol' are available in the compat package since > > 29.1.1.0, so it should be enough to upgrade the compat version in > > Package-Requires. I have updated the attached patch. > > I see. The patch looks good to me. I appreciate your efforts! Thanks, I installed it on the master branch. What about the other patch, one you posted in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68559#46 Does that one need to be installed as well, or is it included in the one I just installed? From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 08 08:33:44 2024 Received: (at 68559) by debbugs.gnu.org; 8 Feb 2024 13:33:44 +0000 Received: from localhost ([127.0.0.1]:59350 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rY4XA-00087m-3Y for submit@debbugs.gnu.org; Thu, 08 Feb 2024 08:33:44 -0500 Received: from mail-ua1-x92b.google.com ([2607:f8b0:4864:20::92b]:53305) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rY4X7-00087Y-Ki for 68559@debbugs.gnu.org; Thu, 08 Feb 2024 08:33:42 -0500 Received: by mail-ua1-x92b.google.com with SMTP id a1e0cc1a2514c-7d6024b181bso628937241.2 for <68559@debbugs.gnu.org>; Thu, 08 Feb 2024 05:33:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707399201; x=1708004001; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=xf6eikEbm03dmxt6DMD3LUHvEUWRCY9xF8C2k2mlYI4=; b=S6fjNIlvSpxKXgddigyifbBECof2ZPxgGefg96xR04fajZ4O//e3zKg11Wgw65wx5P TPvhlbkhFi2PewpTAiyXiCs31avd/yi0q8EOwvEW4LckKObQDqxRVEdjmYIpUnPDq5bo EtNBK4hzO2sLmqt9p1pUhVkGMiEYdpjgfiml9ADVEGz1zbVRxHu4F687mxkG4KZeAE/D nViNb7gGf2szIdesHnVymeocO/9EImG2B1Ghtd0YRovsWsH26XKooWpxy3K4VVtkKQ6y /EabLBiXQG2qLLj52846yki6EVoIr+AqnpMcL9uC7YHQ3bNX+gWeFVEse0Sw3OFGabSd 5vCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707399201; x=1708004001; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xf6eikEbm03dmxt6DMD3LUHvEUWRCY9xF8C2k2mlYI4=; b=Ladd1oIWtwa293bnDL7ufHsTI16e7ncKXs/53xPBBuYNGthdIwRy9gNbgxsSog4FBm KIxCbPuyFW+xGIQKAFtCJM1mbNY+/Nr0zP/qR2Qo/LHnLx/L/MOjZFWTvSj/ZZ/h87wM 7B95xG8p5ln5WuUeCdnyLQ+KGx09pbxEzfqv0nl6hENC/6cENQciL/Zzpux3I2rTRqCO HLuc2v5k/OZvDXGYLaKHKUKKcUkpGSFi6IgjdgIiFjZAxlBCIB1ur60CUlVrVBUoMFED dnDKNBxqePCggFFPHmY0nsKYgtCCLKub6m7ms8d6lZgaf9oGKlaNRdsiNY4vvc2+NZYV Nw4Q== X-Gm-Message-State: AOJu0YzBcHgp1JwBfHTsEitoOY9PGVeOIBPvDQzFX9kJGi4vX5qyRHxr Xjgb41WXmTbcT+VCWlB/sCtT4rnUjftixzWTdz9Alc8IlWYcDhbafrsnT9Vbet34l/juNYYgo3A cfBLzMEEp4TPXdpIb+rQXttFz/vQ= X-Google-Smtp-Source: AGHT+IFDIq/qoX2XyI4bml74H8lM9mc5PGxTb1YoWWV7TVj6L3qbsvdmQu7oal6myucNKCHWt5z1KbNiVBg1v/rW3Ic= X-Received: by 2002:a05:6122:31a1:b0:4c0:3116:e907 with SMTP id ch33-20020a05612231a100b004c03116e907mr6189410vkb.16.1707399201604; Thu, 08 Feb 2024 05:33:21 -0800 (PST) MIME-Version: 1.0 References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> <86sf23w3v9.fsf@gnu.org> In-Reply-To: <86sf23w3v9.fsf@gnu.org> From: Liu Hui Date: Thu, 8 Feb 2024 21:33:10 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: kobarity , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On Thu, Feb 8, 2024 at 8:13=E2=80=AFPM Eli Zaretskii wrote: > What about the other patch, one you posted in > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D68559#46 > > Does that one need to be installed as well, or is it included in the > one I just installed? The installed one is complete. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 08 08:46:56 2024 Received: (at 68559) by debbugs.gnu.org; 8 Feb 2024 13:46:56 +0000 Received: from localhost ([127.0.0.1]:59362 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rY4js-0008Qy-S9 for submit@debbugs.gnu.org; Thu, 08 Feb 2024 08:46:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:43816) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rY4jr-0008Qn-Tc for 68559@debbugs.gnu.org; Thu, 08 Feb 2024 08:46:52 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rY4jY-0007Vs-0B; Thu, 08 Feb 2024 08:46:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=qJ7kNuNPMeUVbXGoppfNW9ESJQQ/TZ/e/hgIk3ivbk0=; b=VbR/Z79g0HX0l47xQCa7 48PCLHXPgPV2nVhw3wpciOo4thU1mowwj+Hn75RE666D39lh9/NAOj7NZWCfd3CvhIWOQCgg+k/Q4 q32nBuycO5tKsoDvVfBfzWmdUYoIH8DQdUgRV/2kRs+UpteoO0nOX6DAcudQPIT6B1pqkO6LIPlu4 XhDYgbGzgfZ7UnGN9i0vrQ2DgBTtgY6Pf0/5rRzDZTRnIUVkZpeFTqzMpR70RmM/S33qo0jDJWKmJ rZQMtjtFlb+zMU9rWe3mQyZTwj9HsWaeMaEqM15G+7WgcUGAu51ePhfYfbiVsqZWD92XAElPxo1hH GgtZnzjIH74Wqg==; Date: Thu, 08 Feb 2024 15:46:28 +0200 Message-Id: <86plx7vzkb.fsf@gnu.org> From: Eli Zaretskii To: Liu Hui In-Reply-To: (message from Liu Hui on Thu, 8 Feb 2024 21:33:10 +0800) Subject: Re: bug#68559: [PATCH] Improve Python shell completion References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> <86sf23w3v9.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 68559 Cc: kobarity@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Liu Hui > Date: Thu, 8 Feb 2024 21:33:10 +0800 > Cc: kobarity , 68559@debbugs.gnu.org > > On Thu, Feb 8, 2024 at 8:13 PM Eli Zaretskii wrote: > > > What about the other patch, one you posted in > > > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68559#46 > > > > Does that one need to be installed as well, or is it included in the > > one I just installed? > > The installed one is complete. Thanks. Great, thanks. Then this bug can be closed now, right? From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 08 09:16:58 2024 Received: (at 68559) by debbugs.gnu.org; 8 Feb 2024 14:16:58 +0000 Received: from localhost ([127.0.0.1]:59387 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rY5D0-0000nQ-6j for submit@debbugs.gnu.org; Thu, 08 Feb 2024 09:16:58 -0500 Received: from mail-yw1-x1129.google.com ([2607:f8b0:4864:20::1129]:47544) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rY5Cx-0000nD-BL for 68559@debbugs.gnu.org; Thu, 08 Feb 2024 09:16:56 -0500 Received: by mail-yw1-x1129.google.com with SMTP id 00721157ae682-604b0ae6babso2785957b3.3 for <68559@debbugs.gnu.org>; Thu, 08 Feb 2024 06:16:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707401795; x=1708006595; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=mkOFrL0VadMS2PAGByJvX0DSxwPRNP69ykVDx4Y6SHE=; b=KNZPlsvezEnTGrL1m7D6V5Z7pOeDDd2n8pnwbdx8KTSFlzR82xi29xruvojibUdXsM qltW/QgSqrgCJsA1pqmlW44J63HLE5b6BWANbufFp6znZtwmFFN+75aQxLH3V5Fh+zAJ THjVCYiQs97l3xRmU34yMysFOhvhxSd6SRExNj8W1pGmeSHXgNwkrzpjAJsEjUY6h3fb DF9xfGwGl0id0wiPlHcjli2LO45HeOEPelde3E2XOuRGzJUMwhoI0RzYqtOHfStHRdyt APpCSblXMQT9MC2kHazhOIdagbQIEwHUhibE6eeq45pU4omCyY/j04bDW90kjOPy0O3K bVfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707401795; x=1708006595; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mkOFrL0VadMS2PAGByJvX0DSxwPRNP69ykVDx4Y6SHE=; b=AttOQnC5XWCE0Wg/Lmv3rJH8NpsybI02eHPC7gFiT59tC0r9IAaR2XxxCr+wuTmmik tY4mETso7y/aSCfCiX5aiqO3pGlaRQahuVpBZdx1RwpzsPL5pn0opmFUSRIfoNESe8fQ bNxyNP2gzOaMbHUNqqBzbOVQkDLkGQA1izIoTxVVnyx/O6qO6yF4MPCOBe9aww5dZY+y BPMMjpNsuEOusCicp+sP5S/CoPx4A4Fncdtjz3KtTbBstWWlm/U+8Er/N/bf8Q3z8skU Z9tTGUYWmAXb98QjGPl1fIEoMFtSD5alpS9OI5WMqPgbUNVvQUbZEoXC5dQalJdFQ/6/ 0KMg== X-Gm-Message-State: AOJu0YzSN8PpKWLFKW7mbYMce3Fw35WyWWwhKEYnarQU66Pvxakh46wH o1JobiWbIn20fX0mOyIB2d8kN2ahG0hySO8SFcJKlaaIFTN3Ovla6C0fppwjIH/8br6IMymLQY3 2NYdITq+0aUmx18A+hn7QK/eu4vc= X-Google-Smtp-Source: AGHT+IH951y0pCQBL/pol2M5rWN4tfVd5eQ3uLecEv1vOCggH85lIosvmGWhcXeFaNKnVr7VYuOG8UauMaV9hzrvTwI= X-Received: by 2002:a81:b545:0:b0:604:602d:8eb2 with SMTP id c5-20020a81b545000000b00604602d8eb2mr7881094ywk.12.1707401795168; Thu, 08 Feb 2024 06:16:35 -0800 (PST) MIME-Version: 1.0 References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> <86sf23w3v9.fsf@gnu.org> <86plx7vzkb.fsf@gnu.org> In-Reply-To: <86plx7vzkb.fsf@gnu.org> From: Liu Hui Date: Thu, 8 Feb 2024 22:16:23 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: kobarity@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On Thu, Feb 8, 2024 at 9:46=E2=80=AFPM Eli Zaretskii wrote: > > > From: Liu Hui > > Date: Thu, 8 Feb 2024 21:33:10 +0800 > > Cc: kobarity , 68559@debbugs.gnu.org > > > > On Thu, Feb 8, 2024 at 8:13=E2=80=AFPM Eli Zaretskii wro= te: > > > > > What about the other patch, one you posted in > > > > > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D68559#46 > > > > > > Does that one need to be installed as well, or is it included in the > > > one I just installed? > > > > The installed one is complete. Thanks. > > Great, thanks. Then this bug can be closed now, right? Yes, please. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 08 11:43:29 2024 Received: (at 68559-done) by debbugs.gnu.org; 8 Feb 2024 16:43:29 +0000 Received: from localhost ([127.0.0.1]:33495 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rY7Un-0005nQ-08 for submit@debbugs.gnu.org; Thu, 08 Feb 2024 11:43:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57864) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rY7Ul-0005nE-PH for 68559-done@debbugs.gnu.org; Thu, 08 Feb 2024 11:43:28 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rY7UR-0007Ph-Qa; Thu, 08 Feb 2024 11:43:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=0ac+cMWtHKnLZGJGgmW5tMXPc+IEnPl0Pt85WcZdb3s=; b=o4Jm3hN4e7SqYwkx1Qp1 Ybsbtl1oqxD2pQHurevbtF5if9cgxE0cakW6qKEWl6hObgRR3n1T0u3hEGGVm+afirTbK5boFs0nS pZQW6ool8gfCSm/PDZK3SFUZElFaAVXtXhcQzHym9Fu9FbrAQpSBCpaGlzyDGGTArlhqFeg/pvSFL nnA2pI6eOXpsVOMFuTVl2pcp/CIqetmy0dODp/+aEKqwJ2ZV44cXhlN7VIX3QOwBHY95I7JWLxzK0 uwyEVrQexCN0hk4kHCiO2RUbeUBsUDungQIYhVlbAsgV7BwAHdoXiJ76ZcJ7f4AJlfKvYml5yvA2t UQQ9C+vPPDDOug==; Date: Thu, 08 Feb 2024 18:43:04 +0200 Message-Id: <86jznex5yf.fsf@gnu.org> From: Eli Zaretskii To: Liu Hui In-Reply-To: (message from Liu Hui on Thu, 8 Feb 2024 22:16:23 +0800) Subject: Re: bug#68559: [PATCH] Improve Python shell completion References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> <86sf23w3v9.fsf@gnu.org> <86plx7vzkb.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 68559-done Cc: kobarity@gmail.com, 68559-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Liu Hui > Date: Thu, 8 Feb 2024 22:16:23 +0800 > Cc: kobarity@gmail.com, 68559@debbugs.gnu.org > > On Thu, Feb 8, 2024 at 9:46 PM Eli Zaretskii wrote: > > > > > From: Liu Hui > > > Date: Thu, 8 Feb 2024 21:33:10 +0800 > > > Cc: kobarity , 68559@debbugs.gnu.org > > > > > > On Thu, Feb 8, 2024 at 8:13 PM Eli Zaretskii wrote: > > > > > > > What about the other patch, one you posted in > > > > > > > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68559#46 > > > > > > > > Does that one need to be installed as well, or is it included in the > > > > one I just installed? > > > > > > The installed one is complete. Thanks. > > > > Great, thanks. Then this bug can be closed now, right? > > Yes, please. Thanks, closing. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 15 09:45:02 2024 Received: (at 68559) by debbugs.gnu.org; 15 Feb 2024 14:45:03 +0000 Received: from localhost ([127.0.0.1]:54759 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1racz0-0007zd-Kv for submit@debbugs.gnu.org; Thu, 15 Feb 2024 09:45:02 -0500 Received: from mail-lf1-f46.google.com ([209.85.167.46]:45090) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1racyy-0007yr-6F for 68559@debbugs.gnu.org; Thu, 15 Feb 2024 09:45:01 -0500 Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-5116ec49081so1105372e87.2 for <68559@debbugs.gnu.org>; Thu, 15 Feb 2024 06:44:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708008215; x=1708613015; darn=debbugs.gnu.org; h=to:cc:date:message-id:subject:mime-version:from:sender:from:to:cc :subject:date:message-id:reply-to; bh=fq9bxDAWROuUM19B/W4qQA8HPWCGIKI4bxFVdvIWssE=; b=hNGwPyuk1+1+Z238rSLWh+tur8VwFNnrmAjyC6J/mYX/NtpsWSVPdBXjwKKhPT/Tn7 curSJLu3Uhybe78NpCJ0CnWN+h6GYNIpWvbYg8JyfTi+AEBzCP0aR5regFHNFZep/Inx sfXrKZt/cYl765St4UQ2FQUEYYUnj3SOlmzci+sZOKhkla28QDqp8kiACm0tyj+Qeo5h rTBKEObF0yR3qwYPfKhbcFszGJcH2FRmndK9qGQeNkLoAgwCC+8/ryIef+Ze759ONf9x 9bjIxFRKd7mAb27jQY+sox941OBOR9WFYlxXKdYbp9owqIwrEsn29ToeU/t7wrkTVAFd jyyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708008215; x=1708613015; h=to:cc:date:message-id:subject:mime-version:from:sender :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fq9bxDAWROuUM19B/W4qQA8HPWCGIKI4bxFVdvIWssE=; b=YwZFgNugMsQQkojiHdIRBjBkzVrYHfC6RSACSuCpwkdIoCMoG6KkieRIZ6uF6V9/w9 oKeWcGoAKA5JhE6TR0BbEPYqN1I1HY/k5QnerIzqRvWB5m0W68Lf8pgsWdKetNd95V4A Gv+KqE6IFg/3cgf6dsIP39XtF70w+KYmfgAta3Fvjz0o/ne/anUQMhGLrAQPFQ0Fk/B+ cEbTSRcMjBCwsSh7Mkagk21PVZG45Abla2v1JlUdPcRzlxowEe8CkVv78C9Q7BXzKYEy iju5eErWzmWdE1nibXs/YHZJThv6tqhTQNWZ/nnOcsE+O7rw9vfeyYNKZtoiBTjELJus itOg== X-Forwarded-Encrypted: i=1; AJvYcCUnpVu706Poze2LupLlKUaCV9KLo1e8PgeSP+HVTO6S0sKmu8rblff26VxUN5dxlSWsyJ2IjuWccg4CWgZE/irXBVO3Z7k= X-Gm-Message-State: AOJu0YzPunsMaiGL/m02vqWE6k3pkTaZIaA6PPxejgCvP4hfo/9Hi8n3 hilabz3AehQi1w4pD72aMSfyME7GX5OMOTKQRyditQUWnfOJ2GS2 X-Google-Smtp-Source: AGHT+IHyt9faooI2KLpEveWrESaHQB8YBn/sMNBNwO+co0Kcq+QOLoPLyi4jYmst9KX+djA0VO7iRA== X-Received: by 2002:ac2:5979:0:b0:511:499d:5ab6 with SMTP id h25-20020ac25979000000b00511499d5ab6mr1726788lfp.14.1708008214680; Thu, 15 Feb 2024 06:43:34 -0800 (PST) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id s15-20020a056512202f00b00511f597dd92sm266784lfs.41.2024.02.15.06.43.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 15 Feb 2024 06:43:34 -0800 (PST) From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= Content-Type: multipart/mixed; boundary="Apple-Mail=_4AE3D42B-08C4-41B4-B7F0-6146C5C6824C" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: bug#68559: [PATCH] Improve Python shell completion Message-Id: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> Date: Thu, 15 Feb 2024 15:43:32 +0100 To: Liu Hui X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , kobarity@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) --Apple-Mail=_4AE3D42B-08C4-41B4-B7F0-6146C5C6824C Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii The recent change on master, 0b9c7148fd, causes several failures in = python-tests here (macOS). Log attached. It seems to have something to do with completion. Maybe the new code is = sensitive to details of Python's command line editor? The standard = Python interpreter is unlikely to use GNU readline, for example. --Apple-Mail=_4AE3D42B-08C4-41B4-B7F0-6146C5C6824C Content-Disposition: attachment; filename=python-tests.log Content-Type: application/octet-stream; x-unix-mode=0644; name="python-tests.log" Content-Transfer-Encoding: 7bit GEN lisp/progmodes/python-tests.log Running 360 tests (2024-02-15 15:38:05+0100, selector `(not (or (tag :unstable) (tag :nativecomp)))') passed 1/360 python-auto-fill-docstring (0.001040 sec) Fontifying *temp*-895436... Fontifying *temp*-895436... (syntactically...) Fontifying *temp*-895436... (regexps...) Fontifying *temp*-895436... (regexps....) Fontifying *temp*-895436... (regexps.....) Fontifying *temp*-895436... (regexps......) Fontifying *temp*-895436... (regexps.......) Fontifying *temp*-895436... (regexps........) Fontifying *temp*-895436... (regexps.........) Fontifying *temp*-895436... (regexps..........) Fontifying *temp*-895436... (regexps...........) Fontifying *temp*-895436... (regexps............) Fontifying *temp*-895436... (regexps.............) Fontifying *temp*-895436... (regexps..............) Fontifying *temp*-895436... (regexps...............) Fontifying *temp*-895436... (regexps................) passed 2/360 python-bob-infloop-avoid (0.000804 sec) Test python-completion-at-point-1 backtrace: json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 python--parse-json-array("__PYTHON_EL_eval_file(\"/var/folders/qy/zs python-shell-completion-get-completions(#) python-completion-at-point() completion--capf-wrapper(python-completion-at-point all) run-hook-wrapped(completion--capf-wrapper python-completion-at-point completion-at-point() apply(completion-at-point nil) (setq value-3676 (apply fn-3674 args-3675)) (unwind-protect (setq value-3676 (apply fn-3674 args-3675)) (setq fo (if (unwind-protect (setq value-3676 (apply fn-3674 args-3675)) (set (let (form-description-3678) (if (unwind-protect (setq value-3676 (a (let ((value-3676 'ert-form-evaluation-aborted-3677)) (let (form-des (let* ((fn-3674 #'completion-at-point) (args-3675 (condition-case er (let ((inhibit-message t)) (python-shell-send-buffer) (python-tests- (progn (run-python nil t) (insert "\nimport abc\n") (goto-char (poin (unwind-protect (progn (run-python nil t) (insert "\nimport abc\n") (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3669 #'executable-find) (args-3670 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1) FAILED 3/360 python-completion-at-point-1 (0.404730 sec) at ../../emacs/test/lisp/progmodes/python-tests.el:4903 Test python-completion-at-point-2 backtrace: json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 python--parse-json-array("__PYTHON_EL_eval_file(\"/var/folders/qy/zs python-shell-completion-get-completions(#) python-completion-at-point() completion--capf-wrapper(python-completion-at-point all) run-hook-wrapped(completion--capf-wrapper python-completion-at-point completion-at-point() apply(completion-at-point nil) (setq value-3691 (apply fn-3689 args-3690)) (unwind-protect (setq value-3691 (apply fn-3689 args-3690)) (setq fo (if (unwind-protect (setq value-3691 (apply fn-3689 args-3690)) (set (let (form-description-3693) (if (unwind-protect (setq value-3691 (a (let ((value-3691 'ert-form-evaluation-aborted-3692)) (let (form-des (let* ((fn-3689 #'completion-at-point) (args-3690 (condition-case er (let ((inhibit-message t)) (python-shell-send-buffer) (python-tests- (progn (run-python nil t) (insert "\nimport abc\n") (goto-char (poin (unwind-protect (progn (run-python nil t) (insert "\nimport abc\n") (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3684 #'executable-find) (args-3685 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1) FAILED 4/360 python-completion-at-point-2 (0.381182 sec) at ../../emacs/test/lisp/progmodes/python-tests.el:4918 Test python-completion-at-point-native-1 backtrace: json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 python--parse-json-array("__PYTHON_EL_eval_file(\"/var/folders/qy/zs python-shell-completion-get-completions(#) python-completion-at-point() completion--capf-wrapper(python-completion-at-point all) run-hook-wrapped(completion--capf-wrapper python-completion-at-point completion-at-point() apply(completion-at-point nil) (setq value-3718 (apply fn-3716 args-3717)) (unwind-protect (setq value-3718 (apply fn-3716 args-3717)) (setq fo (if (unwind-protect (setq value-3718 (apply fn-3716 args-3717)) (set (let (form-description-3720) (if (unwind-protect (setq value-3718 (a (let ((value-3718 'ert-form-evaluation-aborted-3719)) (let (form-des (let* ((fn-3716 #'completion-at-point) (args-3717 (condition-case er (let ((inhibit-message t)) (python-shell-completion-native-turn-on) (progn (run-python nil t) (insert "\nimport abc\n") (goto-char (poin (unwind-protect (progn (run-python nil t) (insert "\nimport abc\n") (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3711 #'executable-find) (args-3712 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1) FAILED 5/360 python-completion-at-point-native-1 (0.407805 sec) at ../../emacs/test/lisp/progmodes/python-tests.el:4966 Test python-completion-at-point-native-2 backtrace: json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 python--parse-json-array("__PYTHON_EL_eval_file(\"/var/folders/qy/zs python-shell-completion-get-completions(#) python-completion-at-point() completion--capf-wrapper(python-completion-at-point all) run-hook-wrapped(completion--capf-wrapper python-completion-at-point completion-at-point() apply(completion-at-point nil) (setq value-3733 (apply fn-3731 args-3732)) (unwind-protect (setq value-3733 (apply fn-3731 args-3732)) (setq fo (if (unwind-protect (setq value-3733 (apply fn-3731 args-3732)) (set (let (form-description-3735) (if (unwind-protect (setq value-3733 (a (let ((value-3733 'ert-form-evaluation-aborted-3734)) (let (form-des (let* ((fn-3731 #'completion-at-point) (args-3732 (condition-case er (let ((inhibit-message t)) (python-shell-completion-native-turn-on) (progn (run-python nil t) (insert "\nimport abc\n") (goto-char (poin (unwind-protect (progn (run-python nil t) (insert "\nimport abc\n") (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3726 #'executable-find) (args-3727 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1) FAILED 6/360 python-completion-at-point-native-2 (0.399853 sec) at ../../emacs/test/lisp/progmodes/python-tests.el:4982 Test python-completion-at-point-native-with-eldoc-1 backtrace: json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 python--parse-json-array("__PYTHON_EL_eval_file(\"/var/folders/qy/zs python-shell-completion-get-completions(#) python-completion-at-point() completion--capf-wrapper(python-completion-at-point all) run-hook-wrapped(completion--capf-wrapper python-completion-at-point completion-at-point() apply(completion-at-point nil) (setq value-3753 (apply fn-3751 args-3752)) (unwind-protect (setq value-3753 (apply fn-3751 args-3752)) (setq fo (if (unwind-protect (setq value-3753 (apply fn-3751 args-3752)) (set (let (form-description-3755) (if (unwind-protect (setq value-3753 (a (let ((value-3753 'ert-form-evaluation-aborted-3754)) (let (form-des (let* ((fn-3751 #'completion-at-point) (args-3752 (condition-case er (let ((inhibit-message t)) (python-shell-completion-native-turn-on) (progn (run-python nil t) (insert "\nimport abc\n") (goto-char (poin (unwind-protect (progn (run-python nil t) (insert "\nimport abc\n") (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3746 #'executable-find) (args-3747 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1) FAILED 7/360 python-completion-at-point-native-with-eldoc-1 (0.451243 sec) at ../../emacs/test/lisp/progmodes/python-tests.el:5015 Test python-completion-at-point-native-with-ffap-1 backtrace: json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 python--parse-json-array("__PYTHON_EL_eval_file(\"/var/folders/qy/zs python-shell-completion-get-completions(#) python-completion-at-point() completion--capf-wrapper(python-completion-at-point all) run-hook-wrapped(completion--capf-wrapper python-completion-at-point completion-at-point() apply(completion-at-point nil) (setq value-3743 (apply fn-3741 args-3742)) (unwind-protect (setq value-3743 (apply fn-3741 args-3742)) (setq fo (if (unwind-protect (setq value-3743 (apply fn-3741 args-3742)) (set (let (form-description-3745) (if (unwind-protect (setq value-3743 (a (let ((value-3743 'ert-form-evaluation-aborted-3744)) (let (form-des (let* ((fn-3741 #'completion-at-point) (args-3742 (condition-case er (let ((inhibit-message t)) (python-shell-completion-native-turn-on) (progn (run-python nil t) (insert "\nimport abc\n") (goto-char (poin (unwind-protect (progn (run-python nil t) (insert "\nimport abc\n") (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3736 #'executable-find) (args-3737 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1) FAILED 8/360 python-completion-at-point-native-with-ffap-1 (0.461626 sec) at ../../emacs/test/lisp/progmodes/python-tests.el:4999 passed 9/360 python-completion-at-point-pdb-1 (0.403759 sec) passed 10/360 python-completion-at-point-while-running-1 (0.200969 sec) passed 11/360 python-eldoc--get-doc-at-point-1 (0.409866 sec) passed 12/360 python-eldoc--get-doc-at-point-while-running-1 (0.196968 sec) passed 13/360 python-eldoc--get-symbol-at-point-1 (0.001494 sec) passed 14/360 python-eldoc--get-symbol-at-point-2 (0.001215 sec) passed 15/360 python-eldoc--get-symbol-at-point-3 (0.000355 sec) passed 16/360 python-eldoc--get-symbol-at-point-4 (0.000367 sec) passed 17/360 python-end-of-defun-1 (0.000406 sec) skipped 18/360 python-ffap-module-path-1 (0.000411 sec) passed 19/360 python-ffap-module-path-while-running-1 (0.204620 sec) passed 20/360 python-fill-docstring (0.001313 sec) passed 21/360 python-fill-paragraph-single-quoted-string-1 (0.000401 sec) passed 22/360 python-fill-paragraph-single-quoted-string-2 (0.000313 sec) passed 23/360 python-fill-paragraph-triple-quoted-string-1 (0.003809 sec) passed 24/360 python-font-lock-assignment-statement-1 (0.000670 sec) passed 25/360 python-font-lock-assignment-statement-10 (0.000358 sec) passed 26/360 python-font-lock-assignment-statement-11 (0.000561 sec) passed 27/360 python-font-lock-assignment-statement-12 (0.000589 sec) passed 28/360 python-font-lock-assignment-statement-13 (0.000741 sec) passed 29/360 python-font-lock-assignment-statement-14 (0.000586 sec) passed 30/360 python-font-lock-assignment-statement-15 (0.000470 sec) passed 31/360 python-font-lock-assignment-statement-16 (0.000378 sec) passed 32/360 python-font-lock-assignment-statement-17 (0.000632 sec) passed 33/360 python-font-lock-assignment-statement-18 (0.000620 sec) passed 34/360 python-font-lock-assignment-statement-2 (0.000803 sec) passed 35/360 python-font-lock-assignment-statement-3 (0.000593 sec) passed 36/360 python-font-lock-assignment-statement-4 (0.000677 sec) passed 37/360 python-font-lock-assignment-statement-5 (0.000494 sec) passed 38/360 python-font-lock-assignment-statement-6 (0.000409 sec) passed 39/360 python-font-lock-assignment-statement-7 (0.000516 sec) passed 40/360 python-font-lock-assignment-statement-8 (0.000442 sec) passed 41/360 python-font-lock-assignment-statement-9 (0.000669 sec) passed 42/360 python-font-lock-escape-sequence-bytes-newline (0.000449 sec) passed 43/360 python-font-lock-escape-sequence-hex-octal (0.000797 sec) passed 44/360 python-font-lock-escape-sequence-multiline-string (0.015089 sec) passed 45/360 python-font-lock-escape-sequence-string-newline (0.001174 sec) passed 46/360 python-font-lock-escape-sequence-unicode (0.000670 sec) passed 47/360 python-font-lock-keywords-level-1-1 (0.000784 sec) passed 48/360 python-font-lock-keywords-level-1-2 (0.000567 sec) passed 49/360 python-font-lock-operator-1 (0.000616 sec) passed 50/360 python-font-lock-operator-2 (0.000685 sec) passed 51/360 python-font-lock-raw-escape-sequence (0.000931 sec) passed 52/360 python-font-lock-string-literal-concatenation (0.000505 sec) Hiding all blocks... Hiding all blocks...done passed 53/360 python-hideshow-hide-all-1 (0.000726 sec) Hiding all blocks... Hiding all blocks...done passed 54/360 python-hideshow-hide-all-2 (0.000482 sec) Hiding all blocks... Hiding all blocks...done passed 55/360 python-hideshow-hide-all-3 (0.000423 sec) passed 56/360 python-hideshow-hide-block-1 (0.000525 sec) Hiding blocks ... Hiding blocks ... done Showing all blocks ... Showing all blocks ... done passed 57/360 python-hideshow-hide-levels-1 (0.001158 sec) Showing all blocks ... Showing all blocks ... done passed 58/360 python-hideshow-hide-levels-2 (0.063466 sec) Hiding blocks ... Hiding blocks ... done passed 59/360 python-hideshow-hide-levels-3 (0.001151 sec) Hiding blocks ... Hiding blocks ... done passed 60/360 python-hideshow-hide-levels-4 (0.001123 sec) passed 61/360 python-imenu-create-flat-index-1 (0.000588 sec) passed 62/360 python-imenu-create-flat-index-2 (0.000365 sec) passed 63/360 python-imenu-create-index-1 (0.000564 sec) passed 64/360 python-imenu-create-index-2 (0.000345 sec) passed 65/360 python-imenu-create-index-3 (0.000337 sec) passed 66/360 python-imenu-create-index-4 (0.000354 sec) passed 67/360 python-indent-after-async-block-1 (0.000366 sec) passed 68/360 python-indent-after-async-block-2 (0.000356 sec) passed 69/360 python-indent-after-async-block-3 (0.000366 sec) passed 70/360 python-indent-after-backslash-1 (0.000755 sec) passed 71/360 python-indent-after-backslash-2 (0.001117 sec) passed 72/360 python-indent-after-backslash-3 (0.000536 sec) passed 73/360 python-indent-after-backslash-4 (0.001198 sec) passed 74/360 python-indent-after-backslash-5 (0.000804 sec) passed 75/360 python-indent-after-backslash-6 (0.000594 sec) passed 76/360 python-indent-after-bare-match (0.000396 sec) passed 77/360 python-indent-after-block-1 (0.000360 sec) passed 78/360 python-indent-after-block-2 (0.000345 sec) passed 79/360 python-indent-after-block-3 (0.000522 sec) passed 80/360 python-indent-after-case-block (0.000358 sec) passed 81/360 python-indent-after-comment-1 (0.000815 sec) passed 82/360 python-indent-after-comment-2 (0.001021 sec) passed 83/360 python-indent-after-comment-3 (0.000543 sec) passed 84/360 python-indent-after-match-block (0.000368 sec) passed 85/360 python-indent-after-re-match (0.000388 sec) passed 86/360 python-indent-base-case (0.000483 sec) passed 87/360 python-indent-block-enders-1 (0.000707 sec) passed 88/360 python-indent-block-enders-2 (0.001406 sec) passed 89/360 python-indent-block-enders-3 (0.000738 sec) passed 90/360 python-indent-block-enders-4 (0.000479 sec) passed 91/360 python-indent-block-enders-5 (0.000496 sec) passed 92/360 python-indent-dedent-line-backspace-1 (0.000467 sec) passed 93/360 python-indent-dedent-line-backspace-2 (0.000312 sec) passed 94/360 python-indent-dedent-line-backspace-3 (0.000580 sec) passed 95/360 python-indent-dedenters-1 (0.000499 sec) Closes if hide_details: Closes except Exception: Closes if save: passed 96/360 python-indent-dedenters-2 (0.002075 sec) Closes try: passed 97/360 python-indent-dedenters-3 (0.000975 sec) Closes try: passed 98/360 python-indent-dedenters-4 (0.000954 sec) Closes if save: passed 99/360 python-indent-dedenters-5 (0.001225 sec) passed 100/360 python-indent-dedenters-6 (0.000430 sec) passed 101/360 python-indent-dedenters-7 (0.000557 sec) Closes if (a == 1 or Closes if (a == 1 or Closes if (a == 1 or passed 102/360 python-indent-dedenters-8 (0.054888 sec) Closes case 1: passed 103/360 python-indent-dedenters-9 (0.001045 sec) Closes if hide_details: Closes except Exception: Closes if save: passed 104/360 python-indent-dedenters-comment-else (0.002278 sec) passed 105/360 python-indent-electric-colon-1 (0.000376 sec) Closes if do: passed 106/360 python-indent-electric-colon-2 (0.000483 sec) Closes if do: Closes if do: Closes if do: passed 107/360 python-indent-electric-colon-3 (0.000718 sec) Closes if True: passed 108/360 python-indent-electric-colon-4 (0.000566 sec) passed 109/360 python-indent-electric-comma-after-multiline-string (0.000423 sec) passed 110/360 python-indent-electric-comma-inside-multiline-string (0.000405 sec) passed 111/360 python-indent-hanging-close-paren (0.000351 sec) passed 112/360 python-indent-inside-paren-1 (0.001338 sec) passed 113/360 python-indent-inside-paren-2 (0.001057 sec) passed 114/360 python-indent-inside-paren-3 (0.000878 sec) passed 115/360 python-indent-inside-paren-4 (0.000625 sec) passed 116/360 python-indent-inside-paren-5 (0.000799 sec) passed 117/360 python-indent-inside-paren-6 (0.000444 sec) passed 118/360 python-indent-inside-paren-7 (0.000303 sec) passed 119/360 python-indent-inside-paren-8 (0.000416 sec) passed 120/360 python-indent-inside-paren-9 (0.000911 sec) passed 121/360 python-indent-inside-paren-block-1 (0.000900 sec) passed 122/360 python-indent-inside-paren-block-2 (0.000817 sec) passed 123/360 python-indent-inside-paren-block-3 (0.000588 sec) passed 124/360 python-indent-inside-paren-block-4 (0.000584 sec) passed 125/360 python-indent-inside-string-1 (0.000646 sec) passed 126/360 python-indent-inside-string-2 (0.001953 sec) passed 127/360 python-indent-inside-string-3 (0.000754 sec) passed 128/360 python-indent-pep8-1 (0.000450 sec) passed 129/360 python-indent-pep8-2 (0.000557 sec) passed 130/360 python-indent-pep8-3 (0.000930 sec) passed 131/360 python-indent-region-1 (0.000539 sec) passed 132/360 python-indent-region-2 (0.000637 sec) passed 133/360 python-indent-region-3 (0.000518 sec) passed 134/360 python-indent-region-4 (0.000454 sec) passed 135/360 python-indent-region-5 (0.002005 sec) passed 136/360 python-info-assignment-continuation-line-p-1 (0.000400 sec) passed 137/360 python-info-assignment-continuation-line-p-2 (0.000387 sec) passed 138/360 python-info-assignment-statement-p-1 (0.000417 sec) passed 139/360 python-info-assignment-statement-p-2 (0.000410 sec) passed 140/360 python-info-assignment-statement-p-3 (0.000480 sec) passed 141/360 python-info-beginning-of-backslash-1 (0.000776 sec) passed 142/360 python-info-beginning-of-block-p-1 (0.000614 sec) passed 143/360 python-info-beginning-of-block-p-2 (0.000437 sec) passed 144/360 python-info-beginning-of-statement-p-1 (0.000333 sec) passed 145/360 python-info-beginning-of-statement-p-2 (0.000726 sec) passed 146/360 python-info-block-continuation-line-p-1 (0.000608 sec) passed 147/360 python-info-block-continuation-line-p-2 (0.000561 sec) passed 148/360 python-info-continuation-line-p-1 (0.000517 sec) passed 149/360 python-info-current-defun-1 (0.000750 sec) passed 150/360 python-info-current-defun-2 (0.011937 sec) passed 151/360 python-info-current-defun-3 (0.008679 sec) passed 152/360 python-info-current-defun-4 (0.001098 sec) passed 153/360 python-info-current-line-comment-p-1 (0.000450 sec) passed 154/360 python-info-current-line-empty-p (0.000382 sec) passed 155/360 python-info-current-symbol-1 (0.000746 sec) passed 156/360 python-info-current-symbol-2 (0.000596 sec) failed 157/360 python-info-current-symbol-3 (0.000335 sec) passed 158/360 python-info-dedenter-opening-block-message-1 (0.000274 sec) Closes try: Closes try: passed 159/360 python-info-dedenter-opening-block-message-2 (0.000339 sec) Closes except: Closes except: passed 160/360 python-info-dedenter-opening-block-message-3 (0.000832 sec) Closes else: Closes else: passed 161/360 python-info-dedenter-opening-block-message-4 (0.000633 sec) Closes if a: Closes if a: passed 162/360 python-info-dedenter-opening-block-message-5 (0.000618 sec) passed 163/360 python-info-dedenter-opening-block-position-1 (0.001020 sec) passed 164/360 python-info-dedenter-opening-block-position-2 (0.000366 sec) passed 165/360 python-info-dedenter-opening-block-position-3 (0.001109 sec) passed 166/360 python-info-dedenter-opening-block-positions-1 (0.001203 sec) passed 167/360 python-info-dedenter-opening-block-positions-2 (0.000448 sec) passed 168/360 python-info-dedenter-opening-block-positions-3 (0.000665 sec) passed 169/360 python-info-dedenter-opening-block-positions-4 (0.000411 sec) passed 170/360 python-info-dedenter-opening-block-positions-5 (0.000499 sec) passed 171/360 python-info-dedenter-opening-block-positions-6 (0.000833 sec) passed 172/360 python-info-dedenter-opening-block-positions-7 (0.000914 sec) passed 173/360 python-info-dedenter-statement-p-1 (0.000607 sec) passed 174/360 python-info-dedenter-statement-p-2 (0.000506 sec) passed 175/360 python-info-dedenter-statement-p-3 (0.000331 sec) passed 176/360 python-info-dedenter-statement-p-4 (0.000340 sec) passed 177/360 python-info-dedenter-statement-p-5 (0.000324 sec) passed 178/360 python-info-dedenter-statement-p-6 (0.000377 sec) passed 179/360 python-info-docstring-p-1 (0.001164 sec) passed 180/360 python-info-docstring-p-2 (0.000981 sec) passed 181/360 python-info-docstring-p-3 (0.001510 sec) passed 182/360 python-info-docstring-p-4 (0.001840 sec) passed 183/360 python-info-docstring-p-5 (0.002432 sec) passed 184/360 python-info-docstring-p-6 (0.001988 sec) passed 185/360 python-info-docstring-p-7 (0.000505 sec) passed 186/360 python-info-docstring-p-8 (0.000400 sec) passed 187/360 python-info-encoding-1 (0.000639 sec) passed 188/360 python-info-encoding-2 (0.000430 sec) passed 189/360 python-info-encoding-from-cookie-1 (0.000405 sec) passed 190/360 python-info-encoding-from-cookie-2 (0.000408 sec) passed 191/360 python-info-encoding-from-cookie-3 (0.000286 sec) passed 192/360 python-info-encoding-from-cookie-4 (0.000264 sec) passed 193/360 python-info-encoding-from-cookie-5 (0.000270 sec) passed 194/360 python-info-encoding-from-cookie-6 (0.000265 sec) passed 195/360 python-info-encoding-from-cookie-7 (0.000279 sec) passed 196/360 python-info-end-of-block-p-1 (0.000608 sec) passed 197/360 python-info-end-of-block-p-2 (0.000722 sec) passed 198/360 python-info-end-of-statement-p-1 (0.000410 sec) passed 199/360 python-info-end-of-statement-p-2 (0.000461 sec) passed 200/360 python-info-line-ends-backslash-p-1 (0.000418 sec) passed 201/360 python-info-looking-at-beginning-of-block-1 (0.000500 sec) passed 202/360 python-info-looking-at-beginning-of-defun-1 (0.000797 sec) passed 203/360 python-info-looking-at-beginning-of-defun-2 (0.000608 sec) passed 204/360 python-info-looking-at-beginning-of-defun-3 (0.000522 sec) passed 205/360 python-info-statement-ends-block-p-1 (0.000447 sec) passed 206/360 python-info-statement-ends-block-p-2 (0.000436 sec) passed 207/360 python-info-statement-starts-block-p-1 (0.000346 sec) passed 208/360 python-info-statement-starts-block-p-2 (0.000390 sec) passed 209/360 python-info-triple-quoted-string-p-1 (0.000493 sec) passed 210/360 python-info-triple-quoted-string-p-2 (0.000383 sec) passed 211/360 python-info-triple-quoted-string-p-3 (0.000473 sec) Mark set Mark set passed 212/360 python-mark-defun-1 (0.001020 sec) Mark set Mark set passed 213/360 python-mark-defun-2 (0.001136 sec) Mark set Mark set passed 214/360 python-mark-defun-3 (0.000968 sec) Mark set Mark set passed 215/360 python-mark-defun-4 (0.000974 sec) Mark set Mark set Mark set Mark set passed 216/360 python-mark-defun-5 (0.001505 sec) passed 217/360 python-nav-backward-defun-1 (0.000660 sec) passed 218/360 python-nav-backward-defun-2 (0.000493 sec) passed 219/360 python-nav-backward-defun-3 (0.000345 sec) passed 220/360 python-nav-backward-defun-4 (0.000305 sec) passed 221/360 python-nav-backward-statement-1 (0.000463 sec) failed 222/360 python-nav-backward-statement-2 (0.000408 sec) failed 223/360 python-nav-backward-up-list-1 (0.000457 sec) passed 224/360 python-nav-beginning-of-block-1 (0.000862 sec) passed 225/360 python-nav-beginning-of-block-2 (0.000381 sec) passed 226/360 python-nav-beginning-of-defun-1 (0.001112 sec) passed 227/360 python-nav-beginning-of-defun-2 (0.000954 sec) passed 228/360 python-nav-beginning-of-defun-3 (0.000628 sec) passed 229/360 python-nav-beginning-of-defun-4 (0.000821 sec) passed 230/360 python-nav-beginning-of-defun-5 (0.000534 sec) passed 231/360 python-nav-beginning-of-defun-6 (0.000737 sec) passed 232/360 python-nav-beginning-of-statement-1 (0.000764 sec) passed 233/360 python-nav-end-of-block-1 (0.001861 sec) passed 234/360 python-nav-end-of-block-2 (0.000340 sec) passed 235/360 python-nav-end-of-defun-1 (0.000966 sec) passed 236/360 python-nav-end-of-defun-2 (0.002294 sec) passed 237/360 python-nav-end-of-defun-3 (0.000347 sec) passed 238/360 python-nav-end-of-statement-1 (0.000533 sec) passed 239/360 python-nav-end-of-statement-2 (0.000482 sec) passed 240/360 python-nav-end-of-statement-3 (0.000539 sec) passed 241/360 python-nav-end-of-statement-4 (0.000551 sec) passed 242/360 python-nav-forward-block-1 (0.000995 sec) passed 243/360 python-nav-forward-block-2 (0.000373 sec) passed 244/360 python-nav-forward-defun-1 (0.000442 sec) passed 245/360 python-nav-forward-defun-2 (0.000595 sec) passed 246/360 python-nav-forward-defun-3 (0.000470 sec) passed 247/360 python-nav-forward-defun-4 (0.000805 sec) passed 248/360 python-nav-forward-sexp-1 (0.001713 sec) passed 249/360 python-nav-forward-sexp-2 (0.001812 sec) passed 250/360 python-nav-forward-sexp-3 (0.001452 sec) passed 251/360 python-nav-forward-sexp-safe-1 (0.000907 sec) passed 252/360 python-nav-forward-statement-1 (0.000523 sec) passed 253/360 python-nav-up-list-1 (0.000296 sec) passed 254/360 python-parens-electric-indent-1 (0.001948 sec) passed 255/360 python-shell-buffer-substring-1 (0.000728 sec) passed 256/360 python-shell-buffer-substring-10 (0.000505 sec) passed 257/360 python-shell-buffer-substring-11 (0.000599 sec) passed 258/360 python-shell-buffer-substring-12 (0.000640 sec) passed 259/360 python-shell-buffer-substring-13 (0.000773 sec) passed 260/360 python-shell-buffer-substring-14 (0.000511 sec) passed 261/360 python-shell-buffer-substring-15 (0.000452 sec) passed 262/360 python-shell-buffer-substring-16 (0.000440 sec) passed 263/360 python-shell-buffer-substring-17 (0.000998 sec) passed 264/360 python-shell-buffer-substring-18 (0.000789 sec) passed 265/360 python-shell-buffer-substring-2 (0.000863 sec) passed 266/360 python-shell-buffer-substring-3 (0.000638 sec) passed 267/360 python-shell-buffer-substring-4 (0.000699 sec) passed 268/360 python-shell-buffer-substring-5 (0.000605 sec) passed 269/360 python-shell-buffer-substring-6 (0.000535 sec) passed 270/360 python-shell-buffer-substring-7 (0.000522 sec) passed 271/360 python-shell-buffer-substring-8 (0.039097 sec) passed 272/360 python-shell-buffer-substring-9 (0.000453 sec) passed 273/360 python-shell-calculate-exec-path-1 (0.000117 sec) passed 274/360 python-shell-calculate-exec-path-2 (0.000089 sec) passed 275/360 python-shell-calculate-exec-path-3 (0.000085 sec) passed 276/360 python-shell-calculate-exec-path-4 (0.001826 sec) passed 277/360 python-shell-calculate-exec-path-5 (0.000082 sec) passed 278/360 python-shell-calculate-exec-path-6 (0.000387 sec) passed 279/360 python-shell-calculate-process-environment-1 (0.000137 sec) passed 280/360 python-shell-calculate-process-environment-2 (0.000159 sec) passed 281/360 python-shell-calculate-process-environment-3 (0.000152 sec) passed 282/360 python-shell-calculate-process-environment-4 (0.000118 sec) passed 283/360 python-shell-calculate-process-environment-5 (0.000115 sec) passed 284/360 python-shell-calculate-process-environment-6 (0.000116 sec) passed 285/360 python-shell-calculate-process-environment-7 (0.000127 sec) passed 286/360 python-shell-calculate-process-environment-8 (0.000124 sec) passed 287/360 python-shell-calculate-pythonpath-1 (0.000108 sec) passed 288/360 python-shell-calculate-pythonpath-2 (0.000079 sec) Test python-shell-completion-at-point-1 backtrace: signal(json-parse-error ("invalid token near '_'" "" 1 1 1)) apply(signal (json-parse-error ("invalid token near '_'" "" (setq value-3589 (apply fn-3587 args-3588)) (unwind-protect (setq value-3589 (apply fn-3587 args-3588)) (setq fo (if (unwind-protect (setq value-3589 (apply fn-3587 args-3588)) (set (let (form-description-3591) (if (unwind-protect (setq value-3589 (a (let ((value-3589 'ert-form-evaluation-aborted-3590)) (let (form-des (let* ((fn-3587 #'nth) (args-3588 (condition-case err (list 2 (pytho (save-current-buffer (set-buffer (process-buffer shell-process)) (in (let ((shell-process (python-shell-get-process-or-error))) (save-cur (progn (run-python nil t) (insert "") (goto-char (point-min)) (pytho (unwind-protect (progn (run-python nil t) (insert "") (goto-char (po (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3582 #'executable-find) (args-3583 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1) FAILED 289/360 python-shell-completion-at-point-1 (0.394116 sec) at ../../emacs/test/lisp/progmodes/python-tests.el:4777 skipped 290/360 python-shell-completion-at-point-ipython (0.000420 sec) Warning (python): Your `python-shell-interpreter' doesn't seem to support readline, yet `python-shell-completion-native-enable' was t and "python3" is not part of the `python-shell-completion-native-disabled-interpreters' list. Native completions have been disabled locally. Consider installing the python package "readline". skipped 291/360 python-shell-completion-at-point-jedi-completer (0.280412 sec) Warning (python): Your `python-shell-interpreter' doesn't seem to support readline, yet `python-shell-completion-native-enable' was t and "python3" is not part of the `python-shell-completion-native-disabled-interpreters' list. Native completions have been disabled locally. Consider installing the python package "readline". Test python-shell-completion-at-point-native-1 backtrace: signal(json-parse-error ("invalid token near '_'" "" 1 1 1)) apply(signal (json-parse-error ("invalid token near '_'" "" (setq value-3604 (apply fn-3602 args-3603)) (unwind-protect (setq value-3604 (apply fn-3602 args-3603)) (setq fo (if (unwind-protect (setq value-3604 (apply fn-3602 args-3603)) (set (let (form-description-3606) (if (unwind-protect (setq value-3604 (a (let ((value-3604 'ert-form-evaluation-aborted-3605)) (let (form-des (let* ((fn-3602 #'nth) (args-3603 (condition-case err (list 2 (pytho (save-current-buffer (set-buffer (process-buffer shell-process)) (in (let ((shell-process (python-shell-get-process-or-error))) (save-cur (progn (run-python nil t) (insert "") (goto-char (point-min)) (pytho (unwind-protect (progn (run-python nil t) (insert "") (goto-char (po (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3597 #'executable-find) (args-3598 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1) FAILED 292/360 python-shell-completion-at-point-native-1 (0.409009 sec) at ../../emacs/test/lisp/progmodes/python-tests.el:4790 passed 293/360 python-shell-completion-native-interpreter-disabled-p-1 (0.000129 sec) Can't guess python-indent-offset, using defaults: 4 passed 294/360 python-shell-get-process-1 (0.119660 sec) passed 295/360 python-shell-get-process-name-1 (0.000397 sec) Can't guess python-indent-offset, using defaults: 4 passed 296/360 python-shell-get-process-name-2 (0.007572 sec) Can't guess python-indent-offset, using defaults: 4 passed 297/360 python-shell-internal-get-or-create-process-1 (0.061770 sec) passed 298/360 python-shell-internal-get-process-name-1 (0.000318 sec) Can't guess python-indent-offset, using defaults: 4 passed 299/360 python-shell-internal-get-process-name-2 (0.006945 sec) passed 300/360 python-shell-make-comint-1 (0.062339 sec) passed 301/360 python-shell-make-comint-2 (0.051213 sec) passed 302/360 python-shell-make-comint-3 (0.050301 sec) passed 303/360 python-shell-make-comint-4 (0.055261 sec) passed 304/360 python-shell-prompt-detect-1 (0.077066 sec) passed 305/360 python-shell-prompt-detect-2 (0.078614 sec) passed 306/360 python-shell-prompt-detect-3 (0.000390 sec) Warning (python): Python shell prompts cannot be detected. If your emacs session hangs when starting python shells recover with `keyboard-quit' and then try fixing the interactive flag for your interpreter by adjusting the `python-shell-interpreter-interactive-arg' or add regexps matching shell prompts in the directory-local friendly vars: + `python-shell-prompt-regexp' + `python-shell-prompt-block-regexp' + `python-shell-prompt-output-regexp' Or alternatively in: + `python-shell-prompt-input-regexps' + `python-shell-prompt-output-regexps' passed 307/360 python-shell-prompt-detect-4 (0.083172 sec) passed 308/360 python-shell-prompt-detect-5 (0.079290 sec) passed 309/360 python-shell-prompt-detect-6 (0.001412 sec) passed 310/360 python-shell-prompt-set-calculated-regexps-1 (0.000211 sec) passed 311/360 python-shell-prompt-set-calculated-regexps-2 (0.000106 sec) passed 312/360 python-shell-prompt-set-calculated-regexps-3 (0.000105 sec) passed 313/360 python-shell-prompt-set-calculated-regexps-4 (0.000103 sec) passed 314/360 python-shell-prompt-set-calculated-regexps-5 (0.000100 sec) passed 315/360 python-shell-prompt-set-calculated-regexps-6 (0.083597 sec) passed 316/360 python-shell-prompt-validate-regexps-1 (0.000161 sec) passed 317/360 python-shell-prompt-validate-regexps-2 (0.000198 sec) passed 318/360 python-shell-prompt-validate-regexps-3 (0.000152 sec) passed 319/360 python-shell-prompt-validate-regexps-4 (0.000123 sec) passed 320/360 python-shell-prompt-validate-regexps-5 (0.000118 sec) passed 321/360 python-shell-prompt-validate-regexps-6 (0.000111 sec) passed 322/360 python-shell-prompt-validate-regexps-7 (0.000087 sec) passed 323/360 python-shell-with-environment-1 (0.000323 sec) passed 324/360 python-shell-with-environment-2 (0.000575 sec) passed 325/360 python-shell-with-environment-3 (0.000584 sec) passed 326/360 python-syntax-after-python-backspace (0.000540 sec) passed 327/360 python-syntax-context-1 (0.000579 sec) passed 328/360 python-tests--fill-long-first-line (0.001301 sec) passed 329/360 python-tests--flymake-command-output-pattern (0.000159 sec) passed 330/360 python-tests--run-python-selects-window (0.089348 sec) passed 331/360 python-tests-look-at-1 (0.000405 sec) passed 332/360 python-tests-look-at-2 (0.000268 sec) passed 333/360 python-triple-double-quote-pairing (0.002917 sec) passed 334/360 python-triple-single-quote-pairing (0.001202 sec) passed 335/360 python-ts-mode-assignement-face-2 (0.052428 sec) passed 336/360 python-ts-mode-builtin-call-face (0.019162 sec) passed 337/360 python-ts-mode-class-patterns-face (0.002167 sec) passed 338/360 python-ts-mode-compound-keywords-face (0.012803 sec) passed 339/360 python-ts-mode-disabled-string-interpolation (0.002925 sec) passed 340/360 python-ts-mode-dotted-decorator-face-1 (0.003119 sec) passed 341/360 python-ts-mode-dotted-decorator-face-2 (0.002183 sec) passed 342/360 python-ts-mode-interpolation-doc-string (0.001884 sec) passed 343/360 python-ts-mode-interpolation-nested-string (0.001666 sec) passed 344/360 python-ts-mode-isinstance-type-face-1 (0.001781 sec) passed 345/360 python-ts-mode-isinstance-type-face-2 (0.001595 sec) passed 346/360 python-ts-mode-isinstance-type-face-3 (0.001949 sec) passed 347/360 python-ts-mode-level-fontification-wo-interpolation (0.001787 sec) passed 348/360 python-ts-mode-named-assignement-face-1 (0.001459 sec) passed 349/360 python-ts-mode-nested-types-face-1 (0.001656 sec) passed 350/360 python-ts-mode-superclass-type-face (0.001582 sec) passed 351/360 python-ts-mode-types-face-1 (0.001745 sec) passed 352/360 python-ts-mode-types-face-2 (0.002995 sec) passed 353/360 python-ts-mode-types-face-3 (0.003777 sec) passed 354/360 python-ts-mode-union-types-face-1 (0.002735 sec) passed 355/360 python-ts-mode-union-types-face-2 (0.001914 sec) passed 356/360 python-util-clone-local-variables-1 (0.000445 sec) passed 357/360 python-util-forward-comment-1 (0.001760 sec) passed 358/360 python-util-goto-line-1 (0.000713 sec) passed 359/360 python-util-strip-string-1 (0.000253 sec) passed 360/360 python-util-valid-regexp-p-1 (0.000145 sec) Ran 360 tests, 349 results as expected, 8 unexpected, 3 skipped (2024-02-15 15:38:14+0100, 8.953487 sec) 3 expected failures 8 unexpected results: FAILED python-completion-at-point-1 FAILED python-completion-at-point-2 FAILED python-completion-at-point-native-1 FAILED python-completion-at-point-native-2 FAILED python-completion-at-point-native-with-eldoc-1 FAILED python-completion-at-point-native-with-ffap-1 FAILED python-shell-completion-at-point-1 FAILED python-shell-completion-at-point-native-1 3 skipped results: SKIPPED python-ffap-module-path-1 SKIPPED python-shell-completion-at-point-ipython SKIPPED python-shell-completion-at-point-jedi-completer --Apple-Mail=_4AE3D42B-08C4-41B4-B7F0-6146C5C6824C-- From unknown Thu Jun 19 14:17:08 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: Did not alter fixed versions and reopened. Date: Thu, 15 Feb 2024 16:27:02 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # Did not alter fixed versions and reopened. thanks # This fakemail brought to you by your local debbugs # administrator From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 15 11:37:43 2024 Received: (at 68559) by debbugs.gnu.org; 15 Feb 2024 16:37:43 +0000 Received: from localhost ([127.0.0.1]:56837 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1raek3-0005k6-Au for submit@debbugs.gnu.org; Thu, 15 Feb 2024 11:37:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43314) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1raek1-0005jt-RH for 68559@debbugs.gnu.org; Thu, 15 Feb 2024 11:37:42 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1raejd-0001jm-HC; Thu, 15 Feb 2024 11:37:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=KZP++A+IssEMT9Yq7FxjCk+0zbl9cEg/vRY0sc5C6Ns=; b=ICk+4yMx0yacHP/2j627 g4ytV8MRtiEYMwEZyMtDKg9qohd/kduVdz96zab57tcfDmtvB4ppfatgSWt1WcJ2aqt2cBVhgSqFC q7ip6aUupwGCUNH4XmQZalmKFN9q1U434+XCkuJ2Bb5HtZwOdlMwwhK0vhaO/rJ5JWhuvWq+mLWd/ Yt2iBos3uaFA5vBwnIzYZ+kiUJUmhHDV2bS0iIX5znd+8s99F2ss8A41giXss+u5t6zZKXmyO4aVD nS6mbgcszr/Pwsyag7at6eLx3TqOdlVeQJflF5VS18PAWQLHwKtRWI/VTDJ/d9dfhBbo05uUwIdsY /6x8UCjdUnR2fg==; Date: Thu, 15 Feb 2024 18:37:13 +0200 Message-Id: <867cj5wuo6.fsf@gnu.org> From: Eli Zaretskii To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= In-Reply-To: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> (message from Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Thu, 15 Feb 2024 15:43:32 +0100) Subject: Re: bug#68559: [PATCH] Improve Python shell completion References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: 68559 Cc: liuhui1610@gmail.com, kobarity@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.2 (-----) > From: Mattias Engdegård > Date: Thu, 15 Feb 2024 15:43:32 +0100 > Cc: Eli Zaretskii , > kobarity@gmail.com, > 68559@debbugs.gnu.org > The recent change on master, 0b9c7148fd, causes several failures in python-tests here (macOS). Log attached. > > It seems to have something to do with completion. Maybe the new code is sensitive to details of Python's command line editor? The standard Python interpreter is unlikely to use GNU readline, for example. The python-*-completion-at-point-* tests never worked for me, and I always assumed it was something specific to MS-Windows. But maybe not. There was no change in the tests that fail for me before and after the recent changes related to Python. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 15 11:49:03 2024 Received: (at 68559) by debbugs.gnu.org; 15 Feb 2024 16:49:04 +0000 Received: from localhost ([127.0.0.1]:56846 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1raev1-00066A-Eb for submit@debbugs.gnu.org; Thu, 15 Feb 2024 11:49:03 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48094) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1raeuz-000657-OB for 68559@debbugs.gnu.org; Thu, 15 Feb 2024 11:49:02 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1raeua-0004Zp-Re; Thu, 15 Feb 2024 11:48:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=NUKIG8Kz4oCewaF4PMYOiKbwVZwfM8Bvtw/Lsi2rC7U=; b=Vw0maaKUFrES TQ9tA9Ysf4IVix7Y1yM3XSQ11X5fkIOJs77TZRS9W6M0MaBBcnrZst3o5T3Qi59JfnmW9+9D/7MbZ j0iNWQRXuSsUz1xetTYoKznXQPZnsvGDzluzI/2Lij6ecMv7yzPmvSW2zb589cPfbW8sYs2KkSSxp x2MRFebWpHFcCzT23FdJcYFSDDANxGpnwEwlA6iVaT8Pf9lZOGb3XMGVMBELH7HWlTSDT9unQb+aK Ir6tPBqhA+iOng2ZPMrfB7TkmOZ7E7/IOI2Aa6Qn/3MOrOSNV8iVkMEvEzE/VbxrMr14OA/qQdyx3 eVSqBfOWHWGV1Vc5di5Vyg==; Date: Thu, 15 Feb 2024 18:48:29 +0200 Message-Id: <865xypwu5e.fsf@gnu.org> From: Eli Zaretskii To: mattias.engdegard@gmail.com In-Reply-To: <867cj5wuo6.fsf@gnu.org> (message from Eli Zaretskii on Thu, 15 Feb 2024 18:37:13 +0200) Subject: Re: bug#68559: [PATCH] Improve Python shell completion References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: 68559 Cc: liuhui1610@gmail.com, kobarity@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.2 (-----) > Cc: liuhui1610@gmail.com, kobarity@gmail.com, 68559@debbugs.gnu.org > Date: Thu, 15 Feb 2024 18:37:13 +0200 > From: Eli Zaretskii > > > It seems to have something to do with completion. Maybe the new code is sensitive to details of Python's command line editor? The standard Python interpreter is unlikely to use GNU readline, for example. > > The python-*-completion-at-point-* tests never worked for me, and I > always assumed it was something specific to MS-Windows. But maybe > not. There was no change in the tests that fail for me before and > after the recent changes related to Python. And, btw, on this Gnu/Linux system: $ uname -a Linux (REDACTED) 5.15.0-94-generic #104+11.0trisquel25 SMP Sat Feb 10 06:24:53 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux all the Python tests that failed for you still pass, with the current master. So I wonder what is it that causes those failures on your system. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 15 12:22:43 2024 Received: (at 68559) by debbugs.gnu.org; 15 Feb 2024 17:22:43 +0000 Received: from localhost ([127.0.0.1]:56898 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rafRa-00075q-RU for submit@debbugs.gnu.org; Thu, 15 Feb 2024 12:22:43 -0500 Received: from mail-lj1-f173.google.com ([209.85.208.173]:53421) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rafRY-00075d-FQ for 68559@debbugs.gnu.org; Thu, 15 Feb 2024 12:22:41 -0500 Received: by mail-lj1-f173.google.com with SMTP id 38308e7fff4ca-2d109e7bed2so14719701fa.2 for <68559@debbugs.gnu.org>; Thu, 15 Feb 2024 09:22:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708017675; x=1708622475; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=qd2AkenRHl/qCnvc1Dry8RqOnOaqmc1jBzDTYD99H6s=; b=jUJRa2wb391FzFp6WIFEgysikZQan2lctedM+pYV4a+lg+Gg/uojV+5QAVGelPADCt nMcHe9C8xjQd5tz6qpUJx1DmN7ItKTqNL+hEdVps8vX1GUmpVPNPzjxb8j+Gv9acqRzh QpMw0HGOQcFV23hw4tMk1DbK7r5pqrodAvBhv3864ndxATxtZ28tG/sovw1YKbEo8PFO Y2Q5NxSRf3sWlAT53N4DG8DYz4ZjZqmUhZmfFx0LsE4qxBRyoCh3pXM9DOf8w6+ewCVt JlKIMVSPu+bTbKsukEvq4ZigcNYebVSFpNSTpFUkW8r65fFI7Da8EkvHL3+mwZ9nBHMS zB0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708017675; x=1708622475; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=qd2AkenRHl/qCnvc1Dry8RqOnOaqmc1jBzDTYD99H6s=; b=s/1oIiQ/pS7NWN5aH2BnRxV27nTNx6p58vOvR2R/P7FJ1d2nI8HsR/IJFNflOdCoMp ciyM9nCy1rOTeur4epaJ1b2mUsU7JDio9iYYNNdUPsGkyn9qx6PVjam0F3jLEvVKsjad qANEH3IY4EezL8pMJ0Stm08EEMqzAH9uAxnp/YfkkcOBBMX5Rf2Atpyh4zeGKsNn8ilD eEcticyER3selvKNucZKuwAi2HadxxOBHuBjAV0BLeGjOXklciJTCyv8WT+bBXC1HNvI DwJO3GCvxSpj+DYfUid/IJkHsssgFZH2vSNUmw/Czt7ro1wS7i3RSQLfpcRhchMQLh3b iSHQ== X-Forwarded-Encrypted: i=1; AJvYcCUeym2NN8p/Ky1DaPaDCAAkwJuh68+wuw02eECyRkv0r5y+w63gsBzlaHvF+1BghabjUuF2BJphCj3yEN2GZIbzxI0T8ow= X-Gm-Message-State: AOJu0YzNF2KHg+OuQXZco1RMBOUVW+DjnILZubA4ZxlVllsEajh9fFsQ +ACgwhkViHhH4oIlznG0rWWlMZyOwEwF8sOFdGHRRiTXsRzkDYip X-Google-Smtp-Source: AGHT+IG/I3/XUtazdmyJcg+/pWec6g7r5n7oq0lVT6Nlv2DMUT8UlBFtVucH+hcsTLA0L/kDwNLVAA== X-Received: by 2002:a2e:9d97:0:b0:2d0:e1fc:9ca0 with SMTP id c23-20020a2e9d97000000b002d0e1fc9ca0mr1784484ljj.29.1708017675444; Thu, 15 Feb 2024 09:21:15 -0800 (PST) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id y8-20020a05651c020800b002d0dec71acfsm357161ljn.132.2024.02.15.09.21.14 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 15 Feb 2024 09:21:15 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#68559: [PATCH] Improve Python shell completion From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: <865xypwu5e.fsf@gnu.org> Date: Thu, 15 Feb 2024 18:21:13 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> <865xypwu5e.fsf@gnu.org> To: Eli Zaretskii X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: liuhui1610@gmail.com, kobarity@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) 15 feb. 2024 kl. 17.48 skrev Eli Zaretskii : > The python-*-completion-at-point-* tests never worked for me, and I > always assumed it was something specific to MS-Windows. But maybe > not. There was no change in the tests that fail for me before and > after the recent changes related to Python. Right, I don't think the Windows port is obscure enough to deserve test = failures either; it's an unnecessary impediment. If it cannot easily be = fixed then it's better to mark them to be skipped on Windows so that you = don't see it every time you run 'make check'. Completion in the Python shell worked on macOS before the change but now = pressing TAB causes the process to hang, so something was clearly broken = by the patch. > all the Python tests that failed for you still pass, with the current > master. So I wonder what is it that causes those failures on your > system. The standard Python installation on macOS uses a libedit-based readline = module and the patch author probably didn't test the changes with that = configuration. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 15 22:25:59 2024 Received: (at 68559) by debbugs.gnu.org; 16 Feb 2024 03:25:59 +0000 Received: from localhost ([127.0.0.1]:57726 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1raorO-0007Ck-QD for submit@debbugs.gnu.org; Thu, 15 Feb 2024 22:25:59 -0500 Received: from mail-vk1-f175.google.com ([209.85.221.175]:51219) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1raorM-0007CX-1Y for 68559@debbugs.gnu.org; Thu, 15 Feb 2024 22:25:56 -0500 Received: by mail-vk1-f175.google.com with SMTP id 71dfb90a1353d-4c081a0d56eso55670e0c.2 for <68559@debbugs.gnu.org>; Thu, 15 Feb 2024 19:25:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708053871; x=1708658671; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=vzUz8qm2dXdJs9Lbl0/OsXPtKLtRm0fk207Xhf7rzXU=; b=Wnz8K13h0b4mAUBAmXFEKBNKAl4Smu3+gq5LhPFHtvs6jINP/KqSfTVP0KlUIjGEX/ rqs6KKAWFnzctnYCdni7JJ17BQ/2n/hrljWntl7IRsPzlnBKR661mcxmm8Uq/sm8ZKAF WaRj9OmB83XXhYmmEQ4imVE/+P0QusvaUbhKj+mcBEObDR//JDXMnMbCCF2Yw/VFk/g1 mxarBhPhczg9XjrsmfVVin4PIcs9SbraVqRkqCxmGalMqlCRGkRwVGTy+frntzfhHDpd OnviUw1B2ndNl9od7Dz9+St1aRVq6sLgWobkrWlRXcZ12jeFjf9K+xWa4eMYq+HI7Ivb qEPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708053871; x=1708658671; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vzUz8qm2dXdJs9Lbl0/OsXPtKLtRm0fk207Xhf7rzXU=; b=aCHkQjKaz8rjSWnOtKBHZxJG7BFmbIYownQpCyV1ii+nMvl3NZ4p2rfRNJomqNJlA9 wsa/IsvBSi2fgx5EVe6jxp988Nv+AmTs7hP+D/EvuSIdMU2bIi2q9G4pNiCqVBioYuKY 2CacReh8sNH57XcM1NSzCQD6+Vi6Gra61lbFNamQp6CK70m3SUKewq0k1kvQO/gY7o3Z abiwFPXpesyJ2acMbn4c7Nuuo8sfdZqdlSugATcxxFPmnX5ZGdUq6wwkU9obZtRCUxiI IKBWdixkZwlDvdwcmEtqkYTyvALy4T5Z8vrLUzlTtxilNONQ19wZP2TwqlIjmrDKC8h3 QREw== X-Forwarded-Encrypted: i=1; AJvYcCX/JjOv8WVb/nSElQXA0qC7rPk/CW3fBBrjQiI1OXSoMNzqNV/neXN7Yec9bJn+uha3isl5NMpka034dxmGUQnv0DpmzeI= X-Gm-Message-State: AOJu0YyBEzlRobg4j+AY2qAVpdD3J84xBN4siXqxrKg1AhV/4xyPHOYO yZy2gbIZjcs6owJxbAXrr3X9pJ0P3RcyKz445CFtai7gwO1objU1h4OtfJUqJR0XxxsPI5oyOeY N8YUdLVyVwEYLjdH5YHk7hv/1sgs= X-Google-Smtp-Source: AGHT+IEg372nwEU9RPKb+xYI4gQ4IO1bMcAfSIJgQvWNdoph2atg/tBO2nChsz2rfgvDrO2x8TUy3hl4UxVgS2wMYsI= X-Received: by 2002:a1f:4bc7:0:b0:4c0:774d:eda8 with SMTP id y190-20020a1f4bc7000000b004c0774deda8mr3392119vka.0.1708053871176; Thu, 15 Feb 2024 19:24:31 -0800 (PST) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> In-Reply-To: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> From: Liu Hui Date: Fri, 16 Feb 2024 11:24:19 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , kobarity@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) On Thu, Feb 15, 2024 at 10:43=E2=80=AFPM Mattias Engdeg=C3=A5rd wrote: > > The recent change on master, 0b9c7148fd, causes several failures in pytho= n-tests here (macOS). Log attached. > > It seems to have something to do with completion. Maybe the new code is s= ensitive to details of Python's command line editor? The standard Python in= terpreter is unlikely to use GNU readline, for example. Hi, According to the log, the problem may be related to the json library, which is introduced by the patch to convert the completion results from Python to elisp. What is the version of Python on macOS? AFAIK the json library is added to the Standard library since version 2.6. If the library is not available, could you setup a Python virtual environment containing the library and run the python tests in it? Thanks! From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 15 23:08:18 2024 Received: (at 68559) by debbugs.gnu.org; 16 Feb 2024 04:08:18 +0000 Received: from localhost ([127.0.0.1]:57739 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rapWL-0008QD-Nn for submit@debbugs.gnu.org; Thu, 15 Feb 2024 23:08:18 -0500 Received: from mail-ua1-f52.google.com ([209.85.222.52]:44175) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rapWJ-0008Pz-3N for 68559@debbugs.gnu.org; Thu, 15 Feb 2024 23:08:16 -0500 Received: by mail-ua1-f52.google.com with SMTP id a1e0cc1a2514c-7d5c890c67fso821787241.0 for <68559@debbugs.gnu.org>; Thu, 15 Feb 2024 20:07:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708056410; x=1708661210; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=qXmumEQ6vns8pT+J52knRN9F6Rn4II8LlvrTrMDYuuI=; b=ByX/38dWLbTSaTxTkavBuSOYgh/ZU3TSk/SgaDhPcngnic4dUuRhvy0RhlvA4t8YQi iO08r76CBVmDhtOmjZBtLkmFsGugmtEV5+cR8ExCcsQqSI9zyxXZ92CvMRs7LGYCHh9o c3rV6ZgaBGSNTqD+V8zaey1KRVAtHrl2Wo4sBAkveaiM7nbRrcPRKNMIjPWaDIB8AnCz ZaQD/1mrQWZcJTAal6bUUp0nz1YMqBFfPDy3/adSQy6x9cNQ4+RbBMMLOQBZulkZ5hXV kDpRo6Xh1IgQnszcoFuuEd1mhRO9E3m+XuK28UND6DRTp0KiXs+qiVLLq0KYdCN26l4S t8Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708056410; x=1708661210; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qXmumEQ6vns8pT+J52knRN9F6Rn4II8LlvrTrMDYuuI=; b=Ke4dPqaFOB1oCA2Vn+1RnD1Vs8G4YbAG6TnCfnnG9+oo8tEGWWharyNulYIPijZDUM 0qTAVUf6WzDD1raM4FCSL433WbD5jK0Y2i2nrr6aBFp6n7p/5mS5Hts6RmYZ18YpYv1r cHoZPaEkspxhuiwHH0O+rFm5OpPAM/JaZxpA756xTT2qB1fl2N1pr3jtg0LEC5Q7zGWw WkKB5YYLmbInqDxHpIKtbdj7uFPLTwznEHUP0Dkl5tL5BkbFmVFYLgaN5lXA277LwOHh iBMQD8F7HrLM42zHpq4FpFhN+6Ru/dSejV+jS4f3sE7q6Fi78IGKB5dVXIhauHs8wrvL ZIYw== X-Forwarded-Encrypted: i=1; AJvYcCUrbt0sd4/S+GOYxNNq+u0wISG1bcfA+qH0KVx+FL6CO8v/EeUDylXQLvVv/GKbE/S3G1HwW6kFsnWzwbK8GmJ651JurYM= X-Gm-Message-State: AOJu0YyWHK+RHtnXsks2YPjBThXIVHjqshv2qA+jdFYmQ/JJ3UdQEXk1 pNf41pX2rihDMv2afjd/W7iS/yy0vpQAwh+pr1eyZ1rHX8Ip8jTaS2ZD2+5Mwxq8HWKypA5npqk T6ZUc44p2y+krLvIMrCvzl+gktqg= X-Google-Smtp-Source: AGHT+IHCnD5TVDO0eSjdRA3GMn5HkTZ+D6HakvP/R0sH3XWM5/Lhg7xaSHypHEUpNomQXMeB8NvdOy+Jk+9gKVTePis= X-Received: by 2002:a67:fdd5:0:b0:46e:ba3b:7b16 with SMTP id l21-20020a67fdd5000000b0046eba3b7b16mr3944980vsq.16.1708056410353; Thu, 15 Feb 2024 20:06:50 -0800 (PST) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> In-Reply-To: <867cj5wuo6.fsf@gnu.org> From: Liu Hui Date: Fri, 16 Feb 2024 12:06:38 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 68559 Cc: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= , kobarity@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) On Fri, Feb 16, 2024 at 12:37=E2=80=AFAM Eli Zaretskii wrote= : > > > From: Mattias Engdeg=C3=A5rd > > Date: Thu, 15 Feb 2024 15:43:32 +0100 > > Cc: Eli Zaretskii , > > kobarity@gmail.com, > > 68559@debbugs.gnu.org > > The recent change on master, 0b9c7148fd, causes several failures in pyt= hon-tests here (macOS). Log attached. > > > > It seems to have something to do with completion. Maybe the new code is= sensitive to details of Python's command line editor? The standard Python = interpreter is unlikely to use GNU readline, for example. > > The python-*-completion-at-point-* tests never worked for me, and I > always assumed it was something specific to MS-Windows. But maybe > not. There was no change in the tests that fail for me before and > after the recent changes related to Python. The Python shell completion relies on the readline module, which is not available for Python on MS-Windows. According to the instruction in python.el: ;; readline based shell (it's known to work with PyPy). If your ;; Python installation lacks readline (like CPython for Windows), ;; installing pyreadline (URL `https://ipython.org/pyreadline.html') ;; should suffice. To troubleshoot why you are not getting any ;; completions, you can try the following in your Python shell: ;; >>> import readline, rlcompleter ;; If you see an error, then you need to either install pyreadline or ;; setup custom code that avoids that dependency. It may be necessary to install pyreadline (for Python 2.7) or pyreadline3 (for Python 3). From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 16 02:42:07 2024 Received: (at 68559) by debbugs.gnu.org; 16 Feb 2024 07:42:07 +0000 Received: from localhost ([127.0.0.1]:57830 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rasrG-0005uk-H8 for submit@debbugs.gnu.org; Fri, 16 Feb 2024 02:42:06 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59028) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rasrF-0005uG-D7 for 68559@debbugs.gnu.org; Fri, 16 Feb 2024 02:42:06 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rasqq-0004mM-Uv; Fri, 16 Feb 2024 02:41:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=oApy5J8kEAa/5feiuYpDORSOJCl/e2PRmYY1d8Uy7yQ=; b=iAmzTOSUZB2VW6lRAiFK NKyPH/68FlMzfs9SNUh9esxAM+cNfp5pdo+2f5QKGNRsRBZkCcRBR/mzRN0Rm0UBlN0NE8hAuWt+1 1WmGxH6gREmQ95KGJCJMqS5A/1qeAKmXxo++NXYH0bj0DhqXa7BurzqF9+c4bFm7BqXezXIteuh+C a9DJYgOpLv2ImOXVtZ/+TTfJVlFPWWJgbAmGUXbFFUk0crWZodL+u3Rh0OeedmDeMMJII83DzgDd+ GwNRhUcDpA7dwcrFkwbMDCZBn2XUsuH2tviS9DVuEnZ4ONx3fjFDYaq8JyZSVsocw3SSZCJMnLww2 y2AZ3QlyxNQImw==; Date: Fri, 16 Feb 2024 09:41:37 +0200 Message-Id: <86sf1svosu.fsf@gnu.org> From: Eli Zaretskii To: Liu Hui In-Reply-To: (message from Liu Hui on Fri, 16 Feb 2024 12:06:38 +0800) Subject: Re: bug#68559: [PATCH] Improve Python shell completion References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: 68559 Cc: mattias.engdegard@gmail.com, kobarity@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.2 (-----) > From: Liu Hui > Date: Fri, 16 Feb 2024 12:06:38 +0800 > Cc: Mattias Engdegård , > kobarity@gmail.com, 68559@debbugs.gnu.org > > On Fri, Feb 16, 2024 at 12:37 AM Eli Zaretskii wrote: > > > > The python-*-completion-at-point-* tests never worked for me, and I > > always assumed it was something specific to MS-Windows. But maybe > > not. There was no change in the tests that fail for me before and > > after the recent changes related to Python. > > The Python shell completion relies on the readline module, which is > not available for Python on MS-Windows. According to the instruction > in python.el: > > ;; readline based shell (it's known to work with PyPy). If your > ;; Python installation lacks readline (like CPython for Windows), > ;; installing pyreadline (URL `https://ipython.org/pyreadline.html') > ;; should suffice. To troubleshoot why you are not getting any > ;; completions, you can try the following in your Python shell: > > ;; >>> import readline, rlcompleter > > ;; If you see an error, then you need to either install pyreadline or > ;; setup custom code that avoids that dependency. I don't know if I have CPython, but the above does show an error message. > It may be necessary to install pyreadline (for Python 2.7) or > pyreadline3 (for Python 3). I will see if I can do that, thanks. Regardless, patches to the test suite to skip the tests which rely on those modules, if they aren't installed, will be welcome. From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 16 04:35:55 2024 Received: (at 68559) by debbugs.gnu.org; 16 Feb 2024 09:35:55 +0000 Received: from localhost ([127.0.0.1]:57862 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1raudO-0003AU-IM for submit@debbugs.gnu.org; Fri, 16 Feb 2024 04:35:54 -0500 Received: from mail-pf1-f178.google.com ([209.85.210.178]:56526) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1raudM-0003AG-1M for 68559@debbugs.gnu.org; Fri, 16 Feb 2024 04:35:53 -0500 Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-6e0a479a6cbso1211989b3a.0 for <68559@debbugs.gnu.org>; Fri, 16 Feb 2024 01:35:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708076067; x=1708680867; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=mLpeX275D94K5R5huP9Ti81X6T0FtYknNN1loBIMk0c=; b=WwDxQkiCh5ULz6PBQpV52EPw6w9d+5P3UQlNWRA9HYfL5rIw4WG1rjftZSbAK2xyHi JVD1iocT2YQAyyOGkUB6wbl6GbBYTU4xls9FO6XEUn31+7CWnKArbTaro6jbHdoOEVGi 6xY0uGG77S4FUvqC4YHf8DCD8x/gd+pl7Mp8phbo6VlTHQjLtvn+QOSQYS/yOypm4pMC /PKIm+8yMKyhX9js5Odf19YltcfO4KCbm9Kwseh8gyevfmJCTKG51551gB0Dlr9airov L/gTyiDKHtygoZbzPSbRXZ2ffte9rRi6gP0smFeDE4WnF8sWJCbAkDYCrRis6lT2TWAB h3gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708076067; x=1708680867; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=mLpeX275D94K5R5huP9Ti81X6T0FtYknNN1loBIMk0c=; b=OdBmXnwgh1REMYkARZP2ReXchH0h3C1uy/jtlrjkTx+qmsQQhjPpVcj8pwiBq6DCJ3 8929eeaSdkcArrM9zRdP5U7D4vmNlAKqSRlzIWnPRZPReETAJHtYcWtXpOetFe9phPYv Fmjfxe8rJOPOFyFjerxZI7pk2LIBJFqehL06cwhA/VXdGHTlQ8jiBp5tP2BXI6AYy0F6 CH87sjdfGT+hBK5RwA+R1+LiMNYqw+ofiPBZrvNXhRocgKKwxE9yQVC1JTP+29JBWSyb qP91XjsZ9YuJVLy50smdbrHBwc4YoT/84t9mhZayFCC/KHpL+EHPWTj8cpYub1IdjwlP 4TMA== X-Forwarded-Encrypted: i=1; AJvYcCWBCvhAKVy8aIf59xZuvW4NTyl8amN9/X9DdVDaBoOWiq0DlySoOz0lfcanHTlxYJIvwtlOoTVz/OodISJ8rgglhSib1xQ= X-Gm-Message-State: AOJu0YwBZ+IIMZOlZDA8fVNbgvgWWW3EXpeWOxK3u23zwZ4pQ3+rQeWq lsti6WaZMNJtiK62TIni1vUiwB87q+501Y1/8ON6q9zRzGEPqcXr X-Google-Smtp-Source: AGHT+IFFmRw8d0pCzzk+hi/X6lp+jcW2TfJwSOzWAt/rMM0kV4VHvzQMKcJlz2hlSO+bqLZWRXQ/9w== X-Received: by 2002:a62:c1c5:0:b0:6e0:ed60:9a27 with SMTP id i188-20020a62c1c5000000b006e0ed609a27mr3919104pfg.7.1708076066703; Fri, 16 Feb 2024 01:34:26 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id b11-20020a056a000ccb00b006e0814dbb3bsm2751654pfv.96.2024.02.16.01.34.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Feb 2024 01:34:26 -0800 (PST) Date: Fri, 16 Feb 2024 18:34:25 +0900 Message-ID: From: kobarity To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: Mattias =?ISO-8859-1?Q?Engdeg=E5rd?= , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) Liu Hui wrote: > On Thu, Feb 15, 2024 at 10:43=E2=80=AFPM Mattias Engdeg=C3=A5rd > wrote: > > > > The recent change on master, 0b9c7148fd, causes several failures in pyt= hon-tests here (macOS). Log attached. > > > > It seems to have something to do with completion. Maybe the new code is= sensitive to details of Python's command line editor? The standard Python = interpreter is unlikely to use GNU readline, for example. >=20 > Hi, >=20 > According to the log, the problem may be related to the json library, > which is introduced by the patch to convert the completion results > from Python to elisp. What is the version of Python on macOS? AFAIK > the json library is added to the Standard library since version 2.6. > If the library is not available, could you setup a Python virtual > environment containing the library and run the python tests in it? > Thanks! This is caused by the fact that the input is echoed back on MacOS Python. This is described in etc/PROBLEMS: *** In Inferior Python mode, input is echoed and native completion doesn't = work. The following log shows that it tries to parse the echoed back string as a JSON string. Test python-completion-at-point-1 backtrace: json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 python--parse-json-array("__PYTHON_EL_eval_file(\"/var/folders/qy/zs I think the echoed back string were ignored before the patch is applied. However, after applying the patch, the returned string is now parsed as JSON, which I believe is the reason for the error. So one workaround would be to remove the echoed back string before parsing as JSON. From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 16 06:46:36 2024 Received: (at 68559) by debbugs.gnu.org; 16 Feb 2024 11:46:36 +0000 Received: from localhost ([127.0.0.1]:57948 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rawfr-0001BZ-P0 for submit@debbugs.gnu.org; Fri, 16 Feb 2024 06:46:36 -0500 Received: from mail-lj1-f176.google.com ([209.85.208.176]:52545) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rawfo-0001BK-4S for 68559@debbugs.gnu.org; Fri, 16 Feb 2024 06:46:34 -0500 Received: by mail-lj1-f176.google.com with SMTP id 38308e7fff4ca-2d0d95e8133so23150231fa.1 for <68559@debbugs.gnu.org>; Fri, 16 Feb 2024 03:46:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708083907; x=1708688707; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=OOJc8nHT6u848VoFH6Rh38N19DeVnzfuTCNHhroT7Os=; b=WnuQToV1bWIah6Afd+xlqG+8Jdt9/sEzK5QLkW+aBpNdEAkCjzvwkS8JoN3qiDzEaY 74puhHbAPpuXN5e48rcXxeory9k7hj2qb0qJ7o4G8pj1xDjn9GBczC0NUyXQiPSRGuAU 8m6CfL7G41kcL0jOnXr9IErmJorsnCcOCkBVUrLiJaeGkoN40zv/CWnzV7uu2R7XfKCe WnUHk8V0rKsGoPQfzzIbNT2TKU1icSZ9rvL4scdU5Gx/kMYVGKJqzPMSVZP02P98ZMgu MYapK8JbzK/+Vq4U2JsEE97rNjdZRQOdeV27nkxMj/TG8PdKxnDxukJ6SzmQyZ67lJjD YkgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708083907; x=1708688707; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=OOJc8nHT6u848VoFH6Rh38N19DeVnzfuTCNHhroT7Os=; b=rcMadLXAl0MSNIcD6gPAO+NS0UI64dj1NANMMVpqi9AyZ3pLz+RWMd+YC964da++EJ RVCC2z6CacmIei2wm3xuufQqV1wmHiNPntIPDdY7H9HDU94VrD+C86b7QI4ZKak4HEB7 TKEuk6UfoPBJU/pwH8UWqFM5k8sBLHKvxS+Rn+gbAsQoF7snX7/DWDmOYh3j6wnxsSWt uAR5Ve5i2mEg888f3qStkkfZ6z1j11mihOf8U6DyKktBxs/oQ1qumhOBduIgdepQGj8D ceU6jd3CdaAqxrTDxf4PZexarZXjd0rdH8L7Ml9MhydTxZX46kWUQyK4vI3EpdttzfwF 3bXg== X-Forwarded-Encrypted: i=1; AJvYcCX6G0Pc77IYtOZAnaVEgr9uye7dkKoSshDwUK4POY6eenkYHG7P9MyYhAG+K3LQXK7EZZsI0TfRKz9FV3Cci820MAL/yy0= X-Gm-Message-State: AOJu0YxfrhjDn6g0Xooa4xA5AM9zlAOzcG4s/zamgx0yPEDxVBeDmvR2 RunzTEKiHiYYqucIh5vqIibbyNMt8Yvy+LMgJEeQ8/WDyxcE8zD/ X-Google-Smtp-Source: AGHT+IHT5kwZ3DL4rwSP0icyXWsvbaRQT9cgq9+Cxd44+JHdzymEz8Y6DxgyWUupXse/v+2mslvTkw== X-Received: by 2002:a19:9101:0:b0:511:4683:d537 with SMTP id t1-20020a199101000000b005114683d537mr2880331lfd.55.1708083906416; Fri, 16 Feb 2024 03:45:06 -0800 (PST) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id f15-20020ac2532f000000b005119ca65e29sm577973lfh.139.2024.02.16.03.45.05 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Feb 2024 03:45:06 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#68559: [PATCH] Improve Python shell completion From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: Date: Fri, 16 Feb 2024 12:45:05 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> To: kobarity X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: Liu Hui , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) 16 feb. 2024 kl. 10.34 skrev kobarity : > This is caused by the fact that the input is echoed back on MacOS > Python. Right, that bug needs to be fixed as well, but the echo problem existed = prior to the change that broke the tests. An alternative might be to disable the tty echo altogether. If I do it = right after process creation then it has no effect; presumably Python or = its readline module turns on echo just a bit later on. Anyway, running import tty tty.setraw(0) in the python shell seems to put it right, with working completion and = the annoying echo gone. > So one workaround would be to remove the echoed back string before > parsing as JSON. Yes, either that or turning off echo in the tty. From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 16 07:52:07 2024 Received: (at 68559) by debbugs.gnu.org; 16 Feb 2024 12:52:07 +0000 Received: from localhost ([127.0.0.1]:58078 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1raxhG-0008Vm-Tb for submit@debbugs.gnu.org; Fri, 16 Feb 2024 07:52:07 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58760) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1raxhD-0008VC-UB for 68559@debbugs.gnu.org; Fri, 16 Feb 2024 07:52:05 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1raxgp-00062v-A9; Fri, 16 Feb 2024 07:51:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Tdr/vhY11hDlg+BkUdVLF7+F11elztOyViXVXZZnFBY=; b=GOt8vG1BAhrK OuBBQRQkmIA74Aa+OgoLu6+MMp7sfsmDIpzcrppVa1tH5Yex3onrV6loURrVfFwTF8VegCdFvf5uC an/S22TSaI4RDGGx4m3iJNaXkObrAhSyqp5ZbhbPsKFf9qaly/n46IIiu232V76VY1hBrnN0x9dJw 0BHZPB4mIY7FqBddBPFeUHbEzFvXg4tWIGqtxEaRPrYRrNrRL40jD8YwvlKUkq+u+3C+353J94/Fh zyEOwvM5Mbf+lVWp5+PmhWO67MlYF2+PBU9VJSQJzO4Qyc6UT6wZKFskr0aTB/AmAfbFr9aq234cJ iFaxd23Qh/FOtzKEEuk4Yw==; Date: Fri, 16 Feb 2024 14:51:34 +0200 Message-Id: <86o7cgvag9.fsf@gnu.org> From: Eli Zaretskii To: liuhui1610@gmail.com, mattias.engdegard@gmail.com, kobarity@gmail.com In-Reply-To: <86sf1svosu.fsf@gnu.org> (message from Eli Zaretskii on Fri, 16 Feb 2024 09:41:37 +0200) Subject: Re: bug#68559: [PATCH] Improve Python shell completion References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> <86sf1svosu.fsf@gnu.org> X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: 68559 Cc: 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.2 (-----) > Cc: mattias.engdegard@gmail.com, kobarity@gmail.com, 68559@debbugs.gnu.org > Date: Fri, 16 Feb 2024 09:41:37 +0200 > From: Eli Zaretskii > > > It may be necessary to install pyreadline (for Python 2.7) or > > pyreadline3 (for Python 3). > > I will see if I can do that, thanks. I've now installed pyreadline3, and I can confirm that the completion tests which were failing before now pass. Thanks. > Regardless, patches to the test suite to skip the tests which rely on > those modules, if they aren't installed, will be welcome. This is still true. From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 16 10:26:02 2024 Received: (at 68559) by debbugs.gnu.org; 16 Feb 2024 15:26:02 +0000 Received: from localhost ([127.0.0.1]:59979 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rb06D-0007Mk-HI for submit@debbugs.gnu.org; Fri, 16 Feb 2024 10:26:02 -0500 Received: from mail-pj1-f47.google.com ([209.85.216.47]:42082) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rb067-0007MU-Bw for 68559@debbugs.gnu.org; Fri, 16 Feb 2024 10:25:59 -0500 Received: by mail-pj1-f47.google.com with SMTP id 98e67ed59e1d1-296db7e258dso1628387a91.0 for <68559@debbugs.gnu.org>; Fri, 16 Feb 2024 07:25:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708097070; x=1708701870; darn=debbugs.gnu.org; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=GygHsR4l8m18UIgxfZPXyuhzcRjg6xewiLzKncgH53c=; b=JyN3soIdqqHaJfghSQXcqKiX/0nao40UqBHnjRTGJVvX/eGE/LCgEQc9PbzYqQt1qx e77y5Dp+Y5b9Np/4XO5yeNTB/eAaUqHHbYy5wl0pxlNZM5VtgcHH5WswET6rt7ILzR2q 0FAMNhI5mau7B+7MWmLvu87w6gNOWv3GhsQubg7ryJwhhgp0BOnVQ96FklvlElz7/tnD beSfsOPKAhQlYhC5di9x3OINKzkZUIal1DAZ/dbuDtzyXkGc+sAiXSle6fGBAsrO0ZKB LQau7gF+AoQP5kSpwJyvF/5g0bswfcA2q07AnRY9EQSHtaAVTPmBtgJq8GcSIhyz4hh7 AP8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708097070; x=1708701870; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=GygHsR4l8m18UIgxfZPXyuhzcRjg6xewiLzKncgH53c=; b=IyTIi6zC3yGPNWVemohzDeORAIpn+yuJ+ZDUtSnzA5Dfs+IGtKdTf7IBFLiLWuk7nh 8639FURmMwCFtzyXoKy767eDQznp9GwdMR8r6W1UpkJLHdjQaGNFrWri5HR9qxV1yn07 T8lW6hF6yiWfPLR4cZ/X7KlytPUk8svniusgePSPDo5cfpROg0vH2dqvLmbYkKGuFnCI T4GCxbggfjiJdRZOzW9Ey0etcLAsn730A5i2lYJ6ksQtjKYw/WnDqwEkQvndQF/Eg4iY xPIlFMdFpDkcS4L4b0t5Jsb5VOKjGgy0Yf2H/NL7in8w5GGp6QhR+46etJKYcaGQ5TCQ UTMA== X-Forwarded-Encrypted: i=1; AJvYcCW9AaOIPSkWp+2Ck1N2NJ+OzK8okv66QAbPqS65w9MoLLm7vHm4HdtJl+/dZ2Kh7NaueKzKafgvRjv3OqK50AFkzjL9sMk= X-Gm-Message-State: AOJu0YxFQMjKsKy1iA0YevW+tDIOvQKLHTiQmhWMt/1bY9s5pbMwqD2a dC2JQL7I9ISoq+v2mJ4hQ2n7BMM1cDItrl6epl2HuYubn7Df4wuY X-Google-Smtp-Source: AGHT+IF8D402eXtsgIqKA9SrlSLCEgr19Ev0tP+SrWqtf1joOSu0txbDksnDU3xQTlUCbUduvVPcvQ== X-Received: by 2002:a17:90a:15d7:b0:298:b9e1:ee9c with SMTP id w23-20020a17090a15d700b00298b9e1ee9cmr7323593pjd.13.1708097069706; Fri, 16 Feb 2024 07:24:29 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id pd6-20020a17090b1dc600b0029930881068sm112083pjb.49.2024.02.16.07.24.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Feb 2024 07:24:29 -0800 (PST) Date: Sat, 17 Feb 2024 00:24:29 +0900 Message-ID: From: kobarity To: Mattias =?ISO-8859-1?Q?Engdeg=E5rd?= Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: multipart/mixed; boundary="Multipart_Sat_Feb_17_00:24:28_2024-1" X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: Liu Hui , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) --Multipart_Sat_Feb_17_00:24:28_2024-1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Mattias Engdeg=E5rd wrote: >=20 > 16 feb. 2024 kl. 10.34 skrev kobarity : >=20 > > This is caused by the fact that the input is echoed back on MacOS > > Python. >=20 > Right, that bug needs to be fixed as well, but the echo problem existed p= rior to the change that broke the tests. >=20 > An alternative might be to disable the tty echo altogether. If I do it ri= ght after process creation then it has no effect; presumably Python or its = readline module turns on echo just a bit later on. Anyway, running >=20 > import tty > tty.setraw(0) >=20 > in the python shell seems to put it right, with working completion and th= e annoying echo gone. >=20 > > So one workaround would be to remove the echoed back string before > > parsing as JSON. >=20 > Yes, either that or turning off echo in the tty. I made prototype patches for each method. I don't use Mac so it would be helpful if you could try these. 0001-Remove-echoed-back-string-in-python-shell-completion.patch extracts only the last line to exclude echoed back strings. 0001-Set-tty-mode-to-raw-when-setting-up-Inferior-Python.patch sets the Inferior Python tty to raw mode. python-ffap-module-path-1 will no longer need to be skipped on Mac. If it is safe to set tty to raw mode on all UNIX based systems, I prefer this method. By the way, is it necessary to send `python-shell-completion-setup-code' for every completion in `python-shell-completion-get-completions'? To me it seems sufficient to send it once at initialization. --Multipart_Sat_Feb_17_00:24:28_2024-1 Content-Type: application/octet-stream; type=patch; name="0001-Remove-echoed-back-string-in-python-shell-completion.patch" Content-Disposition: attachment; filename="0001-Remove-echoed-back-string-in-python-shell-completion.patch" Content-Transfer-Encoding: 7bit >From 601419eef799d2c68e3789222f5ebe2a8c31af97 Mon Sep 17 00:00:00 2001 From: kobarity Date: Fri, 16 Feb 2024 22:48:19 +0900 Subject: [PATCH] Remove echoed back string in python-shell-completion-get-completions * lisp/progmodes/python.el (python-shell-completion-get-completions): Remove echoed back string. (Bug#68559) --- lisp/progmodes/python.el | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index b7e43f3fc68..a842a498113 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -4624,11 +4624,13 @@ python-shell-completion-get-completions "Get completions of INPUT using PROCESS." (with-current-buffer (process-buffer process) (python--parse-json-array - (python-shell-send-string-no-output - (format "%s\nprint(__PYTHON_EL_get_completions(%s))" - python-shell-completion-setup-code - (python-shell--encode-string input)) - process)))) + (car (last (split-string + (python-shell-send-string-no-output + (format "%s\nprint(__PYTHON_EL_get_completions(%s))" + python-shell-completion-setup-code + (python-shell--encode-string input)) + process) + "[\n\r]+" t)))))) (defun python-shell--get-multiline-input () "Return lines at a multi-line input in Python shell." -- 2.34.1 --Multipart_Sat_Feb_17_00:24:28_2024-1 Content-Type: application/octet-stream; type=patch; name="0001-Set-tty-mode-to-raw-when-setting-up-Inferior-Python.patch" Content-Disposition: attachment; filename="0001-Set-tty-mode-to-raw-when-setting-up-Inferior-Python.patch" Content-Transfer-Encoding: 7bit >From 31738d481333bf6c258a694cf57bce944bce7778 Mon Sep 17 00:00:00 2001 From: kobarity Date: Fri, 16 Feb 2024 22:52:06 +0900 Subject: [PATCH] Set tty mode to raw when setting up Inferior Python * lisp/progmodes/python.el (python-shell-setup-code): New constant. (python-shell-comint-watch-for-first-prompt-output-filter): Send `python-shell-setup-code' to the Inferior Python process. * test/lisp/progmodes/python-tests.el (python-ffap-module-path-1): Eliminate skipping on Mac. (Bug#68559) --- lisp/progmodes/python.el | 11 +++++++++++ test/lisp/progmodes/python-tests.el | 5 ----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index b7e43f3fc68..5501926e69d 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -3521,6 +3521,16 @@ python-shell-first-prompt-hook :version "25.1" :type 'hook) +(defconst python-shell-setup-code + "\ +try: + import tty +except ImportError: + pass +else: + tty.setraw(0)" + "Code used to setup the inferior Python processes.") + (defconst python-shell-eval-setup-code "\ def __PYTHON_EL_eval(source, filename): @@ -3586,6 +3596,7 @@ python-shell-comint-watch-for-first-prompt-output-filter (format "exec(%s)\n" (python-shell--encode-string string)))))) ;; Bootstrap: the normal definition of `python-shell-send-string' ;; depends on the Python code sent here. + (python-shell-send-string-no-output python-shell-setup-code) (python-shell-send-string-no-output python-shell-eval-setup-code) (python-shell-send-string-no-output python-shell-eval-file-setup-code)) (with-current-buffer (current-buffer) diff --git a/test/lisp/progmodes/python-tests.el b/test/lisp/progmodes/python-tests.el index af6c199b5bd..6c6cd9eee2b 100644 --- a/test/lisp/progmodes/python-tests.el +++ b/test/lisp/progmodes/python-tests.el @@ -5037,11 +5037,6 @@ python-completion-at-point-native-with-eldoc-1 (ert-deftest python-ffap-module-path-1 () (skip-unless (executable-find python-tests-shell-interpreter)) - ;; Skip the test on macOS, since the standard Python installation uses - ;; libedit rather than readline which confuses the running of an inferior - ;; interpreter in this case (see bug#59477 and bug#25753). - (skip-when (eq system-type 'darwin)) - (trace-function 'python-shell-output-filter) (python-tests-with-temp-buffer-with-shell " import abc -- 2.34.1 --Multipart_Sat_Feb_17_00:24:28_2024-1-- From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 16 10:54:45 2024 Received: (at 68559) by debbugs.gnu.org; 16 Feb 2024 15:54:45 +0000 Received: from localhost ([127.0.0.1]:60000 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rb0Y0-00089e-RW for submit@debbugs.gnu.org; Fri, 16 Feb 2024 10:54:45 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49964) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rb0Xz-00089P-37 for 68559@debbugs.gnu.org; Fri, 16 Feb 2024 10:54:44 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rb0VT-000325-8E; Fri, 16 Feb 2024 10:52:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=HyoO6stO5ibi0R6BwJ6WGkAPKJoJZ9JwNe74v9tEq+c=; b=Ov+tk6Pk7ek5 hnNe8nS2m4j0wibzpqmmd09wzyI9lVMDlg3FmDzorNdzmnnwnDZa0iO0Z/ZrkqSujTg0FkIsiaum9 2nbarM9jNZlrdbYy4JX+3zoyDDw1h87OJVOczNAgKA5p/bfhe1/a9/WPEwFU0Pxfcw4TCHl8dNHDR bMNRtR7KuFJFe/nVceJyFZHnxrQg02ILmoJIBTx/en5WRrrn94IdjD7fo/06aITLafWrBjpvblsVj dtm+IU4PUgV0obkBhTyWM7dFddYngx3Qdsh4PAnN2Io3RSpTw8GxyVAO4BlaKcJhzRZMxmB6f32Aa ErKTbOyC8r6BUaNgxFK0HQ==; Date: Fri, 16 Feb 2024 17:52:04 +0200 Message-Id: <86jzn4v23f.fsf@gnu.org> From: Eli Zaretskii To: kobarity In-Reply-To: (message from kobarity on Sat, 17 Feb 2024 00:24:29 +0900) Subject: Re: bug#68559: [PATCH] Improve Python shell completion References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: 68559 Cc: liuhui1610@gmail.com, mattias.engdegard@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.2 (-----) > Date: Sat, 17 Feb 2024 00:24:29 +0900 > From: kobarity > Cc: Liu Hui , > Eli Zaretskii , > 68559@debbugs.gnu.org > > Right, that bug needs to be fixed as well, but the echo problem existed prior to the change that broke the tests. > > > > An alternative might be to disable the tty echo altogether. If I do it right after process creation then it has no effect; presumably Python or its readline module turns on echo just a bit later on. Anyway, running > > > > import tty > > tty.setraw(0) > > > > in the python shell seems to put it right, with working completion and the annoying echo gone. > > > > > So one workaround would be to remove the echoed back string before > > > parsing as JSON. > > > > Yes, either that or turning off echo in the tty. > > I made prototype patches for each method. I don't use Mac so it would > be helpful if you could try these. > > 0001-Remove-echoed-back-string-in-python-shell-completion.patch > extracts only the last line to exclude echoed back strings. > > 0001-Set-tty-mode-to-raw-when-setting-up-Inferior-Python.patch sets > the Inferior Python tty to raw mode. python-ffap-module-path-1 will > no longer need to be skipped on Mac. If it is safe to set tty to raw > mode on all UNIX based systems, I prefer this method. Will this work on MS-Windows as well? If you are unsure, would you please tell me how to test whether this works on Windows, so I could collect the information for you? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 16 15:11:46 2024 Received: (at 68559) by debbugs.gnu.org; 16 Feb 2024 20:11:46 +0000 Received: from localhost ([127.0.0.1]:60256 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rb4Yj-00069q-QE for submit@debbugs.gnu.org; Fri, 16 Feb 2024 15:11:46 -0500 Received: from mail-lf1-f44.google.com ([209.85.167.44]:57644) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rb4Yg-00069W-CI for 68559@debbugs.gnu.org; Fri, 16 Feb 2024 15:11:45 -0500 Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-5129ece824aso412673e87.3 for <68559@debbugs.gnu.org>; Fri, 16 Feb 2024 12:11:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708114217; x=1708719017; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=9YGRQWzlatLSw0IJ1KY3ktwNz+76KF4Deq09MimUxzk=; b=CUqAExi1tKoEK/hRQMAKCfs7m6pPEtV8HJ0jeSnEippP4aqHUBlT0nK6xM1NVwEFev YPeLmNrp6m690naOs1T5H0oFWRb6MDIEVVjDAftBYvhMjPnP273snIpRrNlYoWMCOzPz 00PDE9jXQsOrIBzMXFHkDppDUG/25vF7VC9VMII1/E0BEjW1UBbpJYDSNAUmSpL4wRRk eLcDzUuDChpv6z5p6++Z+aH6WBE1n5cTLfFwc9SLR3lTX+f9bjBiEQNGzjG2NNBCf7HK FPDo4eVFbsdxeu6zzguTAX07R9YmhWDCRhD64WvFzsmFsVpZqmho44lBHMrXKUELeEsR MY/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708114217; x=1708719017; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=9YGRQWzlatLSw0IJ1KY3ktwNz+76KF4Deq09MimUxzk=; b=VwT8b+axaWev+0Qhjw8YPSTEBRsB4SCqx+/tkFDiXBNUSoVLATg4c7yVjlY5L4FpPB pSC9gksLlSTySx45svS6S0U8zW7nQgr+tveI2PaoJGAXz/FMJVw+EDo/X2KL7U3OJ711 xBEZYjbneumXx6MZA5VWWWLs/5HSoWVhRd01xmq4tfjZvQ4+Xi38AUi5/PgRyYVoz53T y7LHkEM84Lg2BsUPt5k2YPmkDH2F6tuWqDFPYO6OwW0TzqnXhVqmvYn7zc+fM0WW02Xm ncfvrxriwPOscrH9+JqQmBz/w8r1NigWZ2Roi2qDp/wz3fSI/bM7W9UT8V1kuzUrLuJl rNxw== X-Forwarded-Encrypted: i=1; AJvYcCVkSryWWQ4299Ot1mPppg9jMNu+NFTdozSVCKxit7+KqjsGmj/zJVc0AAo7vaqjM0KSPc/XT6T1Rfkyb27+ehm50LYUWaM= X-Gm-Message-State: AOJu0YxGTE4EruH3sOWQUhHgHrBhc+U8IZY6NClmtyk6JRQrPjr/WU0r iUMxDOxrdkr21VqxuYL/M0PkXCAHRPLiix51XOWjkw5tXSx/NO8n X-Google-Smtp-Source: AGHT+IFxEp3SN6B7HVctRP58ogWj/2xnv/ELa4l2p/BWcwD+d+Thw+cmMfn6U1ncOlRBf9oPIPfCEA== X-Received: by 2002:ac2:5f53:0:b0:511:86a2:7ea with SMTP id 19-20020ac25f53000000b0051186a207eamr3590340lfz.33.1708114216731; Fri, 16 Feb 2024 12:10:16 -0800 (PST) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id z16-20020a056512371000b005118f924165sm59599lfr.133.2024.02.16.12.10.16 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Feb 2024 12:10:16 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#68559: [PATCH] Improve Python shell completion From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: Date: Fri, 16 Feb 2024 21:10:15 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> To: kobarity X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: Liu Hui , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) 16 feb. 2024 kl. 16.24 skrev kobarity : > I made prototype patches for each method. I don't use Mac so it would > be helpful if you could try these. Nice, thank you! I can confirm that they both appear to work, at least = in the sense that the python-tests pass (except for the ones skipped = intentionally), and the python shell behaves reasonable. Only the set-tty-mode patch eliminates echo in the interactive python = shell; in that sense it's preferable. Both produce the very annoying warning Warning (python): Your =E2=80=98python-shell-interpreter=E2=80=99 = doesn=E2=80=99t seem to support readline, yet = =E2=80=98python-shell-completion-native-enable=E2=80=99 was t and = "python3" is not part of the = =E2=80=98python-shell-completion-native-disabled-interpreters=E2=80=99 = list. Native completions have been disabled locally. Consider = installing the python package "readline". which is not even correct since the standard Python does have a working = readline module, even if it uses libedit. > 0001-Set-tty-mode-to-raw-when-setting-up-Inferior-Python.patch sets > the Inferior Python tty to raw mode. python-ffap-module-path-1 will > no longer need to be skipped on Mac. Right, that test runs and passes. > If it is safe to set tty to raw > mode on all UNIX based systems, I prefer this method. Same here. I see no reason why it wouldn't be safe, either. > By the way, is it necessary to send > `python-shell-completion-setup-code' for every completion in > `python-shell-completion-get-completions'? To me it seems sufficient > to send it once at initialization. Indeed, it does seem a bit extravagant. From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 16 23:37:52 2024 Received: (at 68559) by debbugs.gnu.org; 17 Feb 2024 04:37:52 +0000 Received: from localhost ([127.0.0.1]:60338 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rbCSW-0007jn-9f for submit@debbugs.gnu.org; Fri, 16 Feb 2024 23:37:52 -0500 Received: from mail-oa1-f44.google.com ([209.85.160.44]:59412) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rbCSS-0007jY-Tc for 68559@debbugs.gnu.org; Fri, 16 Feb 2024 23:37:50 -0500 Received: by mail-oa1-f44.google.com with SMTP id 586e51a60fabf-21e6be74db4so643288fac.2 for <68559@debbugs.gnu.org>; Fri, 16 Feb 2024 20:37:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708144583; x=1708749383; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=wmd8/etpxflQbgT7n9ML5A3g5gWnT70/2s0dW1GuJno=; b=iWZZddzar73K5ET6WzCc13SmXJuNf2U7KbWnjIn8UiDSV2pvTRTfzBAMC4Dg+wOyNS PSgzVfQwM8WjBBNyPwjZ1m5aKiDAgbyBTKwHF+v11S3XZTBOF6KrU0i5u6zfFBx8a1ig L1NrvMeTaZP4+iTe1JxzdaTWQnU3LVEFD99lCTO66HmUaTclB47mofdjR8XlH3ENE5RE 36ZgE5DdrMYINQIbyeWWKFbAC4wbZlaHM5bud4nEcMtavvMHRv0TEbNFmFiGDrj2tta2 KF/6sLlpuCS+/awUT+i81qwdx6sK8Vvg/4/CoIUA05COh0X3Thlv5IxwcYMBhIzp9H9n ShkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708144583; x=1708749383; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=wmd8/etpxflQbgT7n9ML5A3g5gWnT70/2s0dW1GuJno=; b=mdMbvUhEn3BFD+1pGAnJSHGKdk2EPB5efgqoxPOuISGLo60KzCv4pbvgUcWpnTymSl hbtEIv6OxAFYeOE26BPfxUubWQS6CcyrWNia6VFCt/y5OCvldGCUSri0ECLhJHNRy9MQ Z5BCsaN0fityxBSyhMP7JU/2u/i3yQ3XExLFCIYnbSyDz3u8/C/Br+7xSoLF16yCo9sb Vb5dji5VJluW7u+Pg4vdGH4VI6g7hDENv7bGUS5wN6ek9pDbXvGD+JPXRbzbtkeAxy7v 4DiRCrljlmff+j6JbHw6yW5TXDNz8pf5NSwCuvpFo5sF5UhP+24kJqdIJSSHmXTR5REB NqYg== X-Forwarded-Encrypted: i=1; AJvYcCXsaTa9uygkRmpJBzlfijtHZyqm1ScYYN+1A9sToQAYZOIGOnC3fZmU9L8s5KF9tkIIJbDsNMgK3golx1mmtzTxmddL0v0= X-Gm-Message-State: AOJu0YySZJ+CDF3NID/nqYW3izuE+9GanJ4Ty6W2xNj8ryKVjlVONV7g 7acXdwjup9wUHiSzq/XfVTVLa1ChZocLFTQccZWSw3OKW9BznaZ0MXl1IV60F88tjHip3qGbU7+ MwsuiFLj7tSfg0XY68WmB7LLM+4M= X-Google-Smtp-Source: AGHT+IEJ0X0eE9GSh7rVCpqb/G35RZUmPR4YWUNL+CvcEOkQmtCqyGxDYwzaMW++xptQAoLTBGZhwWqckxt/w0IYOO8= X-Received: by 2002:a05:6871:28d:b0:21d:fd20:c516 with SMTP id i13-20020a056871028d00b0021dfd20c516mr7471689oae.6.1708144583325; Fri, 16 Feb 2024 20:36:23 -0800 (PST) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> In-Reply-To: From: Liu Hui Date: Sat, 17 Feb 2024 12:36:12 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: kobarity Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 68559 Cc: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) kobarity writes: > 0001-Set-tty-mode-to-raw-when-setting-up-Inferior-Python.patch sets > the Inferior Python tty to raw mode. python-ffap-module-path-1 will > no longer need to be skipped on Mac. If it is safe to set tty to raw > mode on all UNIX based systems, I prefer this method. How about the following change, which only affects libedit-based readline? It may enable native completion on mac, but I cannot test it. diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index b7e43f3fc68..f59bc19367b 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -4286,6 +4286,9 @@ (defcustom python-shell-completion-setup-code except: pass else: + if readline.__doc__ and 'libedit' in readline.__doc__: + import tty + tty.setraw(0) # Try to reuse current completer. completer = readline.get_completer() if not completer: @@ -4471,8 +4474,8 @@ (defun python-shell-completion-native-setup () instance.rlcomplete = new_completer if readline.__doc__ and 'libedit' in readline.__doc__: - raise Exception('''libedit based readline is known not to work, - see etc/PROBLEMS under \"In Inferior Python mode, input is echoed\".''') + import tty + tty.setraw(0) readline.parse_and_bind('bind ^I rl_complete') else: readline.parse_and_bind('tab: complete') From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 17 08:22:13 2024 Received: (at 68559) by debbugs.gnu.org; 17 Feb 2024 13:22:13 +0000 Received: from localhost ([127.0.0.1]:60543 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rbKdx-0008GK-6t for submit@debbugs.gnu.org; Sat, 17 Feb 2024 08:22:13 -0500 Received: from mail-lj1-f173.google.com ([209.85.208.173]:48310) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rbKdu-0008G6-0D for 68559@debbugs.gnu.org; Sat, 17 Feb 2024 08:22:11 -0500 Received: by mail-lj1-f173.google.com with SMTP id 38308e7fff4ca-2d09cf00214so21772221fa.0 for <68559@debbugs.gnu.org>; Sat, 17 Feb 2024 05:21:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708176044; x=1708780844; darn=debbugs.gnu.org; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:from:to:cc:subject:date:message-id:reply-to; bh=Jfk9/oZhjUlUYCD1FD4lYUoWoxFWt0h0EZ5F8v+Ae94=; b=SOlfaa77HDT2FXikeUIQn2ASyxHH9olFIvf5mBh3/LvGgq5yuIA3mQE8cD6MOWcHed HRQf7eEHsb1iI1d1exxGem1AFOyPIjrtFowoTfcZY9n2wOMa270IQVsABW8DOIGYUPk0 BMfB02j52bFhoqTmlC1vg44xZT7LdIWLI9fhE2rCTPBgEzM7A6hmFjgKgNyZBCai1Mdf 4nWAmKB+yyGOGvNuUfvRdlc2IKBtI43o//vxQr6x45AB6IJ04dLzM3EmiG4PRxVE7M/s 0lnilOITb0//viAWacXTe+WE7FbRJNIWQbRDUz5A64QDAKKttGOdgtDGeVw0Fix7VyaM luEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708176044; x=1708780844; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Jfk9/oZhjUlUYCD1FD4lYUoWoxFWt0h0EZ5F8v+Ae94=; b=a5zfiXwxolxCKSaM7Ln/6ENZdRNZ02vp4f8GE1ianJ09+HA0bv2Gw2MTZmEGHU2rZG 1CjVK7c4RU2FxDLKynfS8DqrnXtKCISg8HFa37vHumkjlS0kUg59pT32yfV2IszHBTMs t3PxfK9j/aXEb5Y6b33AZmEtpwGIR0eo3yhNGzlp9ZI4FTNUfZZin9VNP0wwOnEAzcQl Z1ssa5UmYwm8Bb5fs9T3P+DRx879yfhINfmLGxC6EV8D/Gk8ZZ5BoSf5KTnrHAPItkBv phAtdgIc/ltbnJethG5s6j5D8Zp/UQ3XM7S3ewz3yeMs2PuZ58qUzRWBGfK6DfrKkDbl yTOQ== X-Forwarded-Encrypted: i=1; AJvYcCVB8GQcgbTMhBfcVN87tnUHfvn7Nxu+nrWmF+krF8lmVWVSegwnrCqz+1k0qJlBPzZM7A9M0ltzCKhS5fXKETxC1/FzAKQ= X-Gm-Message-State: AOJu0Yy5HYdK7Ijp1Ov0wJ+/dmIQpV6IvjtQgXvrzPL3rtZSYRtxlc8I ze6c9NfBxZcxuWTfPZUGnsryQoJApqqCnx4ULk1RXvCUM72mVvUr X-Google-Smtp-Source: AGHT+IEEhrrWqwDFLEptQpl3o8QTT2NTWdrQNxCR23xO39ioiPNYPqFb+92gmYDBXROz6G/Azd2JoQ== X-Received: by 2002:a05:651c:211f:b0:2d2:3147:423d with SMTP id a31-20020a05651c211f00b002d23147423dmr244980ljq.11.1708176043627; Sat, 17 Feb 2024 05:20:43 -0800 (PST) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id g2-20020a2e9382000000b002d09bdb7e1fsm311385ljh.24.2024.02.17.05.20.42 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Feb 2024 05:20:43 -0800 (PST) From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= Message-Id: Content-Type: multipart/mixed; boundary="Apple-Mail=_73F7F4FF-0DF3-4E24-B521-33435BBC4DFB" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#68559: [PATCH] Improve Python shell completion Date: Sat, 17 Feb 2024 14:20:41 +0100 In-Reply-To: To: Liu Hui References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: kobarity , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) --Apple-Mail=_73F7F4FF-0DF3-4E24-B521-33435BBC4DFB Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii 17 feb. 2024 kl. 05.36 skrev Liu Hui : > How about the following change, which only affects libedit-based > readline? It may enable native completion on mac, but I cannot test > it. Thank you, but that change alone doesn't seem to suffice for = python-tests to pass. Log attached. --Apple-Mail=_73F7F4FF-0DF3-4E24-B521-33435BBC4DFB Content-Disposition: attachment; filename=python-tests.log Content-Type: application/octet-stream; x-unix-mode=0644; name="python-tests.log" Content-Transfer-Encoding: 7bit ELC ../../emacs/test/lisp/progmodes/python-tests.elc GEN lisp/progmodes/python-tests.log Running 360 tests (2024-02-17 14:08:16+0100, selector `(not (or (tag :unstable) (tag :nativecomp)))') passed 1/360 python-auto-fill-docstring (0.000969 sec) Fontifying *temp*-195786... Fontifying *temp*-195786... (syntactically...) Fontifying *temp*-195786... (regexps...) Fontifying *temp*-195786... (regexps....) Fontifying *temp*-195786... (regexps.....) Fontifying *temp*-195786... (regexps......) Fontifying *temp*-195786... (regexps.......) Fontifying *temp*-195786... (regexps........) Fontifying *temp*-195786... (regexps.........) Fontifying *temp*-195786... (regexps..........) Fontifying *temp*-195786... (regexps...........) Fontifying *temp*-195786... (regexps............) Fontifying *temp*-195786... (regexps.............) Fontifying *temp*-195786... (regexps..............) Fontifying *temp*-195786... (regexps...............) Fontifying *temp*-195786... (regexps................) passed 2/360 python-bob-infloop-avoid (0.000757 sec) Test python-completion-at-point-1 backtrace: json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 python--parse-json-array("__PYTHON_EL_eval_file(\"/var/folders/qy/zs python-shell-completion-get-completions(#) python-completion-at-point() completion--capf-wrapper(python-completion-at-point all) run-hook-wrapped(completion--capf-wrapper python-completion-at-point completion-at-point() apply(completion-at-point nil) (setq value-3676 (apply fn-3674 args-3675)) (unwind-protect (setq value-3676 (apply fn-3674 args-3675)) (setq fo (if (unwind-protect (setq value-3676 (apply fn-3674 args-3675)) (set (let (form-description-3678) (if (unwind-protect (setq value-3676 (a (let ((value-3676 'ert-form-evaluation-aborted-3677)) (let (form-des (let* ((fn-3674 #'completion-at-point) (args-3675 (condition-case er (let ((inhibit-message t)) (python-shell-send-buffer) (python-tests- (progn (run-python nil t) (insert "\nimport abc\n") (goto-char (poin (unwind-protect (progn (run-python nil t) (insert "\nimport abc\n") (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3669 #'executable-find) (args-3670 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1) FAILED 3/360 python-completion-at-point-1 (0.474468 sec) at ../../emacs/test/lisp/progmodes/python-tests.el:4903 Test python-completion-at-point-2 backtrace: json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 python--parse-json-array("__PYTHON_EL_eval_file(\"/var/folders/qy/zs python-shell-completion-get-completions(#) python-completion-at-point() completion--capf-wrapper(python-completion-at-point all) run-hook-wrapped(completion--capf-wrapper python-completion-at-point completion-at-point() apply(completion-at-point nil) (setq value-3691 (apply fn-3689 args-3690)) (unwind-protect (setq value-3691 (apply fn-3689 args-3690)) (setq fo (if (unwind-protect (setq value-3691 (apply fn-3689 args-3690)) (set (let (form-description-3693) (if (unwind-protect (setq value-3691 (a (let ((value-3691 'ert-form-evaluation-aborted-3692)) (let (form-des (let* ((fn-3689 #'completion-at-point) (args-3690 (condition-case er (let ((inhibit-message t)) (python-shell-send-buffer) (python-tests- (progn (run-python nil t) (insert "\nimport abc\n") (goto-char (poin (unwind-protect (progn (run-python nil t) (insert "\nimport abc\n") (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3684 #'executable-find) (args-3685 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1) FAILED 4/360 python-completion-at-point-2 (0.378594 sec) at ../../emacs/test/lisp/progmodes/python-tests.el:4918 Test python-completion-at-point-native-1 backtrace: signal(ert-test-failed (((should (completion-at-point)) :form (compl ert-fail(((should (completion-at-point)) :form (completion-at-point) (if (unwind-protect (setq value-3718 (apply fn-3716 args-3717)) (set (let (form-description-3720) (if (unwind-protect (setq value-3718 (a (let ((value-3718 'ert-form-evaluation-aborted-3719)) (let (form-des (let* ((fn-3716 #'completion-at-point) (args-3717 (condition-case er (let ((inhibit-message t)) (python-shell-completion-native-turn-on) (progn (run-python nil t) (insert "\nimport abc\n") (goto-char (poin (unwind-protect (progn (run-python nil t) (insert "\nimport abc\n") (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3711 #'executable-find) (args-3712 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #)() handler-bind-1(#f(compiled-function () #)() handler-bind-1(#f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1)) apply(signal (json-parse-error ("invalid token near '_'" "" (setq value-3589 (apply fn-3587 args-3588)) (unwind-protect (setq value-3589 (apply fn-3587 args-3588)) (setq fo (if (unwind-protect (setq value-3589 (apply fn-3587 args-3588)) (set (let (form-description-3591) (if (unwind-protect (setq value-3589 (a (let ((value-3589 'ert-form-evaluation-aborted-3590)) (let (form-des (let* ((fn-3587 #'nth) (args-3588 (condition-case err (list 2 (pytho (save-current-buffer (set-buffer (process-buffer shell-process)) (in (let ((shell-process (python-shell-get-process-or-error))) (save-cur (progn (run-python nil t) (insert "") (goto-char (point-min)) (pytho (unwind-protect (progn (run-python nil t) (insert "") (goto-char (po (let ((python-indent-guess-indent-offset nil) (python-shell-completi (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c (unwind-protect (progn (let ((python-indent-guess-indent-offset nil) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current (closure (t) nil (let* ((fn-3582 #'executable-find) (args-3583 (cond #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #" 1 1 1) FAILED 289/360 python-shell-completion-at-point-1 (0.389104 sec) at ../../emacs/test/lisp/progmodes/python-tests.el:4777 skipped 290/360 python-shell-completion-at-point-ipython (0.000458 sec) Warning (python): Your `python-shell-interpreter' doesn't seem to support readline, yet `python-shell-completion-native-enable' was t and "python3" is not part of the `python-shell-completion-native-disabled-interpreters' list. Native completions have been disabled locally. Consider installing the python package "readline". skipped 291/360 python-shell-completion-at-point-jedi-completer (1.283608 sec) Warning (python): Your `python-shell-interpreter' doesn't seem to support readline, yet `python-shell-completion-native-enable' was t and "python3" is not part of the `python-shell-completion-native-disabled-interpreters' list. Native completions have been disabled locally. Consider installing the python package "readline". passed 292/360 python-shell-completion-at-point-native-1 (1.418923 sec) passed 293/360 python-shell-completion-native-interpreter-disabled-p-1 (0.000124 sec) Can't guess python-indent-offset, using defaults: 4 passed 294/360 python-shell-get-process-1 (0.215481 sec) passed 295/360 python-shell-get-process-name-1 (0.000597 sec) Can't guess python-indent-offset, using defaults: 4 passed 296/360 python-shell-get-process-name-2 (0.011209 sec) Can't guess python-indent-offset, using defaults: 4 passed 297/360 python-shell-internal-get-or-create-process-1 (0.063736 sec) passed 298/360 python-shell-internal-get-process-name-1 (0.000444 sec) Can't guess python-indent-offset, using defaults: 4 passed 299/360 python-shell-internal-get-process-name-2 (0.011409 sec) passed 300/360 python-shell-make-comint-1 (0.052506 sec) passed 301/360 python-shell-make-comint-2 (0.053577 sec) passed 302/360 python-shell-make-comint-3 (0.050405 sec) passed 303/360 python-shell-make-comint-4 (0.050541 sec) passed 304/360 python-shell-prompt-detect-1 (0.077438 sec) passed 305/360 python-shell-prompt-detect-2 (0.075888 sec) passed 306/360 python-shell-prompt-detect-3 (0.000279 sec) Warning (python): Python shell prompts cannot be detected. If your emacs session hangs when starting python shells recover with `keyboard-quit' and then try fixing the interactive flag for your interpreter by adjusting the `python-shell-interpreter-interactive-arg' or add regexps matching shell prompts in the directory-local friendly vars: + `python-shell-prompt-regexp' + `python-shell-prompt-block-regexp' + `python-shell-prompt-output-regexp' Or alternatively in: + `python-shell-prompt-input-regexps' + `python-shell-prompt-output-regexps' passed 307/360 python-shell-prompt-detect-4 (0.082467 sec) passed 308/360 python-shell-prompt-detect-5 (0.081498 sec) passed 309/360 python-shell-prompt-detect-6 (0.001290 sec) passed 310/360 python-shell-prompt-set-calculated-regexps-1 (0.000174 sec) passed 311/360 python-shell-prompt-set-calculated-regexps-2 (0.000122 sec) passed 312/360 python-shell-prompt-set-calculated-regexps-3 (0.000201 sec) passed 313/360 python-shell-prompt-set-calculated-regexps-4 (0.000169 sec) passed 314/360 python-shell-prompt-set-calculated-regexps-5 (0.000183 sec) passed 315/360 python-shell-prompt-set-calculated-regexps-6 (0.116206 sec) passed 316/360 python-shell-prompt-validate-regexps-1 (0.000154 sec) passed 317/360 python-shell-prompt-validate-regexps-2 (0.000154 sec) passed 318/360 python-shell-prompt-validate-regexps-3 (0.000152 sec) passed 319/360 python-shell-prompt-validate-regexps-4 (0.000115 sec) passed 320/360 python-shell-prompt-validate-regexps-5 (0.000103 sec) passed 321/360 python-shell-prompt-validate-regexps-6 (0.000104 sec) passed 322/360 python-shell-prompt-validate-regexps-7 (0.000063 sec) passed 323/360 python-shell-with-environment-1 (0.000364 sec) passed 324/360 python-shell-with-environment-2 (0.000558 sec) passed 325/360 python-shell-with-environment-3 (0.000565 sec) passed 326/360 python-syntax-after-python-backspace (0.000334 sec) passed 327/360 python-syntax-context-1 (0.000354 sec) passed 328/360 python-tests--fill-long-first-line (0.000998 sec) passed 329/360 python-tests--flymake-command-output-pattern (0.000234 sec) passed 330/360 python-tests--run-python-selects-window (0.096141 sec) passed 331/360 python-tests-look-at-1 (0.000453 sec) passed 332/360 python-tests-look-at-2 (0.000298 sec) passed 333/360 python-triple-double-quote-pairing (0.004338 sec) passed 334/360 python-triple-single-quote-pairing (0.001394 sec) passed 335/360 python-ts-mode-assignement-face-2 (0.051551 sec) passed 336/360 python-ts-mode-builtin-call-face (0.018900 sec) passed 337/360 python-ts-mode-class-patterns-face (0.002075 sec) passed 338/360 python-ts-mode-compound-keywords-face (0.004958 sec) passed 339/360 python-ts-mode-disabled-string-interpolation (0.002239 sec) passed 340/360 python-ts-mode-dotted-decorator-face-1 (0.002431 sec) passed 341/360 python-ts-mode-dotted-decorator-face-2 (0.002075 sec) passed 342/360 python-ts-mode-interpolation-doc-string (0.001603 sec) passed 343/360 python-ts-mode-interpolation-nested-string (0.001576 sec) passed 344/360 python-ts-mode-isinstance-type-face-1 (0.001774 sec) passed 345/360 python-ts-mode-isinstance-type-face-2 (0.003366 sec) passed 346/360 python-ts-mode-isinstance-type-face-3 (0.002596 sec) passed 347/360 python-ts-mode-level-fontification-wo-interpolation (0.001768 sec) passed 348/360 python-ts-mode-named-assignement-face-1 (0.001438 sec) passed 349/360 python-ts-mode-nested-types-face-1 (0.001659 sec) passed 350/360 python-ts-mode-superclass-type-face (0.001565 sec) passed 351/360 python-ts-mode-types-face-1 (0.001577 sec) passed 352/360 python-ts-mode-types-face-2 (0.003078 sec) passed 353/360 python-ts-mode-types-face-3 (0.001907 sec) passed 354/360 python-ts-mode-union-types-face-1 (0.002662 sec) passed 355/360 python-ts-mode-union-types-face-2 (0.002332 sec) passed 356/360 python-util-clone-local-variables-1 (0.000391 sec) passed 357/360 python-util-forward-comment-1 (0.001119 sec) passed 358/360 python-util-goto-line-1 (0.000271 sec) passed 359/360 python-util-strip-string-1 (0.000134 sec) passed 360/360 python-util-valid-regexp-p-1 (0.000088 sec) Ran 360 tests, 350 results as expected, 7 unexpected, 3 skipped (2024-02-17 14:08:39+0100, 23.058396 sec) 3 expected failures 7 unexpected results: FAILED python-completion-at-point-1 FAILED python-completion-at-point-2 FAILED python-completion-at-point-native-1 FAILED python-completion-at-point-native-2 FAILED python-completion-at-point-native-with-eldoc-1 FAILED python-completion-at-point-native-with-ffap-1 FAILED python-shell-completion-at-point-1 3 skipped results: SKIPPED python-ffap-module-path-1 SKIPPED python-shell-completion-at-point-ipython SKIPPED python-shell-completion-at-point-jedi-completer --Apple-Mail=_73F7F4FF-0DF3-4E24-B521-33435BBC4DFB-- From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 17 08:35:23 2024 Received: (at 68559) by debbugs.gnu.org; 17 Feb 2024 13:35:23 +0000 Received: from localhost ([127.0.0.1]:60553 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rbKqh-00008o-1o for submit@debbugs.gnu.org; Sat, 17 Feb 2024 08:35:23 -0500 Received: from mail-pl1-f176.google.com ([209.85.214.176]:53409) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rbKqf-00008V-9U for 68559@debbugs.gnu.org; Sat, 17 Feb 2024 08:35:22 -0500 Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-1d95d67ff45so24318155ad.2 for <68559@debbugs.gnu.org>; Sat, 17 Feb 2024 05:35:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708176835; x=1708781635; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=lBTzuuPVYNFjAlshBQBzfE3bpSCOuZI1QW5JrNd6KHA=; b=clAUs5Ev0lZoI4glJH5UqVNKkx3Y4PJDaaWo8dHl/5MM7zQUH85pRVaN/POzIi+5H2 j8HsUMfdyp0tU6nhs3/8BmJ77JUyKLXsYGWXazTeYoZ1pJe8bpJlGlOopRBY89XNUIDq ZqEJczENoje4khzHNMWkhLC3ED3FzZ/bAwt5BEXwaFl0Gdh9ZkS4dTfgu3z0vvHcpJZt cZI6kI+yyU72pTAy1bMITsfeqlEQuhdGUhkVg5zk7KdT9QX4CSkEhtQ5c5XRvdVThmv+ 1fiAWU3eyI+yq+gVFSgMRwfQqujsVtEDEixYk0uJV3+SVxh2o5BHzdR7Q3QvOIv3eHPG vkwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708176835; x=1708781635; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=lBTzuuPVYNFjAlshBQBzfE3bpSCOuZI1QW5JrNd6KHA=; b=UG1o3USDSvMMb0lOF7sp19jQVm/UBaaBDWB02mW0otNNWBvz1xKhylA1pxe0gXVuXE VeRAsWe+O1rEpa6kmQgO89QXj86oDDQdjMOzLBHGhISqb1nGMTeZdvTDiOv2JxV1KSyj 0IhVZkw6uL0lEwQuspytChG6rjbwlIzYydUwXDSyodb2nR8He6nvCa0LGMMJYuaJwpaA jBP/DfaPJ1+y2ktb6oECLAqADoklyOF6whJ5srThG/Qhd1fnh0KgBi5P5Oacltx0cHsE EOj1rqBcuDI6w//9MPHhijd1D0pHB6o+/f8MRi6XmgNbSzk1wDvDxx//ifZ5QUjW2bwl jZsQ== X-Forwarded-Encrypted: i=1; AJvYcCUqiIx4fg1uDXf+wdQgZUNDTLdHvzgl3fF7307s69D9MZaSxfAXQLUa+qKw26gFKMs6sC4qEW6C35R+B6XI0G1ABRbfXO0= X-Gm-Message-State: AOJu0YzCRBROxTUvFHHVwa3Aanmo4N2q/38rqRdrHH/LpGaVdHukN+Ar CDv3h54KL7yA/u3Yg9T3YZPjOaHDrJjCnty3fZzXifyr4DzX6Kd1 X-Google-Smtp-Source: AGHT+IF3Xs0g03ORK8hKTQxVF1M6P5Td2dBBrFVZ9fHeGYTGTfLwJAlzfYD6JTxvnMg3KGvfnZ4+/A== X-Received: by 2002:a17:903:32c7:b0:1db:8c27:c24d with SMTP id i7-20020a17090332c700b001db8c27c24dmr8539327plr.50.1708176834846; Sat, 17 Feb 2024 05:33:54 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id kf14-20020a17090305ce00b001db66f3748fsm1449448plb.182.2024.02.17.05.33.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 17 Feb 2024 05:33:54 -0800 (PST) Date: Sat, 17 Feb 2024 22:33:56 +0900 Message-ID: From: kobarity To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: <86jzn4v23f.fsf@gnu.org> References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: Mattias =?ISO-8859-1?Q?Engdeg=E5rd?= , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) Eli Zaretskii wrote: > > 0001-Remove-echoed-back-string-in-python-shell-completion.patch > > extracts only the last line to exclude echoed back strings. > >=20 > > 0001-Set-tty-mode-to-raw-when-setting-up-Inferior-Python.patch sets > > the Inferior Python tty to raw mode. python-ffap-module-path-1 will > > no longer need to be skipped on Mac. If it is safe to set tty to raw > > mode on all UNIX based systems, I prefer this method. >=20 > Will this work on MS-Windows as well? If you are unsure, would you > please tell me how to test whether this works on Windows, so I could > collect the information for you? It does not affect MS-Windows because it sets only when the tty library can be imported. Although the tty library exists in MS-Windows, importing the tty library will result in an error because there is no underlying termios library. Mattias Engdeg=C3=A5rd wrote: >=20 > 16 feb. 2024 kl. 16.24 skrev kobarity : >=20 > > I made prototype patches for each method. I don't use Mac so it would > > be helpful if you could try these. >=20 > Nice, thank you! I can confirm that they both appear to work, at least in= the sense that the python-tests pass (except for the ones skipped intentio= nally), and the python shell behaves reasonable. >=20 > Only the set-tty-mode patch eliminates echo in the interactive python she= ll; in that sense it's preferable. Thank you for testing my patches. > Both produce the very annoying warning >=20 > Warning (python): Your =E2=80=98python-shell-interpreter=E2=80=99 doesn= =E2=80=99t seem to support readline, yet =E2=80=98python-shell-completion-n= ative-enable=E2=80=99 was t and "python3" is not part of the =E2=80=98pytho= n-shell-completion-native-disabled-interpreters=E2=80=99 list. Native comp= letions have been disabled locally. Consider installing the python package = "readline". >=20 > which is not even correct since the standard Python does have a working r= eadline module, even if it uses libedit. You are right. Maybe the package name should be fixed to "gnureadline" as described in etc/PROBLEMS. On Mac, it might be better to set the default value of `python-shell-completion-native-enable' to nil. > > 0001-Set-tty-mode-to-raw-when-setting-up-Inferior-Python.patch sets > > the Inferior Python tty to raw mode. python-ffap-module-path-1 will > > no longer need to be skipped on Mac. >=20 > Right, that test runs and passes. >=20 > > If it is safe to set tty to raw > > mode on all UNIX based systems, I prefer this method. >=20 > Same here. I see no reason why it wouldn't be safe, either. Thanks. > > By the way, is it necessary to send > > `python-shell-completion-setup-code' for every completion in > > `python-shell-completion-get-completions'? To me it seems sufficient > > to send it once at initialization. >=20 > Indeed, it does seem a bit extravagant. This would be one of the items for future improvement. Liu Hui wrote: >=20 > kobarity writes: >=20 > > 0001-Set-tty-mode-to-raw-when-setting-up-Inferior-Python.patch sets > > the Inferior Python tty to raw mode. python-ffap-module-path-1 will > > no longer need to be skipped on Mac. If it is safe to set tty to raw > > mode on all UNIX based systems, I prefer this method. >=20 > How about the following change, which only affects libedit-based > readline? It may enable native completion on mac, but I cannot test > it. >=20 > diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el > index b7e43f3fc68..f59bc19367b 100644 > --- a/lisp/progmodes/python.el > +++ b/lisp/progmodes/python.el > @@ -4286,6 +4286,9 @@ (defcustom python-shell-completion-setup-code > except: > pass > else: > + if readline.__doc__ and 'libedit' in readline.__doc__: > + import tty > + tty.setraw(0) > # Try to reuse current completer. > completer =3D readline.get_completer() > if not completer: > @@ -4471,8 +4474,8 @@ (defun python-shell-completion-native-setup () > instance.rlcomplete =3D new_completer >=20 > if readline.__doc__ and 'libedit' in readline.__doc__: > - raise Exception('''libedit based readline is known not to wo= rk, > - see etc/PROBLEMS under \"In Inferior Python mode, input is echoed\= ".''') > + import tty > + tty.setraw(0) > readline.parse_and_bind('bind ^I rl_complete') > else: > readline.parse_and_bind('tab: complete') Disabling echo back may not be sufficient to enable native completions on Mac. I have not tried raw mode, but have tried readline.parse_and_bind('setty -echo') and readline.parse_and_bind('edit on'). Native completions could be enabled, but it was unstable. I have no objection if Mac users check the above patch and if it is OK. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 19 10:06:43 2024 Received: (at 68559) by debbugs.gnu.org; 19 Feb 2024 15:06:43 +0000 Received: from localhost ([127.0.0.1]:43141 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rc5E7-0005ao-RW for submit@debbugs.gnu.org; Mon, 19 Feb 2024 10:06:43 -0500 Received: from mail-ed1-f42.google.com ([209.85.208.42]:40345) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rc3Xv-0007ye-3q for 68559@debbugs.gnu.org; Mon, 19 Feb 2024 08:19:02 -0500 Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-5641c710fa9so150643a12.1 for <68559@debbugs.gnu.org>; Mon, 19 Feb 2024 05:18:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708348712; x=1708953512; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Gqn+2O8B695N5MrrXsrdTLpbxAt+lgbM5SPggYMFGoc=; b=DKugr1kvsrqjzk5dFF6Y8yoKX+lSLL/hcErYIlyfLf5EsWJRBFLgRLDx3us3sFSUY1 001Hj7bL7U5Ub8l9KIW+GUdjvjHMdQMpEoQIBit/dP/B3gdU1TxQe+0Yz6S7aaIOcysM tHl0A6Gfs05MdZJlwc8f0Xw57GygIedClYJahbIdu/qV99J2AbvCWQxT0zAw0peMeJzW R7jY3o1ieFFydh36bn8ibBTp4Ow8s+u69KQEzgUW6bdriIieZ2ChpMxCS9uhjiLb9UTA vGggHgfWB67Va3EbLCIoI7iAihzeKs1KWhxB1QcsvHO+CiLv8Ek/smBoibOjJDhQTskO GmAQ== X-Forwarded-Encrypted: i=1; AJvYcCUEVvTnlgh5ynOxbbaGJ2quTCuQUIoEVzrV/XqFTCS44wOKLRD5VQJsY2/SNU5eve4KIMnMI4vYi/juc0LnvtjXxlGhIa4= X-Gm-Message-State: AOJu0YxMN9DLnvSYvSWHc3AwKh7GEZMeJpY6nTbJ6mmVhSzCGBGp+GEo x7vqvsdp0BnCQ6y3VRo+owiYbNCHEC925y2Ka+G7m8lMgehiEchv X-Google-Smtp-Source: AGHT+IEqAiKMEY0DUqt6gYYIfG33ntCJXD1Kc1D6iQvQgrF7amlEmWJAr3pMFBFDH3DuYI/nPT3Vgw== X-Received: by 2002:a17:906:3299:b0:a3e:5aac:34db with SMTP id 25-20020a170906329900b00a3e5aac34dbmr3442873ejw.4.1708348711696; Mon, 19 Feb 2024 05:18:31 -0800 (PST) Received: from localhost ([2001:620:618:5c0:2:80b3:0:15c]) by smtp.gmail.com with ESMTPSA id ps6-20020a170906bf4600b00a3d00616e1fsm2932863ejb.193.2024.02.19.05.18.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Feb 2024 05:18:31 -0800 (PST) From: "Basil L. Contovounesios" To: Eli Zaretskii Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: <865xypwu5e.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 15 Feb 2024 18:48:29 +0200") References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> <865xypwu5e.fsf@gnu.org> Date: Mon, 19 Feb 2024 14:18:30 +0100 Message-ID: <87il2kvbh5.fsf@epfl.ch> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 68559 X-Mailman-Approved-At: Mon, 19 Feb 2024 10:06:39 -0500 Cc: liuhui1610@gmail.com, mattias.engdegard@gmail.com, kobarity@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) --=-=-= Content-Type: text/plain Eli Zaretskii [2024-02-15 18:48 +0200] wrote: >> Cc: liuhui1610@gmail.com, kobarity@gmail.com, 68559@debbugs.gnu.org >> Date: Thu, 15 Feb 2024 18:37:13 +0200 >> From: Eli Zaretskii >> >> > It seems to have something to do with completion. Maybe the new code is >> sensitive to details of Python's command line editor? The standard Python >> interpreter is unlikely to use GNU readline, for example. >> >> The python-*-completion-at-point-* tests never worked for me, and I >> always assumed it was something specific to MS-Windows. But maybe >> not. There was no change in the tests that fail for me before and >> after the recent changes related to Python. > > And, btw, on this Gnu/Linux system: > > $ uname -a > Linux (REDACTED) 5.15.0-94-generic #104+11.0trisquel25 SMP Sat Feb 10 06:24:53 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux > > all the Python tests that failed for you still pass, with the current > master. So I wonder what is it that causes those failures on your > system. BTW, I have been seeing an IPython test failure on GNU/Linux: --=-=-= Content-Type: application/gzip Content-Disposition: attachment; filename=ipython.txt.gz Content-Transfer-Encoding: base64 H4sICC9Q02UCA2lweXRob24udHh0AOxdbZPjNnL+7PkVyDjJaHzmDPFCEtR59+L41omrbF8q56p8 8DprioJm6KVImaR2ZyrJ/fYAJAGKVPNtxo7XKa7Lu6LEfgA0Gg8ajTfrEwvt061YozDdH6I4KKI0 +SPail1wjAtrG2UiLNLscY0u/3Z7E6dhEN/mWXgr9kGY314i6xPr4otGEuVFkBVii4ICfSMfvxQb hH2E6dpx1o53cbEP3gr03au/fvfm6798/uc3r75+kaSoEHlxe3gs7tPEUp/z6jXri/IXdPbL9/iH NXqVFCKLkjtk8oiubu/TvbjdxOF5VpX0VSVNniqN0L+8+haVf+IoP9wesvROKS9vZV4K3138+zFJ FDx17bIQOVoRmzDLJlajD/4HG9v2pygXcZkH9OMqSQu0kp9WRXCH1sdE6nMTi+v6OZFKfidUTV1f X19dywyhQ5DnUt/yD75ViWltBccitXZRHFvbNMyLsqwr+8a2bc+mMsXw+uLLNCmi3aP6BX1SiP3h E8tnnBByc3Mz+CNa5Y9JEYRFJLUUP8pvrkfez8SdeDjks96c8+qsd+e9PPPtua/Pfn++wBMkniLy JJmnCT1RSoq1mwxpNZlNurGiZBen6cEK3qXRtm4wLuNVg2nJ0pasapOxUBRoBYV1SKOksLCSZ7aL XQLIs1F5ouSp72PCAHlnVL5iC50NYmMXgHGnwpS5Ya7LbQ+A8abCvI+Ke0vEkpR0xnzuQIh8FuJu FxxqQId4YBb9UcDDdqMxfA8DSsf2KMb7+ygWVlbRf4VGOPdsCK3N2JVSrDtRKMo+MyNCfAiDTMKA cuV7PsEAIu1DzB/3mzTuZEy2DwcD9o3ZVBhSwWD5HwDjTIWhdW4Ih2DcqTCshqGQDeG2mYtka6U7 SzpLx8Rog5I6/Re/yJ8LjKyXaFWnmN8L2aOnx+JwLFTvLp0YdPny5Ut0eS1f/MxC/e9JD+7yg8xT S8HtVl+2aulhHaXxHgLZzKu2QLlP+KLkJyvZH1YyQBaUupQB9EPahAj7mz5ADwSfCx6CLLjLgsO9 lUtpmYWfj6kcS1gVmmlghPkAHpmNRzQeBbp3QofwJMChL39MagrAa9PhTnovlhxkvLXkC9Fdshfy Wfr60pERDbNiQhwAypkFZdfF5BgqpjsLS+eLgVXgzcLS6ucuhMVnYVHdhXAIy5+FpTsAToHOkdqz sByDBbheFM/CcjWWB+WLzMLyNBbkAFA6C4vXuncw0GHSWWZvTMIBWhCdZfbUWD1gEXSW1RuDYFAl zjJ6bQ++A+l9ls0bc3AhXc0yeU+3Ho+eQ7FZFs91AX0IapbB+5oDXQiqz95FHgYHYeXi56NIQmFt HguRW4l4H0eJ0JkDEelExHvxYKVhEcR1/rgHcDRjE9H2x7iIVN6skz7ToYQBjYk5E0HrDqlVauxR KJ/uRMhjEoXpVmvQdaHs9TWFt+LxfZptcysW70Rs4aYn9wDbZXwqjOnAoR6E9TWB9CCyoEizJhc+ MGBw7DHxJnWAFpw+U8+C913dap0SoBROn53XVRxH0sELYjkSTULZcJIqCFsPRLRa/jXaKssK4hht lLAKiyDw222aiHb67VZxH21Ffp++Lz9YUtQo0SXe8xNjI4lplVPtsT0nMWcksWY8CbivjjsgXSZq NMP0sLbOVpUlpGKsZ9+gMpt/lUjtApRvw1+j85J5A3kr205uHEyK647ouWny8TRN7TE6UyGtlPzx lHTVOZ77jJRcezwl7Rt4HtB43TYJRLJbO1phJmRDtXZxUFhRspWdiQmjMICHXDIJw5CRBxirS/sx OlmAOMhlY+ImdSiQ5zpj4qalOUAP5bpj4swQMTDAcduNQUlICg12kjal2/GYhJ3WSqARhMungZDB nPjTQOhQr+bZ/SCbQJpyHOT3DSlDQwUPT4HQQTnMIQgyBUIXhEHhc49OgdBV60BjMY9NgdAuN6OQ Op0pENrVplBP4LlDEJn08IIivNcIDuAreAMm2jFOyK48PibemCXgbnn+mLipRygYwQcMMgzyujM0 7AQUnw/YY5juT+MhtgfFdjkZBzAxZh9gKE7HAUyr9IEq4AOWWFZ/WwvQdBAfsMSOEYH+KgfNcKNq QFWDqQBg5MNB+6vqXsiHLG9i2xxSHx+Vbwb2QDvm/qg8NekDjdi3R+XZoDwelTckAs10+KD9bUX5 Tzm0K6nkEISiUaQDVIRPpwOZNk2gHLHpQI1qgbbpO/1Ap3ZhfNwv4jQXOYp2SHlJb7aiCKI4X+vv xUMoDgV6Vf4jRyrrE4E8eCfW7dTd4dRrHRBG2qkX2WMHyBsGMv6iDmH1AvFhINNf2V5XH0Dx/GEw x3TB57SNbXtYuOqzsMeBPgvbeFhYhweZ7jCaYqwC9OIFwijNZnzZSpsMp81NyJS00i5ZDK/bWHQY yzf16v/y5oltNpy67jrkOEFoS/U8oDbARlYuCcqiUMLEaTO7aCYrmpxt006+3Al4ZjCmI8BtvKGn VlrehLRofzV8lx27WuUTEJlxSTCgT38EYb8PdOcMRd9g1xtjewJslORqdNiH60C4YGO8D5I7FeAJ larUzJNIDAgFQMBWVeemlDZDfmiaHWM6Kq8txiNQ+mxU3nQ0FJJ3RuXNMI87gLw7Kq/7cAp4cBh7 o/JmFIChSuSj8ppUCeBDYOyPynPj/gHlJ/aovCZDDozoMMGj8u2hiAdEgDEhE1GMLUFdG6ETUczA BERhE1EMl3DALsiQXXbmpRkwP4SJOw5ABmbQMPHGAQzBAtOymICmeRAH3nijDDIpv1dOVx/zACqh dq+coQBgdgNT0AQzcRe1uj+ghJQMSDYdHSRJBySNeQHBB0zZgKQZbjCgqVNnQFL7fD5EsrRrS7v0 dOosVCsik2M5BVB5+YeTmRaoDN5svCaUANU8H8RrpvZO8gW5p9SfjDM0BYSZPRnHDO8JUC6Gz3E2 sr6q9THpDoi8MTA/ZAynJKQT7TgAJTE6EaXRDdC6GRtBAWsLWAKEmTMDyeSJQSUD7LsqzGzTZt4c KDJYPsCqh/JDIf+EASYdHrOsGjGcLh90oO7ZscfEqyJgh0DelYPHxCv7lxYKORcOGRM3fSiGMk/7 xUvd6YHSSZ1CPpLDRnDE/lA8WocaA4NFcfox6pWgpgkDi1Cw447Ka2NyT/zsnRxmVvLeqDwdmBzH DmCMesSppqbLNlcZ+l7keXDXhJyI7lJOgxs9gQ7s+LPTaaag2qO8alC97j6epubas1MzroTttlOT g+11+6GVEp6dEut2Vc3oNVi3H1opkdkpOUOE7dLJeIc0j4pTrwlagYldNh+wIUrAgXOd+YBm4Z4H 9AeuOxuwmdm2gXgmdr0nIBoPEiI3lz8BkQ5xves/AZEN+UGe/QREM1yGasbDT0B0h7wajzwB0TMh BcC+vaEGA3o30MDeYxNRSJdmWyjORJTGDwUamOdORDHWAMzYYc+biOIM6oVPRHEH5v6wB9m6Xj7e VA3GwNYlzO1h4WbSCdAlx8PCmpgcyCXkZFi41r+kG0iYDgvXaicUGlxzNizs6sV+BErZGRY2zYkA DZS7w8LcCANtkQM2J5Iw3bbW9UPBXM4HJHUNYyh0w/0ByV2W7qXfmb6NGgcJ+0D6vj0RZTAvPp6I Qg0K0HJ9MhGFDeaFTkRxDArQ/n02EcUdcsd9ZyKKZ/ICEIHvQihbaETNQL16o/LGqYc8KZ/3yoP9 DBSA9v1JGMYXAWqW2ICtVgOjZJufBClOxqoMAzCAscaqGmSdBAUUa2jgGABHpsO1h8LQYjZi07lw TRwEKiybCzfURRMbMOim/qp66JgkxQ6A407GMSYBrO0gtjeEUx7WcJ4jAuxWITafgTQU5iE2YOrg hqpTHZ33hQTbk3HIgOtJMJ6MY0LCejvvN0H2Vn4qmg8t5Lbp7+U7HRP3dTseAaJ9QLpkvg7hjwCx PiBTND18HwFy+oDMGggdIj4HGoF2+6Adc4IFYKCdKbwkeFdS3vsg23Z5xYesiY+JGyMC/ATSmcAD xA1vUIA3OvN3gLjx6YFRKOlM37XEz3YV2vRkGlpHpkhn7q4HwpCNTQAI2g9xPMiuKC/Od0m3isHO Afp7G98GiLMzYdcDMbRgmXSm7M4gWsaEod2ohHhTIMwsqA9B8CkQQ4uFCfGnQDRrKQBupPYUCBMr AGbKCMVTINyhGqFkGAIwcQ/Kybl9tty8Wli2MEiYDQs3JgU4LdTpE+52B4BJU3dYuE6Z2pD3Rb1h 4WbtPdAeKe8TPtc4tDqYUH8cwCgOmP0mzB4HoN3AcwsAjwMYagV2yBF2bnu7NCs5rUNHGPC/GB2R HppQJYz1SnfOnADTdkakITJvpN0RaTqwHZ8wb0R6KERFGO+VzsVD4xb6UCtn/rCwXjVqA/vhiWMP CzdhIaC6HDwsnAe7JtrgAzFL4vQb23mLcyCn2Dk3uG7XCy0ZJp3JtXKBTN6sbqtXKZhtY8BOAtKZ W6tOotgcdzsVETxuuqtlKJR7dxKEbZZyAcbTmWLrwzBNB9ipTDrTbH0YpgH5kDr8SRjN+msAozMx 1odhunAbaIqdKa8+jGZ5HOBbdyaz+jDcgbXkpDOB1YfhDdVtZ86qD8PEIoHltsSdZKYm4GND1TLJ TJtlrwDRuJOslHUHZS2ISUZqti4AW2eIO8lG3YGVk8SbZKKDtepNslA+mItJBuoPtTUPss8wiMNj rPYaigcRnpxBZJdHLwAobCKKNjAbCnJ5zkQUbWO2C+nVnYii5yvAcKDnTUTRlmZDQRaPT0Qx8WKo 4Xn+IMohS0ORy24reRdladLqLW2obNyejWfqDdjFRTiejdfUIGBNnMzGY6YWgH6N09l4plYhN4+z 2XjuIJ4zG88bxHNn43GDB7QoPtwWqq/bJMGgauBTYYy16bXFy3lnH1ievn99GWzCm8//+YvV9evL T5F5/EYUwar5JlCdUBAWYSytYC8k4Bb4tfcHaaoHkRWPwE9qZBCFZ5J3ongTBuG9eFOkb0Vymrvj YSvt7E070VzK/vA6+f9xxh3hYE/Re0groZ6eff4/K9nr5KsElYdRf2g6r3JGP8CcfS+bm7LdItoL Zc/epwgTZdbV+YWViUs7/gANuVIq+x0o1ZFKtX9PSnU+UKUqhW5FXARKhQTL/12lys+OydskfZ+8 /PA1636Imv1gtcWna+vbFJVnOlxcfHdyxUF/NxVVbyA1oaY67XJds9rKEsQr6ReUNw9Y9UzcarXK 79NjLD9VA98X6DITN/khjorV1ebqU3QlvQD5zz54yCWMkleis+TUly8u0aoeZF+g1jUN1mkh1Lmp 0scQWb5SfvDHu1V114TYWrtjElZHll2jjz9Th/WVp8xZ9gP21YIwhxCXBZstIS+vpwrbD6GLucNt IuzAoeGuFr0Pkm2sTjWJkq2FV09CqrWlDsetVB6pBY+qEj7Oy3qovlXD2WNZdrWaAK3LayzqN9Tn GkajrE5+Upc87MU0gziBSdUxIV28Mmico7W5X0Kdc7WurqMwH619Jzf5as4tFE2NdGGsjTLwWWDX MIYla07qVFrhRDAF805WymoIDF2NoUmYclu3FCjXUeHV6tL6+hJdrm/kX1Ys/5IJ6I+9V4J0YEpj TNJsH8RWkR6qo8Tkl/OIIEyTbVQdUqAOt++SQPkl0g26ekLT2/XFRx+tuuGz0mTUJQplNak/650s xcVs6Doz/S9emgRkJR4FSqIYrcXDIQ6qAw51kkGWBY95OZkZqbyWO4FEclfcI2oj4kwp5kcfDeak fmMXZaqlRHl1nE9QSPRaD19+/tXXr/6sjhm2Jw45dBWu6I1NXadelqauzBm6VUbEa8Y9Z4kAfGh5 qn5T9YMq/kFNpavFTccDitNgK7avkw8x++ij18mPf/u7f/r47//hP//xk9W19eIP3//XD//z+vV/ /3F9JT3Uz17e/mlWzqVf8jY6HMphuI8ntomfxDbSP8hcqfspPJfQ5SqF373NL+r8TdpgEwrzycQ2 2L4viHvQYiSfDoPVGKVbfMhUW5Z9c668qm1rhbHeixokVwW6O4o87xyIkO520o4+Rce8vKWtuo8u XyPWzg40AaGuddGh/Tq857jAtiziOyPSyhU/2f3u/UKZdqckq5d1efp88WcnC01e6PFLmb4cRNQn q7bUh13CgXM3iM/HAGE9alZ/doH8WenrhT8OsIeD2pDzpm4LVMZt4sSY2gzYikZtPCJNKmniAQcg UpuMSNNK2peNEpCmI9KsThu6tIPaUAOSatsf1N5+OQ42Jec+g0rujMpXZWcOdMAOtd1ReTNDqtdd /0eQlXcr1pR6vUb/VjnUpTSqpNWJcYka320EqoDE9ubiqx16TI8ZKm91lGh5rjosddhWjt7fi/r+ SgV+OIHMLzI5qHwnmVrdNYZ+fCseN6lalPXzMSqukBzYoUIJF9mjHCk8KHH5fFGaorolUXaPu1iO KOVwqUr+hB7R5hEF25+OeaHFfjy355pJTwCtILu7QhIv2G5RfdvdRTk4UTBtRUSJwm1uurTK2y3R LotEso0f0bsgy9Uo8g/oR6gaKvSr/heqlYyjr9W9lH7vLzLvcdlWVXlkNqJkIBNR0sjmUxMpXzyx NW/U1qq24lGMIVvlo/LlbDl2JADEMf6ovLnVA1gSTrHdLy/psplB3uryN3sbgVUmFOPZeGaXI7DW mGIyG8/sd6QQHp2NZ3Y+Anc6Ucxm45k9kMBaS4qd2Xhu1Z/KfgTK3wAXvgviSM3RnNcsmDNvBpKp U+DGO4r5DCRTmzYFkPwZSKYebaC/JPYMJLN+BWpRBM9AalYmAW2JkBlIZs0Kh5Agq69uzQSWNWHg eAZK2BQIs8QR8PMpcaZAUO1SgdXUMWd1ZfBDffCmvnFVH0NsDrCDsuJBOOoIJvFwshoa2GtPO5to 6qmJ8jK3OFVbjMuw3sklORzYdE87+2g0SvyovawytFv3PIegUJ2arh5gUw3tbKqp8VSYWhexjNfn Ut/JNn1fuU8edDQT7WyuqaDU/lU1qhu61YF29tS0JYmRhNJsG2i9VXKbHjd6x6RUQtQce0p9B0qf QSinF/W1UQjTzc64f0UmRB4V0v/7onL1StdINjSkfpFYqiY+lQ5gGBxzgWLp5R2DO4HuskBWWVa6 Y7WbF+XomATvgihWQ1WkJgasXXpMthL8NkkT8RDlhbT425vSc7zZ3p4kcRtHm5PHuhbX2gFVp5dI jyzIZLnTzU+yZqWTGIs1+jZF+TG8L5+UK9dcRf7EJG/s3yTR3ybZPP1tUv2tSvtcPf/iRvormOCv YmC/hvn8OsbxK1X9aUSedrYiStJXc031uZjVBqPdyQUD2NxUsNDuQrsL7S60u9Duk2jXBWl3c4zi IkpUqCAueVcfeEbwwroL6y6su7DuwrrPYF0PZN1yD46O1OQt3mWLt7vw7sK7C+8uvPsc3uUw76b7 g+K75ir3E+o1p7It1LtQ70K9C/Uu1Psk6vVB6jWLMOujUKplRWkcVNueqlAvXZzfhYEXBl4YeGHg ZzBw58xKw8BpoVaCbUWYZoEUqqbZzIl6+jTxhXsX7l24d+HehXufxL14BveaJQ76aqKFexfuXbh3 4d6Fe5/EvQTk3lakQV0ZVocgTNCBL+S7kO9Cvgv5LuT7DPKlE8g3EXlznZWedtMnRy/8u/Dvwr8L /y78+yT+ZTD/5pE6VC4JhVU8HsRpzJd63F4W+S7Uu1DvQr0L9T6Hep3p1KtDvo69TLct1LtQ70K9 C/U+h3rd6dSrr040V4At1LtQ70K9C/Uu1Psk6oW3tpWHyUvKS4poF4VV2Pd9Ciz39WyMFx94IeKF iBciXoj4OUQM73VTRw5vz4/V0et9XW+J/S7ku5DvQr4L+T6HfOHdbvVCBxV8yNu8a2O28O7Cuwvv Lry78O7TedeB97jlx4PIqtN1TOC3JF6H8yXasBDvQrwL8S7E+yzihTe4AZ7u/7Z3Nr2NwkAYPq7k XzG3rrIh2CYkIbdVP6RqW6lqj1UPJKVZVjQgA13tv98xhECL45LmOsco845NEj1D0HjeGadpDgRc Ai4Bl4B7CnDlZ8Btesp4QCfZCLgEXAIuAfcU4HqfAbfuJJt7fEbPcgm4BFwCLgH3FOCaj66VW907 ZniwIBfUukDYJewSdgm7p2DXH4ZduceuwZrUf38AoyzixFkn+MuuPb6dt1DFGqStX3DADWac/ryf BqH8V3uca3/TjuOsL03W2P6in2CTFmnlrdoakQYmadCX6gkVWTOquFFLYXAVnvG+uvLb3ZntOllr levtDp6w+3CrlVCZno61TQioKC+TIocwB1RVbvFjEFiL2ldS7r+975LLqcOlIwIQ3tKfLQX/wQXn qBGT+ZQvmjYTb58OXrColbgOY928zcra+xyufl7fXF58cN3VU/OTqOrkDgsnS2P8MuI6grHOpjqJ Hn5d390NSvQneo6bNyJlkB42CLQE92ytLLEGMxZbtNFCwCKwDr626czjWo9W2D6mQ6OxBkveDXSx qYxjCI4VyGMFnkUw5KCCRX6ovdYm6TeFWaJNrQyW8IFZu1wfFmb7DPu36McES8a+aQfrR/m0hNFo BI+3+KoqYWIhllgE88zNVLrR8tztGkVPknTzBJdKYXUTbJ/kJgrf9B+CtpCeub/T18hdJWt3UlUk N1drt7rbcnWms1osejuQ07l1B83qsk3w1dV7Fy88vHr9/oEV2TlCKN6dpcF7SE3xcLVN1Svi7h9o l3RY445BQljALQZdRSvolIoxPJeqlgs5wUrB/gMnuPQlh/cAAA== --=-=-= Content-Type: text/plain Any pointers? Thanks, -- Basil $ ipython --version 8.21.0 $ python --version Python 3.12.2 In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.18.0, Xaw3d scroll bars) of 2024-02-19 built on tia Repository revision: 8f260bb93f534b24d9a93d3315804ffe0c1fec4f Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101011 System Description: Debian GNU/Linux trixie/sid Configured using: 'configure 'CFLAGS=-Og -ggdb3' -C --prefix=/home/blc/.local --enable-checking=structs --without-native-compilation --with-file-notification=yes --with-x-toolkit=lucid --with-x' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINPUT2 XPM LUCID ZLIB Important settings: value of $LANG: en_IE.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068 epg-config gnus-util text-property-search time-date subr-x mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo x-toolkit xinput2 x multi-tty move-toolbar make-network-process emacs) Memory information: ((conses 16 39117 8464) (symbols 48 5217 0) (strings 32 13299 1612) (string-bytes 1 311978) (vectors 16 9245) (vector-slots 8 110970 8413) (floats 8 23 25) (intervals 56 266 0) (buffers 984 10)) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 19 23:48:11 2024 Received: (at 68559) by debbugs.gnu.org; 20 Feb 2024 04:48:11 +0000 Received: from localhost ([127.0.0.1]:44131 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcI38-0000Xf-MS for submit@debbugs.gnu.org; Mon, 19 Feb 2024 23:48:10 -0500 Received: from mail-ua1-f51.google.com ([209.85.222.51]:53508) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcI35-0000XB-A0 for 68559@debbugs.gnu.org; Mon, 19 Feb 2024 23:48:09 -0500 Received: by mail-ua1-f51.google.com with SMTP id a1e0cc1a2514c-7d2e21181c1so2894177241.3 for <68559@debbugs.gnu.org>; Mon, 19 Feb 2024 20:47:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708404400; x=1709009200; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=AHtxVf2ekS56mn8At9tJnomT6DxoovgXIPAK3oqNZHI=; b=HlLA7kj7FIRRC6JXV5mARpxwhp0htHbn6Z5GKiagSAxw0l11MgDsGDL9eQx/6KQ7yr xhlVt/c7SKCWl+UtNM9jVidt/YZk7QQkVUFf74PsOJ9G8ZYxv9lUzWLZ2gczUCfv3cwr 2/zHfi1NBuSA/HNXh+O5y8lTNLE3DmAX7IW0oXOsi6QZ2P/2x8q3rxIw2quDTFEI1tSL 7wf9yadm9pDVE/5JM78WmjZvGg7weQVBO7lYYp3eEEAxlBN/q14N7VlDTcl2PSpVIKA1 3t1GAH56Tyh6lqgqH4tiI2QCgV1l0sKsNH3jZjh+9CypWT3mwEiAcpRGOosTw3nxweQi LpAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708404400; x=1709009200; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AHtxVf2ekS56mn8At9tJnomT6DxoovgXIPAK3oqNZHI=; b=NyWizIHjj68V4Ohs/LWRcCzTh2wuM4er9dfsvQv2tGLeWG9LsSTAEaJzKJVbCjZd7Q lA91Awyg9yQsu6NHN4Mk3uCnQc4W01h2Hm4xO20I2TfDbLk26JnDxTToMV1H0MoJ0+fE jAOIw83Ee9y6Ly0RkvifhO8Qlr0dSgPYD1qRXSm7PJ5MhlxbWOlZlpq5QNPzfwTRDXxD S69UGArNPIVEWsG0rCbJhOHyFmdTUzpxdZHMWtvLZiz23d7WtnxbuBkH2V2rRGQ2Y9iz eYkTiQnGMMjonkihgHpar85ObOXq0s41IGyQazWU/YewulFxQAKlijDNaoth0i8T2A1H d/4A== X-Forwarded-Encrypted: i=1; AJvYcCVNLYp7m9LTPunthZKDWHT547mQpXprBxwYgTCpvSOUx/LIKRwKF/A28E0bQtq/0aqu9kiB1ZDdGJbl79/eP6lz9+zaZ6s= X-Gm-Message-State: AOJu0Yx6RxbRcSKcwjjMS9vxrF9wuICRiGPYjLbk9Gurp51UqPT1gR7Y FEXS5PoGtWkMa4LztvzZdTbZR3IKifzUeXkALko4G+FEFPo9L3gpOky8DelEgZWMEj3njNtria9 SZ3bYD2Y3oY5sTZ5VQvMQIgCRuLo= X-Google-Smtp-Source: AGHT+IE9TZ0kKN3mibUdSWInMI+gbzMxOJLmu6kgCKQHz4GxGCMex0pt/kcTUQUmEzvfgXPeJHI+xRfuoPHK31CoxFo= X-Received: by 2002:a1f:df42:0:b0:4ca:80c5:752e with SMTP id w63-20020a1fdf42000000b004ca80c5752emr4432024vkg.5.1708404399977; Mon, 19 Feb 2024 20:46:39 -0800 (PST) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> <865xypwu5e.fsf@gnu.org> <87il2kvbh5.fsf@epfl.ch> In-Reply-To: <87il2kvbh5.fsf@epfl.ch> From: Liu Hui Date: Tue, 20 Feb 2024 12:46:28 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: "Basil L. Contovounesios" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , kobarity@gmail.com, mattias.engdegard@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) On Mon, Feb 19, 2024 at 9:18=E2=80=AFPM Basil L. Contovounesios wrote: > > BTW, I have been seeing an IPython test failure on GNU/Linux: > > > Any pointers? > > Thanks, Hi, I cannot reproduce the problem with Python 3.12 and IPython 8.21. Can you check the results with the following steps? Thanks. 1. start Python shell with IPython interpreter, i.e. (setq python-shell-interpreter "ipython") (setq python-shell-interpreter-args "-i --simple-prompt") M-x run-python 2. M-x python-shell-completion-native-turn-off 3. eval code in the Python shell: import re from IPython.core.completer import provisionalcompleter with provisionalcompleter(): print(list(get_ipython().Completer.completions('re.split("a", "abc", maxs', 25))) expected output: [] __PYTHON_EL_get_completions('re.split("a", "abc", maxs') expected output: '[["maxsplit=3D", 21, 25, "param", ""]]' From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 20 05:18:19 2024 Received: (at 68559) by debbugs.gnu.org; 20 Feb 2024 10:18:19 +0000 Received: from localhost ([127.0.0.1]:44362 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcNCd-0001LC-71 for submit@debbugs.gnu.org; Tue, 20 Feb 2024 05:18:19 -0500 Received: from mail-lj1-f182.google.com ([209.85.208.182]:61601) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcNCX-0001Kv-JM for 68559@debbugs.gnu.org; Tue, 20 Feb 2024 05:18:18 -0500 Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-2d23a22233fso22896831fa.2 for <68559@debbugs.gnu.org>; Tue, 20 Feb 2024 02:17:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708424206; x=1709029006; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=2BpYtWTskX5dwv2Q7U1wroVW0Z8MsjcTZiL1fR4emNE=; b=MdF/dSFtq+0TwgKyWWY/EiZ/ktFIf+1oUiifXn1i8c//HxSqwvMQYFN7S8NBS6p9c9 JC+7q109EqW2sWhpwLt7S0yLz5OkqKsS+kZpcl3oBS5XPuljyfJsEYZTvWgGesPdBf27 D0yRLjic5NFMIb16LOzs2wuGzx0e014UtaA3mR21FSn1yQitHj4xPHN8SHIWpIQQRdlz W99ZgwByXgyeyLI9qhVAZWWNs/qarAXEqFGyLfqTKTrxtdv6cRLVeQq27yXpJEv2IMb2 wV5YXy0oWB40b4uypFyv9/mr38Q6HT3HH/174wOK9/vu0rBElRiix7LUejgGjYYw190z gVwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708424206; x=1709029006; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=2BpYtWTskX5dwv2Q7U1wroVW0Z8MsjcTZiL1fR4emNE=; b=IIHmxv/hhd7Td4gPi8w5+DC/0AtViFfmzwyK+5hZDHj0ODHb0SxyqHWr6a1fqmj/+4 LbRIRtCm3P6tyTn0QnT9GqRxWK7BUpDaA3Ds5D2RpEmDVG8EdVe6xO0QRp5uDw3K3PRn 2vC6bXXJQUpb7W3ihZiOsuJKBM+wBbYJdSWvjF6N8j1o0vGGXWeDhrc046Tfrb9ttQ0d 3+JFb9GSwCCJYf6VBEWD/JdvbQbX/n6zc4MJKGuu+Y0fhPs6nShgBOhcHZOIXWT1eomW SpqkX4jCZIf6xxh7XmMAKfzFVRGoNdVu1rUssqF7bNVGwWx/h9YQHCI8Pg73AwtuSe3h Z+Uw== X-Forwarded-Encrypted: i=1; AJvYcCXVPd0+H0SXXuGNot3V/VX8IsBYyxerLHr2GoCoUpf+bQ5PmWE8hZax7R+b8PTITRSm7RcBG1VUs/WgDXmdFdwx3RxlvN0= X-Gm-Message-State: AOJu0YwsnDk2BVqyCZiFkD8a8yeDJ9YLbnjI5GV/KLLY9G87xIX21FhF Ub+TKNfGfzm6Nh2AvKJ43oHZuVEB+x4Cq5b+Kl8mtA8m3/01HdO0 X-Google-Smtp-Source: AGHT+IE4DmCrd2W9NVKfWgltLwbBYDsD3WBvC8y5GKscpnwI6R4u3/BE3Q2rn0zp7RGJbhnqH8YEDw== X-Received: by 2002:a05:6512:2342:b0:512:c1ba:9115 with SMTP id p2-20020a056512234200b00512c1ba9115mr1394838lfu.57.1708424205688; Tue, 20 Feb 2024 02:16:45 -0800 (PST) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id v7-20020a197407000000b005128c3561b4sm1226024lfe.13.2024.02.20.02.16.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Feb 2024 02:16:45 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#68559: [PATCH] Improve Python shell completion From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: Date: Tue, 20 Feb 2024 11:16:42 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> To: kobarity X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: Liu Hui , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) 17 feb. 2024 kl. 14.33 skrev kobarity : > On Mac, it might be better to set the default value of > `python-shell-completion-native-enable' to nil. Not sure why the inferior Python process doesn't act on a TAB being sent = to it. Is the tty somehow in a state that disables readline/libedit? = Something that Emacs does when setting up the pty? Of course from a software engineering point of view, it's silly to send = what essentially are edit keystrokes to Python and then screen-scrape = the output. A proper interaction protocol would be the way to go, and = would work equally well on any platform including Windows. > Disabling echo back may not be sufficient to enable native completions > on Mac. I have not tried raw mode, but have tried > readline.parse_and_bind('setty -echo') and > readline.parse_and_bind('edit on'). Native completions could be > enabled, but it was unstable. >=20 > I have no objection if Mac users check the above patch and if it is > OK. Afraid it wasn't. Thanks for your patches. I suggest we apply your set-tty-raw patch on = master now since it cures the test failures without breaking anything = else (on Mac; I'm assuming no regression elsewhere). Would you like me to do that for you? From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 20 08:16:22 2024 Received: (at 68559) by debbugs.gnu.org; 20 Feb 2024 13:16:22 +0000 Received: from localhost ([127.0.0.1]:44501 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcPyv-0000T8-Up for submit@debbugs.gnu.org; Tue, 20 Feb 2024 08:16:22 -0500 Received: from mail-lf1-f52.google.com ([209.85.167.52]:41300) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcPyt-0000Su-By for 68559@debbugs.gnu.org; Tue, 20 Feb 2024 08:16:20 -0500 Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-5114a21176cso1273775e87.1 for <68559@debbugs.gnu.org>; Tue, 20 Feb 2024 05:15:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708434951; x=1709039751; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=3KS0Zt6ru3n9DwY+jUBDeKg3+16HosDmikodnPtDpIA=; b=vKxeSrZoXaks/4bf4lsNLuCYcM9RWUfIfapMDIcbAvzJ5YMFlKez2kCoBOWd7niIJ4 7SfbWxHG/5n21w+HQO+B5YCIi+hwzAB1kJX0zOBSy9Rfg5aVOkreFUz9pekaxkFjHiV3 VqB/pnzPXSm4ycuFGAcuQ1ucbvdVBJv2j37lQzvp/CFhJpRltvF5VzkQe1rrp7xj4GnE jO+3sujICoR11yIB+51iu5su183AZFMPwGdMKw1Zy2TK/7B8cEUMvtmv5vin2YOS5gRW sbmDZ490zdSqU9/0X5/R6vxthQ8F4kJu/X+DZZ2ij3capomJbeAlznljRLeaAP47uB63 uCFQ== X-Forwarded-Encrypted: i=1; AJvYcCV3rg3KnkPvBjB1riqKuZ5NNUuOrlcaioqLyhQkm5CZxt3peqeLLeTkCtD7ez94GSHZkqdFFgCiPdhuLNz329a8HSc9R5o= X-Gm-Message-State: AOJu0YzrS9DisxTkKUdCyyp0NWNdRuHiROxBBT9B/iy5rly/NEO8fiJM EVdsmVgIQ3r5vq9JQatxg7OsZ4fiFvJdD7Z8kB+ecUQHscMRjiif X-Google-Smtp-Source: AGHT+IHi+fqEyk5BnpYaKhe7fQKXa48aR1Rprhd9AInnAm/Aj0TA1utkAbzOdE8zEj/b5hM5+ExtYg== X-Received: by 2002:a05:6512:4023:b0:512:adb7:7951 with SMTP id br35-20020a056512402300b00512adb77951mr4862189lfb.5.1708434950953; Tue, 20 Feb 2024 05:15:50 -0800 (PST) Received: from localhost ([2001:620:618:5c0:2:80b3:0:85c]) by smtp.gmail.com with ESMTPSA id ps12-20020a170906bf4c00b00a3e2ba369d8sm3409564ejb.47.2024.02.20.05.15.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Feb 2024 05:15:50 -0800 (PST) From: "Basil L. Contovounesios" To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: (Liu Hui's message of "Tue, 20 Feb 2024 12:46:28 +0800") References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> <865xypwu5e.fsf@gnu.org> <87il2kvbh5.fsf@epfl.ch> Date: Tue, 20 Feb 2024 14:15:49 +0100 Message-ID: <878r3fz37e.fsf@epfl.ch> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , kobarity@gmail.com, mattias.engdegard@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Liu Hui [2024-02-20 12:46 +0800] wrote: > On Mon, Feb 19, 2024 at 9:18=E2=80=AFPM Basil L. Contovounesios > wrote: >> >> BTW, I have been seeing an IPython test failure on GNU/Linux: >> Any pointers? > > I cannot reproduce the problem with Python 3.12 and IPython 8.21. Can > you check the results with the following steps? Thanks. Thanks. These all work as expected in 'emacs -Q', which made me realise what may be the problem: - the Emacs test suite runs under HOME=3D/nonexistent - but PATH is unchanged - I have the latest IPython installed locally using pipx: $ ls -l $(which ipython) lrwxrwxrwx 1 blc blc 53 Feb 20 11:46 /home/blc/.local/bin/ipython -> /home/blc/.local/share/pipx/venvs/ipython/bin/ipython This is confirmed by the following experiment: --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=prynt.diff diff --git a/test/lisp/progmodes/python-tests.el b/test/lisp/progmodes/python-tests.el index af6c199b5bd..3393f93542b 100644 --- a/test/lisp/progmodes/python-tests.el +++ b/test/lisp/progmodes/python-tests.el @@ -4883,6 +4883,7 @@ python-shell-completion-at-point-ipython (python-tests-with-temp-buffer-with-shell "" (python-shell-with-shell-buffer + (make-temp-file "my-py-out-" nil ".txt" (buffer-string)) (python-shell-completion-native-turn-off) (python-tests--completion-module) (python-tests--completion-parameters) --=-=-= Content-Type: text/plain Running 'make TEST_LOAD_EL=no test/python-tests' now results in the following output file: --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=my-py-out-kFh7He.txt /home/blc/.local/share/pipx/venvs/ipython/lib/python3.12/site-packages/IPython/paths.py:69: UserWarning: IPython parent '/nonexistent' is not a writable location, using a temp directory. warn("IPython parent '{0}' is not a writable location," Python 3.12.2 (main, Feb 18 2024, 16:59:56) [GCC 13.2.0] Type 'copyright', 'credits' or 'license' for more information IPython 8.21.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: --=-=-= Content-Type: text/plain In this case list(get_ipython().Completer.completions(...)) is empty. I'm not sure what the best way to detect or work around this is. Any ideas? [ It's a problem shared, to an extent, with Eglot tests, since LSP servers are often installed in one's HOME. ] Thanks, -- Basil --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 21 05:01:35 2024 Received: (at 68559) by debbugs.gnu.org; 21 Feb 2024 10:01:35 +0000 Received: from localhost ([127.0.0.1]:47913 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcjPy-00087F-Rx for submit@debbugs.gnu.org; Wed, 21 Feb 2024 05:01:35 -0500 Received: from mail-vk1-f182.google.com ([209.85.221.182]:53444) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcjPx-000872-1I for 68559@debbugs.gnu.org; Wed, 21 Feb 2024 05:01:34 -0500 Received: by mail-vk1-f182.google.com with SMTP id 71dfb90a1353d-4d051349124so28637e0c.2 for <68559@debbugs.gnu.org>; Wed, 21 Feb 2024 02:01:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708509604; x=1709114404; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=BNAsy29jgxQKP3tAzUMjksM5zN9/OPyXIx7aRoz94WY=; b=H/0RGAu/a9ylagL/1PB+QkmcqtwnUbEJ7R8PKaBNELWyVOMOBq8IFv21yfGxA+dvkF AotyT9/sHM4NcdqxAz9WYn5VMdJ7hMNoAzhc/pXvBRZvVNG/rM/4yauXmbzSCYjjaviR fRML5gPq4vTOvaDZY3Qo+PDGtW7gJGcMroM5l5qLEM0HLS7vw5KqPoT0EhMmkWV0BvPY a+fARVbpv85l138VGi2cIHNuSIEJL6tBnJuIv7JPtQ/R/Kq2FvO3J2K6WC0slW7013Z2 rXVJjQ92OagVVx/4SM24ZjbLckz6mLpf3mX036svNrDXLN+DmXS3exYygL5abuE3Ujiv wFYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708509604; x=1709114404; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=BNAsy29jgxQKP3tAzUMjksM5zN9/OPyXIx7aRoz94WY=; b=NzDE/FP3B0aLoHUU1yoUyI2wkzpe51jDShD43gLsr83QUoOW5ZSRb+0TXP50Kg13kH /mat7f3qI/iq8a+WBLRtUwGUBfroXr+MzGAC6zcHSxV5ZfSOb+5CXPahFNzZWR9uVaaQ NkCaFSC6KXEQQio4KXgWpFexMiUWrxTZRocjZS9x36G5BJAJlh0aUqhT6pfC8SH9n6/h M3Uk5LfAzrvSsRo+8x7wEwCYmsd+UL1G8By8N3/SCbr1fWH2mRo3n+X/roRYLngxDWbs VA1GFVScKKBJpr3rS5/jDi2khWJTfUE6hOIV+KxdueGeyaNej6c4rC+S3iVntxZxbotq /Ylw== X-Forwarded-Encrypted: i=1; AJvYcCWxD3OSnOJ+VjT8KFXcLimZzH2/3iOVnGaJM2veTbq/5RGHuB1bql7Vk7pQ+a7w9TSre6eg6IA+DhWaadIsVCz6FZex2ik= X-Gm-Message-State: AOJu0Ywr6xC0seJR7y55+SGnNmjNu+MgxKt1cMAuj+v9k5rXDLgTtmY3 1ZWSX9AVXRCHg3U06lbIQ79650wiOq2r35yT9/u9D8RmSG1VLFhMVv/PftDLa+CMFF/sNjwqSWT QImOeG38XC51j7MhrZgSbzuYHiS8= X-Google-Smtp-Source: AGHT+IE1OnKUySsyz9bM0kkRc5JinNePcIUCVWBWnS1ayYFSImfs6gABS7Wg1yCr7V3T2xL/O+tpubFTPpRxEjsMKZk= X-Received: by 2002:a1f:dd01:0:b0:4cd:5091:f151 with SMTP id u1-20020a1fdd01000000b004cd5091f151mr7851913vkg.13.1708509604499; Wed, 21 Feb 2024 02:00:04 -0800 (PST) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> <865xypwu5e.fsf@gnu.org> <87il2kvbh5.fsf@epfl.ch> <878r3fz37e.fsf@epfl.ch> In-Reply-To: <878r3fz37e.fsf@epfl.ch> From: Liu Hui Date: Wed, 21 Feb 2024 18:00:00 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: "Basil L. Contovounesios" Content-Type: multipart/mixed; boundary="000000000000127fb90611e1641c" X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , kobarity@gmail.com, mattias.engdegard@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) --000000000000127fb90611e1641c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Feb 20, 2024 at 9:15=E2=80=AFPM Basil L. Contovounesios wrote: > > Liu Hui [2024-02-20 12:46 +0800] wrote: > > > On Mon, Feb 19, 2024 at 9:18=E2=80=AFPM Basil L. Contovounesios > > wrote: > >> > >> BTW, I have been seeing an IPython test failure on GNU/Linux: > >> Any pointers? > > > > I cannot reproduce the problem with Python 3.12 and IPython 8.21. Can > > you check the results with the following steps? Thanks. > > Thanks. These all work as expected in 'emacs -Q', which made me realise > what may be the problem: > > - the Emacs test suite runs under HOME=3D/nonexistent > - but PATH is unchanged > - I have the latest IPython installed locally using pipx: > $ ls -l $(which ipython) > lrwxrwxrwx 1 blc blc 53 Feb 20 11:46 > /home/blc/.local/bin/ipython -> > /home/blc/.local/share/pipx/venvs/ipython/bin/ipython > > This is confirmed by the following experiment: > > > Running 'make TEST_LOAD_EL=3Dno test/python-tests' now results in the > following output file: > > > In this case list(get_ipython().Completer.completions(...)) is empty. Thank you for the investigation! I didn't realize the problem is related to HOME=3D/nonexistent in 'make test'. Now I can also reproduce it. In fact, I found that the test failure was caused by Jedi, as it attempts to write cache to a non-existent directory. When Jedi is directly used as the completion backend, more test failures will be triggered: PYTHONSTARTUP=3D"$(python -m jedi repl)" make TEST_LOAD_EL=3Dno test/python= -tests If the cache directory is writable, all tests will pass: PYTHONSTARTUP=3D"$(python -m jedi repl)" XDG_CACHE_HOME=3D~/.cache make TEST_LOAD_EL=3Dno test/python-tests The attached patch should fix the problem. --000000000000127fb90611e1641c Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fix-Python-shell-completion-test-failures.patch" Content-Disposition: attachment; filename="0001-Fix-Python-shell-completion-test-failures.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lsvlab530 RnJvbSBhNjc3MzI1OGNmNmZlMWFjYzU1MjBmNTZlZjk0OGJhNjk3NWNiZTMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog V2VkLCAyMSBGZWIgMjAyNCAxMjo0MDowNiArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeCBQeXRo b24gc2hlbGwgY29tcGxldGlvbiB0ZXN0IGZhaWx1cmVzCgoqIHRlc3QvbGlzcC9wcm9nbW9kZXMv cHl0aG9uLXRlc3RzLmVsCihweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlci13aXRoLXNoZWxs KTogU2V0IFhER19DQUNIRV9IT01FCnRvIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeS4gKGJ1ZyM2ODU1 OSkKLS0tCiB0ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCB8IDE3ICsrKysrKysr KysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCBiL3Rl c3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCmluZGV4IGFmNmMxOTliNWJkLi42NDU0 Y2ZjYzJiNyAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwK KysrIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKQEAgLTYwLDEyICs2MCwx NyBAQCBweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlci13aXRoLXNoZWxsCiAgICAgICAgICAg IChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZW5hYmxlIG5pbCkpCiAgICAgICAgKHB5 dGhvbi1tb2RlKQogICAgICAgICh1bndpbmQtcHJvdGVjdAotICAgICAgICAgICAocHJvZ24KLSAg ICAgICAgICAgICAocnVuLXB5dGhvbiBuaWwgdCkKLSAgICAgICAgICAgICAoaW5zZXJ0ICxjb250 ZW50cykKLSAgICAgICAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQotICAgICAgICAgICAg IChweXRob24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0KQotICAgICAgICAgICAgICxAYm9k eSkKKyAgICAgICAgICAgOzsgUHJldmVudCB0ZXN0IGZhaWx1cmVzIHdoZW4gSmVkaSBpcyB1c2Vk IGFzIGEgY29tcGxldGlvbgorICAgICAgICAgICA7OyBiYWNrZW5kLCBlaXRoZXIgZGlyZWN0bHkg b3IgaW5kaXJlY3RseSAoZS5nLiwgdmlhCisgICAgICAgICAgIDs7IElQeXRob24pLiAgSmVkaSBu ZWVkcyB0byBzdG9yZSBjYWNoZSwgYnV0IHRoZQorICAgICAgICAgICA7OyAiL25vbmV4aXN0ZW50 IiBIT01FIGRpcmVjdG9yeSBpcyBub3Qgd3JpdGFibGUuCisgICAgICAgICAgIChlcnQtd2l0aC10 ZW1wLWRpcmVjdG9yeSBjYWNoZS1kaXIKKyAgICAgICAgICAgICAod2l0aC1lbnZpcm9ubWVudC12 YXJpYWJsZXMgKCgiWERHX0NBQ0hFX0hPTUUiIGNhY2hlLWRpcikpCisgICAgICAgICAgICAgICAo cnVuLXB5dGhvbiBuaWwgdCkKKyAgICAgICAgICAgICAgIChpbnNlcnQgLGNvbnRlbnRzKQorICAg ICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAgICAgICAgICAgIChweXRo b24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0KQorICAgICAgICAgICAgICAgLEBib2R5KSkK ICAgICAgICAgICh3aGVuIChweXRob24tc2hlbGwtZ2V0LWJ1ZmZlcikKICAgICAgICAgICAgKHB5 dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgogICAgICAgICAgICAgIChsZXQgKGtpbGwtYnVm ZmVyLWhvb2sga2lsbC1idWZmZXItcXVlcnktZnVuY3Rpb25zKQotLSAKMi4yNS4xCgo= --000000000000127fb90611e1641c-- From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 21 08:16:02 2024 Received: (at 68559) by debbugs.gnu.org; 21 Feb 2024 13:16:02 +0000 Received: from localhost ([127.0.0.1]:48026 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcmS9-00083r-P6 for submit@debbugs.gnu.org; Wed, 21 Feb 2024 08:16:02 -0500 Received: from mail-pj1-f44.google.com ([209.85.216.44]:46259) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcmS4-00083N-Sv for 68559@debbugs.gnu.org; Wed, 21 Feb 2024 08:16:00 -0500 Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-295c8b795e2so3867940a91.0 for <68559@debbugs.gnu.org>; Wed, 21 Feb 2024 05:15:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708521269; x=1709126069; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=z8jdS1zBlKJqYnqsWtEFLlT0lbjP1uJ5N4vsFM0wZxk=; b=iv6Wkr7ieo1BQhJicZdDJCtxhBipSK0MNxjOzVZNhsDy6X2iPkLKQcyCaM51nDEcTG nPwh35tsKBB0rsx7MGXf2IQIiBswj4pV5asCb7kHKJXMwsIW8XYrkj2qGPmmW1CXL1BG 8I85GWAZ2uLzko5aN7vIe+XRVutC0EOg5/ZcHVmXeSU17CAc1cPBZY2fcg429o1HvPCS KeqLMSNFoDiE0rAN/hkSP/YF4zrabb1LBYg1FO6UcwojNkk4YPDjy4IgP84oTpkGpxu1 pWJRIUNQfhjr3Q+ahaEkBORe9L4ozcCXSf/ECV3XrxkiNoyA5FLbHCGDiukLXCi31VTB zOBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708521269; x=1709126069; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=z8jdS1zBlKJqYnqsWtEFLlT0lbjP1uJ5N4vsFM0wZxk=; b=OdL3PT5dLTMq5TD5an9ZlNcMOJ0Pv4+dDZtSorlquGOsm3rfCbHm3zW1lvrX1B8v0T pX3NLgmxLSbDlz1Dze54YJ4cQwBNOmIV3XI8jm7R5PcXxOMJX+K9JyzFPvhQLqrLYufL aPLWDm2RLDzGCFiEvNhAB53P857OM219P+qmnlGmIQ1kUVlbnUGl1uIJCaVALoOlqDtA sBgGBdBmdGOjv42IX3erR9rw48IsWjeDatiQPOAA5+CvVWstXSJh/1U5pDnr6xpLssOd dgpy9K6BO7LXyyI0F3KS7TRJT2qwgA9jz2dToN9kahNmBq3MV1DPQh078hfdoyU9QbSs guyA== X-Forwarded-Encrypted: i=1; AJvYcCVmqoGlANybPeNnyFskLhAAZ6m0+gSPwbiapdUmEwmaFzqTrrowPBYDAzAi/eO+BFSZgMneDbW0kCuiK9WQ3hIjuespRY0= X-Gm-Message-State: AOJu0Yyk6zLU0rKCBUslR/liZ89uN0YjJ6XXZp0bg1rryOqtkRbM8INd 19k2mKZz+cVco3DrTs639rk5I0+IGv4dZoJY6lYVSyrpyxFs86Ju X-Google-Smtp-Source: AGHT+IH6UMBtAkUyRGYkIwugA/c6qSqsRRZ+6msUxNunMm01uUevQqvKW9XXywO9Otkj7TrSc9RB3Q== X-Received: by 2002:a17:90b:a44:b0:299:2434:e4b3 with SMTP id gw4-20020a17090b0a4400b002992434e4b3mr13178371pjb.39.1708521268508; Wed, 21 Feb 2024 05:14:28 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id sn6-20020a17090b2e8600b00299ef19177dsm1681474pjb.8.2024.02.21.05.14.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Feb 2024 05:14:27 -0800 (PST) Date: Wed, 21 Feb 2024 22:13:45 +0900 Message-ID: From: kobarity To: Mattias =?ISO-8859-1?Q?Engdeg=E5rd?= Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: Liu Hui , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) Mattias Engdeg=E5rd wrote: > 17 feb. 2024 kl. 14.33 skrev kobarity : > > On Mac, it might be better to set the default value of > > `python-shell-completion-native-enable' to nil. > Not sure why the inferior Python process doesn't act on a TAB being sent = to it. Is the tty somehow in a state that disables readline/libedit? Someth= ing that Emacs does when setting up the pty? On Mac, there are two independent problems. One problem, which existed before Liu's patch was applied, is that native completions cannot be enabled. The other problem is that the test now fails after applying Liu's patch. Suppressing echo back solves the latter, but not the former. Because of the former, leaving `python-shell-completion-native-enable' at the default setting of t will result in the warning. There are two completions methods, native and non-native. If native completions cannot be used, it falls back to non-native completions. Native completions is triggered by sending TAB character, while non-native completions is triggered by sending and evaluating __PYTHON_EL_get_completions(). As far as I have tried, native completions cannot be enabled for libedit-based readline package, even on Linux. So, there are two ways for Mac users to avoid the warning. One is to use gnureadline instead of libedit, and the other is to give up native completions and set `python-shell-completion-native-enable' to nil. This remains correct even with echo back disabled. > Of course from a software engineering point of view, it's silly to send w= hat essentially are edit keystrokes to Python and then screen-scrape the ou= tput. A proper interaction protocol would be the way to go, and would work = equally well on any platform including Windows. I think the protocol between python.el and inferior Python process is already platform independent. Protocol violations are echo back. > Thanks for your patches. I suggest we apply your set-tty-raw patch on mas= ter now since it cures the test failures without breaking anything else (on= Mac; I'm assuming no regression elsewhere). >=20 > Would you like me to do that for you? Yes, please. Thank you. I have no commit right. From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 21 09:56:04 2024 Received: (at 68559) by debbugs.gnu.org; 21 Feb 2024 14:56:04 +0000 Received: from localhost ([127.0.0.1]:49952 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rco0x-0002ox-Mg for submit@debbugs.gnu.org; Wed, 21 Feb 2024 09:56:04 -0500 Received: from mail-ej1-f43.google.com ([209.85.218.43]:39362) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rco0v-0002kh-3X for 68559@debbugs.gnu.org; Wed, 21 Feb 2024 09:56:02 -0500 Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-a28cfca3c45so240412266b.1 for <68559@debbugs.gnu.org>; Wed, 21 Feb 2024 06:55:38 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708527333; x=1709132133; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=uPEnid1BzKusoPKOD/A+8VxqFgkxfvgT1GcZc/fYhnk=; b=uT0t2J7ArKrRVmUgr3vIZnzy9Er00Ke2+D4nCMToV0YxNcMfz6qPmKELl5n0ISnkm9 aGrcVo9fFLwoI96qjFAcwdHwJGXUxZ5B8DeUuP04E2/f6aa6uCxn4+6M+rwx5h6FJQ9H +E7RPS4wrlU6YHq95E5wD/yEmlbMmS9fsc8STq9CDvB0bkrUlQB042pQley2t0WJH7qf kfQ/GXq76/jaj8Hfj86fuHh7NweahGqZXXqPhW40cy7Ni9JIbjH5emPc+fWuPYLywf6s nC5k56tz6g1EU/MzhkA96pUJr8Mrprrlg1BnZkIKpCeBdx5+ocbqQ6ES+8gP9gPTrLaK ymlw== X-Forwarded-Encrypted: i=1; AJvYcCW5eUQp0kgm9euvP6nswhCCoBfbQsiiCJV52xrklSPyMIWWu55PY8klcF65bbeeNSWzHHMnW1MU9bkpikcZgGD2dR59F2I= X-Gm-Message-State: AOJu0YwIy8NP5xYfUF0Bnuh/GERp8ZbShB7vuoqxSEsHgeCMwyWk/eXA jsDKExuoO8K/dsd9mvbPOtx4x/wrgdfJy5KAxHTDAJiwtV52zckf X-Google-Smtp-Source: AGHT+IHb/+/pBjvAPSrt9nPBKaSNdr7jJH6nZryioAZfJDHghIM7sd2AP33QHzVOtPOSU4oGnnHuTA== X-Received: by 2002:a17:907:779a:b0:a3e:625f:246 with SMTP id ky26-20020a170907779a00b00a3e625f0246mr6753560ejc.3.1708527332600; Wed, 21 Feb 2024 06:55:32 -0800 (PST) Received: from localhost ([2001:620:618:5c0:2:80b3:0:239]) by smtp.gmail.com with ESMTPSA id cu14-20020a170906ba8e00b00a3e553fe352sm4015861ejd.133.2024.02.21.06.55.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Feb 2024 06:55:32 -0800 (PST) From: "Basil L. Contovounesios" To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: (Liu Hui's message of "Wed, 21 Feb 2024 18:00:00 +0800") References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> <865xypwu5e.fsf@gnu.org> <87il2kvbh5.fsf@epfl.ch> <878r3fz37e.fsf@epfl.ch> Date: Wed, 21 Feb 2024 15:55:31 +0100 Message-ID: <87sf1leujg.fsf@epfl.ch> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , kobarity@gmail.com, mattias.engdegard@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) Liu Hui [2024-02-21 18:00 +0800] wrote: > The attached patch should fix the problem. Thanks! The patch fixes the error, but that's because python-shell-completion-at-point-ipython is now skipped: in particular, python-shell-readline-completer-delims evaluates to "\s\t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?" rather than the empty string. Any idea why that happens? > - (progn > - (run-python nil t) > - (insert ,contents) > - (goto-char (point-min)) > - (python-tests-shell-wait-for-prompt) > - ,@body) > + ;; Prevent test failures when Jedi is used as a completion > + ;; backend, either directly or indirectly (e.g., via > + ;; IPython). Jedi needs to store cache, but the > + ;; "/nonexistent" HOME directory is not writable. > + (ert-with-temp-directory cache-dir ^^^^^^^^^ Should this be an uninterned symbol instead? > + (with-environment-variables (("XDG_CACHE_HOME" cache-dir)) > + (run-python nil t) > + (insert ,contents) > + (goto-char (point-min)) > + (python-tests-shell-wait-for-prompt) > + ,@body)) > (when (python-shell-get-buffer) > (python-shell-with-shell-buffer > (let (kill-buffer-hook kill-buffer-query-functions) Thanks, -- Basil From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 21 13:21:45 2024 Received: (at 68559) by debbugs.gnu.org; 21 Feb 2024 18:21:45 +0000 Received: from localhost ([127.0.0.1]:59585 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcrE0-0008SR-QN for submit@debbugs.gnu.org; Wed, 21 Feb 2024 13:21:45 -0500 Received: from mail-lj1-f172.google.com ([209.85.208.172]:54751) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rcrDu-0008S9-T5 for 68559@debbugs.gnu.org; Wed, 21 Feb 2024 13:21:43 -0500 Received: by mail-lj1-f172.google.com with SMTP id 38308e7fff4ca-2d23d301452so11488171fa.1 for <68559@debbugs.gnu.org>; Wed, 21 Feb 2024 10:21:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708539610; x=1709144410; darn=debbugs.gnu.org; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:from:to:cc:subject:date:message-id:reply-to; bh=hWPIRiilO24q0vyvoYczr145JiBLNtlPIzFwyYkYRIQ=; b=ApAz70oqssR+B+Ts1RhyZYjRcebNh9pYhTUCgf6dYgWRsnAvIvdHZsG5bR5chPxzdc DenC9+cRO8pRenBgokSr351N/OkE5XKmT3CjRvMN39pjN2YbQm+wBvSikfquLUYw/vE1 EmCTQ6PCz4eknFuK8bQDCRS+yp1C3XH/NNVPg50jK8PYQcIB5Qq7WJSruEkbb20QkPoW 03Hjv/qVWAc+3GVp+2hjqi0i+rqN9a29/lTWgltiboyDKEFYR1m8xeari5E7Fawe+l95 7XnIUdlRUsTJaoluqQApraVGWbx8ZdFUqziQHGY/CBctWyzr/IwsbxPbv5GHKeX/gO9K VGIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708539610; x=1709144410; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hWPIRiilO24q0vyvoYczr145JiBLNtlPIzFwyYkYRIQ=; b=wwcqFvwh7S31ms0bRmx9wJMukiDcRvtXddrhsnTQ2Yxe31cQf37EMlLxIBRHJMp+MG lOLEHV4NMFlvMQL9jsFJCKwhB0jLqXWhB+wBsx4GTy6KlmiS869LbxdK2zrJhXGQ8V5q pUZ4eMzOP+5JPEKKXLu/MGnRiXXc4/RnGKbUJAO+Lr4bHEXnTppmqUKQ0l0PQyeZ0nkP hEifXiVQdkPMSL6WNiRdm9fMbQC1PC8JMvoN9tB8PIpJRLvHa03eIYSMQ2hTHf9DI3bx xDXK0D6Zqugux9fvDWrProxTZ6mC38qVvApwuAc7WlfJMaqlKvruee5aHuhcSn6KeyuL iOBQ== X-Forwarded-Encrypted: i=1; AJvYcCUnegLgky3A3FHVKxZuD9Qf+i5f5GrxIjQGnZSC1+pufHY5LcXi48+5nr63CV8r1QiWkkn0sG3ipkQbM9zKpKO5ZQWRpoE= X-Gm-Message-State: AOJu0Yz1/F//8fbsyxedm4/UjMAag+WIEgmJ+08wlpLNAEYRSq6fCQ3i ZZKh75g1eKh7ykcKxNp0/zPvrFajqcVpZPW6mUn/W9Yo3mbClm1y X-Google-Smtp-Source: AGHT+IFT9/IEn98jLfTK6cC3T3nQzvOfYazg//8BBmLtjdYw07v4Bg1Q/MzrGLO0fj7LIJrI4s2RvA== X-Received: by 2002:a2e:a7c3:0:b0:2d2:43f4:45b5 with SMTP id x3-20020a2ea7c3000000b002d243f445b5mr5685864ljp.52.1708539609868; Wed, 21 Feb 2024 10:20:09 -0800 (PST) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id f23-20020a2e3817000000b002d11e504744sm2004330lja.56.2024.02.21.10.20.08 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 21 Feb 2024 10:20:09 -0800 (PST) From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= Message-Id: <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> Content-Type: multipart/mixed; boundary="Apple-Mail=_BC7C9796-F23F-4145-BAAD-6B06DA8CEBD9" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#68559: [PATCH] Improve Python shell completion Date: Wed, 21 Feb 2024 19:20:08 +0100 In-Reply-To: To: kobarity References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: Liu Hui , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) --Apple-Mail=_BC7C9796-F23F-4145-BAAD-6B06DA8CEBD9 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii 21 feb. 2024 kl. 14.13 skrev kobarity : > As far as I have tried, native completions cannot be enabled for > libedit-based readline package, even on Linux. Did you find out why? Python responds nicely to TAB if run from a = terminal, so what is it that we do in Emacs that prevents it from doing = so? A TTY setting, or an environment variable (the TERM=3Ddumb)? > So, there are two ways for Mac users to avoid the warning. One is to > use gnureadline instead of libedit, and the other is to give up native > completions and set `python-shell-completion-native-enable' to nil. Preferably neither. Emacs should adapt to the system environment, and in = particular not warn about the default environment. A warning is an = indication of a possible risk or other problem, and there is none here. At most, python-mode could show a calm notice on the echo line but even = that is a stretch. What do you think about this rough patch? --Apple-Mail=_BC7C9796-F23F-4145-BAAD-6B06DA8CEBD9 Content-Disposition: attachment; filename=nowarn.diff Content-Type: application/octet-stream; x-unix-mode=0644; name="nowarn.diff" Content-Transfer-Encoding: 7bit diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 5501926e69d..bedc61408ef 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -4536,18 +4536,11 @@ python-shell-completion-native-turn-on-maybe ((python-shell-completion-native-setup) (when msg (message "Shell native completion is enabled."))) - (t (lwarn - '(python python-shell-completion-native-turn-on-maybe) - :warning - (concat - "Your `python-shell-interpreter' doesn't seem to " - "support readline, yet `python-shell-completion-native-enable' " - (format "was t and %S is not part of the " - (file-name-nondirectory python-shell-interpreter)) - "`python-shell-completion-native-disabled-interpreters' " - "list. Native completions have been disabled locally. " - "Consider installing the python package \"readline\". ")) - (python-shell-completion-native-turn-off msg)))))) + (t + (when msg + (message (concat "Python does not use GNU readline;" + " no completion in multi-line commands."))) + (python-shell-completion-native-turn-off nil)))))) (defun python-shell-completion-native-turn-on-maybe-with-msg () "Like `python-shell-completion-native-turn-on-maybe' but force messages." --Apple-Mail=_BC7C9796-F23F-4145-BAAD-6B06DA8CEBD9 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii > I think the protocol between python.el and inferior Python process is > already platform independent. Protocol violations are echo back. No, I meant a protocol that allows Emacs to act as a first-class Python = front-end, not simulate a terminal, send keystrokes, use heuristics to = determine what in the output stream is a prompt, REPL value, error, = completion etc. For example, it's a bit silly to input multi-line code in the REPL as a = sequence of individual single-line commands, when we actually are inside = a text editor that can edit multi-line Python code without a problem. (I'm not suggesting that you or anybody in particular should do this; = just that it's feasible. It would clearly be quite some work!) >> Thanks for your patches. I suggest we apply your set-tty-raw patch on = master now since it cures the test failures without breaking anything = else (on Mac; I'm assuming no regression elsewhere). >>=20 >> Would you like me to do that for you? >=20 > Yes, please. Done! --Apple-Mail=_BC7C9796-F23F-4145-BAAD-6B06DA8CEBD9-- From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 22 05:41:58 2024 Received: (at 68559) by debbugs.gnu.org; 22 Feb 2024 10:41:58 +0000 Received: from localhost ([127.0.0.1]:44040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rd6Wb-00049y-RR for submit@debbugs.gnu.org; Thu, 22 Feb 2024 05:41:58 -0500 Received: from mail-qk1-f181.google.com ([209.85.222.181]:49284) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rd6WZ-00049U-EL for 68559@debbugs.gnu.org; Thu, 22 Feb 2024 05:41:56 -0500 Received: by mail-qk1-f181.google.com with SMTP id af79cd13be357-787a2a14d9cso22239285a.2 for <68559@debbugs.gnu.org>; Thu, 22 Feb 2024 02:41:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708598427; x=1709203227; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=TReviYy6Lt5y/Oqrd4BR/6CK4FHqogySchmunY5S8nU=; b=Sb/auyGbd8QLa2mRR+XXKCndZh4ls1Dud0HDgrWf4r9TwRj8TAzV6kwS3zyPIwFdEs y5jfMkb3Ji5qHpjU+pAHGFZnbZQEe+jWwq9r30JY3BXAq1+4Peqgc80LQ/xvxSDbMyKZ Pi8Hq30N6NpxKJn4ZhIw5//0clVL9yfLESizJ611sV5Ur9ZDoleBJnpeBme3PdTh2kzL kQbITUvYfRKFSF+mIrYJfaGlF2VoIWvA771LnwUpvW+Z9nFdiElfErtMqDd6fkKVnV+G VJllOrUS972Qg2rO4AFj/GTHUu3HzMP2DPgO20hsPzhjcoCozFs4EGu8e+HQHS7htpGp i1CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708598427; x=1709203227; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TReviYy6Lt5y/Oqrd4BR/6CK4FHqogySchmunY5S8nU=; b=h6VhtlaD/YP+Otoh//x1SU6buL+CObaCGYYnGEEzfZ9KzFSAMS028A5MswnQ9zmMbe 9pDLT4Ab40H9jGJrjX8dsameO9tWK/dhGgUO4wGbOKHmBW9igwExS4RmKSplcGaAaT7k 8fssHu+gjgGKu9B1obSpEiCFQUonQZCB5rGjJx2VsSuRoY/485nvDc0K6QcyUMJGT+nS Lay15m4OeIASjY1pOY68RbSLYeKfBKr/H5W6AixBZKjxnN/ZY950FPg5yCVMfEa2s2yr UldNq/aiXMZnrlUAYGzqdHCzlfhRdBIjGvTiVI+ffslYTwXXoDq2LHst9BHJzBPU23cR YmFg== X-Forwarded-Encrypted: i=1; AJvYcCV4gCmzFPSj3uKNEvS5Mee5dU2KB8aCXPNFcqHjhMw2hAqw5MTFfQY+nrRib+w93VwsjUc6giTsP5syIdBwfBITv9UCVao= X-Gm-Message-State: AOJu0YxliWLiE4nDQdWggDdE4WzSTPoCqKu1YxJiWIYni0dhfpVG6U5g q+ypDZ4vP5B9fThm7W/gAzSUSEAlmo4Xl6Y308iklfbJ8da7WlVq5z60mRB5exO8BxN8nGhh3+B 6mtxqUkrfLTAV4GzjuWWO9IUPH41S1CSA6wkjIJ62cZ0= X-Google-Smtp-Source: AGHT+IGa9tkzrf5FRRkFYehqC8zFr33vpFBmONhVpXoJYS4sio23BqT6QsYNlj4uCdcfcC18m/YQnoWR1/jYgyOe1OA= X-Received: by 2002:a1f:66c1:0:b0:4c8:8149:848e with SMTP id a184-20020a1f66c1000000b004c88149848emr10087093vkc.5.1708597934711; Thu, 22 Feb 2024 02:32:14 -0800 (PST) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> <865xypwu5e.fsf@gnu.org> <87il2kvbh5.fsf@epfl.ch> <878r3fz37e.fsf@epfl.ch> <87sf1leujg.fsf@epfl.ch> In-Reply-To: <87sf1leujg.fsf@epfl.ch> From: Liu Hui Date: Thu, 22 Feb 2024 18:31:00 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: "Basil L. Contovounesios" Content-Type: multipart/mixed; boundary="000000000000f690350611f5f46a" X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , kobarity@gmail.com, mattias.engdegard@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) --000000000000f690350611f5f46a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Feb 21, 2024 at 10:55=E2=80=AFPM Basil L. Contovounesios wrote: > > Liu Hui [2024-02-21 18:00 +0800] wrote: > > > The attached patch should fix the problem. > > Thanks! The patch fixes the error, but that's because > python-shell-completion-at-point-ipython is now skipped: Only the native completion part is skipped for the reason below. > in particular, python-shell-readline-completer-delims evaluates to > "\s\t\n`~!@#$%^&*()-=3D+[{]}\\|;:'\",<>/?" rather than the empty string. "\s\t\n`..." is the delimiter used by rlcompleter, which is the default completer used by the readline. rlcompleter cannot complete module names or parameters, so in this case the native completion part is skipped. The test is intended to be used with Jedi as the completion backend, e.g. setting PYTHONSTARTUP=3D"$(python -m jedi repl)", or with a custom IPython completer defined in the PYTHONSTARTUP file. I have updated the patch to make the test use Jedi when possible. > > - (progn > > - (run-python nil t) > > - (insert ,contents) > > - (goto-char (point-min)) > > - (python-tests-shell-wait-for-prompt) > > - ,@body) > > + ;; Prevent test failures when Jedi is used as a completion > > + ;; backend, either directly or indirectly (e.g., via > > + ;; IPython). Jedi needs to store cache, but the > > + ;; "/nonexistent" HOME directory is not writable. > > + (ert-with-temp-directory cache-dir > ^^^^^^^^^ > Should this be an uninterned symbol instead? Fixed. --000000000000f690350611f5f46a Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fix-Python-shell-completion-test-failures.patch" Content-Disposition: attachment; filename="0001-Fix-Python-shell-completion-test-failures.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lswwmoe50 RnJvbSA4Y2Q4NTQwNGY1NjI3ZmZlNGI0MWMxOWYxZDQ2NjQyNWVhZmUzMWI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog V2VkLCAyMSBGZWIgMjAyNCAxMjo0MDowNiArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeCBQeXRo b24gc2hlbGwgY29tcGxldGlvbiB0ZXN0IGZhaWx1cmVzCgoqIHRlc3QvbGlzcC9wcm9nbW9kZXMv cHl0aG9uLXRlc3RzLmVsCihweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlci13aXRoLXNoZWxs KTogU2V0IFhER19DQUNIRV9IT01FCnRvIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KKHB5dGhvbi10 ZXN0cy0tcHl0aG9uc3RhcnR1cC1maWxlKTogTmV3IGZ1bmN0aW9uLgoocHl0aG9uLXNoZWxsLWNv bXBsZXRpb24tYXQtcG9pbnQtamVkaS1jb21wbGV0ZXIpCihweXRob24tc2hlbGwtY29tcGxldGlv bi1hdC1wb2ludC1pcHl0aG9uKTogVXNlIEplZGkgYXMgdGhlCm5hdGl2ZSBjb21wbGV0aW9uIGJh Y2tlbmQgd2hlbiBwb3NzaWJsZS4gIChidWcjNjg1NTkpCi0tLQogdGVzdC9saXNwL3Byb2dtb2Rl cy9weXRob24tdGVzdHMuZWwgfCA4NyArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIGIvdGVzdC9saXNwL3Byb2dt b2Rlcy9weXRob24tdGVzdHMuZWwKaW5kZXggYWY2YzE5OWI1YmQuLmM1YjFhYjkzMTQ0IDEwMDY0 NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbAorKysgYi90ZXN0L2xp c3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbApAQCAtNTUsMjEgKzU1LDI3IEBAIHB5dGhvbi10 ZXN0cy13aXRoLXRlbXAtYnVmZmVyLXdpdGgtc2hlbGwKIGFsd2F5cyBsb2NhdGVkIGF0IHRoZSBi ZWdpbm5pbmcgb2YgYnVmZmVyLiAgTmF0aXZlIGNvbXBsZXRpb24gaXMKIHR1cm5lZCBvZmYuICBT aGVsbCBidWZmZXIgd2lsbCBiZSBraWxsZWQgb24gZXhpdC4iCiAgIChkZWNsYXJlIChpbmRlbnQg MSkgKGRlYnVnIHQpKQotICBgKHdpdGgtdGVtcC1idWZmZXIKLSAgICAgKGxldCAoKHB5dGhvbi1p bmRlbnQtZ3Vlc3MtaW5kZW50LW9mZnNldCBuaWwpCi0gICAgICAgICAgIChweXRob24tc2hlbGwt Y29tcGxldGlvbi1uYXRpdmUtZW5hYmxlIG5pbCkpCi0gICAgICAgKHB5dGhvbi1tb2RlKQotICAg ICAgICh1bndpbmQtcHJvdGVjdAotICAgICAgICAgICAocHJvZ24KLSAgICAgICAgICAgICAocnVu LXB5dGhvbiBuaWwgdCkKLSAgICAgICAgICAgICAoaW5zZXJ0ICxjb250ZW50cykKLSAgICAgICAg ICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQotICAgICAgICAgICAgIChweXRob24tdGVzdHMt c2hlbGwtd2FpdC1mb3ItcHJvbXB0KQotICAgICAgICAgICAgICxAYm9keSkKLSAgICAgICAgICh3 aGVuIChweXRob24tc2hlbGwtZ2V0LWJ1ZmZlcikKLSAgICAgICAgICAgKHB5dGhvbi1zaGVsbC13 aXRoLXNoZWxsLWJ1ZmZlcgotICAgICAgICAgICAgIChsZXQgKGtpbGwtYnVmZmVyLWhvb2sga2ls bC1idWZmZXItcXVlcnktZnVuY3Rpb25zKQotICAgICAgICAgICAgICAgKGtpbGwtYnVmZmVyKSkp KSkpKSkKKyAgKGxldCAoKGRpciAobWFrZS1zeW1ib2wgImRpciIpKSkKKyAgICBgKHdpdGgtdGVt cC1idWZmZXIKKyAgICAgICAobGV0ICgocHl0aG9uLWluZGVudC1ndWVzcy1pbmRlbnQtb2Zmc2V0 IG5pbCkKKyAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLWVuYWJs ZSBuaWwpKQorICAgICAgICAgKHB5dGhvbi1tb2RlKQorICAgICAgICAgKHVud2luZC1wcm90ZWN0 CisgICAgICAgICAgICAgOzsgUHJldmVudCB0ZXN0IGZhaWx1cmVzIHdoZW4gSmVkaSBpcyB1c2Vk IGFzIGEgY29tcGxldGlvbgorICAgICAgICAgICAgIDs7IGJhY2tlbmQsIGVpdGhlciBkaXJlY3Rs eSBvciBpbmRpcmVjdGx5IChlLmcuLCB2aWEKKyAgICAgICAgICAgICA7OyBJUHl0aG9uKS4gIEpl ZGkgbmVlZHMgdG8gc3RvcmUgY2FjaGUsIGJ1dCB0aGUKKyAgICAgICAgICAgICA7OyAiL25vbmV4 aXN0ZW50IiBIT01FIGRpcmVjdG9yeSBpcyBub3Qgd3JpdGFibGUuCisgICAgICAgICAgICAgKGVy dC13aXRoLXRlbXAtZGlyZWN0b3J5ICxkaXIKKyAgICAgICAgICAgICAgICh3aXRoLWVudmlyb25t ZW50LXZhcmlhYmxlcyAoKCJYREdfQ0FDSEVfSE9NRSIgLGRpcikpCisgICAgICAgICAgICAgICAg IChydW4tcHl0aG9uIG5pbCB0KQorICAgICAgICAgICAgICAgICAoaW5zZXJ0ICxjb250ZW50cykK KyAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAgICAgICAgICAg ICAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9tcHQpCisgICAgICAgICAgICAgICAg ICxAYm9keSkpCisgICAgICAgICAgICh3aGVuIChweXRob24tc2hlbGwtZ2V0LWJ1ZmZlcikKKyAg ICAgICAgICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAgICAgICAg ICAobGV0IChraWxsLWJ1ZmZlci1ob29rIGtpbGwtYnVmZmVyLXF1ZXJ5LWZ1bmN0aW9ucykKKyAg ICAgICAgICAgICAgICAgKGtpbGwtYnVmZmVyKSkpKSkpKSkpCiAKIChkZWZtYWNybyBweXRob24t dGVzdHMtd2l0aC10ZW1wLWZpbGUgKGNvbnRlbnRzICZyZXN0IGJvZHkpCiAgICJDcmVhdGUgYSBg cHl0aG9uLW1vZGUnIGVuYWJsZWQgZmlsZSB3aXRoIENPTlRFTlRTLgpAQCAtNDg2MCwxNyArNDg2 NiwyOCBAQCBweXRob24tdGVzdHMtLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dAogICAoc2hvdWxk IChzdHJpbmc9ICJJR05PUkVDQVNFIgogICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3Ry aW5nIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKHBvaW50KSkpKSkKIAorKGRlZnVuIHB5dGhv bi10ZXN0cy0tcHl0aG9uc3RhcnR1cC1maWxlICgpCisgICJSZXR1cm4gSmVkaSByZWFkbGluZSBz ZXR1cCBmaWxlIGlmIFBZVEhPTlNUQVJUVVAgaXMgbm90IHNldC4iCisgIChvciAoZ2V0ZW52ICJQ WVRIT05TVEFSVFVQIikKKyAgICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgICAgIChpZiAoZXFs IDAgKGNhbGwtcHJvY2VzcyBweXRob24tdGVzdHMtc2hlbGwtaW50ZXJwcmV0ZXIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCB0IG5pbCAiLW0iICJqZWRpIiAicmVwbCIpKQor ICAgICAgICAgICAgKHN0cmluZy10cmltIChidWZmZXItc3RyaW5nKSkKKyAgICAgICAgICAiIikp KSkKKwogKGVydC1kZWZ0ZXN0IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LWplZGkt Y29tcGxldGVyICgpCiAgICJDaGVjayBpZiBQeXRob24gc2hlbGwgY29tcGxldGlvbiB3b3JrcyB3 aGVuIEplZGkgY29tcGxldGVyIGlzIHVzZWQuIgogICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUt ZmluZCBweXRob24tdGVzdHMtc2hlbGwtaW50ZXJwcmV0ZXIpKQotICAocHl0aG9uLXRlc3RzLXdp dGgtdGVtcC1idWZmZXItd2l0aC1zaGVsbAotICAgIiIKLSAgIChweXRob24tc2hlbGwtd2l0aC1z aGVsbC1idWZmZXIKLSAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9u KQotICAgICAoc2tpcC11bmxlc3MgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBs ZXRlci1kZWxpbXMgIiIpKQotICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSkK LSAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzKQotICAgICAocHl0aG9u LXRlc3RzLS1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQpKSkpCisgICh3aXRoLWVudmlyb25tZW50 LXZhcmlhYmxlcworICAgICAgKCgiUFlUSE9OU1RBUlRVUCIgKHB5dGhvbi10ZXN0cy0tcHl0aG9u c3RhcnR1cC1maWxlKSkpCisgICAgKHB5dGhvbi10ZXN0cy13aXRoLXRlbXAtYnVmZmVyLXdpdGgt c2hlbGwKKyAgICAgIiIKKyAgICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgorICAg ICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9uKQorICAgICAgKHNraXAt dW5sZXNzIChzdHJpbmc9IHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zICIi KSkKKyAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tbW9kdWxlKQorICAgICAgKHB5dGhv bi10ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzKQorICAgICAgKHB5dGhvbi10ZXN0cy0tY29t cGxldGlvbi1leHRyYS1jb250ZXh0KSkpKSkKIAogKGVydC1kZWZ0ZXN0IHB5dGhvbi1zaGVsbC1j b21wbGV0aW9uLWF0LXBvaW50LWlweXRob24gKCkKICAgIkNoZWNrIGlmIFB5dGhvbiBzaGVsbCBj b21wbGV0aW9uIHdvcmtzIGZvciBJUHl0aG9uLiIKQEAgLTQ4ODAsMTcgKzQ4OTcsMTkgQEAgcHl0 aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtaXB5dGhvbgogICAgICAoYW5kCiAgICAgICAo ZXhlY3V0YWJsZS1maW5kIHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlcikKICAgICAgIChlcWwgKGNh bGwtcHJvY2VzcyBweXRob24tc2hlbGwtaW50ZXJwcmV0ZXIgbmlsIG5pbCBuaWwgIi0tdmVyc2lv biIpIDApKSkKLSAgICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXItd2l0aC1zaGVsbAot ICAgICAiIgotICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCi0gICAgICAgKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9mZikKLSAgICAgICAocHl0aG9uLXRl c3RzLS1jb21wbGV0aW9uLW1vZHVsZSkKLSAgICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9u LXBhcmFtZXRlcnMpCi0gICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJu LW9uKQotICAgICAgIChza2lwLXVubGVzcyAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUt Y29tcGxldGVyLWRlbGltcyAiIikpCi0gICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1t b2R1bGUpCi0gICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzKQotICAg ICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCkpKSkpCisgICAgKHdp dGgtZW52aXJvbm1lbnQtdmFyaWFibGVzCisgICAgICAgICgoIlBZVEhPTlNUQVJUVVAiIChweXRo b24tdGVzdHMtLXB5dGhvbnN0YXJ0dXAtZmlsZSkpKQorICAgICAgKHB5dGhvbi10ZXN0cy13aXRo LXRlbXAtYnVmZmVyLXdpdGgtc2hlbGwKKyAgICAgICAiIgorICAgICAgIChweXRob24tc2hlbGwt d2l0aC1zaGVsbC1idWZmZXIKKyAgICAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRp dmUtdHVybi1vZmYpCisgICAgICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSkK KyAgICAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycykKKyAgICAgICAg IChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbikKKyAgICAgICAgIChza2lw LXVubGVzcyAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyAi IikpCisgICAgICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSkKKyAgICAgICAg IChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycykKKyAgICAgICAgIChweXRob24t dGVzdHMtLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCkpKSkpKQogCiAMCiA7OzsgUERCIFRyYWNr IGludGVncmF0aW9uCi0tIAoyLjI1LjEKCg== --000000000000f690350611f5f46a-- From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 22 09:05:24 2024 Received: (at 68559) by debbugs.gnu.org; 22 Feb 2024 14:05:24 +0000 Received: from localhost ([127.0.0.1]:56924 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rd9hT-0005Jb-JW for submit@debbugs.gnu.org; Thu, 22 Feb 2024 09:05:24 -0500 Received: from mail-wr1-f51.google.com ([209.85.221.51]:38304) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rd9hR-0005JE-8W for 68559@debbugs.gnu.org; Thu, 22 Feb 2024 09:05:21 -0500 Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-33d4efb419bso715002f8f.1 for <68559@debbugs.gnu.org>; Thu, 22 Feb 2024 06:04:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708610692; x=1709215492; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gs76sufCzkBIAiwloeaOTDI+HtWWQXsr4XFL72cBSPU=; b=EVCwA4BeD4US6WSUwSkVy0h8eQCwa1yHpNz7Atjz0W8dQDJRut4MnTMG+KlIiZ0tA2 3R92EZZcZ0NpCC6eCtKzoOTDhqBeaAyLY25wzjGlzSvyngRx+QWUyAj1EmEeDx+hraMM 3Uozo0mJO3ZFKe0Db25RU4laV8MZ1mE6xWWIKGqgtzCwNnm+CQWTfDxfVVKDEq5WMYUG AvXxQrAavTk6ov+r/d5CYhjOFTjeW04DPc3bSoPHoU7c9JZcIdtWZRG+4CzFpPkyROyS /SWW5zP15EJ79npMM3EyPSVAl/5gMIsKLy5wy2G/PSAZ8p6tGaisJ2V8KwQya0PpTZmF pnbA== X-Forwarded-Encrypted: i=1; AJvYcCVzJiDDx6jtXI2wvl47x+VmpIGPbkyzDuiHr/z1IjUPSy8NaYXWFOh0NH/gnnjgMMSGyx3WLo2O4r8fAMZkDeV7wmHZR+s= X-Gm-Message-State: AOJu0Yzw0M6epvYAMfm+k8B3m9RRdxQzNCH7GucRzhUWDifSwusNqgfd lNHt+L3AOpVfdZC+JrG6KrqF/9tR0vTpoR3c2FIf+bj+46JyXHDzCGdbP8ahjwE= X-Google-Smtp-Source: AGHT+IExOgz44OgprSJoNRoO66aV0F2Huq4TettVP0GTqcaf9eZf4tjKUv4OlqpY0a1/+QQQ7xIa/w== X-Received: by 2002:a17:906:3152:b0:a3f:a12:f8e6 with SMTP id e18-20020a170906315200b00a3f0a12f8e6mr1451372eje.6.1708610200172; Thu, 22 Feb 2024 05:56:40 -0800 (PST) Received: from localhost ([2001:620:618:5c0:2:80b3:0:239]) by smtp.gmail.com with ESMTPSA id tx17-20020a1709078e9100b00a3f4bafa6fbsm1434037ejc.168.2024.02.22.05.56.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Feb 2024 05:56:39 -0800 (PST) From: "Basil L. Contovounesios" To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: (Liu Hui's message of "Thu, 22 Feb 2024 18:31:00 +0800") References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> <865xypwu5e.fsf@gnu.org> <87il2kvbh5.fsf@epfl.ch> <878r3fz37e.fsf@epfl.ch> <87sf1leujg.fsf@epfl.ch> Date: Thu, 22 Feb 2024 14:56:38 +0100 Message-ID: <877ciwwqjt.fsf@epfl.ch> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , kobarity@gmail.com, mattias.engdegard@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) Liu Hui [2024-02-22 18:31 +0800] wrote: > On Wed, Feb 21, 2024 at 10:55=E2=80=AFPM Basil L. Contovounesios > wrote: >> >> Liu Hui [2024-02-21 18:00 +0800] wrote: >> >> > The attached patch should fix the problem. >> >> Thanks! The patch fixes the error, but that's because >> python-shell-completion-at-point-ipython is now skipped: > > Only the native completion part is skipped for the reason below. > >> in particular, python-shell-readline-completer-delims evaluates to >> "\s\t\n`~!@#$%^&*()-=3D+[{]}\\|;:'\",<>/?" rather than the empty string. > > "\s\t\n`..." is the delimiter used by rlcompleter, which is the > default completer used by the readline. rlcompleter cannot complete > module names or parameters, so in this case the native completion part > is skipped. > > The test is intended to be used with Jedi as the completion backend, > e.g. setting PYTHONSTARTUP=3D"$(python -m jedi repl)", or with a custom > IPython completer defined in the PYTHONSTARTUP file. I have updated the > patch to make the test use Jedi when possible. Thanks, looks fine to me and runs without issue. The python-shell-completion-at-point-ipython test is still skipped, with or without specifying PYTHONSTARTUP=3D"$(python -m jedi repl)", but like you suggest that's not necessarily a problem. I'm guessing you don't have write access to emacs.git, but have signed the CA? If so, and if there are no other comments/objections in a few days, I'll apply the patch in your name. Thanks, --=20 Basil From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 22 11:18:00 2024 Received: (at 68559) by debbugs.gnu.org; 22 Feb 2024 16:18:00 +0000 Received: from localhost ([127.0.0.1]:38747 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rdBlk-0003YY-Ku for submit@debbugs.gnu.org; Thu, 22 Feb 2024 11:18:00 -0500 Received: from mail-pl1-f182.google.com ([209.85.214.182]:61495) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rdBlZ-0003XA-QN for 68559@debbugs.gnu.org; Thu, 22 Feb 2024 11:17:46 -0500 Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-1d8da50bffaso42530895ad.2 for <68559@debbugs.gnu.org>; Thu, 22 Feb 2024 08:17:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708618577; x=1709223377; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=ObafXlR6NK6kBJl3IQMwrU8V43iW+cPOZbzYZesrFrE=; b=Zqpe3Do85mq1WeywHJfeWLdXbx0+0o7LeV5eLQ1QwlgADM7bP5mbctFNBfcvH130Tj xrGz/9A7OxjGQIfKqbQ2EnKGK7RKnNytXqsuDEgJpkYS3H55HdcbQKSy0fRYmJtUHPI4 NK2Zm4yrzpcitubjXtz9+8/B1UM4aEW2RVErJDB1ISYTbNZCIOc3PCtTgjDG6Thvd8qo mkKyQ5o7HSSDbr0JQ5Rb+fwshF+hWTb8UCILJqCeoPTuCRwhx6oJZxl2bjGAfmUqDu5n 6/fuddZO22NAMy7orUhOf0UT9BrJwEIiNefD7Uas+vrC32lD4rb7JYH7o6cdg2bcz33M bzVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708618577; x=1709223377; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ObafXlR6NK6kBJl3IQMwrU8V43iW+cPOZbzYZesrFrE=; b=nThhzllUJA6pjOMLmN2yzmjmvR+ShC5sR8gjuEm7vXZTn23a44B++3oKqz3s79Gjue 7feYlnSYYZkxRAxoSV2CJJNmTO2oO1vQxSnQfkXWVOCMgm7+ELggAIEJdzt4klqzbvov JugvWJZq6mFw/kPLe/qQ9/OeVBmDTP8Rwm6K2vB+Z/GOY5wibdUp6t6MkFmxnVO0IUWz BT5FQ61Gr9/DN6EmSjzGuCalZuAPx0ZEoL8zMNzuo+CdjHDsTSa2bzbLrICuYaR0V5Nc HxV531AijOprH73nPJF27/TrpXqRQeA/iU/ymtf1eF/P6MlrYYN456h4w/xmqDz3OAg1 q5wA== X-Forwarded-Encrypted: i=1; AJvYcCV8O8k38gV80bfzTaJH8nFr7ARJAUmuLMhvqZ/cQIvHSH30R7VOOwFmxBu7N1b0ZEDs9dJB2Fhq9IWd4TcIgj7vAX84zuw= X-Gm-Message-State: AOJu0YxNXCeY9Xq6DR4Dcfdmci2NnsOa+hbQzwI0+KcSdg3InhO7jQKv qaKgAg6aCSG8Bj1v0lU6X59V0lxk/2cFMjOwjlLJSP1Z95as7aLt X-Google-Smtp-Source: AGHT+IFIdlv5nD/8RxNybt0yaQnd5tFcLiBx5+24NwUhGApc+wFMYUC8FjeIjcB9bvTcKX9eZzSgxg== X-Received: by 2002:a17:903:230f:b0:1dc:15f5:fddf with SMTP id d15-20020a170903230f00b001dc15f5fddfmr10744027plh.7.1708618576638; Thu, 22 Feb 2024 08:16:16 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id l4-20020a170902d04400b001d949e663d5sm10181666pll.31.2024.02.22.08.16.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Feb 2024 08:16:15 -0800 (PST) Date: Fri, 23 Feb 2024 01:15:58 +0900 Message-ID: From: kobarity To: Mattias =?ISO-8859-1?Q?Engdeg=E5rd?= Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 68559 Cc: Liu Hui , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) Mattias Engdeg=E5rd wrote: > 21 feb. 2024 kl. 14.13 skrev kobarity : > > As far as I have tried, native completions cannot be enabled for > > libedit-based readline package, even on Linux. > Did you find out why? Python responds nicely to TAB if run from a termina= l, so what is it that we do in Emacs that prevents it from doing so? A TTY = setting, or an environment variable (the TERM=3Ddumb)? No, not exactly, but I don't think it is related to terminal settings. python.el does not parse the completion candidates shown on the terminal. Instead, it expects the candidates in a particular format, which I call the protocol between python.el and inferior Python process. __PYTHON_EL_native_completion_setup() defined in `python-shell-completion-native-setup' sets up the completer to do so. We can test it by removing empty lines and pasting into Python REPL outside Emacs. An example of typing "ra" and TAB using readline would look like this. >>> raraise range 0__dummy_completion__ 1__dummy_completion__ >>> ra However, when I use libedit-based readline and remove the raise line in __PYTHON_EL_native_completion_setup(), it behaves like this. >>> raraise range Please note that there is no dummy completions, and the new prompt is not shown. When I hit TAB again, it would be like this. >>> raraise range raise range 0__dummy_completion__ 0__dummy_completion__ 0__dummy_completion__ 1__dummy_= completion__ >>> ra I think this difference in behavior is the reason why Native completions does not work with libedit. > > So, there are two ways for Mac users to avoid the warning. One is to > > use gnureadline instead of libedit, and the other is to give up native > > completions and set `python-shell-completion-native-enable' to nil. >=20 > Preferably neither. Emacs should adapt to the system environment, and in = particular not warn about the default environment. A warning is an indicati= on of a possible risk or other problem, and there is none here. >=20 > At most, python-mode could show a calm notice on the echo line but even t= hat is a stretch. What do you think about this rough patch? Personally, I think this patch would be fine. I think we can also improve Non-native completions. Current implementation sends the definition of __PYTHON_EL_get_completions() every time. However, sending it once during initialization should be sufficient. Worse, if the number of characters sent exceeds `comint-max-line-length', it will be sent via file. This is happening in your environment. Here is the log you presented. Test python-completion-at-point-1 backtrace: json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 Thanks to the echo back, we can see __PYTHON_EL_eval_file() was used. > > I think the protocol between python.el and inferior Python process is > > already platform independent. Protocol violations are echo back. >=20 > No, I meant a protocol that allows Emacs to act as a first-class Python f= ront-end, not simulate a terminal, send keystrokes, use heuristics to deter= mine what in the output stream is a prompt, REPL value, error, completion e= tc. >=20 > For example, it's a bit silly to input multi-line code in the REPL as a s= equence of individual single-line commands, when we actually are inside a t= ext editor that can edit multi-line Python code without a problem. >=20 > (I'm not suggesting that you or anybody in particular should do this; jus= t that it's feasible. It would clearly be quite some work!) I am not opposed to this approach, but as you wrote, it is very different from the current inferior Python implementation. Jupyter-emacs's approach may be similar to some extent. It uses zmq as the communication channel. https://github.com/emacs-jupyter/jupyter > >> Thanks for your patches. I suggest we apply your set-tty-raw patch on = master now since it cures the test failures without breaking anything else = (on Mac; I'm assuming no regression elsewhere). > >> Would you like me to do that for you? > > Yes, please. > Done! Thank you! From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 23 06:02:02 2024 Received: (at 68559) by debbugs.gnu.org; 23 Feb 2024 11:02:02 +0000 Received: from localhost ([127.0.0.1]:59367 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rdTJY-0005cF-VM for submit@debbugs.gnu.org; Fri, 23 Feb 2024 06:02:02 -0500 Received: from mail-lf1-f54.google.com ([209.85.167.54]:61779) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rdTJW-0005bs-TK for 68559@debbugs.gnu.org; Fri, 23 Feb 2024 06:01:59 -0500 Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-512cc3ea7a5so183463e87.3 for <68559@debbugs.gnu.org>; Fri, 23 Feb 2024 03:01:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708686029; x=1709290829; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=Bd3vIYFsuU5DsA5DzTlbtA5AxNtXZmS98TBTwLy3K30=; b=mkSto2NJQ1TnaYssnyi6FRaBjK0vfPCBvskpgrEzGI8dDUQtpX3TxIaTysU0E5ZsSk Ux8jG6cJAuLtAyGbs8SnqTtGAwdIDgdnvFv3KGMggDgxGfjxb22y6+zHldwvmeCMpwTM 8iARmu+Q9M0DBKPTiStGkLVMBvNjaCsDab2fmTFeaWOED36EH4sP0kqZGllT/y7otS89 BR2qR8WvU/AMFBRraUmuGtiwWsrWfgJzntrSMM4AWwzaWsxdSGEqRgEbdHTinYKo9SKv Kn8Bgp5QKMa16O6ZAM6jvGLt9zkaMtmdoOvWwhtQLqF5sthx2HHqHBiX0uuTqZHjCblK 3C+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708686029; x=1709290829; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Bd3vIYFsuU5DsA5DzTlbtA5AxNtXZmS98TBTwLy3K30=; b=JX2Lo2cRaxsir3PF96kLtKBwz2FurbG0fP1Q48Vee6cX9EQ346mncVYiajO4GGL8IK MZIYOL/uHap7d5m7XYmnMcX/zO8qAUPPsaMchvvCc9VH4P6iQO4QbjFVSVXLgjcbwQLv 7ryPSd/Z2oHjh0FZoayYrVSUqo1RRaMk2gm0yRR6nGHwTs0uK7nhxIu7KpdIJaDq3TAs ysmKVQW5mbLE7/AzMMGm3oGtFyRhOpl0tmLtdANcKwCFO9dsb9El/thPPHoRlOmYTdcz TCEArVAsHf7W/EA+8PK18a7GBuA9VOfvrYgRJV7yOBDYIlO5sygd2+Y0qtzPJBMgttOc e7Mw== X-Forwarded-Encrypted: i=1; AJvYcCUspWYNxzcffb5mWFYgwABRHx3Vk+TDxHvznN2DeLHNajSQmcF9Jq9GjyeezxWwHiABvszWr7SpTbNNUZ7jMDJSyvtaI68= X-Gm-Message-State: AOJu0Yxicjz6rnLnB8i44OeyVei/BEFOpwNi+YSEvJ11JEZJE3FlI/3Z Xojqq32fParUW4MBFPdniYJ+sd6R1/nqAnR4Aw8Ged0FZ0QsOPXE X-Google-Smtp-Source: AGHT+IFTfcNmkydNTlu2Tulq9PhKM7Se6oEmL1Z1BMYiQc9X+RK4MmE3rW0XJWDlJWB6480XvGtGAA== X-Received: by 2002:a05:6512:124c:b0:512:d7e8:7046 with SMTP id fb12-20020a056512124c00b00512d7e87046mr1421127lfb.42.1708686029021; Fri, 23 Feb 2024 03:00:29 -0800 (PST) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id cf7-20020a056512280700b00512d814ffffsm799360lfb.15.2024.02.23.03.00.28 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 23 Feb 2024 03:00:28 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#68559: [PATCH] Improve Python shell completion From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: Date: Fri, 23 Feb 2024 12:00:27 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <7150E568-B07D-4D92-8073-979387553394@gmail.com> References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> To: kobarity X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: Liu Hui , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) 22 feb. 2024 kl. 17.15 skrev kobarity : >> Did you find out why? Python responds nicely to TAB if run from a = terminal, so what is it that we do in Emacs that prevents it from doing = so? A TTY setting, or an environment variable (the TERM=3Ddumb)? >=20 > No, not exactly, but I don't think it is related to terminal settings. Well it must be something. I'll see if I can make sense of it. > I think this difference in behavior is the reason why Native > completions does not work with libedit. Thanks for explaining. > Personally, I think this patch would be fine. Thank you, now pushed to master. > I think we can also improve Non-native completions. Current > implementation sends the definition of __PYTHON_EL_get_completions() > every time. However, sending it once during initialization should be > sufficient. Worse, if the number of characters sent exceeds > `comint-max-line-length', it will be sent via file. This is happening > in your environment. Here is the log you presented. >=20 > Test python-completion-at-point-1 backtrace: > json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 >=20 > Thanks to the echo back, we can see __PYTHON_EL_eval_file() was used. Right. (The need for a file is just an artefact of Comint limitations, = isn't it?) > I am not opposed to this approach, but as you wrote, it is very > different from the current inferior Python implementation. > Jupyter-emacs's approach may be similar to some extent. It uses zmq > as the communication channel. Thank you, yes, in a sense it's a (small) step towards a more = notebook-like interaction model, but Comint already has some of that. = This problem is not unique to Python: other REPLs have to solve the = problem of multi-line input as well, and it would serve the user if they = all worked in the same way (as far as the language differences allow). In Python's case, it would liberate us from the constraints of the = standard terminal REPL. From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 23 08:09:05 2024 Received: (at 68559) by debbugs.gnu.org; 23 Feb 2024 13:09:05 +0000 Received: from localhost ([127.0.0.1]:37658 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rdVIW-0008Bl-IV for submit@debbugs.gnu.org; Fri, 23 Feb 2024 08:09:05 -0500 Received: from mail-ot1-f47.google.com ([209.85.210.47]:54769) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rdVIU-0008B9-KU for 68559@debbugs.gnu.org; Fri, 23 Feb 2024 08:09:03 -0500 Received: by mail-ot1-f47.google.com with SMTP id 46e09a7af769-6e0f43074edso432088a34.1 for <68559@debbugs.gnu.org>; Fri, 23 Feb 2024 05:08:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708693653; x=1709298453; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=yKG6zoJAz7gxK3Ve/jRB61anhjfBH9eJuytL5u7Epyw=; b=Jedl58PFRuf3JvM31gSHcIdqldTwPJ7fqyoCURiMAjx8ybIaf4PP6mGJunJbxCNvbZ 8V3aKedjVVuEVcEj+QiH3wE/qMm/kXgfY5U2zoQNwFGFl65JoQIK0feKbCKKH9W8sCS8 V5IwqtT2eyRM4ckKVp0wIra+tSnhlndM3RH2NQi7djvOBc6rF6rtUz3N/bcb0Nep7wuD DuWOeryC+WjTIPcVsuDtuAX28sKyinJxSLzkc3n8PRe8PmJ+etLJXlPI0TtkkUUQDPM0 OFY1Fo/9Ddm5Ez0U5F0iTBZKx1Mx85AFGTkr3GD+VGp/V5l9ygv65SG/cX28A2isa7EZ E8qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708693653; x=1709298453; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yKG6zoJAz7gxK3Ve/jRB61anhjfBH9eJuytL5u7Epyw=; b=MjT0qGioowo7MBhqz12F00CgzuX4EzI1VyyILCM6xRxUCJ3+bm6k6PPo41HTxsvbi+ +ShT0iSGWSBjqy0GzwQHfZUREb7F8xSPDj5IwHa5VFLTvEK4GVG2F09MS5wP9ferpVDh O8QPhVncMV6dqmk6KjpvOzdecR5T1UeO3j80g6we3sizcpBVb/N6H/pmdofOXtCW+or2 yDnVr6yOHfuKjU0/z6Js8XSmUQpS/TnAHiK0E9UgnZk6+l1/dPfMGCIYh1EQYw5j37LH fDZy6xMfbfF7UWyY9UaS1a6ZQVrg5HoL9bF9WM8pKg/2oCMRkjbZ1DwmEJiV2rTASYGr oh9A== X-Forwarded-Encrypted: i=1; AJvYcCWRJQ8caR8MzQH0x3oHBrmK7KETMDyC+VJGqaQGznsJZrG1YGk9qWq8eVxbzpOctPpXJT3Hycp50jw6HwEK0VE90Aa44Tc= X-Gm-Message-State: AOJu0YxKdFE7Fkja4N8TY9v9F2vLNwd2d82wM8aDmrInuAmNnAuzjT7o GlIqBv6OdFmeJoKLADVBZtxylE63UWEgvkkCgwiMeTIuNHG4tlaKwXc0ASHfEX+4h4fk/+BvYlY 52HfKGF+SoyOpMNti+7UKmHx0EKk= X-Google-Smtp-Source: AGHT+IHXb/FAtusBx6IdpQxMPZ7lvst4U189YfNtbCCq9S8+UTsCBelFXXacID34RbWsrHarcWW3yyFoqHB2UgiqyY8= X-Received: by 2002:a05:6808:d4d:b0:3c0:371d:3504 with SMTP id w13-20020a0568080d4d00b003c0371d3504mr2039926oik.5.1708693653177; Fri, 23 Feb 2024 05:07:33 -0800 (PST) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> <865xypwu5e.fsf@gnu.org> <87il2kvbh5.fsf@epfl.ch> <878r3fz37e.fsf@epfl.ch> <87sf1leujg.fsf@epfl.ch> <877ciwwqjt.fsf@epfl.ch> In-Reply-To: <877ciwwqjt.fsf@epfl.ch> From: Liu Hui Date: Fri, 23 Feb 2024 21:07:22 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: "Basil L. Contovounesios" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , kobarity@gmail.com, mattias.engdegard@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On Thu, Feb 22, 2024 at 9:56=E2=80=AFPM Basil L. Contovounesios wrote: > > Liu Hui [2024-02-22 18:31 +0800] wrote: > > > On Wed, Feb 21, 2024 at 10:55=E2=80=AFPM Basil L. Contovounesios > > wrote: > >> > >> Liu Hui [2024-02-21 18:00 +0800] wrote: > >> > >> > The attached patch should fix the problem. > >> > >> Thanks! The patch fixes the error, but that's because > >> python-shell-completion-at-point-ipython is now skipped: > > > > Only the native completion part is skipped for the reason below. > > > >> in particular, python-shell-readline-completer-delims evaluates to > >> "\s\t\n`~!@#$%^&*()-=3D+[{]}\\|;:'\",<>/?" rather than the empty strin= g. > > > > "\s\t\n`..." is the delimiter used by rlcompleter, which is the > > default completer used by the readline. rlcompleter cannot complete > > module names or parameters, so in this case the native completion part > > is skipped. > > > > The test is intended to be used with Jedi as the completion backend, > > e.g. setting PYTHONSTARTUP=3D"$(python -m jedi repl)", or with a custom > > IPython completer defined in the PYTHONSTARTUP file. I have updated the > > patch to make the test use Jedi when possible. > > Thanks, looks fine to me and runs without issue. > > The python-shell-completion-at-point-ipython test is still skipped, with > or without specifying PYTHONSTARTUP=3D"$(python -m jedi repl)", but like > you suggest that's not necessarily a problem. I have no idea why the test is skipped. You may still check if native completion works for IPython with following steps: 1. PYTHONSTARTUP=3D"$(python -m jedi repl)" emacs -Q 2. start Python shell with IPython interpreter, i.e. (setq python-shell-interpreter "ipython") (setq python-shell-interpreter-args "-i --simple-prompt") M-x run-python There should be text "REPL completion using Jedi xxx" before the first prompt in the Python shell buffer, and a message "Shell native completion is enabled.". 3. type "import ab"/"open(enc" and press TAB expected result: "import abc"/"open(encoding=3D" > I'm guessing you don't have write access to emacs.git, but have signed > the CA? If so, and if there are no other comments/objections in a few > days, I'll apply the patch in your name. Yes, I've signed the CA. Thanks. > Is your GitHub username ilupin by any chance? > > I ask because there is one commit in emacs.git from someone with the > same name as you, but with the email address > ilupin@users.noreply.github.com (I'm guessing the commit was imported > from eglot.git). > > If that was from you, do you have any objection to me mapping > ilupin@users.noreply.github.com to liuhui1610@gmail.com in the .mailmap > file in emacs.git? Then all commits will show up under a single name > and email address. Yes. I have no objection, thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 23 09:40:56 2024 Received: (at 68559) by debbugs.gnu.org; 23 Feb 2024 14:40:56 +0000 Received: from localhost ([127.0.0.1]:42471 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rdWjP-0006Sk-SU for submit@debbugs.gnu.org; Fri, 23 Feb 2024 09:40:56 -0500 Received: from mail-pl1-f179.google.com ([209.85.214.179]:52379) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rdWjN-0006SM-K3 for 68559@debbugs.gnu.org; Fri, 23 Feb 2024 09:40:54 -0500 Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-1dc29f1956cso6060925ad.0 for <68559@debbugs.gnu.org>; Fri, 23 Feb 2024 06:40:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708699164; x=1709303964; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=7wbIm00xqxoaEsmvOtlakQ2k2rMsyoM4GR/9l4LAqvc=; b=nCL0mPlhTGWG779kEpWD34SoNuysm4908S75bBWLk45RNojjJhcoTpsqGnDnuny333 duZOSJNQhNPorXvHW3cnugu5nAlV+cBoBc8tKQnJeV+ON0QX/SDmOFbEpXwokiaV7t/t wPATYO0a8G3J3KkXXxEqeOiNAR08kpZZSO2FXLEDWfZ6CR0OFcqkXCV8sV4BxMr1IwuW A1bafPjSqaBUTjrRYDbnJLqjDM6DfEdSDHCkTKmEr71NddjW8UdfzukNWLN9NEWF7PEb xbQq4zMuJDK6izNZsjeggz9BqQvBHwVGnerYBTrEUP5QtObomfDTGjkgTn7xUyBOnZpw 3n0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708699164; x=1709303964; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=7wbIm00xqxoaEsmvOtlakQ2k2rMsyoM4GR/9l4LAqvc=; b=XkbqTsRxS2xK0csLTHwBvHOSsWE3yb4fOABdn4dYeefcPB3r23iD/Ih9Tssh7upbZ3 s7jNYUjyRTakhyy3R3/U2MDsSfZirPftgHKuuSliOfgYLm/GU4VsA5tKWcHe/LyYPQI8 JINLXpjY2IlbSRNts6novV4DxHAvn49B63kQLMJfmTNF1CNfYczjL2nwl4NpWeGd/bnv KL1T5O6WNy/0dDJEei0q2KLH4byLo3RaDKybbxVPUVKkde2HsHmstBNWhk20H5RLXxHr iBtnn9S/tnkKCX+39hugPAc9OELnCl62IaherSw4dBB5OmI56+ZKWzNMY4gYHw/Eh9iZ aSXg== X-Forwarded-Encrypted: i=1; AJvYcCXeCNFVTm2bD8z7+UYQpDZPowUuivwfcqqppB8I+VNYmMYoNIg7gCsTtOYI5/A4MqNnIF2DSk0ibopOz3wKTcE+E3vlO3g= X-Gm-Message-State: AOJu0YyHSSpmRcNhivYUv3cW9Ter7ku9NglpGmHxP7fIV+k2Y/iF68dO NxhoUVOAPoZnPaveVihCbmT/1Q8xh4lO5EvIFrNRkj4148VzCDSm X-Google-Smtp-Source: AGHT+IGzkxuCDfMldW9BoW0Inua7leCMhk39HEOhijs7EFQDQbE9n7uXSjHJYwU0WHeGpQhFXqLU5w== X-Received: by 2002:a17:902:e548:b0:1dc:3261:ab7 with SMTP id n8-20020a170902e54800b001dc32610ab7mr2139789plf.49.1708699164003; Fri, 23 Feb 2024 06:39:24 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id jc13-20020a17090325cd00b001db6de983d3sm11743295plb.85.2024.02.23.06.39.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Feb 2024 06:39:23 -0800 (PST) Date: Fri, 23 Feb 2024 23:39:05 +0900 Message-ID: From: kobarity To: Liu Hui , Mattias =?ISO-8859-1?Q?Engdeg=E5rd?= Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: <7150E568-B07D-4D92-8073-979387553394@gmail.com> References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Liu, I noticed that with Non-native completions, Jedi completion is not enabled even if PYTHONSTARTUP is set and "REPL completion using Jedi 0.18.2" is shown in inferior Python. Is this expected behavior? Jedi completion is enabled regardless of PYTHONSTARTUP setting when I use IPython with Non-native completions. Mattias Engdeg=E5rd wrote: > > I think we can also improve Non-native completions. Current > > implementation sends the definition of __PYTHON_EL_get_completions() > > every time. However, sending it once during initialization should be > > sufficient. Worse, if the number of characters sent exceeds > > `comint-max-line-length', it will be sent via file. This is happening > > in your environment. Here is the log you presented. > >=20 > > Test python-completion-at-point-1 backtrace: > > json-parse-string("__PYTHON_EL_eval_file(\"/var/folders/qy/zstv16390 > >=20 > > Thanks to the echo back, we can see __PYTHON_EL_eval_file() was used. >=20 > Right. (The need for a file is just an artefact of Comint limitations, is= n't it?) Yes, I think it is the limitation of comint. However, if the definition is omitted, it is unlikely to reach that limit, since all that is required is to send the string like '__PYTHON_EL_get_completions("subproc")'. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 26 06:08:27 2024 Received: (at 68559) by debbugs.gnu.org; 26 Feb 2024 11:08:27 +0000 Received: from localhost ([127.0.0.1]:55319 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1reYqR-0003An-15 for submit@debbugs.gnu.org; Mon, 26 Feb 2024 06:08:27 -0500 Received: from mail-ua1-f49.google.com ([209.85.222.49]:60911) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1reYqP-0003AM-2j for 68559@debbugs.gnu.org; Mon, 26 Feb 2024 06:08:25 -0500 Received: by mail-ua1-f49.google.com with SMTP id a1e0cc1a2514c-7da6e831977so260154241.1 for <68559@debbugs.gnu.org>; Mon, 26 Feb 2024 03:07:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708945614; x=1709550414; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=H6TqcbQcCi+7O/3cU+yD4QDmmPwcFZasgMuq2b7q8uw=; b=f28OxNB53JAkWQwTY4Yx/uziEDlHdQPoJpWvFpPiBu/K3/hJox7Opw+TyQyVBayVFE Qkv9RtHBGiIoql6ZxW/rF8FhSzrBwb0QVpl7Hv61VFtnoGjQw2Hk/cDgTSPjoUX5IdMQ IMcJC2g7q59Ek5wR2zTdNZ8+gC3fReQV8RuzxirnO3xm+BjvZCBBRtFT0Loa226YvNh4 BjpSRG71lnuu3nHPtHtQKgQYbd5xClfilRpIczysyI11acnSNDVXjJlCqRKuuH5J2E0c GK7VGFADX1qf1WGKx/kJQMul7zUCsJ3rEKtjucDH8NnSLpIgFV1S8+Lbw3A2HMDEErta qnKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708945614; x=1709550414; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=H6TqcbQcCi+7O/3cU+yD4QDmmPwcFZasgMuq2b7q8uw=; b=DF8oNJxhFkaUb0Nnl1iV1SefFiLrFHIJrOEP8xteDa9XoQAuAkuwweSyeY+sfCPSo3 B1lbvzJFjOhV4EJWMU6EuZ9jSCh88coGs4Aiz74ouMRoCnH6g5E+7h02OV5pqGto4/Fz gkPvWXA868tQ2tVRizIeCwGT/wwoj9aYFflOGvPABIHwDmNs/H0/wbaQL4CK540TksiT LSuXpv5K0JWT9G5LAYDdrmNa1yvROMSCfwrqNw0d8DYLfDU/HN0UEt5LNsaxK+Ega7XF oAjODWQtJSncAheJ14mi2Rf4sUq3BRR0stEdp64vbjkjwWpS11RDGB0PYMPf61SIblmP H5DA== X-Forwarded-Encrypted: i=1; AJvYcCXhslqIPXxaAMcCmmRviUe4N7PPGOBDzsA3sqoRShRqzxYpuN0B3d96YL58ZCLauSQ4Eco2b/uWo4QtPGrPOG1tv/79RgA= X-Gm-Message-State: AOJu0YwpD3n2R9DVwx0Zs6JJpSEN1xoK3noFZB7NeX966L3Se79g9JgN +3IuVjfv68K/1XhXaL5lLdh++OssKaYrXlE8yuUDhaiEp1+8yuY5oiIpTKxFvsnE3J4hzQIzxt+ M2Qhr3h5exYgNl5hrFFkEvnY15Ic= X-Google-Smtp-Source: AGHT+IFRksZD0aBh5oWxcvROLtIQvVe/W2bjPMSlJpOZXXTMdamJ/M+hj5TF2uDgFNVfphY5JKatbuS5T5qqDscul9Q= X-Received: by 2002:a05:6102:55aa:b0:470:4a5f:684d with SMTP id dc42-20020a05610255aa00b004704a5f684dmr5662692vsb.29.1708945614066; Mon, 26 Feb 2024 03:06:54 -0800 (PST) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> In-Reply-To: From: Liu Hui Date: Mon, 26 Feb 2024 19:06:42 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: kobarity Content-Type: multipart/mixed; boundary="000000000000447992061246e808" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) --000000000000447992061246e808 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Feb 23, 2024 at 10:39=E2=80=AFPM kobarity wrot= e: > > Hi Liu, > > I noticed that with Non-native completions, Jedi completion is not > enabled even if PYTHONSTARTUP is set and "REPL completion using Jedi > 0.18.2" is shown in inferior Python. Is this expected behavior? Jedi > completion is enabled regardless of PYTHONSTARTUP setting when I use > IPython with Non-native completions. Thanks for pointing out the problem! The attached patch should enable Jedi completion for the non-native case. On Fri, Feb 16, 2024 at 3:41=E2=80=AFPM Eli Zaretskii wrote: > > The Python shell completion relies on the readline module, which is > > not available for Python on MS-Windows. According to the instruction > > in python.el: > > > > ;; readline based shell (it's known to work with PyPy). If your > > ;; Python installation lacks readline (like CPython for Windows), > > ;; installing pyreadline (URL `https://ipython.org/pyreadline.html') > > ;; should suffice. To troubleshoot why you are not getting any > > ;; completions, you can try the following in your Python shell: > > > > ;; >>> import readline, rlcompleter > > > > ;; If you see an error, then you need to either install pyreadline or > > ;; setup custom code that avoids that dependency. > > I don't know if I have CPython, but the above does show an error > message. > > > It may be necessary to install pyreadline (for Python 2.7) or > > pyreadline3 (for Python 3). > > I will see if I can do that, thanks. > > Regardless, patches to the test suite to skip the tests which rely on > those modules, if they aren't installed, will be welcome. Such tests should be skipped now with this patch. --000000000000447992061246e808 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Detect-the-readline-support-for-Python-shell-complet.patch" Content-Disposition: attachment; filename="0001-Detect-the-readline-support-for-Python-shell-complet.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lt2tycyl0 RnJvbSBlMDJlNTUxOTJlNjhiNjI3MmRlYTJhMjMwOTZmOTBjZGVlNTE3ZTc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog TW9uLCAyNiBGZWIgMjAyNCAxODo0NjozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIERldGVjdCB0 aGUgcmVhZGxpbmUgc3VwcG9ydCBmb3IgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24KCiogbGlzcC9w cm9nbW9kZXMvcHl0aG9uLmVsCihweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGlt cyk6IFVwZGF0ZSBkb2NzdHJpbmcuCihweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0 dXApOiBNb3ZlIHRoZSBkZXRlY3Rpb24gb2YKcmVhZGxpbmUgdG8gLi4uCihweXRob24tc2hlbGwt cmVhZGxpbmUtZGV0ZWN0KTogLi4uIG5ldyBmdW5jdGlvbi4KKHB5dGhvbi1zaGVsbC1jb21wbGV0 aW9uLW5hdGl2ZS10dXJuLW9uLW1heWJlKTogU2tpcCBpZiBQeXRob24KaGFzIG5vIHJlYWRsaW5l IHN1cHBvcnQuCihweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCk6IFJlc3BlY3QgdGhl IGRlbGltaXRlciBvZgpyZWFkbGluZSBjb21wbGV0ZXIgaW4gbm9uLW5hdGl2ZSBjb21wbGV0aW9u LgoqIHRlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCihweXRob24tc2hlbGwtY29t cGxldGlvbi1hdC1wb2ludC0xKQoocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtbmF0 aXZlLTEpCihweXRob24tY29tcGxldGlvbi1hdC1wb2ludC0xLCBweXRob24tY29tcGxldGlvbi1h dC1wb2ludC0yKQoocHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtcGRiLTEpCihweXRob24tY29t cGxldGlvbi1hdC1wb2ludC13aGlsZS1ydW5uaW5nLTEpCihweXRob24tY29tcGxldGlvbi1hdC1w b2ludC1uYXRpdmUtMSkKKHB5dGhvbi1jb21wbGV0aW9uLWF0LXBvaW50LW5hdGl2ZS0yKQoocHl0 aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtbmF0aXZlLXdpdGgtZmZhcC0xKQoocHl0aG9uLWNvbXBs ZXRpb24tYXQtcG9pbnQtbmF0aXZlLXdpdGgtZWxkb2MtMSk6IFNraXAgdGVzdHMgaWYKUHl0aG9u IGhhcyBubyByZWFkbGluZSBzdXBwb3J0LgoocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9p bnQtamVkaS1jb21wbGV0ZXIpOiBBZGQgdGVzdCBmb3IKbm9uLW5hdGl2ZSBQeXRob24gc2hlbGwg Y29tcGxldGlvbi4gKGJ1ZyM2ODU1OSkKLS0tCiBsaXNwL3Byb2dtb2Rlcy9weXRob24uZWwgICAg ICAgICAgICB8IDI5ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiB0ZXN0L2xpc3AvcHJv Z21vZGVzL3B5dGhvbi10ZXN0cy5lbCB8IDIzICsrKysrKysrKysrKysrKysrKysrKystCiAyIGZp bGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCmlu ZGV4IDU4N2QwYjM2MzA0Li42YzczY2ViYTRlZiAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMv cHl0aG9uLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbApAQCAtNDQzOSw3ICs0NDM5 LDI0IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10cnktb3V0cHV0LXRpbWVvdXQK IAogKGRlZnZhciBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyBuaWwKICAg IldvcmQgZGVsaW1pdGVycyB1c2VkIGJ5IHRoZSByZWFkbGluZSBjb21wbGV0ZXIuCi1JdCBpcyBh dXRvbWF0aWNhbGx5IHNldCBieSBQeXRob24gc2hlbGwuIikKK0l0IGlzIGF1dG9tYXRpY2FsbHkg c2V0IGJ5IFB5dGhvbiBzaGVsbC4gIEEgdmFsdWUgb2YgbmlsIG1lYW5zIHRoZQorUHl0aG9uIHNo ZWxsIGhhcyBubyByZWFkbGluZSBzdXBwb3J0LiIpCisKKyhkZWZ1biBweXRob24tc2hlbGwtcmVh ZGxpbmUtZGV0ZWN0ICgpCisgICJEZXRlY3QgdGhlIHJlYWRsaW5lIHN1cHBvcnQgZm9yIFB5dGhv biBzaGVsbCBjb21wbGV0aW9uLiIKKyAgKGxldCogKChwcm9jZXNzIChweXRob24tc2hlbGwtZ2V0 LXByb2Nlc3MpKQorICAgICAgICAgKG91dHB1dCAocHl0aG9uLXNoZWxsLXNlbmQtc3RyaW5nLW5v LW91dHB1dCAiCit0cnk6CisgICAgaW1wb3J0IHJlYWRsaW5lCisgICAgcHJpbnQocmVhZGxpbmUu Z2V0X2NvbXBsZXRlcl9kZWxpbXMoKSkKK2V4Y2VwdDoKKyAgICBwcmludCgnTm8gcmVhZGxpbmUg c3VwcG9ydCcpIiBwcm9jZXNzKSkpCisgICAgKHVubGVzcyAoc3RyaW5nLW1hdGNoLXAgIk5vIHJl YWRsaW5lIHN1cHBvcnQiIG91dHB1dCkKKyAgICAgIChzZXRxLWxvY2FsIHB5dGhvbi1zaGVsbC1y ZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zCisgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRyaW0t cmlnaHQgb3V0cHV0KSkpKSkKKworKGFkZC1ob29rICdweXRob24tc2hlbGwtZmlyc3QtcHJvbXB0 LWhvb2sKKyAgICAgICAgICAncHl0aG9uLXNoZWxsLXJlYWRsaW5lLWRldGVjdCAtOTApCiAKIChk ZWZ2YXIgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXJlZGlyZWN0LWJ1ZmZlcgogICAi ICpQeXRob24gY29tcGxldGlvbnMgcmVkaXJlY3QqIgpAQCAtNDU3OSwxMCArNDU5Niw2IEBAIHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1zZXR1cAogX19QWVRIT05fRUxfbmF0aXZlX2Nv bXBsZXRpb25fc2V0dXAoKSIgcHJvY2VzcykpKQogICAgICh3aGVuIChzdHJpbmctbWF0Y2gtcCAi cHl0aG9uXFwuZWw6IG5hdGl2ZSBjb21wbGV0aW9uIHNldHVwIGxvYWRlZCIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgb3V0cHV0KQotICAgICAgKHNldHEtbG9jYWwgcHl0aG9uLXNoZWxsLXJl YWRsaW5lLWNvbXBsZXRlci1kZWxpbXMKLSAgICAgICAgICAgICAgICAgIChzdHJpbmctdHJpbS1y aWdodAotICAgICAgICAgICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0 cHV0Ci0gICAgICAgICAgICAgICAgICAgICJpbXBvcnQgcmVhZGxpbmU7IHByaW50KHJlYWRsaW5l LmdldF9jb21wbGV0ZXJfZGVsaW1zKCkpIikpKQogICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0 aW9uLW5hdGl2ZS10cnkpKSkpCiAKIChkZWZ1biBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRp dmUtdHVybi1vZmYgKCZvcHRpb25hbCBtc2cpCkBAIC00NjExLDcgKzQ2MjQsOCBAQCBweXRob24t c2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbi1tYXliZQogICAgICAgKGNvbmQKICAgICAg ICAoKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1pbnRlcnByZXRlci1kaXNhYmxlZC1w KQogICAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmIG1zZykp Ci0gICAgICAgKChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXApCisgICAgICAg KChhbmQgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMKKyAgICAgICAgICAg ICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXNldHVwKSkKICAgICAgICAgKHdoZW4g bXNnCiAgICAgICAgICAgKG1lc3NhZ2UgIlNoZWxsIG5hdGl2ZSBjb21wbGV0aW9uIGlzIGVuYWJs ZWQuIikpKQogICAgICAgICh0CkBAIC00NzgzLDcgKzQ3OTcsOCBAQCBweXRob24tc2hlbGwtY29t cGxldGlvbi1hdC1wb2ludAogICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHBy b2Nlc3MtYnVmZmVyIHByb2Nlc3MpCiAgICAgICAgICAgICAgICAgIChpZiBweXRob24tc2hlbGwt Y29tcGxldGlvbi1uYXRpdmUtZW5hYmxlCiAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nPSBw eXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyAiIikKLSAgICAgICAgICAgICAg ICAgICAoc3RyaW5nLW1hdGNoLXAgImlweXRob25bMjNdP1xcJyIgcHl0aG9uLXNoZWxsLWludGVy cHJldGVyKSkpKSkKKyAgICAgICAgICAgICAgICAgICAob3IgKHN0cmluZy1tYXRjaC1wICJpcHl0 aG9uWzIzXT9cXCciIHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlcikKKyAgICAgICAgICAgICAgICAg ICAgICAgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMgIiIp KSkpKSkKICAgICAgICAgIChzdGFydAogICAgICAgICAgIChpZiAoPCAocG9pbnQpIGxpbmUtc3Rh cnQpCiAgICAgICAgICAgICAgIChwb2ludCkKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9k ZXMvcHl0aG9uLXRlc3RzLmVsIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwK aW5kZXggNmM2Y2Q5ZWVlMmIuLmUwNTg0Zjc4ZjgyIDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvcHJv Z21vZGVzL3B5dGhvbi10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10 ZXN0cy5lbApAQCAtNDc3Nyw2ICs0Nzc3LDcgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQt cG9pbnQtMQogICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXItd2l0aC1zaGVsbAogICAg IiIKICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAgKHNraXAtd2hlbiAo bnVsbCBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcykpCiAgICAgIChpbnNl cnQgImltcG9ydCBhYmMiKQogICAgICAoY29taW50LXNlbmQtaW5wdXQpCiAgICAgIChweXRob24t dGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0KQpAQCAtNDc5MSw2ICs0NzkyLDcgQEAgcHl0aG9u LXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtbmF0aXZlLTEKICAgICIiCiAgICAocHl0aG9uLXNo ZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCiAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hl bGwtYnVmZmVyCisgICAgIChza2lwLXdoZW4gKG51bGwgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNv bXBsZXRlci1kZWxpbXMpKQogICAgICAoaW5zZXJ0ICJpbXBvcnQgYWJjIikKICAgICAgKGNvbWlu dC1zZW5kLWlucHV0KQogICAgICAocHl0aG9uLXRlc3RzLXNoZWxsLXdhaXQtZm9yLXByb21wdCkK QEAgLTQ4NjYsOCArNDg2OCwxMSBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1q ZWRpLWNvbXBsZXRlcgogICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXItd2l0aC1zaGVs bAogICAgIiIKICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKLSAgICAgKHB5dGhv bi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9uKQogICAgICAoc2tpcC11bmxlc3MgKHN0 cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMgIiIpKQorICAgICAo cHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmKQorICAgICAocHl0aG9uLXRl c3RzLS1jb21wbGV0aW9uLW1vZHVsZSkKKyAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1w YXJhbWV0ZXJzKQorICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24p CiAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tbW9kdWxlKQogICAgICAocHl0aG9uLXRl c3RzLS1jb21wbGV0aW9uLXBhcmFtZXRlcnMpCiAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRp b24tZXh0cmEtY29udGV4dCkpKSkKQEAgLTQ5MDUsNiArNDkxMCw4IEBAIHB5dGhvbi1jb21wbGV0 aW9uLWF0LXBvaW50LTEKIGltcG9ydCBhYmMKICIKICAgIChsZXQgKChpbmhpYml0LW1lc3NhZ2Ug dCkpCisgICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAgICAoc2tpcC13 aGVuIChudWxsIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKSkpCiAgICAg IChweXRob24tc2hlbGwtc2VuZC1idWZmZXIpCiAgICAgIChweXRob24tdGVzdHMtc2hlbGwtd2Fp dC1mb3ItcHJvbXB0KQogICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQpAQCAtNDkyMSw2ICs0 OTI4LDggQEAgcHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtMgogaW1wb3J0IGFiYwogIgogICAg KGxldCAoKGluaGliaXQtbWVzc2FnZSB0KSkKKyAgICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxs LWJ1ZmZlcgorICAgICAgIChza2lwLXdoZW4gKG51bGwgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNv bXBsZXRlci1kZWxpbXMpKSkKICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLWJ1ZmZlcikKICAgICAg KHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9tcHQpCiAgICAgIChweXRob24tc2hlbGwt d2l0aC1zaGVsbC1idWZmZXIKQEAgLTQ5NDAsNiArNDk0OSw4IEBAIHB5dGhvbi1jb21wbGV0aW9u LWF0LXBvaW50LXBkYi0xCiBwcmludCgnSGVsbG8nKQogIgogICAgKGxldCAoKGluaGliaXQtbWVz c2FnZSB0KSkKKyAgICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgorICAgICAgIChz a2lwLXdoZW4gKG51bGwgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMpKSkK ICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLWJ1ZmZlcikKICAgICAgKHB5dGhvbi10ZXN0cy1zaGVs bC13YWl0LWZvci1wcm9tcHQpCiAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1heCkpCkBAIC00OTU2 LDYgKzQ5NjcsOCBAQCBweXRob24tY29tcGxldGlvbi1hdC1wb2ludC13aGlsZS1ydW5uaW5nLTEK IHRpbWUuc2xlZXAoMykKICIKICAgIChsZXQgKChpbmhpYml0LW1lc3NhZ2UgdCkpCisgICAgIChw eXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAgICAoc2tpcC13aGVuIChudWxsIHB5 dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKSkpCiAgICAgIChweXRob24tc2hl bGwtc2VuZC1idWZmZXIpCiAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1heCkpCiAgICAgIChpbnNl cnQgInRpbWUuIikKQEAgLTQ5NjgsNiArNDk4MSw4IEBAIHB5dGhvbi1jb21wbGV0aW9uLWF0LXBv aW50LW5hdGl2ZS0xCiBpbXBvcnQgYWJjCiAiCiAgICAobGV0ICgoaW5oaWJpdC1tZXNzYWdlIHQp KQorICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAgKHNraXAtd2hl biAobnVsbCBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcykpKQogICAgICAo cHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCiAgICAgIChweXRob24tc2hl bGwtc2VuZC1idWZmZXIpCiAgICAgIChweXRob24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0 KQpAQCAtNDk4NSw2ICs1MDAwLDggQEAgcHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtbmF0aXZl LTIKIGltcG9ydCBhYmMKICIKICAgIChsZXQgKChpbmhpYml0LW1lc3NhZ2UgdCkpCisgICAgIChw eXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAgICAoc2tpcC13aGVuIChudWxsIHB5 dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKSkpCiAgICAgIChweXRob24tc2hl bGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbikKICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLWJ1 ZmZlcikKICAgICAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9tcHQpCkBAIC01MDAx LDYgKzUwMTgsOCBAQCBweXRob24tY29tcGxldGlvbi1hdC1wb2ludC1uYXRpdmUtd2l0aC1mZmFw LTEKIGltcG9ydCBhYmMKICIKICAgIChsZXQgKChpbmhpYml0LW1lc3NhZ2UgdCkpCisgICAgIChw eXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAgICAoc2tpcC13aGVuIChudWxsIHB5 dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKSkpCiAgICAgIChweXRob24tc2hl bGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbikKICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLWJ1 ZmZlcikKICAgICAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9tcHQpCkBAIC01MDE3 LDYgKzUwMzYsOCBAQCBweXRob24tY29tcGxldGlvbi1hdC1wb2ludC1uYXRpdmUtd2l0aC1lbGRv Yy0xCiBpbXBvcnQgYWJjCiAiCiAgICAobGV0ICgoaW5oaWJpdC1tZXNzYWdlIHQpKQorICAgICAo cHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAgKHNraXAtd2hlbiAobnVsbCBw eXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcykpKQogICAgICAocHl0aG9uLXNo ZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCiAgICAgIChweXRob24tc2hlbGwtc2VuZC1i dWZmZXIpCiAgICAgIChweXRob24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0KQotLSAKMi4y NS4xCgo= --000000000000447992061246e808-- From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 26 07:46:08 2024 Received: (at 68559) by debbugs.gnu.org; 26 Feb 2024 12:46:08 +0000 Received: from localhost ([127.0.0.1]:33302 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1reaMx-00027n-SQ for submit@debbugs.gnu.org; Mon, 26 Feb 2024 07:46:08 -0500 Received: from mail-wr1-f48.google.com ([209.85.221.48]:48572) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1reaMv-000275-Pt for 68559@debbugs.gnu.org; Mon, 26 Feb 2024 07:46:07 -0500 Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-33dcd8dec88so789954f8f.1 for <68559@debbugs.gnu.org>; Mon, 26 Feb 2024 04:45:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708951474; x=1709556274; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=66ECLAjul2VkiJSKUlM6vFHH8kAH3+5ClV2L47TKOl8=; b=P2p6Ty+PR0euc0YsELPLpOSblL7JjHQfvQq2Cc1Is1tjEhFTxtGj4/aqsli+MZ2umL u2QcjrI0T96k8m1fc96Lv2lgdkRfPZUEkj6AQ5g61ApPBfxuCbhI4PTdJUe9BCvG1bO0 9YQA3+fqPsqo+AZCpa1EH1J4x3Tybgf68hcI/EriTxyJoz7bQjtWO1Ik8m0tch1IX0so cSQTKk9uEy6buRDjpSsr1mNf4NromhAMq0wEx4+5e05o2amwpc7psx1AYYhjS5i1Aeqf zThtsb99x+jXnELjXxuYpAu7fZo2bgKaa3Rryyz/hBv4mc2ujv6tWT3RuwagQWv24i7W MkYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708951474; x=1709556274; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=66ECLAjul2VkiJSKUlM6vFHH8kAH3+5ClV2L47TKOl8=; b=tJPcK8lhmjchmlIUO5moobFEKdHcpxa818B1iD+RIgHV0jo5qkKKxEcHz0DbIlLM+K EAbualxQ7vW8/AhlassUmSIdAw5wZ5jjNNr9JF64ImOPHUBClsg72bIYsSPmZ1Qbz0Yf D++ibma1tEEyuVkKR28qWWFF20cR6Ba3IcXd3R6r4pOw1RMbzm/1uDSo11YaiKRhHd7K mO7X7TBuUWWplF5QaTeGXPFKQA5ldKWIWAKNV3suHxbIBDyTkcZbHd40ZnXh2WmOBgeA 0VWe8Dd+BRfxNjZlK0/cLIVEwNNDvtefjxeemDxVham2cUQf9FVnqRSMI9v0jRZeZIwE 6mog== X-Forwarded-Encrypted: i=1; AJvYcCUR1qVxK6R+qOtu6Lx4rE8yB6Dq+NXjvTrcE24dt4gk0TdCKQbf1Dd5n7hYE2g81EL2l8Q1bpj0/WRDP634y3j1HK3ntQE= X-Gm-Message-State: AOJu0Yw0RqBaYNStnfU0hRmVUPb/mWuVlDJt9LbiZzGT3rm9b9uPP/HN NeKO2sSEcknTNWRL+f5mLaixlgLGx1qJuFFPAwd2ntwewqSdLLtID74FsH4D X-Google-Smtp-Source: AGHT+IELr26LDMTsDHq9xfasDiUyNHQc83wCe5fCCpwrwO0naQU/pzqTYK0fzWuI0aSHym9FIpnsFQ== X-Received: by 2002:a05:6512:21cd:b0:512:ec30:ee76 with SMTP id d13-20020a05651221cd00b00512ec30ee76mr3589279lft.38.1708949819859; Mon, 26 Feb 2024 04:16:59 -0800 (PST) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id x10-20020a19f60a000000b00512f6d88354sm597713lfe.131.2024.02.26.04.16.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Feb 2024 04:16:59 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#68559: [PATCH] Improve Python shell completion From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: Date: Mon, 26 Feb 2024 13:16:58 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> To: Liu Hui X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: kobarity , Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) 26 feb. 2024 kl. 12.06 skrev Liu Hui : > Thanks for pointing out the problem! The attached patch should enable > Jedi completion for the non-native case. This patch does not break anything further on macOS using the standard = system Python. I just thought you would be happy to know. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 26 10:10:03 2024 Received: (at 68559) by debbugs.gnu.org; 26 Feb 2024 15:10:03 +0000 Received: from localhost ([127.0.0.1]:42886 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1reccF-0001hj-0D for submit@debbugs.gnu.org; Mon, 26 Feb 2024 10:10:03 -0500 Received: from mail-pf1-f179.google.com ([209.85.210.179]:52422) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1reccC-0001h3-PD for 68559@debbugs.gnu.org; Mon, 26 Feb 2024 10:10:01 -0500 Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-6e46db0cf82so2037506b3a.0 for <68559@debbugs.gnu.org>; Mon, 26 Feb 2024 07:09:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708960109; x=1709564909; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=MC/f1y8l3ePoTZrFpNyRNP2YVCKt1zaw9TPwNHpmofg=; b=gZKsfbriAHM18dMckTAnJbQFhYAnUVGRHvICAaIy6JGP+yQaT0cyiTKIRBOrsRDu3M rNK3xIVAbicVejzUCJ8MEcAbRvg+7PsfoYg+hSusBVy5V5VVdKiZwHcS9ESQOE6/3Ftf YrNWoqVyWwCsLzarL8Kes/iUSp89Oo/IUYZqkTbqubHXWAr1YY4q4BGIwJncoJvouuIe rqCRPFjXufxDhLX7g2WpPnAFsx7WC5crjqMvKQab7NrrS9WTFokM8pEw76zQz1e9dior aORDPvD2QUSUc2HYRkux3ywxtv/sQdzBafnPaIVembiDS89eZo6N6AbC+LLdApMqv8HO Tbyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708960109; x=1709564909; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=MC/f1y8l3ePoTZrFpNyRNP2YVCKt1zaw9TPwNHpmofg=; b=EmoRtafNzn74tV821P7p9h9r+7gNWUyOVxCfXUJNXVOysb+kHg1+lHwaYNspWnP9Ab T/dNhb4I47/JUTAw69UOnOd7diMBIJk8+8fdQanu3QIGj8MrxwtibRK5KeafC9lL/+Qb apyFq44rQaXRT5YIIhnM9JAB9X83ygAuWJ9OeR60LBVzyh99V1aIxChZ9tmqo4zPPrP4 nJf32jBuVMfH+YybvRYKAJFDN3AH+t1ATy1zpIpinw9fO4EAPQa2bEBHFlFUgkde7WWe 8XIcqiMqQtmsy3pJgvlyhNSb66zxnkZk0xC32qRwpcbWAP2ev1pAGGjO3CIuup+o+wZK o5iQ== X-Forwarded-Encrypted: i=1; AJvYcCWK+4+5J5SamOPs4xCsHrYmJhiY/n+rkHiuFjwN6cgjUhcBwp0z6UzQzzHyfipA95aBBz/i0+2/qIB7Im8QN5v9MoM0fl4= X-Gm-Message-State: AOJu0YzJLCjEm9QSn25VSPVpIEsn+QES8qyddKxNUOe9d+X+qQW8rRyS BeKTNY6a1fkd6BIww8UGXHNlSv0HqzEP6C2g3qegiSX7d1Deecz7 X-Google-Smtp-Source: AGHT+IF7ekcoSPHVamO1Mp3Cvs6W79ItM1OzeUfMwZgcfNKwHpvjy2fg/fMgWSlKjIyKFr2S/eCJcQ== X-Received: by 2002:a17:902:ce8b:b0:1dc:90a7:660b with SMTP id f11-20020a170902ce8b00b001dc90a7660bmr5069900plg.9.1708960109102; Mon, 26 Feb 2024 07:08:29 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id ix5-20020a170902f80500b001d8e22d6a2dsm4097379plb.72.2024.02.26.07.08.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Feb 2024 07:08:28 -0800 (PST) Date: Tue, 27 Feb 2024 00:08:15 +0900 Message-ID: From: kobarity To: Liu Hui , Mattias =?ISO-8859-1?Q?Engdeg=E5rd?= Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Mattias Engdeg=E5rd wrote: >=20 > 26 feb. 2024 kl. 12.06 skrev Liu Hui : >=20 > > Thanks for pointing out the problem! The attached patch should enable > > Jedi completion for the non-native case. >=20 > This patch does not break anything further on macOS using the standard sy= stem Python. > I just thought you would be happy to know. Thanks, I confirmed that the patch enables Jedi completion for the non-native mode. From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 28 09:48:11 2024 Received: (at 68559) by debbugs.gnu.org; 28 Feb 2024 14:48:11 +0000 Received: from localhost ([127.0.0.1]:45005 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rfLEA-0004qR-JO for submit@debbugs.gnu.org; Wed, 28 Feb 2024 09:48:11 -0500 Received: from mail-ed1-f48.google.com ([209.85.208.48]:41327) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rfLE8-0004q5-7Z for 68559@debbugs.gnu.org; Wed, 28 Feb 2024 09:48:09 -0500 Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-56617252a07so769996a12.1 for <68559@debbugs.gnu.org>; Wed, 28 Feb 2024 06:47:41 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709131656; x=1709736456; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=QZyvc/xPGxbLH50KJqkIJ1xWKzn7FxSnq/0NVFXlN5A=; b=fSyqSPonl7dUhK0i8Eb21NulvOBeDp6WdUXPP2xgoGTs01LMaZIDSBL80Ws5TjOpma 0+mZlMBZQxASfJMjOQk4MgG52+rEJllOMm5C65DVfbMTioZu2S3ke7hm3xofsoMNvNsP embIFwVXPIW/HQbM6o+r1tSGAQyPASiPQPFD3O5u08tGRIGfB/wws+zbtGwsu7EBLglG fNHw9kLXcw66TTnPycvX05V8FFD6OapmrytVsVKxWDD2WGTqZha9ptusC7JtpWwZwser a9UybRnnwX4RNjx+c5TTk42Tf/BBR3aVH+8Td5dwRa6OmLT5JG9wZnunp0NY7C/X9u6H Efkw== X-Forwarded-Encrypted: i=1; AJvYcCUw42tbk8IkSqzG5ABMosVkxUHO2GeIWalzVR9+KejuDWDEZ/gYqFUR2SBDSLgwNeHc+yum1ARCYecIp2UIrMVZNeF8tNo= X-Gm-Message-State: AOJu0Yxq0sfR8BvFbgc1H2JBojtdwrHjvZXW/5YmsUfbdkvDx6VYGAGD 3V84RomZTbkDTlZ/6BavBv0b0xxnumKycRCi+nTD3VkF5gwhCLaFOz6/zARB1nU= X-Google-Smtp-Source: AGHT+IG/IG1mUXuJyG7zi1DGOehbrb96eYxWDAk1ESA93b74Ubsjd68582xcs59ezHmJ4y6A8U6peg== X-Received: by 2002:a50:aadc:0:b0:566:6726:7aa5 with SMTP id r28-20020a50aadc000000b0056667267aa5mr1482172edc.0.1709131655463; Wed, 28 Feb 2024 06:47:35 -0800 (PST) Received: from localhost ([2001:620:618:5c0:2:80b3:0:15c]) by smtp.gmail.com with ESMTPSA id w15-20020aa7da4f000000b00561c666991csm1836366eds.73.2024.02.28.06.47.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 06:47:35 -0800 (PST) From: "Basil L. Contovounesios" To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: (Liu Hui's message of "Fri, 23 Feb 2024 21:07:22 +0800") References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <867cj5wuo6.fsf@gnu.org> <865xypwu5e.fsf@gnu.org> <87il2kvbh5.fsf@epfl.ch> <878r3fz37e.fsf@epfl.ch> <87sf1leujg.fsf@epfl.ch> <877ciwwqjt.fsf@epfl.ch> Date: Wed, 28 Feb 2024 15:47:34 +0100 Message-ID: <87il28ve61.fsf@epfl.ch> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: Eli Zaretskii , kobarity@gmail.com, mattias.engdegard@gmail.com, 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) Liu Hui [2024-02-23 21:07 +0800] wrote: > On Thu, Feb 22, 2024 at 9:56=E2=80=AFPM Basil L. Contovounesios > wrote: >> >> The python-shell-completion-at-point-ipython test is still skipped, with >> or without specifying PYTHONSTARTUP=3D"$(python -m jedi repl)", but like >> you suggest that's not necessarily a problem. > > I have no idea why the test is skipped. You may still check if native > completion works for IPython with following steps: > > 1. PYTHONSTARTUP=3D"$(python -m jedi repl)" emacs -Q Oops: $ PYTHONSTARTUP=3D"$(python -m jedi repl)" ./src/emacs -Q /home/blc/.pyenv/versions/3.12.2/bin/python: No module named jedi Once I 'pip install jedi' the rest works as expected, and python-shell-completion-at-point-ipython is no longer skipped. >> I'm guessing you don't have write access to emacs.git, but have signed >> the CA? If so, and if there are no other comments/objections in a few >> days, I'll apply the patch in your name. > > Yes, I've signed the CA. Thanks. Done: Fix Python shell completion test failures 8a2d013be37 2024-02-28 15:25:56 +0100 https://git.sv.gnu.org/cgit/emacs.git/commit/?id=3D8a2d013be37 >> If that was from you, do you have any objection to me mapping >> ilupin@users.noreply.github.com to liuhui1610@gmail.com in the .mailmap >> file in emacs.git? Then all commits will show up under a single name >> and email address. > > Yes. I have no objection, thanks. Done: ; * .mailmap: Fix GitHub address (bug#68559#170). 1ddd9c8e29f 2024-02-28 15:30:41 +0100 https://git.sv.gnu.org/cgit/emacs.git/commit/?id=3D1ddd9c8e29f Thanks, --=20 Basil From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 28 09:50:35 2024 Received: (at 68559) by debbugs.gnu.org; 28 Feb 2024 14:50:36 +0000 Received: from localhost ([127.0.0.1]:45171 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rfLGV-00053D-EL for submit@debbugs.gnu.org; Wed, 28 Feb 2024 09:50:35 -0500 Received: from mail-ed1-f47.google.com ([209.85.208.47]:41382) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rfLGS-00052i-Pd for 68559@debbugs.gnu.org; Wed, 28 Feb 2024 09:50:33 -0500 Received: by mail-ed1-f47.google.com with SMTP id 4fb4d7f45d1cf-56617252a07so771012a12.1 for <68559@debbugs.gnu.org>; Wed, 28 Feb 2024 06:50:06 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709131800; x=1709736600; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Eo34HVB8Nt1fAQfyY5IMro8VP50bvmuAQOpAwyzYw0g=; b=nlyN/xuS3Zg7BDhvVJxUn6CfyEq1/PvvHT+C235il4wiCBcgVYJztQmy1PQk5yM2bV H1GWIKgtE00JE07bAlc3uxpVKgOElTG7XsP1IwHLQeDIJJLo8CznVeAzemoqVMg3QYoL qFHqk7doAtAQPdxQtx62hrnf0S/aSIZxRmwezWUmcQKXBjvmtCggTjhBU7zJGr91R6Cg 1GHyoTslfatn5BhUpuFarm1D/Kukhvgg18ObNpaPV6mVpUZAO6s7kiangdAkgN5D4pI/ tFyJdrmS62GprAZ1e+s8I7LahNStkXKlb6iKazY53w5H2GGz7tn5blcUQWhLQqmr2yHp GzVQ== X-Forwarded-Encrypted: i=1; AJvYcCUQs1pGZDpYRRUAJW/o67GCWBqKfJsGO13VpzuCtRrCaqV+jypP/4w4KefPM/LjKmUs/1BAFZJp5/Y73r9wUbK0ns1TYk4= X-Gm-Message-State: AOJu0YwHjSZj3JZ37Glgo46t11zlYz3S1XtrnPXaIfJQaHWfTVf4m4PL Li4mIsWLHORQdNwgEQDBLQ3obsj42jsQc2dFPN1O+XqyxoVt3dnUNU/mgUFPsaU= X-Google-Smtp-Source: AGHT+IFAMSQnr6p3dRvtCBTNTJtLCk5BcP1kn330apEz27f/XbosGS63LfPLLy8Z5O2Stoub9TylDA== X-Received: by 2002:a17:907:7898:b0:a3f:8915:1622 with SMTP id ku24-20020a170907789800b00a3f89151622mr9015159ejc.4.1709131800300; Wed, 28 Feb 2024 06:50:00 -0800 (PST) Received: from localhost ([2001:620:618:5c0:2:80b3:0:15c]) by smtp.gmail.com with ESMTPSA id gg3-20020a170906e28300b00a3edb758561sm1916998ejb.129.2024.02.28.06.49.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 06:50:00 -0800 (PST) From: "Basil L. Contovounesios" To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: (Liu Hui's message of "Mon, 26 Feb 2024 19:06:42 +0800") References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> Date: Wed, 28 Feb 2024 15:49:59 +0100 Message-ID: <87bk80ve20.fsf@epfl.ch> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: kobarity , Eli Zaretskii , Mattias =?utf-8?Q?Engdeg=C3=A5rd?= , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) Liu Hui [2024-02-26 19:06 +0800] wrote: > +(add-hook 'python-shell-first-prompt-hook > + 'python-shell-readline-detect -90) This depth currently prepends the function to the hook, but in Emacs 24 it instead appends to the hook. Is that a problem? > + (skip-when (null python-shell-readline-completer-delims)) skip-unless here and below? Thanks, -- Basil From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 06 05:15:44 2024 Received: (at 68559) by debbugs.gnu.org; 6 Mar 2024 10:15:44 +0000 Received: from localhost ([127.0.0.1]:49763 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rhoJL-0003oZ-HM for submit@debbugs.gnu.org; Wed, 06 Mar 2024 05:15:44 -0500 Received: from mail-vk1-f169.google.com ([209.85.221.169]:57771) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rhoJI-0003oF-Mh for 68559@debbugs.gnu.org; Wed, 06 Mar 2024 05:15:42 -0500 Received: by mail-vk1-f169.google.com with SMTP id 71dfb90a1353d-4d346e4242fso1910366e0c.3 for <68559@debbugs.gnu.org>; Wed, 06 Mar 2024 02:15:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709720044; x=1710324844; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=xO0Vx07e+2VO8qj2/KTttNtueff8Kc/PVhwHU6nFpK4=; b=RFIZvMROvhjx6gnzqgfYRg6QPqBcvHXq2txqJdp1h/B1BtNWvp/6xiLA/P3xOR5IEV xUxAtruehJHdsP5rha5gDOZSMcHvfcrRFHsVTrPsAvBOlcyig9P7n7odsFIX4Tw8ZMhf 2dCp39MHx95xumKvHZ2iKkQ8tIoXAshVQNE0A6qhShJL1e+0iqyc1MEOEnLhq71pPn7x zNSdQhqtJWnTXppC+Nx/izBkCqix0Jmwpx/uk91tO08/9IEuGaPe+E96MLRdC43jksky kJl6R33FLAmJtxhfhVaN0mPliNf+ddELvbpZmFBedXJMlEEjuYD/4txqoJRLMoabIgMG WBrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709720044; x=1710324844; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=xO0Vx07e+2VO8qj2/KTttNtueff8Kc/PVhwHU6nFpK4=; b=Uwg51DvMY8ft15IjcEbwTAvoZeoMbTsjZsndJGGzS8HEApFZAkiNyHS0RlWCDmiDYQ urjTkyZ3gzlJW2fa7KkYGnybw63C1tkLLhFQLJq7JbhyXZdPioP28fvGsx1yT2M9AWMS XdyiktMrnmgcL3SQJdLLFj5QTUzh4QFn3Kmi+SB/KXEDQ2gHjYe41bJBUnSIjs4sf0a8 xa9vvoZUe6t/GZIAqi8jLiUtcdK16HltuKdMAH8+jMTGvWSz04aFECLzqXVeCC63BEGE x84P0ckpUXs5dymxO5l72GVSlD27WWau9WOMhgZ7SrGZe/4alBqsLAw9Ub37p63HVS4Q gRWw== X-Forwarded-Encrypted: i=1; AJvYcCW5OrFP3UCo83DNqH02Ocufj8eUq3YOaJVVD3RGp+ZyGq1u4ebXXPUamLFcyMiCzlCKU7iGZt62isrMHi5/bWBCvqgkeM8= X-Gm-Message-State: AOJu0YzXL+pzTwInpyRIcmdjrCoZ41q4EheRPY4qXLbmMmcNSC0K6/pJ y8FiSwJC/Ixw4opc4hR9c6DWMIMpbX0NEe0wCNQQWnMAmWp6RxdSn/pZkfRW8LZ3i62Byh31Xqs L51ZCAZFdC0vY1hJ7tSH8R+5kuH0= X-Google-Smtp-Source: AGHT+IHAGIGjKVbqTlL/qaa6b1q8owRgEQmvOgsRzxbnC4wKoeXWPWLPcazcJlFCz4KT8VpPvL+N7hPFRcm0CYaV6H0= X-Received: by 2002:a05:6122:311b:b0:4c8:e5a0:421b with SMTP id cg27-20020a056122311b00b004c8e5a0421bmr4764068vkb.4.1709720044329; Wed, 06 Mar 2024 02:14:04 -0800 (PST) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> <87bk80ve20.fsf@epfl.ch> In-Reply-To: <87bk80ve20.fsf@epfl.ch> From: Liu Hui Date: Wed, 6 Mar 2024 18:14:00 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: "Basil L. Contovounesios" Content-Type: multipart/mixed; boundary="000000000000e89eb30612fb379e" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: kobarity , Eli Zaretskii , =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) --000000000000e89eb30612fb379e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Feb 28, 2024 at 10:50=E2=80=AFPM Basil L. Contovounesios wrote: > > Liu Hui [2024-02-26 19:06 +0800] wrote: > > > +(add-hook 'python-shell-first-prompt-hook > > + 'python-shell-readline-detect -90) > > This depth currently prepends the function to the hook, but in Emacs 24 > it instead appends to the hook. Is that a problem? Thanks for pointing it out! It is a problem because python-shell-readline-detect is expected to be executed before python-shell-completion-native-turn-on-maybe-with-msg, i.e. another function in the hook. I have updated the patch. > > + (skip-when (null python-shell-readline-completer-delims)) > > skip-unless here and below? Done. --000000000000e89eb30612fb379e Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Detect-the-readline-support-for-Python-shell-complet.patch" Content-Disposition: attachment; filename="0001-Detect-the-readline-support-for-Python-shell-complet.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltfitu400 RnJvbSAxYTI0YWM3NzVkODU3N2RhMDk5MGRlODkwMTZhZmVkNWJmZWYzN2ZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog TW9uLCAyNiBGZWIgMjAyNCAxODo0NjozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIERldGVjdCB0 aGUgcmVhZGxpbmUgc3VwcG9ydCBmb3IgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24KCiogbGlzcC9w cm9nbW9kZXMvcHl0aG9uLmVsCihweXRob24tc2hlbGwtY29taW50LXdhdGNoLWZvci1maXJzdC1w cm9tcHQtb3V0cHV0LWZpbHRlcik6CkRldGVjdCB0aGUgcmVhZGxpbmUgc3VwcG9ydC4KKHB5dGhv bi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKTogVXBkYXRlIGRvY3N0cmluZy4KKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1zZXR1cCk6IE1vdmUgdGhlIHJlYWRsaW5lCmRl dGVjdGlvbiBjb2RlIHRvIC4uLgoocHl0aG9uLXNoZWxsLXJlYWRsaW5lLWRldGVjdCk6IC4uLiBu ZXcgZnVuY3Rpb24uCihweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbi1tYXli ZSk6IFNraXAgaWYgUHl0aG9uCmhhcyBubyByZWFkbGluZSBzdXBwb3J0LgoocHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tYXQtcG9pbnQpOiBSZXNwZWN0IHRoZSBkZWxpbWl0ZXIgb2YKcmVhZGxpbmUg Y29tcGxldGVyIGluIG5vbi1uYXRpdmUgY29tcGxldGlvbi4KKiB0ZXN0L2xpc3AvcHJvZ21vZGVz L3B5dGhvbi10ZXN0cy5lbAoocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtMSkKKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LW5hdGl2ZS0xKQoocHl0aG9uLWNvbXBsZXRp b24tYXQtcG9pbnQtMSwgcHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtMikKKHB5dGhvbi1jb21w bGV0aW9uLWF0LXBvaW50LXBkYi0xKQoocHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtd2hpbGUt cnVubmluZy0xKQoocHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtbmF0aXZlLTEpCihweXRob24t Y29tcGxldGlvbi1hdC1wb2ludC1uYXRpdmUtMikKKHB5dGhvbi1jb21wbGV0aW9uLWF0LXBvaW50 LW5hdGl2ZS13aXRoLWZmYXAtMSkKKHB5dGhvbi1jb21wbGV0aW9uLWF0LXBvaW50LW5hdGl2ZS13 aXRoLWVsZG9jLTEpOiBTa2lwIHRlc3RzIGlmClB5dGhvbiBoYXMgbm8gcmVhZGxpbmUgc3VwcG9y dC4KKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LWplZGktY29tcGxldGVyKTogQWRk IHRlc3QgZm9yCm5vbi1uYXRpdmUgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24uIChidWcjNjg1NTkp Ci0tLQogbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsICAgICAgICAgICAgfCAyNyArKysrKysrKysr KysrKysrKystLS0tLS0tCiB0ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCB8IDMx ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2Vy dGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3B5 dGhvbi5lbCBiL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAppbmRleCA1ODdkMGIzNjMwNC4uOWFj NDYyYmU0MTYgMTAwNjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAorKysgYi9saXNw L3Byb2dtb2Rlcy9weXRob24uZWwKQEAgLTM2MDEsNiArMzYwMSw3IEBAIHB5dGhvbi1zaGVsbC1j b21pbnQtd2F0Y2gtZm9yLWZpcnN0LXByb21wdC1vdXRwdXQtZmlsdGVyCiAgICAgICAgICAgKHB5 dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRwdXQgcHl0aG9uLXNoZWxsLWV2YWwtZmlsZS1z ZXR1cC1jb2RlKSkKICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKGN1cnJlbnQtYnVmZmVy KQogICAgICAgICAgIChsZXQgKChpbmhpYml0LXF1aXQgbmlsKSkKKyAgICAgICAgICAgIChweXRo b24tc2hlbGwtcmVhZGxpbmUtZGV0ZWN0KQogICAgICAgICAgICAgKHJ1bi1ob29rcyAncHl0aG9u LXNoZWxsLWZpcnN0LXByb21wdC1ob29rKSkpKSkpCiAgIG91dHB1dCkKIApAQCAtNDQzOSw3ICs0 NDQwLDIxIEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10cnktb3V0cHV0LXRpbWVv dXQKIAogKGRlZnZhciBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyBuaWwK ICAgIldvcmQgZGVsaW1pdGVycyB1c2VkIGJ5IHRoZSByZWFkbGluZSBjb21wbGV0ZXIuCi1JdCBp cyBhdXRvbWF0aWNhbGx5IHNldCBieSBQeXRob24gc2hlbGwuIikKK0l0IGlzIGF1dG9tYXRpY2Fs bHkgc2V0IGJ5IFB5dGhvbiBzaGVsbC4gIEEgdmFsdWUgb2YgbmlsIG1lYW5zIHRoZQorUHl0aG9u IHNoZWxsIGhhcyBubyByZWFkbGluZSBzdXBwb3J0LiIpCisKKyhkZWZ1biBweXRob24tc2hlbGwt cmVhZGxpbmUtZGV0ZWN0ICgpCisgICJEZXRlY3QgdGhlIHJlYWRsaW5lIHN1cHBvcnQgZm9yIFB5 dGhvbiBzaGVsbCBjb21wbGV0aW9uLiIKKyAgKGxldCogKChwcm9jZXNzIChweXRob24tc2hlbGwt Z2V0LXByb2Nlc3MpKQorICAgICAgICAgKG91dHB1dCAocHl0aG9uLXNoZWxsLXNlbmQtc3RyaW5n LW5vLW91dHB1dCAiCit0cnk6CisgICAgaW1wb3J0IHJlYWRsaW5lCisgICAgcHJpbnQocmVhZGxp bmUuZ2V0X2NvbXBsZXRlcl9kZWxpbXMoKSkKK2V4Y2VwdDoKKyAgICBwcmludCgnTm8gcmVhZGxp bmUgc3VwcG9ydCcpIiBwcm9jZXNzKSkpCisgICAgKHNldHEtbG9jYWwgcHl0aG9uLXNoZWxsLXJl YWRsaW5lLWNvbXBsZXRlci1kZWxpbXMKKyAgICAgICAgICAgICAgICAodW5sZXNzIChzdHJpbmct bWF0Y2gtcCAiTm8gcmVhZGxpbmUgc3VwcG9ydCIgb3V0cHV0KQorICAgICAgICAgICAgICAgICAg KHN0cmluZy10cmltLXJpZ2h0IG91dHB1dCkpKSkpCiAKIChkZWZ2YXIgcHl0aG9uLXNoZWxsLWNv bXBsZXRpb24tbmF0aXZlLXJlZGlyZWN0LWJ1ZmZlcgogICAiICpQeXRob24gY29tcGxldGlvbnMg cmVkaXJlY3QqIgpAQCAtNDU3OSwxMCArNDU5NCw2IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9u LW5hdGl2ZS1zZXR1cAogX19QWVRIT05fRUxfbmF0aXZlX2NvbXBsZXRpb25fc2V0dXAoKSIgcHJv Y2VzcykpKQogICAgICh3aGVuIChzdHJpbmctbWF0Y2gtcCAicHl0aG9uXFwuZWw6IG5hdGl2ZSBj b21wbGV0aW9uIHNldHVwIGxvYWRlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0 KQotICAgICAgKHNldHEtbG9jYWwgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxp bXMKLSAgICAgICAgICAgICAgICAgIChzdHJpbmctdHJpbS1yaWdodAotICAgICAgICAgICAgICAg ICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0Ci0gICAgICAgICAgICAgICAg ICAgICJpbXBvcnQgcmVhZGxpbmU7IHByaW50KHJlYWRsaW5lLmdldF9jb21wbGV0ZXJfZGVsaW1z KCkpIikpKQogICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10cnkpKSkpCiAK IChkZWZ1biBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vZmYgKCZvcHRpb25h bCBtc2cpCkBAIC00NjExLDcgKzQ2MjIsOCBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRp dmUtdHVybi1vbi1tYXliZQogICAgICAgKGNvbmQKICAgICAgICAoKHB5dGhvbi1zaGVsbC1jb21w bGV0aW9uLW5hdGl2ZS1pbnRlcnByZXRlci1kaXNhYmxlZC1wKQogICAgICAgICAocHl0aG9uLXNo ZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmIG1zZykpCi0gICAgICAgKChweXRob24tc2hl bGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXApCisgICAgICAgKChhbmQgcHl0aG9uLXNoZWxsLXJl YWRsaW5lLWNvbXBsZXRlci1kZWxpbXMKKyAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBs ZXRpb24tbmF0aXZlLXNldHVwKSkKICAgICAgICAgKHdoZW4gbXNnCiAgICAgICAgICAgKG1lc3Nh Z2UgIlNoZWxsIG5hdGl2ZSBjb21wbGV0aW9uIGlzIGVuYWJsZWQuIikpKQogICAgICAgICh0CkBA IC00NzgzLDcgKzQ3OTUsOCBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludAogICAg ICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3Mp CiAgICAgICAgICAgICAgICAgIChpZiBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZW5h YmxlCiAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUt Y29tcGxldGVyLWRlbGltcyAiIikKLSAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAg ImlweXRob25bMjNdP1xcJyIgcHl0aG9uLXNoZWxsLWludGVycHJldGVyKSkpKSkKKyAgICAgICAg ICAgICAgICAgICAob3IgKHN0cmluZy1tYXRjaC1wICJpcHl0aG9uWzIzXT9cXCciIHB5dGhvbi1z aGVsbC1pbnRlcnByZXRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZz0gcHl0aG9u LXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMgIiIpKSkpKSkKICAgICAgICAgIChzdGFy dAogICAgICAgICAgIChpZiAoPCAocG9pbnQpIGxpbmUtc3RhcnQpCiAgICAgICAgICAgICAgIChw b2ludCkKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIGIv dGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKaW5kZXggMWNlZWU2OTBjZmIuLmUx MTQ0MGNkYjViIDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5l bAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbApAQCAtNDc4Myw2ICs0 NzgzLDcgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtMQogICAocHl0aG9uLXRl c3RzLXdpdGgtdGVtcC1idWZmZXItd2l0aC1zaGVsbAogICAgIiIKICAgIChweXRob24tc2hlbGwt d2l0aC1zaGVsbC1idWZmZXIKKyAgICAgKHNraXAtdW5sZXNzIHB5dGhvbi1zaGVsbC1yZWFkbGlu ZS1jb21wbGV0ZXItZGVsaW1zKQogICAgICAoaW5zZXJ0ICJpbXBvcnQgYWJjIikKICAgICAgKGNv bWludC1zZW5kLWlucHV0KQogICAgICAocHl0aG9uLXRlc3RzLXNoZWxsLXdhaXQtZm9yLXByb21w dCkKQEAgLTQ3OTcsNiArNDc5OCw3IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50 LW5hdGl2ZS0xCiAgICAiIgogICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJu LW9uKQogICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgorICAgICAoc2tpcC11bmxl c3MgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMpCiAgICAgIChpbnNlcnQg ImltcG9ydCBhYmMiKQogICAgICAoY29taW50LXNlbmQtaW5wdXQpCiAgICAgIChweXRob24tdGVz dHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0KQpAQCAtNDg4MywxMSArNDg4NSwxNCBAQCBweXRob24t c2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1qZWRpLWNvbXBsZXRlcgogICAgIChweXRob24tdGVz dHMtd2l0aC10ZW1wLWJ1ZmZlci13aXRoLXNoZWxsCiAgICAgICIiCiAgICAgIChweXRob24tc2hl bGwtd2l0aC1zaGVsbC1idWZmZXIKLSAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRp dmUtdHVybi1vbikKLSAgICAgIChza2lwLXVubGVzcyAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVh ZGxpbmUtY29tcGxldGVyLWRlbGltcyAiIikpCi0gICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0 aW9uLW1vZHVsZSkKLSAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycykK LSAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCkpKSkpCisgICAg ICAgKHNraXAtdW5sZXNzIChzdHJpbmc9IHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXIt ZGVsaW1zICIiKSkKKyAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4t b2ZmKQorICAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tbW9kdWxlKQorICAgICAgIChw eXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycykKKyAgICAgICAocHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxl dGlvbi1tb2R1bGUpCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJz KQorICAgICAgIChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCkpKSkpCiAK IChlcnQtZGVmdGVzdCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1pcHl0aG9uICgp CiAgICJDaGVjayBpZiBQeXRob24gc2hlbGwgY29tcGxldGlvbiB3b3JrcyBmb3IgSVB5dGhvbi4i CkBAIC00OTI0LDYgKzQ5MjksOCBAQCBweXRob24tY29tcGxldGlvbi1hdC1wb2ludC0xCiBpbXBv cnQgYWJjCiAiCiAgICAobGV0ICgoaW5oaWJpdC1tZXNzYWdlIHQpKQorICAgICAocHl0aG9uLXNo ZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAgKHNraXAtdW5sZXNzIHB5dGhvbi1zaGVsbC1y ZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKSkKICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLWJ1ZmZl cikKICAgICAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9tcHQpCiAgICAgIChnb3Rv LWNoYXIgKHBvaW50LW1heCkpCkBAIC00OTQwLDYgKzQ5NDcsOCBAQCBweXRob24tY29tcGxldGlv bi1hdC1wb2ludC0yCiBpbXBvcnQgYWJjCiAiCiAgICAobGV0ICgoaW5oaWJpdC1tZXNzYWdlIHQp KQorICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAgKHNraXAtdW5s ZXNzIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKSkKICAgICAgKHB5dGhv bi1zaGVsbC1zZW5kLWJ1ZmZlcikKICAgICAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1w cm9tcHQpCiAgICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKQEAgLTQ5NTksNiAr NDk2OCw4IEBAIHB5dGhvbi1jb21wbGV0aW9uLWF0LXBvaW50LXBkYi0xCiBwcmludCgnSGVsbG8n KQogIgogICAgKGxldCAoKGluaGliaXQtbWVzc2FnZSB0KSkKKyAgICAgKHB5dGhvbi1zaGVsbC13 aXRoLXNoZWxsLWJ1ZmZlcgorICAgICAgIChza2lwLXVubGVzcyBweXRob24tc2hlbGwtcmVhZGxp bmUtY29tcGxldGVyLWRlbGltcykpCiAgICAgIChweXRob24tc2hlbGwtc2VuZC1idWZmZXIpCiAg ICAgIChweXRob24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0KQogICAgICAoZ290by1jaGFy IChwb2ludC1tYXgpKQpAQCAtNDk3NSw2ICs0OTg2LDggQEAgcHl0aG9uLWNvbXBsZXRpb24tYXQt cG9pbnQtd2hpbGUtcnVubmluZy0xCiB0aW1lLnNsZWVwKDMpCiAiCiAgICAobGV0ICgoaW5oaWJp dC1tZXNzYWdlIHQpKQorICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAg ICAgKHNraXAtdW5sZXNzIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKSkK ICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLWJ1ZmZlcikKICAgICAgKGdvdG8tY2hhciAocG9pbnQt bWF4KSkKICAgICAgKGluc2VydCAidGltZS4iKQpAQCAtNDk4Nyw2ICs1MDAwLDggQEAgcHl0aG9u LWNvbXBsZXRpb24tYXQtcG9pbnQtbmF0aXZlLTEKIGltcG9ydCBhYmMKICIKICAgIChsZXQgKChp bmhpYml0LW1lc3NhZ2UgdCkpCisgICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIK KyAgICAgICAoc2tpcC11bmxlc3MgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxp bXMpKQogICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCiAgICAg IChweXRob24tc2hlbGwtc2VuZC1idWZmZXIpCiAgICAgIChweXRob24tdGVzdHMtc2hlbGwtd2Fp dC1mb3ItcHJvbXB0KQpAQCAtNTAwNCw2ICs1MDE5LDggQEAgcHl0aG9uLWNvbXBsZXRpb24tYXQt cG9pbnQtbmF0aXZlLTIKIGltcG9ydCBhYmMKICIKICAgIChsZXQgKChpbmhpYml0LW1lc3NhZ2Ug dCkpCisgICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAgICAoc2tpcC11 bmxlc3MgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMpKQogICAgICAocHl0 aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCiAgICAgIChweXRob24tc2hlbGwt c2VuZC1idWZmZXIpCiAgICAgIChweXRob24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0KQpA QCAtNTAyMCw2ICs1MDM3LDggQEAgcHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtbmF0aXZlLXdp dGgtZmZhcC0xCiBpbXBvcnQgYWJjCiAiCiAgICAobGV0ICgoaW5oaWJpdC1tZXNzYWdlIHQpKQor ICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAgKHNraXAtdW5sZXNz IHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKSkKICAgICAgKHB5dGhvbi1z aGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9uKQogICAgICAocHl0aG9uLXNoZWxsLXNlbmQt YnVmZmVyKQogICAgICAocHl0aG9uLXRlc3RzLXNoZWxsLXdhaXQtZm9yLXByb21wdCkKQEAgLTUw MzYsNiArNTA1NSw4IEBAIHB5dGhvbi1jb21wbGV0aW9uLWF0LXBvaW50LW5hdGl2ZS13aXRoLWVs ZG9jLTEKIGltcG9ydCBhYmMKICIKICAgIChsZXQgKChpbmhpYml0LW1lc3NhZ2UgdCkpCisgICAg IChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAgICAoc2tpcC11bmxlc3MgcHl0 aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMpKQogICAgICAocHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCiAgICAgIChweXRob24tc2hlbGwtc2VuZC1idWZm ZXIpCiAgICAgIChweXRob24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJvbXB0KQotLSAKMi4yNS4x Cgo= --000000000000e89eb30612fb379e-- From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 08 10:44:49 2024 Received: (at 68559) by debbugs.gnu.org; 8 Mar 2024 15:44:49 +0000 Received: from localhost ([127.0.0.1]:59323 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ricOu-0003M5-SC for submit@debbugs.gnu.org; Fri, 08 Mar 2024 10:44:49 -0500 Received: from mail-wm1-f51.google.com ([209.85.128.51]:39936) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ricOq-0003Ln-B9 for 68559@debbugs.gnu.org; Fri, 08 Mar 2024 10:44:46 -0500 Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-4131658e439so305015e9.0 for <68559@debbugs.gnu.org>; Fri, 08 Mar 2024 07:44:12 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709912646; x=1710517446; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=WAF/Ekwk/Vx2p1anXWHU2gtGWRzSsc8wDVrcYbIW50w=; b=cXAVcWLc0D3mCE42GT1Vgh8R4BKWsr3awElyjui3gSgdQFs+KV7QbecjJ5ssbkQZrf 45A86ZA1pADJ6nVioAXzv2P1vFqkG0SWh+fb+v0BUIAQMbY0SMeMBnsz/SR8pYewqsXM k8atBKIh8INKO5tCx5ATaBDzuOH8WRrZK0a+pekg/T1qazr5Rdtax8pRSdnien1QRTdH UcOFQOfojnoel7z//UKneYIEWoJQUPB3w/daIekRuKWLXoCWCYpAUaXJkVABxnEL6MAm cgsLC1X8ttTKE7A3yC8G95vSIJOzLcSttyuo3js3S0gJWA4fCVnwwFAgoFcLVrqer7ui n9lQ== X-Forwarded-Encrypted: i=1; AJvYcCUy0Pt57Ck/g9E7mKx3SoVq+RvBCmh5PYHdd5X+Xjn8BW0PP+HWPCzvtpGEvbqk6bvRMHjVo5afcE3jvlP4sG7itIaODZA= X-Gm-Message-State: AOJu0YzY5Xdzt3RskORGKNy0XxOocI+fN5eRdymeWooXz5SYyyTGxro3 A+NLQWrz2MiQEGBmM8yxAzsSs8UmrjlxVfkr5MjkAv5aVn3wQ896 X-Google-Smtp-Source: AGHT+IHh+Df2JfTGNsRh+Rphzb4RA0+hCWH9zA4BJHP/rX73Zl8oRMlYgBYSWOwcHvNsVNsSTUHbOQ== X-Received: by 2002:a05:600c:4f8e:b0:413:1bb8:b384 with SMTP id n14-20020a05600c4f8e00b004131bb8b384mr954371wmq.3.1709912646071; Fri, 08 Mar 2024 07:44:06 -0800 (PST) Received: from localhost (vpn-254-211.epfl.ch. [128.179.254.211]) by smtp.gmail.com with ESMTPSA id q8-20020a05600c46c800b00413099fc248sm6339588wmo.3.2024.03.08.07.44.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 07:44:05 -0800 (PST) From: "Basil L. Contovounesios" To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: (Liu Hui's message of "Wed, 6 Mar 2024 18:14:00 +0800") References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> <87bk80ve20.fsf@epfl.ch> Date: Fri, 08 Mar 2024 16:44:03 +0100 Message-ID: <87y1asybi4.fsf@epfl.ch> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: kobarity , Eli Zaretskii , Mattias =?utf-8?Q?Engdeg=C3=A5rd?= , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) Liu Hui [2024-03-06 18:14 +0800] wrote: > I have updated the patch. Thanks! The build and tests succeed here, without skipped tests. > + (unless (string-match-p "No readline support" output) Nit: why not plain 'string-search' instead of a regexp search? > - (string-match-p "ipython[23]?\\'" python-shell-interpreter))))) > + (or (string-match-p "ipython[23]?\\'" python-shell-interpreter) > + (string= python-shell-readline-completer-delims "")))))) Just curious: what does the empty string signify? [ If it's not just a dumb question, perhaps the meaning could be added to the variable's docstring/commentary. ] -- Basil From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 11 07:37:31 2024 Received: (at 68559) by debbugs.gnu.org; 11 Mar 2024 11:37:31 +0000 Received: from localhost ([127.0.0.1]:39158 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rjdyE-0006Gk-9O for submit@debbugs.gnu.org; Mon, 11 Mar 2024 07:37:30 -0400 Received: from mail-vk1-f181.google.com ([209.85.221.181]:60561) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rjdy8-0006GP-O5 for 68559@debbugs.gnu.org; Mon, 11 Mar 2024 07:37:28 -0400 Received: by mail-vk1-f181.google.com with SMTP id 71dfb90a1353d-4d355374878so624390e0c.0 for <68559@debbugs.gnu.org>; Mon, 11 Mar 2024 04:36:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710156944; x=1710761744; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=qIZW+MM5Gk1CD8DB/tKudfDCF+jmV9WyMDBAnZcZKOM=; b=MZX2hXi/VjRqviYPwodvcJD6QapWvwrl3v7ruhIjK9suOAH+Asdo3z5GnB72mWOYrb 1AEy9IliMFEpGzRQG76zJhTER/GlFNQ9wzs9sNh30V/QCOxD9KXYiNaOCUP89W1OSEsX H3SGxO46eTKHz/91WrEPoYQjW/ZMkOs9LsuwM0Omo6e1l2/2/xxFa7hGVUchrUsDlZ9q L71wfo66h4v9bIQbjIqJO1ArR/kanRBBY4a0okz00oc1pyHnl9hcIJvMr3r2srnMHCtd p6KGvV63y9u2hbIZ6VeoWEkP/W4MpuJx/S6NUFFYfqJnWW99kFnVNGhBFiQM/u5UotKW eSdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710156944; x=1710761744; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=qIZW+MM5Gk1CD8DB/tKudfDCF+jmV9WyMDBAnZcZKOM=; b=DVDZaXW1eK0g+qyMhybTpr1t/rp7FeKo9/4TbTMUChvLzgPG7PCey0KCS3XYT3XDxE q+ALVhYPur80IPLevUHPv1RCKkTi7jmQtYfhxoK0gg+xCUUJHcPovgbL/nQCyawJcuJ4 A0r2AYM810FHW6QmFiZFiPt+ZloUX8fN/E2uCVJICvPn8xllZCo4mAIp0xs/u8D6X93S ujG/o1dN6oAWmQgwJzwnhGORBLMjArYkLgj0sM0TemQMNUHLjIaNshylgo3J4WAcGM2u V10JDBKisJEON0WSFS6fhn1tmFLAah6FGzuR/nA3I40DqWwgboXDbMlXknISgn2nkCa5 m4Sg== X-Forwarded-Encrypted: i=1; AJvYcCUIRjlJYQ918YuGuEZsW1L1T1djvfIRQGv3BjEr1FtuWxPg1kpPP7dOjcfpBzEYB3Fo+yenrRf1EKZCYOdzNbOLZ9qnbCo= X-Gm-Message-State: AOJu0YxVc6ar/Efr+lS/upQhZr7vOfumrpFS39BcGv5wZev9TZ2BE1/V 02cLEzaQRucGx/Tmc4X9OyeRaoqer++EDHk2bCBuXl50Tj8CCAzEXMp54TKr1L9QB9mUHSMJTgD NM0mMHZ3XDFGspCjzwEvW8QtgG2E= X-Google-Smtp-Source: AGHT+IHyiLmDIiBI8HTPfp/RfkJH3viyKljjYtmDm6nlsrpzaxTw319paVGTZhrM/C2gqdWU+zFmrz6M/DMUkR20VoI= X-Received: by 2002:a05:6122:1257:b0:4c9:b8a8:78d4 with SMTP id b23-20020a056122125700b004c9b8a878d4mr2480142vkp.3.1710156943847; Mon, 11 Mar 2024 04:35:43 -0700 (PDT) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> <87bk80ve20.fsf@epfl.ch> <87y1asybi4.fsf@epfl.ch> In-Reply-To: <87y1asybi4.fsf@epfl.ch> From: Liu Hui Date: Mon, 11 Mar 2024 19:35:31 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: "Basil L. Contovounesios" Content-Type: multipart/mixed; boundary="000000000000265c1c061360f175" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: kobarity , Eli Zaretskii , =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) --000000000000265c1c061360f175 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 8, 2024 at 11:44=E2=80=AFPM Basil L. Contovounesios wrote: > > Liu Hui [2024-03-06 18:14 +0800] wrote: > > > I have updated the patch. > > Thanks! The build and tests succeed here, without skipped tests. > > > + (unless (string-match-p "No readline support" output) > > Nit: why not plain 'string-search' instead of a regexp search? Done. > > - (string-match-p "ipython[23]?\\'" python-shell-inte= rpreter))))) > > + (or (string-match-p "ipython[23]?\\'" python-shell-= interpreter) > > + (string=3D python-shell-readline-completer-deli= ms "")))))) > > Just curious: what does the empty string signify? > > [ If it's not just a dumb question, perhaps the meaning could be added > to the variable's docstring/commentary. ] The empty string means no characters are considered delimiters and the readline completion could consider the entire line of input without breaking it into parts based on typical delimiters like spaces or punctuation. The docstring is updated in the attached patch. --000000000000265c1c061360f175 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Detect-the-readline-support-for-Python-shell-complet.patch" Content-Disposition: attachment; filename="0001-Detect-the-readline-support-for-Python-shell-complet.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltmv4b2h0 RnJvbSBiYjFmOGY5MmQ1Y2QzYzE5ZDQwNGUwMjNhYjMzMzE1YmZhOGE1MzVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog TW9uLCAyNiBGZWIgMjAyNCAxODo0NjozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIERldGVjdCB0 aGUgcmVhZGxpbmUgc3VwcG9ydCBmb3IgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24KCiogbGlzcC9w cm9nbW9kZXMvcHl0aG9uLmVsCihweXRob24tc2hlbGwtY29taW50LXdhdGNoLWZvci1maXJzdC1w cm9tcHQtb3V0cHV0LWZpbHRlcik6CkRldGVjdCB0aGUgcmVhZGxpbmUgc3VwcG9ydC4KKHB5dGhv bi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKTogVXBkYXRlIGRvY3N0cmluZy4KKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1zZXR1cCk6IE1vdmUgdGhlIHJlYWRsaW5lCmRl dGVjdGlvbiBjb2RlIHRvIC4uLgoocHl0aG9uLXNoZWxsLXJlYWRsaW5lLWRldGVjdCk6IC4uLiBu ZXcgZnVuY3Rpb24uCihweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbi1tYXli ZSk6IFNraXAgaWYgUHl0aG9uCmhhcyBubyByZWFkbGluZSBzdXBwb3J0LgoocHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tYXQtcG9pbnQpOiBSZXNwZWN0IHRoZSBkZWxpbWl0ZXIgb2YKcmVhZGxpbmUg Y29tcGxldGVyIGluIG5vbi1uYXRpdmUgY29tcGxldGlvbi4KKiB0ZXN0L2xpc3AvcHJvZ21vZGVz L3B5dGhvbi10ZXN0cy5lbAoocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtMSkKKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LW5hdGl2ZS0xKQoocHl0aG9uLWNvbXBsZXRp b24tYXQtcG9pbnQtMSwgcHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtMikKKHB5dGhvbi1jb21w bGV0aW9uLWF0LXBvaW50LXBkYi0xKQoocHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtd2hpbGUt cnVubmluZy0xKQoocHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtbmF0aXZlLTEpCihweXRob24t Y29tcGxldGlvbi1hdC1wb2ludC1uYXRpdmUtMikKKHB5dGhvbi1jb21wbGV0aW9uLWF0LXBvaW50 LW5hdGl2ZS13aXRoLWZmYXAtMSkKKHB5dGhvbi1jb21wbGV0aW9uLWF0LXBvaW50LW5hdGl2ZS13 aXRoLWVsZG9jLTEpOiBTa2lwIHRlc3RzIGlmClB5dGhvbiBoYXMgbm8gcmVhZGxpbmUgc3VwcG9y dC4KKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LWplZGktY29tcGxldGVyKTogQWRk IHRlc3QgZm9yCm5vbi1uYXRpdmUgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24uIChidWcjNjg1NTkp Ci0tLQogbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsICAgICAgICAgICAgfCAyOSArKysrKysrKysr KysrKysrKysrKy0tLS0tLS0KIHRlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIHwg MzEgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDggaW5z ZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMv cHl0aG9uLmVsIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4IDU4N2QwYjM2MzA0Li4w ZWEwYjkxODg3MiAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCisrKyBiL2xp c3AvcHJvZ21vZGVzL3B5dGhvbi5lbApAQCAtMzYwMSw2ICszNjAxLDcgQEAgcHl0aG9uLXNoZWxs LWNvbWludC13YXRjaC1mb3ItZmlyc3QtcHJvbXB0LW91dHB1dC1maWx0ZXIKICAgICAgICAgICAo cHl0aG9uLXNoZWxsLXNlbmQtc3RyaW5nLW5vLW91dHB1dCBweXRob24tc2hlbGwtZXZhbC1maWxl LXNldHVwLWNvZGUpKQogICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoY3VycmVudC1idWZm ZXIpCiAgICAgICAgICAgKGxldCAoKGluaGliaXQtcXVpdCBuaWwpKQorICAgICAgICAgICAgKHB5 dGhvbi1zaGVsbC1yZWFkbGluZS1kZXRlY3QpCiAgICAgICAgICAgICAocnVuLWhvb2tzICdweXRo b24tc2hlbGwtZmlyc3QtcHJvbXB0LWhvb2spKSkpKSkKICAgb3V0cHV0KQogCkBAIC00NDM5LDcg KzQ0NDAsMjMgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXRyeS1vdXRwdXQtdGlt ZW91dAogCiAoZGVmdmFyIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zIG5p bAogICAiV29yZCBkZWxpbWl0ZXJzIHVzZWQgYnkgdGhlIHJlYWRsaW5lIGNvbXBsZXRlci4KLUl0 IGlzIGF1dG9tYXRpY2FsbHkgc2V0IGJ5IFB5dGhvbiBzaGVsbC4iKQorSXQgaXMgYXV0b21hdGlj YWxseSBzZXQgYnkgUHl0aG9uIHNoZWxsLiAgQW4gZW1wdHkgc3RyaW5nIG1lYW5zIG5vCitjaGFy YWN0ZXJzIGFyZSBjb25zaWRlcmVkIGRlbGltaXRlcnMgYW5kIHRoZSByZWFkbGluZSBjb21wbGV0 aW9uCitjb25zaWRlcnMgdGhlIGVudGlyZSBsaW5lIG9mIGlucHV0LiAgQSB2YWx1ZSBvZiBuaWwg bWVhbnMgdGhlIFB5dGhvbgorc2hlbGwgaGFzIG5vIHJlYWRsaW5lIHN1cHBvcnQuIikKKworKGRl ZnVuIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1kZXRlY3QgKCkKKyAgIkRldGVjdCB0aGUgcmVhZGxp bmUgc3VwcG9ydCBmb3IgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24uIgorICAobGV0KiAoKHByb2Nl c3MgKHB5dGhvbi1zaGVsbC1nZXQtcHJvY2VzcykpCisgICAgICAgICAob3V0cHV0IChweXRob24t c2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0ICIKK3RyeToKKyAgICBpbXBvcnQgcmVhZGxpbmUK KyAgICBwcmludChyZWFkbGluZS5nZXRfY29tcGxldGVyX2RlbGltcygpKQorZXhjZXB0OgorICAg IHByaW50KCdObyByZWFkbGluZSBzdXBwb3J0JykiIHByb2Nlc3MpKSkKKyAgICAoc2V0cS1sb2Nh bCBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcworICAgICAgICAgICAgICAg ICh1bmxlc3MgKHN0cmluZy1zZWFyY2ggIk5vIHJlYWRsaW5lIHN1cHBvcnQiIG91dHB1dCkKKyAg ICAgICAgICAgICAgICAgIChzdHJpbmctdHJpbS1yaWdodCBvdXRwdXQpKSkpKQogCiAoZGVmdmFy IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1yZWRpcmVjdC1idWZmZXIKICAgIiAqUHl0 aG9uIGNvbXBsZXRpb25zIHJlZGlyZWN0KiIKQEAgLTQ1NzksMTAgKzQ1OTYsNiBAQCBweXRob24t c2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXAKIF9fUFlUSE9OX0VMX25hdGl2ZV9jb21wbGV0 aW9uX3NldHVwKCkiIHByb2Nlc3MpKSkKICAgICAod2hlbiAoc3RyaW5nLW1hdGNoLXAgInB5dGhv blxcLmVsOiBuYXRpdmUgY29tcGxldGlvbiBzZXR1cCBsb2FkZWQiCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIG91dHB1dCkKLSAgICAgIChzZXRxLWxvY2FsIHB5dGhvbi1zaGVsbC1yZWFkbGlu ZS1jb21wbGV0ZXItZGVsaW1zCi0gICAgICAgICAgICAgICAgICAoc3RyaW5nLXRyaW0tcmlnaHQK LSAgICAgICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLXNlbmQtc3RyaW5nLW5vLW91dHB1dAot ICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IHJlYWRsaW5lOyBwcmludChyZWFkbGluZS5nZXRf Y29tcGxldGVyX2RlbGltcygpKSIpKSkKICAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1u YXRpdmUtdHJ5KSkpKQogCiAoZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1 cm4tb2ZmICgmb3B0aW9uYWwgbXNnKQpAQCAtNDYxMSw3ICs0NjI0LDggQEAgcHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24tbWF5YmUKICAgICAgIChjb25kCiAgICAgICAgKChw eXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtaW50ZXJwcmV0ZXItZGlzYWJsZWQtcCkKICAg ICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9mZiBtc2cpKQotICAg ICAgICgocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXNldHVwKQorICAgICAgICgoYW5k IHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zCisgICAgICAgICAgICAgKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1zZXR1cCkpCiAgICAgICAgICh3aGVuIG1zZwog ICAgICAgICAgIChtZXNzYWdlICJTaGVsbCBuYXRpdmUgY29tcGxldGlvbiBpcyBlbmFibGVkLiIp KSkKICAgICAgICAodApAQCAtNDc4Myw3ICs0Nzk3LDggQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRp b24tYXQtcG9pbnQKICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChwcm9jZXNz LWJ1ZmZlciBwcm9jZXNzKQogICAgICAgICAgICAgICAgICAoaWYgcHl0aG9uLXNoZWxsLWNvbXBs ZXRpb24tbmF0aXZlLWVuYWJsZQogICAgICAgICAgICAgICAgICAgICAgKHN0cmluZz0gcHl0aG9u LXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMgIiIpCi0gICAgICAgICAgICAgICAgICAg KHN0cmluZy1tYXRjaC1wICJpcHl0aG9uWzIzXT9cXCciIHB5dGhvbi1zaGVsbC1pbnRlcnByZXRl cikpKSkpCisgICAgICAgICAgICAgICAgICAgKG9yIChzdHJpbmctbWF0Y2gtcCAiaXB5dGhvblsy M10/XFwnIiBweXRob24tc2hlbGwtaW50ZXJwcmV0ZXIpCisgICAgICAgICAgICAgICAgICAgICAg IChzdHJpbmc9IHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zICIiKSkpKSkp CiAgICAgICAgICAoc3RhcnQKICAgICAgICAgICAoaWYgKDwgKHBvaW50KSBsaW5lLXN0YXJ0KQog ICAgICAgICAgICAgICAocG9pbnQpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5 dGhvbi10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCmluZGV4 IDFjZWVlNjkwY2ZiLi5lMTE0NDBjZGI1YiAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL3Byb2dtb2Rl cy9weXRob24tdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMu ZWwKQEAgLTQ3ODMsNiArNDc4Myw3IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50 LTEKICAgKHB5dGhvbi10ZXN0cy13aXRoLXRlbXAtYnVmZmVyLXdpdGgtc2hlbGwKICAgICIiCiAg ICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgIChza2lwLXVubGVzcyBweXRo b24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcykKICAgICAgKGluc2VydCAiaW1wb3J0 IGFiYyIpCiAgICAgIChjb21pbnQtc2VuZC1pbnB1dCkKICAgICAgKHB5dGhvbi10ZXN0cy1zaGVs bC13YWl0LWZvci1wcm9tcHQpCkBAIC00Nzk3LDYgKzQ3OTgsNyBAQCBweXRob24tc2hlbGwtY29t cGxldGlvbi1hdC1wb2ludC1uYXRpdmUtMQogICAgIiIKICAgIChweXRob24tc2hlbGwtY29tcGxl dGlvbi1uYXRpdmUtdHVybi1vbikKICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIK KyAgICAgKHNraXAtdW5sZXNzIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1z KQogICAgICAoaW5zZXJ0ICJpbXBvcnQgYWJjIikKICAgICAgKGNvbWludC1zZW5kLWlucHV0KQog ICAgICAocHl0aG9uLXRlc3RzLXNoZWxsLXdhaXQtZm9yLXByb21wdCkKQEAgLTQ4ODMsMTEgKzQ4 ODUsMTQgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtamVkaS1jb21wbGV0ZXIK ICAgICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXItd2l0aC1zaGVsbAogICAgICAiIgog ICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCi0gICAgICAocHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCi0gICAgICAoc2tpcC11bmxlc3MgKHN0cmluZz0g cHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMgIiIpKQotICAgICAgKHB5dGhv bi10ZXN0cy0tY29tcGxldGlvbi1tb2R1bGUpCi0gICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0 aW9uLXBhcmFtZXRlcnMpCi0gICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLWV4dHJhLWNv bnRleHQpKSkpKQorICAgICAgIChza2lwLXVubGVzcyAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVh ZGxpbmUtY29tcGxldGVyLWRlbGltcyAiIikpCisgICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0 aW9uLW5hdGl2ZS10dXJuLW9mZikKKyAgICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1v ZHVsZSkKKyAgICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLXBhcmFtZXRlcnMpCisgICAg ICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9uKQorICAgICAgIChweXRo b24tdGVzdHMtLWNvbXBsZXRpb24tbW9kdWxlKQorICAgICAgIChweXRob24tdGVzdHMtLWNvbXBs ZXRpb24tcGFyYW1ldGVycykKKyAgICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLWV4dHJh LWNvbnRleHQpKSkpKQogCiAoZXJ0LWRlZnRlc3QgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQt cG9pbnQtaXB5dGhvbiAoKQogICAiQ2hlY2sgaWYgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24gd29y a3MgZm9yIElQeXRob24uIgpAQCAtNDkyNCw2ICs0OTI5LDggQEAgcHl0aG9uLWNvbXBsZXRpb24t YXQtcG9pbnQtMQogaW1wb3J0IGFiYwogIgogICAgKGxldCAoKGluaGliaXQtbWVzc2FnZSB0KSkK KyAgICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgorICAgICAgIChza2lwLXVubGVz cyBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcykpCiAgICAgIChweXRob24t c2hlbGwtc2VuZC1idWZmZXIpCiAgICAgIChweXRob24tdGVzdHMtc2hlbGwtd2FpdC1mb3ItcHJv bXB0KQogICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQpAQCAtNDk0MCw2ICs0OTQ3LDggQEAg cHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtMgogaW1wb3J0IGFiYwogIgogICAgKGxldCAoKGlu aGliaXQtbWVzc2FnZSB0KSkKKyAgICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgor ICAgICAgIChza2lwLXVubGVzcyBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGlt cykpCiAgICAgIChweXRob24tc2hlbGwtc2VuZC1idWZmZXIpCiAgICAgIChweXRob24tdGVzdHMt c2hlbGwtd2FpdC1mb3ItcHJvbXB0KQogICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVm ZmVyCkBAIC00OTU5LDYgKzQ5NjgsOCBAQCBweXRob24tY29tcGxldGlvbi1hdC1wb2ludC1wZGIt MQogcHJpbnQoJ0hlbGxvJykKICIKICAgIChsZXQgKChpbmhpYml0LW1lc3NhZ2UgdCkpCisgICAg IChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAgICAoc2tpcC11bmxlc3MgcHl0 aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMpKQogICAgICAocHl0aG9uLXNoZWxs LXNlbmQtYnVmZmVyKQogICAgICAocHl0aG9uLXRlc3RzLXNoZWxsLXdhaXQtZm9yLXByb21wdCkK ICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKQEAgLTQ5NzUsNiArNDk4Niw4IEBAIHB5dGhv bi1jb21wbGV0aW9uLWF0LXBvaW50LXdoaWxlLXJ1bm5pbmctMQogdGltZS5zbGVlcCgzKQogIgog ICAgKGxldCAoKGluaGliaXQtbWVzc2FnZSB0KSkKKyAgICAgKHB5dGhvbi1zaGVsbC13aXRoLXNo ZWxsLWJ1ZmZlcgorICAgICAgIChza2lwLXVubGVzcyBweXRob24tc2hlbGwtcmVhZGxpbmUtY29t cGxldGVyLWRlbGltcykpCiAgICAgIChweXRob24tc2hlbGwtc2VuZC1idWZmZXIpCiAgICAgIChn b3RvLWNoYXIgKHBvaW50LW1heCkpCiAgICAgIChpbnNlcnQgInRpbWUuIikKQEAgLTQ5ODcsNiAr NTAwMCw4IEBAIHB5dGhvbi1jb21wbGV0aW9uLWF0LXBvaW50LW5hdGl2ZS0xCiBpbXBvcnQgYWJj CiAiCiAgICAobGV0ICgoaW5oaWJpdC1tZXNzYWdlIHQpKQorICAgICAocHl0aG9uLXNoZWxsLXdp dGgtc2hlbGwtYnVmZmVyCisgICAgICAgKHNraXAtdW5sZXNzIHB5dGhvbi1zaGVsbC1yZWFkbGlu ZS1jb21wbGV0ZXItZGVsaW1zKSkKICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2 ZS10dXJuLW9uKQogICAgICAocHl0aG9uLXNoZWxsLXNlbmQtYnVmZmVyKQogICAgICAocHl0aG9u LXRlc3RzLXNoZWxsLXdhaXQtZm9yLXByb21wdCkKQEAgLTUwMDQsNiArNTAxOSw4IEBAIHB5dGhv bi1jb21wbGV0aW9uLWF0LXBvaW50LW5hdGl2ZS0yCiBpbXBvcnQgYWJjCiAiCiAgICAobGV0ICgo aW5oaWJpdC1tZXNzYWdlIHQpKQorICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVy CisgICAgICAgKHNraXAtdW5sZXNzIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVs aW1zKSkKICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9uKQogICAg ICAocHl0aG9uLXNoZWxsLXNlbmQtYnVmZmVyKQogICAgICAocHl0aG9uLXRlc3RzLXNoZWxsLXdh aXQtZm9yLXByb21wdCkKQEAgLTUwMjAsNiArNTAzNyw4IEBAIHB5dGhvbi1jb21wbGV0aW9uLWF0 LXBvaW50LW5hdGl2ZS13aXRoLWZmYXAtMQogaW1wb3J0IGFiYwogIgogICAgKGxldCAoKGluaGli aXQtbWVzc2FnZSB0KSkKKyAgICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgorICAg ICAgIChza2lwLXVubGVzcyBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcykp CiAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbikKICAgICAgKHB5 dGhvbi1zaGVsbC1zZW5kLWJ1ZmZlcikKICAgICAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZv ci1wcm9tcHQpCkBAIC01MDM2LDYgKzUwNTUsOCBAQCBweXRob24tY29tcGxldGlvbi1hdC1wb2lu dC1uYXRpdmUtd2l0aC1lbGRvYy0xCiBpbXBvcnQgYWJjCiAiCiAgICAobGV0ICgoaW5oaWJpdC1t ZXNzYWdlIHQpKQorICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAg KHNraXAtdW5sZXNzIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKSkKICAg ICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9uKQogICAgICAocHl0aG9u LXNoZWxsLXNlbmQtYnVmZmVyKQogICAgICAocHl0aG9uLXRlc3RzLXNoZWxsLXdhaXQtZm9yLXBy b21wdCkKLS0gCjIuMjUuMQoK --000000000000265c1c061360f175-- From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 11 12:03:36 2024 Received: (at 68559) by debbugs.gnu.org; 11 Mar 2024 16:03:36 +0000 Received: from localhost ([127.0.0.1]:41089 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rji7j-0005ef-HM for submit@debbugs.gnu.org; Mon, 11 Mar 2024 12:03:35 -0400 Received: from mail-lj1-f177.google.com ([209.85.208.177]:41080) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rji7e-0005eJ-BJ for 68559@debbugs.gnu.org; Mon, 11 Mar 2024 12:03:33 -0400 Received: by mail-lj1-f177.google.com with SMTP id 38308e7fff4ca-2d358acc8cbso13475631fa.0 for <68559@debbugs.gnu.org>; Mon, 11 Mar 2024 09:02:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710172970; x=1710777770; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XpWs2v15GvAjlARGjEqcn6/HvgoU9SDRLkDUn+KUaRs=; b=p7wgynLTBDdbD5FqdNQ85PT0sD64wiwUcO3HmYo7XRD4Fg7uyy36ze0Ye/+28WuJAe 3EQd3tWOdBYMG1z82dfikQvKksdXA5WZIrWF9PO69MGdZlJHyIqdupesAvwe7G1ogH4a K+d/dSBx1hetyBdxDuZexc84T7QoSXFj4ILjajCrDb0aXOa0DPnRAkSBrvtzXv9u+vXz RlGf5ISOIuw70hxB639Enmoa4epE9yMYearcE/795FnJZuixMBlangSaH1TYW2IotOoe vY2iI489FPp5vcKvgT+nqZLmC6lRzYlXo4kQG4GEUGC5O7UIUE7LAdQLW+46+jPO0aG/ U8UQ== X-Forwarded-Encrypted: i=1; AJvYcCVGurnbUbVta93RnjDY6AgnIUtyJB+PoeG6Zu8pZ8uV5jRDl6aluI7A0FIZKaLvpkNVoDfrdiuqKqA1rOA5CjvHoB1LRTo= X-Gm-Message-State: AOJu0YwN1rreOXt3K6BI1BltGS4li9Q9nNJ7TsDVKLFomWI8h0CiFqg5 ReI8zCywl/qBPYgvevfBtKGYMox7B5Fmoh6I09XOAsuCfd6Un/RI X-Google-Smtp-Source: AGHT+IGYyfdV88MBTxD839ZDSTn+YAMG3VmxkHj8zoBCCHKU0LxmRo2XhwHxOxJnUiVyz8dZYfMkkg== X-Received: by 2002:a2e:9985:0:b0:2d2:5d6d:9db3 with SMTP id w5-20020a2e9985000000b002d25d6d9db3mr3857031lji.0.1710172969930; Mon, 11 Mar 2024 09:02:49 -0700 (PDT) Received: from localhost ([2001:620:618:5c0:2:80b3:0:1e]) by smtp.gmail.com with ESMTPSA id fd15-20020a056402388f00b00568601d3a7bsm974261edb.53.2024.03.11.09.02.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Mar 2024 09:02:49 -0700 (PDT) From: "Basil L. Contovounesios" To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: (Liu Hui's message of "Mon, 11 Mar 2024 19:35:31 +0800") References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> <87bk80ve20.fsf@epfl.ch> <87y1asybi4.fsf@epfl.ch> Date: Mon, 11 Mar 2024 17:02:48 +0100 Message-ID: <87zfv4lpsn.fsf@epfl.ch> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: kobarity , Eli Zaretskii , Mattias =?utf-8?Q?Engdeg=C3=A5rd?= , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) Liu Hui [2024-03-11 19:35 +0800] wrote: > On Fri, Mar 8, 2024 at 11:44=E2=80=AFPM Basil L. Contovounesios > wrote: >> >> Liu Hui [2024-03-06 18:14 +0800] wrote: >> >> > - (string-match-p "ipython[23]?\\'" python-shell-int= erpreter))))) >> > + (or (string-match-p "ipython[23]?\\'" python-shell= -interpreter) >> > + (string=3D python-shell-readline-completer-del= ims "")))))) >> >> Just curious: what does the empty string signify? >> >> [ If it's not just a dumb question, perhaps the meaning could be added >> to the variable's docstring/commentary. ] > > The empty string means no characters are considered delimiters and the > readline completion could consider the entire line of input without > breaking it into parts based on typical delimiters like spaces or > punctuation. The docstring is updated in the attached patch. Thanks! But that makes me wonder: in the cases where we check (string=3D python-shell-readline-completer-delims "") is there a possibility that the variable's value will be nil? (In which case we should compare with equal instead of string=3D.) --=20 Basil From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 13 06:24:45 2024 Received: (at 68559) by debbugs.gnu.org; 13 Mar 2024 10:24:45 +0000 Received: from localhost ([127.0.0.1]:44757 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkLmv-0003si-0f for submit@debbugs.gnu.org; Wed, 13 Mar 2024 06:24:45 -0400 Received: from mail-vk1-f170.google.com ([209.85.221.170]:45450) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkLmo-0003sL-VB for 68559@debbugs.gnu.org; Wed, 13 Mar 2024 06:24:43 -0400 Received: by mail-vk1-f170.google.com with SMTP id 71dfb90a1353d-4d33c5c0b5aso162617e0c.3 for <68559@debbugs.gnu.org>; Wed, 13 Mar 2024 03:24:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710325378; x=1710930178; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=hphSn+o42S81Lze2sggWcxrCfu7sIQQBIBD7yFb0T3s=; b=lEylKBvy4hUeuIb+2l3juIHneePVzr2utEBNRj1gVR9tUnKpEl+VZ/oUJMDsN5gZGq 30SScJ/iYON/Fbheo3NudVCAbQdMG1qWcyuS6/dy3L2wf1uXX8BUOAHlNdF7sD8A2eCm bnNIxpefLt4Aihs6I573hFQEpjoBPprHTYpjtdCLtmJRHDifUm04Y5jOAcVcCzIjjW1z 2bIWGYdn4m2dWkivylPfVM1f9YymEhiDY/Q8gcB6XB+Y3MV/IO+T4L9pWIoIokwAZ9OQ sZpJcyEuEnYGz9cOeURgsplSQOCtcfivxcS/4hcnTr78kHdu7HAJCA5WLw1N94ZQsmWr q89g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710325378; x=1710930178; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hphSn+o42S81Lze2sggWcxrCfu7sIQQBIBD7yFb0T3s=; b=I1KzyK5L4t4jqbhBMfxLKx/e//0VL+ykzSNeyjKN5heKsdkVEhHU/VziDOd5rckyBS 2w8qt3z1b0l5R9fK0oHiajcyAkoFYaAEtF5r7bUNP/58npT5yCvfLHmPkoiKWNQo1yqP WTIRKAHb/L9KJ7VFKwMiHJRFHHkNmGoc9nDPXTR23LsJGuV1N4l+FLGBbsmON8p+TUzo SV3EYKldgebybTPgo8BF9EXlmHmv3NKqRy8jhYN5J0gjOCHcf79n0t34jqgho0veZFGA bd33hj85meO7tasG5okexA4T6XH/Eq+9DL7k4zLBstG52gDic1HV0xWZ3SutgvEA3b9C IJBg== X-Forwarded-Encrypted: i=1; AJvYcCVbBgIl41nABov2QMtbB39Vtl1i8EeasT8aagFkbTIEPbMTSwC68ZnP/qess+2EH7EBU/OasB3sg4pdla3DuGBRMoDVUxI= X-Gm-Message-State: AOJu0YzZd8j6DMLFy4LsPEzB2tyDrv9BW5NWCQdOo8qeetUfWGq/KcEr GeAZv1rnm8xBdXO5bQN04ob6g0dlU5LUvg69KuYvXEfYoXXJlEv8XG1+EAMcObOrCjxvNlO1BW9 2czFFG8fGFzbWlnAix8exSZojRyM= X-Google-Smtp-Source: AGHT+IEVJKOBs7jg2tXzXBuC8vzRXQMM5AjkmFxSMdJgAZkdwXwfrfu3ur1Nj/DJKyqT5rNXaHwoJf2TgtO0qzbL7TA= X-Received: by 2002:a1f:ee08:0:b0:4d4:154c:332 with SMTP id m8-20020a1fee08000000b004d4154c0332mr1540413vkh.8.1710325378213; Wed, 13 Mar 2024 03:22:58 -0700 (PDT) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> <87bk80ve20.fsf@epfl.ch> <87y1asybi4.fsf@epfl.ch> <87zfv4lpsn.fsf@epfl.ch> In-Reply-To: <87zfv4lpsn.fsf@epfl.ch> From: Liu Hui Date: Wed, 13 Mar 2024 18:21:00 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: "Basil L. Contovounesios" Content-Type: multipart/mixed; boundary="0000000000009e824306138828a0" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: kobarity , Eli Zaretskii , =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) --0000000000009e824306138828a0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 12, 2024 at 12:02=E2=80=AFAM Basil L. Contovounesios wrote: > > Liu Hui [2024-03-11 19:35 +0800] wrote: > > > On Fri, Mar 8, 2024 at 11:44=E2=80=AFPM Basil L. Contovounesios > > wrote: > >> > >> Liu Hui [2024-03-06 18:14 +0800] wrote: > >> > >> > - (string-match-p "ipython[23]?\\'" python-shell-i= nterpreter))))) > >> > + (or (string-match-p "ipython[23]?\\'" python-she= ll-interpreter) > >> > + (string=3D python-shell-readline-completer-d= elims "")))))) > >> > >> Just curious: what does the empty string signify? > >> > >> [ If it's not just a dumb question, perhaps the meaning could be added > >> to the variable's docstring/commentary. ] > > > > The empty string means no characters are considered delimiters and the > > readline completion could consider the entire line of input without > > breaking it into parts based on typical delimiters like spaces or > > punctuation. The docstring is updated in the attached patch. > > Thanks! But that makes me wonder: in the cases where we check > > (string=3D python-shell-readline-completer-delims "") > > is there a possibility that the variable's value will be nil? > (In which case we should compare with equal instead of string=3D.) Yes, it is a string with native completion and may be nil with non-native completion. I have updated the patch. Thanks. --0000000000009e824306138828a0 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Detect-the-readline-support-for-Python-shell-complet.patch" Content-Disposition: attachment; filename="0001-Detect-the-readline-support-for-Python-shell-complet.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltpj7ht60 RnJvbSBkMjA0ZDVhZTI0MzlkYzc2NjYyZTRlMTM0OTFmZjEwMzIxNmEyZDEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog TW9uLCAyNiBGZWIgMjAyNCAxODo0NjozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIERldGVjdCB0 aGUgcmVhZGxpbmUgc3VwcG9ydCBmb3IgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24KCiogbGlzcC9w cm9nbW9kZXMvcHl0aG9uLmVsCihweXRob24tc2hlbGwtY29taW50LXdhdGNoLWZvci1maXJzdC1w cm9tcHQtb3V0cHV0LWZpbHRlcik6CkRldGVjdCB0aGUgcmVhZGxpbmUgc3VwcG9ydC4KKHB5dGhv bi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKTogVXBkYXRlIGRvY3N0cmluZy4KKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1zZXR1cCk6IE1vdmUgdGhlIHJlYWRsaW5lCmRl dGVjdGlvbiBjb2RlIHRvIC4uLgoocHl0aG9uLXNoZWxsLXJlYWRsaW5lLWRldGVjdCk6IC4uLiBu ZXcgZnVuY3Rpb24uCihweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbi1tYXli ZSk6IFNraXAgaWYgUHl0aG9uCmhhcyBubyByZWFkbGluZSBzdXBwb3J0LgoocHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tYXQtcG9pbnQpOiBSZXNwZWN0IHRoZSBkZWxpbWl0ZXIgb2YKcmVhZGxpbmUg Y29tcGxldGVyIGluIG5vbi1uYXRpdmUgY29tcGxldGlvbi4KKiB0ZXN0L2xpc3AvcHJvZ21vZGVz L3B5dGhvbi10ZXN0cy5lbAoocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtMSkKKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LW5hdGl2ZS0xKQoocHl0aG9uLWNvbXBsZXRp b24tYXQtcG9pbnQtMSwgcHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtMikKKHB5dGhvbi1jb21w bGV0aW9uLWF0LXBvaW50LXBkYi0xKQoocHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtd2hpbGUt cnVubmluZy0xKQoocHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtbmF0aXZlLTEpCihweXRob24t Y29tcGxldGlvbi1hdC1wb2ludC1uYXRpdmUtMikKKHB5dGhvbi1jb21wbGV0aW9uLWF0LXBvaW50 LW5hdGl2ZS13aXRoLWZmYXAtMSkKKHB5dGhvbi1jb21wbGV0aW9uLWF0LXBvaW50LW5hdGl2ZS13 aXRoLWVsZG9jLTEpOiBTa2lwIHRlc3RzIGlmClB5dGhvbiBoYXMgbm8gcmVhZGxpbmUgc3VwcG9y dC4KKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LWplZGktY29tcGxldGVyKTogQWRk IHRlc3QgZm9yCm5vbi1uYXRpdmUgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24uIChidWcjNjg1NTkp Ci0tLQogbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsICAgICAgICAgICAgfCAyOSArKysrKysrKysr KysrKysrKysrKy0tLS0tLS0KIHRlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIHwg MzEgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDggaW5z ZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMv cHl0aG9uLmVsIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4IDU4N2QwYjM2MzA0Li5j OTRiYjRmYzU1MCAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCisrKyBiL2xp c3AvcHJvZ21vZGVzL3B5dGhvbi5lbApAQCAtMzYwMSw2ICszNjAxLDcgQEAgcHl0aG9uLXNoZWxs LWNvbWludC13YXRjaC1mb3ItZmlyc3QtcHJvbXB0LW91dHB1dC1maWx0ZXIKICAgICAgICAgICAo cHl0aG9uLXNoZWxsLXNlbmQtc3RyaW5nLW5vLW91dHB1dCBweXRob24tc2hlbGwtZXZhbC1maWxl LXNldHVwLWNvZGUpKQogICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoY3VycmVudC1idWZm ZXIpCiAgICAgICAgICAgKGxldCAoKGluaGliaXQtcXVpdCBuaWwpKQorICAgICAgICAgICAgKHB5 dGhvbi1zaGVsbC1yZWFkbGluZS1kZXRlY3QpCiAgICAgICAgICAgICAocnVuLWhvb2tzICdweXRo b24tc2hlbGwtZmlyc3QtcHJvbXB0LWhvb2spKSkpKSkKICAgb3V0cHV0KQogCkBAIC00NDM5LDcg KzQ0NDAsMjMgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXRyeS1vdXRwdXQtdGlt ZW91dAogCiAoZGVmdmFyIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zIG5p bAogICAiV29yZCBkZWxpbWl0ZXJzIHVzZWQgYnkgdGhlIHJlYWRsaW5lIGNvbXBsZXRlci4KLUl0 IGlzIGF1dG9tYXRpY2FsbHkgc2V0IGJ5IFB5dGhvbiBzaGVsbC4iKQorSXQgaXMgYXV0b21hdGlj YWxseSBzZXQgYnkgUHl0aG9uIHNoZWxsLiAgQW4gZW1wdHkgc3RyaW5nIG1lYW5zIG5vCitjaGFy YWN0ZXJzIGFyZSBjb25zaWRlcmVkIGRlbGltaXRlcnMgYW5kIHRoZSByZWFkbGluZSBjb21wbGV0 aW9uCitjb25zaWRlcnMgdGhlIGVudGlyZSBsaW5lIG9mIGlucHV0LiAgQSB2YWx1ZSBvZiBuaWwg bWVhbnMgdGhlIFB5dGhvbgorc2hlbGwgaGFzIG5vIHJlYWRsaW5lIHN1cHBvcnQuIikKKworKGRl ZnVuIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1kZXRlY3QgKCkKKyAgIkRldGVjdCB0aGUgcmVhZGxp bmUgc3VwcG9ydCBmb3IgUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24uIgorICAobGV0KiAoKHByb2Nl c3MgKHB5dGhvbi1zaGVsbC1nZXQtcHJvY2VzcykpCisgICAgICAgICAob3V0cHV0IChweXRob24t c2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0ICIKK3RyeToKKyAgICBpbXBvcnQgcmVhZGxpbmUK KyAgICBwcmludChyZWFkbGluZS5nZXRfY29tcGxldGVyX2RlbGltcygpKQorZXhjZXB0OgorICAg IHByaW50KCdObyByZWFkbGluZSBzdXBwb3J0JykiIHByb2Nlc3MpKSkKKyAgICAoc2V0cS1sb2Nh bCBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcworICAgICAgICAgICAgICAg ICh1bmxlc3MgKHN0cmluZy1zZWFyY2ggIk5vIHJlYWRsaW5lIHN1cHBvcnQiIG91dHB1dCkKKyAg ICAgICAgICAgICAgICAgIChzdHJpbmctdHJpbS1yaWdodCBvdXRwdXQpKSkpKQogCiAoZGVmdmFy IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1yZWRpcmVjdC1idWZmZXIKICAgIiAqUHl0 aG9uIGNvbXBsZXRpb25zIHJlZGlyZWN0KiIKQEAgLTQ1NzksMTAgKzQ1OTYsNiBAQCBweXRob24t c2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXAKIF9fUFlUSE9OX0VMX25hdGl2ZV9jb21wbGV0 aW9uX3NldHVwKCkiIHByb2Nlc3MpKSkKICAgICAod2hlbiAoc3RyaW5nLW1hdGNoLXAgInB5dGhv blxcLmVsOiBuYXRpdmUgY29tcGxldGlvbiBzZXR1cCBsb2FkZWQiCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIG91dHB1dCkKLSAgICAgIChzZXRxLWxvY2FsIHB5dGhvbi1zaGVsbC1yZWFkbGlu ZS1jb21wbGV0ZXItZGVsaW1zCi0gICAgICAgICAgICAgICAgICAoc3RyaW5nLXRyaW0tcmlnaHQK LSAgICAgICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLXNlbmQtc3RyaW5nLW5vLW91dHB1dAot ICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IHJlYWRsaW5lOyBwcmludChyZWFkbGluZS5nZXRf Y29tcGxldGVyX2RlbGltcygpKSIpKSkKICAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1u YXRpdmUtdHJ5KSkpKQogCiAoZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1 cm4tb2ZmICgmb3B0aW9uYWwgbXNnKQpAQCAtNDYxMSw3ICs0NjI0LDggQEAgcHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24tbWF5YmUKICAgICAgIChjb25kCiAgICAgICAgKChw eXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtaW50ZXJwcmV0ZXItZGlzYWJsZWQtcCkKICAg ICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9mZiBtc2cpKQotICAg ICAgICgocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXNldHVwKQorICAgICAgICgoYW5k IHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zCisgICAgICAgICAgICAgKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1zZXR1cCkpCiAgICAgICAgICh3aGVuIG1zZwog ICAgICAgICAgIChtZXNzYWdlICJTaGVsbCBuYXRpdmUgY29tcGxldGlvbiBpcyBlbmFibGVkLiIp KSkKICAgICAgICAodApAQCAtNDc4Myw3ICs0Nzk3LDggQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRp b24tYXQtcG9pbnQKICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChwcm9jZXNz LWJ1ZmZlciBwcm9jZXNzKQogICAgICAgICAgICAgICAgICAoaWYgcHl0aG9uLXNoZWxsLWNvbXBs ZXRpb24tbmF0aXZlLWVuYWJsZQogICAgICAgICAgICAgICAgICAgICAgKHN0cmluZz0gcHl0aG9u LXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMgIiIpCi0gICAgICAgICAgICAgICAgICAg KHN0cmluZy1tYXRjaC1wICJpcHl0aG9uWzIzXT9cXCciIHB5dGhvbi1zaGVsbC1pbnRlcnByZXRl cikpKSkpCisgICAgICAgICAgICAgICAgICAgKG9yIChzdHJpbmctbWF0Y2gtcCAiaXB5dGhvblsy M10/XFwnIiBweXRob24tc2hlbGwtaW50ZXJwcmV0ZXIpCisgICAgICAgICAgICAgICAgICAgICAg IChlcXVhbCBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyAiIikpKSkpKQog ICAgICAgICAgKHN0YXJ0CiAgICAgICAgICAgKGlmICg8IChwb2ludCkgbGluZS1zdGFydCkKICAg ICAgICAgICAgICAgKHBvaW50KQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRo b24tdGVzdHMuZWwgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbAppbmRleCAx Y2VlZTY5MGNmYi4uZTExNDQwY2RiNWIgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMv cHl0aG9uLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVs CkBAIC00NzgzLDYgKzQ3ODMsNyBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC0x CiAgIChweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlci13aXRoLXNoZWxsCiAgICAiIgogICAg KHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgorICAgICAoc2tpcC11bmxlc3MgcHl0aG9u LXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMpCiAgICAgIChpbnNlcnQgImltcG9ydCBh YmMiKQogICAgICAoY29taW50LXNlbmQtaW5wdXQpCiAgICAgIChweXRob24tdGVzdHMtc2hlbGwt d2FpdC1mb3ItcHJvbXB0KQpAQCAtNDc5Nyw2ICs0Nzk4LDcgQEAgcHl0aG9uLXNoZWxsLWNvbXBs ZXRpb24tYXQtcG9pbnQtbmF0aXZlLTEKICAgICIiCiAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRp b24tbmF0aXZlLXR1cm4tb24pCiAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisg ICAgIChza2lwLXVubGVzcyBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcykK ICAgICAgKGluc2VydCAiaW1wb3J0IGFiYyIpCiAgICAgIChjb21pbnQtc2VuZC1pbnB1dCkKICAg ICAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9tcHQpCkBAIC00ODgzLDExICs0ODg1 LDE0IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LWplZGktY29tcGxldGVyCiAg ICAgKHB5dGhvbi10ZXN0cy13aXRoLXRlbXAtYnVmZmVyLXdpdGgtc2hlbGwKICAgICAgIiIKICAg ICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgotICAgICAgKHB5dGhvbi1zaGVsbC1j b21wbGV0aW9uLW5hdGl2ZS10dXJuLW9uKQotICAgICAgKHNraXAtdW5sZXNzIChzdHJpbmc9IHB5 dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zICIiKSkKLSAgICAgIChweXRob24t dGVzdHMtLWNvbXBsZXRpb24tbW9kdWxlKQotICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlv bi1wYXJhbWV0ZXJzKQotICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1leHRyYS1jb250 ZXh0KSkpKSkKKyAgICAgICAoc2tpcC11bmxlc3MgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRs aW5lLWNvbXBsZXRlci1kZWxpbXMgIiIpKQorICAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlv bi1uYXRpdmUtdHVybi1vZmYpCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1tb2R1 bGUpCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzKQorICAgICAg IChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbikKKyAgICAgICAocHl0aG9u LXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSkKKyAgICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0 aW9uLXBhcmFtZXRlcnMpCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1leHRyYS1j b250ZXh0KSkpKSkKIAogKGVydC1kZWZ0ZXN0IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBv aW50LWlweXRob24gKCkKICAgIkNoZWNrIGlmIFB5dGhvbiBzaGVsbCBjb21wbGV0aW9uIHdvcmtz IGZvciBJUHl0aG9uLiIKQEAgLTQ5MjQsNiArNDkyOSw4IEBAIHB5dGhvbi1jb21wbGV0aW9uLWF0 LXBvaW50LTEKIGltcG9ydCBhYmMKICIKICAgIChsZXQgKChpbmhpYml0LW1lc3NhZ2UgdCkpCisg ICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAgICAoc2tpcC11bmxlc3Mg cHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMpKQogICAgICAocHl0aG9uLXNo ZWxsLXNlbmQtYnVmZmVyKQogICAgICAocHl0aG9uLXRlc3RzLXNoZWxsLXdhaXQtZm9yLXByb21w dCkKICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKQEAgLTQ5NDAsNiArNDk0Nyw4IEBAIHB5 dGhvbi1jb21wbGV0aW9uLWF0LXBvaW50LTIKIGltcG9ydCBhYmMKICIKICAgIChsZXQgKChpbmhp Yml0LW1lc3NhZ2UgdCkpCisgICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAg ICAgICAoc2tpcC11bmxlc3MgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMp KQogICAgICAocHl0aG9uLXNoZWxsLXNlbmQtYnVmZmVyKQogICAgICAocHl0aG9uLXRlc3RzLXNo ZWxsLXdhaXQtZm9yLXByb21wdCkKICAgICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZl cgpAQCAtNDk1OSw2ICs0OTY4LDggQEAgcHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQtcGRiLTEK IHByaW50KCdIZWxsbycpCiAiCiAgICAobGV0ICgoaW5oaWJpdC1tZXNzYWdlIHQpKQorICAgICAo cHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAgKHNraXAtdW5sZXNzIHB5dGhv bi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zKSkKICAgICAgKHB5dGhvbi1zaGVsbC1z ZW5kLWJ1ZmZlcikKICAgICAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9tcHQpCiAg ICAgIChnb3RvLWNoYXIgKHBvaW50LW1heCkpCkBAIC00OTc1LDYgKzQ5ODYsOCBAQCBweXRob24t Y29tcGxldGlvbi1hdC1wb2ludC13aGlsZS1ydW5uaW5nLTEKIHRpbWUuc2xlZXAoMykKICIKICAg IChsZXQgKChpbmhpYml0LW1lc3NhZ2UgdCkpCisgICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVs bC1idWZmZXIKKyAgICAgICAoc2tpcC11bmxlc3MgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBs ZXRlci1kZWxpbXMpKQogICAgICAocHl0aG9uLXNoZWxsLXNlbmQtYnVmZmVyKQogICAgICAoZ290 by1jaGFyIChwb2ludC1tYXgpKQogICAgICAoaW5zZXJ0ICJ0aW1lLiIpCkBAIC00OTg3LDYgKzUw MDAsOCBAQCBweXRob24tY29tcGxldGlvbi1hdC1wb2ludC1uYXRpdmUtMQogaW1wb3J0IGFiYwog IgogICAgKGxldCAoKGluaGliaXQtbWVzc2FnZSB0KSkKKyAgICAgKHB5dGhvbi1zaGVsbC13aXRo LXNoZWxsLWJ1ZmZlcgorICAgICAgIChza2lwLXVubGVzcyBweXRob24tc2hlbGwtcmVhZGxpbmUt Y29tcGxldGVyLWRlbGltcykpCiAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUt dHVybi1vbikKICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLWJ1ZmZlcikKICAgICAgKHB5dGhvbi10 ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9tcHQpCkBAIC01MDA0LDYgKzUwMTksOCBAQCBweXRob24t Y29tcGxldGlvbi1hdC1wb2ludC1uYXRpdmUtMgogaW1wb3J0IGFiYwogIgogICAgKGxldCAoKGlu aGliaXQtbWVzc2FnZSB0KSkKKyAgICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgor ICAgICAgIChza2lwLXVubGVzcyBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGlt cykpCiAgICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbikKICAgICAg KHB5dGhvbi1zaGVsbC1zZW5kLWJ1ZmZlcikKICAgICAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0 LWZvci1wcm9tcHQpCkBAIC01MDIwLDYgKzUwMzcsOCBAQCBweXRob24tY29tcGxldGlvbi1hdC1w b2ludC1uYXRpdmUtd2l0aC1mZmFwLTEKIGltcG9ydCBhYmMKICIKICAgIChsZXQgKChpbmhpYml0 LW1lc3NhZ2UgdCkpCisgICAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAg ICAoc2tpcC11bmxlc3MgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMpKQog ICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb24pCiAgICAgIChweXRo b24tc2hlbGwtc2VuZC1idWZmZXIpCiAgICAgIChweXRob24tdGVzdHMtc2hlbGwtd2FpdC1mb3It cHJvbXB0KQpAQCAtNTAzNiw2ICs1MDU1LDggQEAgcHl0aG9uLWNvbXBsZXRpb24tYXQtcG9pbnQt bmF0aXZlLXdpdGgtZWxkb2MtMQogaW1wb3J0IGFiYwogIgogICAgKGxldCAoKGluaGliaXQtbWVz c2FnZSB0KSkKKyAgICAgKHB5dGhvbi1zaGVsbC13aXRoLXNoZWxsLWJ1ZmZlcgorICAgICAgIChz a2lwLXVubGVzcyBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcykpCiAgICAg IChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHVybi1vbikKICAgICAgKHB5dGhvbi1z aGVsbC1zZW5kLWJ1ZmZlcikKICAgICAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9t cHQpCi0tIAoyLjI1LjEKCg== --0000000000009e824306138828a0-- From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 14 10:24:50 2024 Received: (at 68559) by debbugs.gnu.org; 14 Mar 2024 14:24:50 +0000 Received: from localhost ([127.0.0.1]:50416 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkm0n-0004a1-UN for submit@debbugs.gnu.org; Thu, 14 Mar 2024 10:24:50 -0400 Received: from mail-ed1-f46.google.com ([209.85.208.46]:38945) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkm0k-0004Zo-RK for 68559@debbugs.gnu.org; Thu, 14 Mar 2024 10:24:48 -0400 Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-5586764bd0aso328510a12.0 for <68559@debbugs.gnu.org>; Thu, 14 Mar 2024 07:24:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710426245; x=1711031045; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XUbl2f2waGhxPh7ofHuMPc7zETa+jsx4VCi+vf4EY2g=; b=GnvEjyUI0ZgszHlv57LUbZ70POhIGrMDcre3Nkg/0kpUGEbfwiP9Kb7eRTmWWLylC/ 2Gar0Ohzj6Qzpcc1Oeh0ovTCHEEthYUFmW8ZFH7vSLVRGARuRLM21+I83k247o3cB2HV li3vyI/wSTXcCO0ouOC1KMqSd+TLH5tVV2+YabgqX/VTP9tqh6K0tGMOWtc1dKhlji9u S536wh16tgxOS+t75gnwyKFlmpdlSU+kIRqpG/QRBYnZrrYgo5f7B7Pd4ZLJa3rdy3gf z8WhQXPLLLwPINFOVdz3C8nLdpf3z/TIrfdT5IFA0zYJ+BcvzL0+c2IOCKl5sYt6vkG3 Fg5g== X-Forwarded-Encrypted: i=1; AJvYcCULIPnc9dvvEaefeiXqG0fQVWvLwNCfZowe2n8FQ/jKLSd06Wq6Sa5nSqrt7lo/8aK3wwfGMhj3yzCiF4kDmmNxC6+AM2s= X-Gm-Message-State: AOJu0YwAh6kXjTwAzkvIxDtFVQsp+4/v6yRp9FuUrC6lHuxAK21WJjr7 sQmxHSk80nzLOXh0hUyjXukcAILm2WuoCFfEeU/yJG7dyRNkQmm5 X-Google-Smtp-Source: AGHT+IE/NSF87+DXGGJfeZJFU8TMEn+cqpv0bDIEUl7SobUOVS/LIe5uDKiJ/sDLa4k8P3xlgzd3Pw== X-Received: by 2002:a05:6402:321c:b0:568:7491:908d with SMTP id g28-20020a056402321c00b005687491908dmr1331866eda.0.1710426245075; Thu, 14 Mar 2024 07:24:05 -0700 (PDT) Received: from localhost ([2001:620:618:5c0:2:80b3:0:95c]) by smtp.gmail.com with ESMTPSA id el9-20020a056402360900b005684173e413sm757327edb.72.2024.03.14.07.24.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Mar 2024 07:24:04 -0700 (PDT) From: "Basil L. Contovounesios" To: Liu Hui Subject: Re: bug#68559: [PATCH] Improve Python shell completion In-Reply-To: (Liu Hui's message of "Wed, 13 Mar 2024 18:21:00 +0800") References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> <87bk80ve20.fsf@epfl.ch> <87y1asybi4.fsf@epfl.ch> <87zfv4lpsn.fsf@epfl.ch> Date: Thu, 14 Mar 2024 15:24:04 +0100 Message-ID: <877ci4ao3f.fsf@epfl.ch> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: kobarity , Eli Zaretskii , Mattias =?utf-8?Q?Engdeg=C3=A5rd?= , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) Liu Hui [2024-03-13 18:21 +0800] wrote: > On Tue, Mar 12, 2024 at 12:02=E2=80=AFAM Basil L. Contovounesios > wrote: >> >> Thanks! But that makes me wonder: in the cases where we check >> >> (string=3D python-shell-readline-completer-delims "") >> >> is there a possibility that the variable's value will be nil? >> (In which case we should compare with equal instead of string=3D.) > > Yes, it is a string with native completion and may be nil with > non-native completion. Sorry, I completely forgot that string=3D works on symbols too. I was worried that (string=3D nil "") would signal an error, but it actually does what we want. > I have updated the patch. Thanks, pushed: Detect the readline support for Python shell completion a7057745f5e 2024-03-14 15:09:56 +0100 https://git.sv.gnu.org/cgit/emacs.git/commit/?id=3Da7057745f5e Is there more left to do as part of this bug report? --=20 Basil From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 16 02:51:19 2024 Received: (at 68559) by debbugs.gnu.org; 16 Mar 2024 06:51:19 +0000 Received: from localhost ([127.0.0.1]:54753 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rlNt0-00088O-Rx for submit@debbugs.gnu.org; Sat, 16 Mar 2024 02:51:19 -0400 Received: from mail-ua1-f42.google.com ([209.85.222.42]:46556) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rlNsw-000885-H1 for 68559@debbugs.gnu.org; Sat, 16 Mar 2024 02:51:18 -0400 Received: by mail-ua1-f42.google.com with SMTP id a1e0cc1a2514c-7e03e591693so217066241.1 for <68559@debbugs.gnu.org>; Fri, 15 Mar 2024 23:50:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710571772; x=1711176572; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=pzZAYj4aC1kcDNoganLlLnxuNdnKh516i4x0LIZnX0s=; b=W/lfOIBIpdW9E43RkbsO5/3tjc+IBExdbC9fWYHckRfCw1qaMUWahVI9e25eq9EVwk 5EDR6ejSzpwDm7gesRp1JUlLoHE4KhR5CZh7SNP43G4o+u4doKoIH0hBzJEh//MiOfT+ oGo+AgLX+dYDRYPMiPfc/tUvBpksvFreHa7/Y5hRCIEG/mDieGplla08dqvMfoJbuLeU 7OiYissjC944NfVNhX0922kzTrhTBs3aV1q8Mpsf6vNdtFgY4PQ2cAbzI66lYTWBwXsK 7EOW724MjgalvUIWqwjZqtV1Z+Wq8+B0gr2wjGiSeUaVyCLcKh6nCU79tfxt2BWTR3y8 rAIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710571772; x=1711176572; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pzZAYj4aC1kcDNoganLlLnxuNdnKh516i4x0LIZnX0s=; b=azXcKgKogp/azj5JwediAZXqGvZV0UBIaMQoq8Bs45jWh9KNrIyYW0ADhxtEOM05iS xJbfoNL2E9RqlDdSq1+aPDqz8SS/JiJ7hulqjnLNOK2GRbCbFAXY94W5X70iP1p5tI4e st+gn1x7Rrw0ZHU/SAHz2aiUER1I9cIzXP8ywqgBLOfq/+dkDFgLdLqdPhzBW9GUgtlH nxiWfaCI/vw/aKIq5SLYeDii/edqllBgdPp2wlHcdWBy+s7g/cwtPWisZAgcgmH6VzpQ 4iFlGsWlWMgehXi9IRIyJogzVY4tnAQJRdxsxpmfjZC6izwm6WNCilR94IZ3Z2By5R9H soWA== X-Forwarded-Encrypted: i=1; AJvYcCU18eqyM5jBcv7SfNABDHDc/LL6us/9dzS4SX/h1D1gOu+KjqqVedPFZ7Yc2yYPTlMK0VIJzsKQMImvLdPYhcvm3xOn5QY= X-Gm-Message-State: AOJu0YzB/D3yt+7Ngkxxf9sj6gPuCmJvrcKxwh0u/ablWEA18mqhvcwi 4n4o67tKLFEkP6XYrSMW+FmfTxityY8vhp1cjdcWyUfkPQk1mF5UF8eeC/CvkQbOApBmm5Za/+5 75XJPXRoVqn2ylP2cF/HCb4hvFMU= X-Google-Smtp-Source: AGHT+IHHA1F3d/Ls8PTHhmtFmSVhCBz7Kk1jbFuCxo3tbsJf0orvtTztsELfAH/c6+vYRAC/u8+oq2i/wt3tf7/IyTs= X-Received: by 2002:a67:f549:0:b0:470:4514:506b with SMTP id z9-20020a67f549000000b004704514506bmr6790099vsn.3.1710571771669; Fri, 15 Mar 2024 23:49:31 -0700 (PDT) MIME-Version: 1.0 References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> <87bk80ve20.fsf@epfl.ch> <87y1asybi4.fsf@epfl.ch> <87zfv4lpsn.fsf@epfl.ch> <877ci4ao3f.fsf@epfl.ch> In-Reply-To: <877ci4ao3f.fsf@epfl.ch> From: Liu Hui Date: Sat, 16 Mar 2024 14:49:20 +0800 Message-ID: Subject: Re: bug#68559: [PATCH] Improve Python shell completion To: "Basil L. Contovounesios" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 68559 Cc: kobarity , Eli Zaretskii , =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= , 68559@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On Thu, Mar 14, 2024 at 10:24=E2=80=AFPM Basil L. Contovounesios wrote: > > Liu Hui [2024-03-13 18:21 +0800] wrote: > > > On Tue, Mar 12, 2024 at 12:02=E2=80=AFAM Basil L. Contovounesios > > wrote: > >> > >> Thanks! But that makes me wonder: in the cases where we check > >> > >> (string=3D python-shell-readline-completer-delims "") > >> > >> is there a possibility that the variable's value will be nil? > >> (In which case we should compare with equal instead of string=3D.) > > > > Yes, it is a string with native completion and may be nil with > > non-native completion. > > Sorry, I completely forgot that string=3D works on symbols too. I was > worried that (string=3D nil "") would signal an error, but it actually > does what we want. > > > I have updated the patch. > > Thanks, pushed: > > Detect the readline support for Python shell completion > a7057745f5e 2024-03-14 15:09:56 +0100 > https://git.sv.gnu.org/cgit/emacs.git/commit/?id=3Da7057745f5e > > Is there more left to do as part of this bug report? I think there is none. From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 16 04:27:53 2024 Received: (at 68559-done) by debbugs.gnu.org; 16 Mar 2024 08:27:53 +0000 Received: from localhost ([127.0.0.1]:54776 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rlPOT-0002IW-Gk for submit@debbugs.gnu.org; Sat, 16 Mar 2024 04:27:53 -0400 Received: from eggs.gnu.org ([209.51.188.92]:50022) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rlPOR-0002IJ-JZ for 68559-done@debbugs.gnu.org; Sat, 16 Mar 2024 04:27:52 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rlPNj-0006sh-Nz; Sat, 16 Mar 2024 04:27:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=7VQE3FEwZQKRZLEejOwlbqIi6AnnMHYEb17VeQLsoF4=; b=Z67e5KWgl0Ms5Dkk/h4u b+Rwi8uy+hdXIihdvkaqHXwqSZcwnSxvOwRwoXofPf+i94VcetCqRj5EHlrtrOFQXTmUYKhMlITuD rvbFz79DKi2Op/GB+ZZrrhsROsGm45VrZiPD/F0eoMdxVxEpcVZys+cG/Y5mEIl1DrIqpt+Tmh0PN bFViIH9OON6L13H3da8mwwXJOm0DGrNCtXBofDJo88XFIJhuIeGR/Km3b9v4hCi6R9m4d3PTi0sgh UOPyYHxyAv4wF5cTOJ8I+qSghsj9aVpz0R5p8MtmKlnGObs7T2keAJVuSUmoJ/zQIWR3Vj8pgT9rk N2uvyjS8IP7+6g==; Date: Sat, 16 Mar 2024 10:27:05 +0200 Message-Id: <86edca7fae.fsf@gnu.org> From: Eli Zaretskii To: Liu Hui In-Reply-To: (message from Liu Hui on Sat, 16 Mar 2024 14:49:20 +0800) Subject: Re: bug#68559: [PATCH] Improve Python shell completion References: <6BAFD8BF-8F18-4D9F-9DB3-A185AEF2EBCA@gmail.com> <8B4172D0-FC31-4437-99C4-683C892C5F86@gmail.com> <3A206D3C-E193-4240-A6DB-D3EC7DAAE7C2@gmail.com> <16E39FDF-5F8E-4C1B-8BCD-A0147B97F2B8@gmail.com> <7150E568-B07D-4D92-8073-979387553394@gmail.com> <87bk80ve20.fsf@epfl.ch> <87y1asybi4.fsf@epfl.ch> <87zfv4lpsn.fsf@epfl.ch> <877ci4ao3f.fsf@epfl.ch> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 68559-done Cc: kobarity@gmail.com, 68559-done@debbugs.gnu.org, mattias.engdegard@gmail.com, basil@contovou.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Liu Hui > Date: Sat, 16 Mar 2024 14:49:20 +0800 > Cc: kobarity , Mattias Engdegård , > Eli Zaretskii , 68559@debbugs.gnu.org > > On Thu, Mar 14, 2024 at 10:24 PM Basil L. Contovounesios > wrote: > > > > Thanks, pushed: > > > > Detect the readline support for Python shell completion > > a7057745f5e 2024-03-14 15:09:56 +0100 > > https://git.sv.gnu.org/cgit/emacs.git/commit/?id=a7057745f5e > > > > Is there more left to do as part of this bug report? > > I think there is none. Thanks, closing. From unknown Thu Jun 19 14:17:08 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 13 Apr 2024 11:24:12 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator