René's URL Explorer Experiment


Title: bpo-37903: IDLE: Shell sidebar with prompts by taleinat · Pull Request #15474 · python/cpython · GitHub

Open Graph Title: bpo-37903: IDLE: Shell sidebar with prompts by taleinat · Pull Request #15474 · python/cpython

X Title: bpo-37903: IDLE: Shell sidebar with prompts by taleinat · Pull Request #15474 · python/cpython

Description: This is a working implementation of a sidebar for IDLE's shell, removing the prompts from the main text widget (except for special prompts such as the one used by the debugger.) It works very well in my testing. Please give this a try and let me know what you think! Currently known to be missing: handling of left mouse button clicks/drags on the sidebar Notes on the implementation: I mostly made each change in a separate commit to make reviewing easier. This does not use the same base-class as the editor line-numbers sidebar, because it uses a canvas widget rather than a text widget. This is needed due to the shell soft-wrapping lines, causing lines to have varied height. Also, Squeezer inserts buttons into the shell's text window, and those lines have a different height as well. This includes quite a bit of work to get the "stdin" tag applied consistently to user input, which was rather broken but not relied on for anything. (Actually, this fixes the "recall" functionality in some edge cases.) Removing prompts from the text widget made knowing where each statement started impossible, but the sidebar needs to know this. This PR adds the "console" tag to the newline before each statement to overcome this. Removing prompts has other side effects which needed to be addressed. For example, successive statements without output now create a single long range of input tagged "stdin", which required some changes to the recall() method. https://bugs.python.org/issue37903

Open Graph Description: This is a working implementation of a sidebar for IDLE's shell, removing the prompts from the main text widget (except for special prompts such as the one used by the debugger.) It works very w...

X Description: This is a working implementation of a sidebar for IDLE's shell, removing the prompts from the main text widget (except for special prompts such as the one used by the debugger.) It works ve...

Opengraph URL: https://github.com/python/cpython/pull/15474

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:5a80ba51-1286-c389-49a5-5626c7b87370
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id95EE:C3948:A0E02FA:E249FB1:6A50DCD1
html-safe-nonce17d4dd04a8b84f571ac168b441b1f292736563e89117b775f3a17a6547043181
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5NUVFOkMzOTQ4OkEwRTAyRkE6RTI0OUZCMTo2QTUwRENEMSIsInZpc2l0b3JfaWQiOiI5MTQxMjkyNTU5MzIyMTExMTg1IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac9662375ce26ea706bed9b329814c3c62250dd13b50fa2c71d431dd02e4302010
hovercard-subject-tagpull_request:310639707
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/15474/files
twitter:imagehttps://avatars.githubusercontent.com/u/532281?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/532281?s=400&v=4
og:image:altThis is a working implementation of a sidebar for IDLE's shell, removing the prompts from the main text widget (except for special prompts such as the one used by the debugger.) It works very w...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None72b13e0e8d0319acdd27a145cfe73f4f06c791713d0ac4690e41fb68ad28cac0
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release17290b65caabb92b271e0949d1bf147b63deab41
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/15474/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F15474%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F15474%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/15474/files
Reloadhttps://github.com/python/cpython/pull/15474/files
Reloadhttps://github.com/python/cpython/pull/15474/files
Please reload this pagehttps://github.com/python/cpython/pull/15474/files
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/15474/files
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 35k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 73.8k https://github.com/login?return_to=%2Fpython%2Fcpython
Code https://github.com/python/cpython
Issues 5k+ https://github.com/python/cpython/issues
Pull requests 2.3k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security and quality 0 https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Code https://github.com/python/cpython
Issues https://github.com/python/cpython/issues
Pull requests https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security and quality https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
taleinathttps://github.com/taleinat
python:masterhttps://github.com/python/cpython/tree/master
taleinat:idle-shell-sidebarhttps://github.com/taleinat/cpython/tree/idle-shell-sidebar
Conversation 129 https://github.com/python/cpython/pull/15474
Commits 42 https://github.com/python/cpython/pull/15474/commits
Checks 0 https://github.com/python/cpython/pull/15474/checks
Files changed https://github.com/python/cpython/pull/15474/files
Please reload this pagehttps://github.com/python/cpython/pull/15474/files
bpo-37903: IDLE: Shell sidebar with prompts https://github.com/python/cpython/pull/15474/files#top
Show all changes 42 commits https://github.com/python/cpython/pull/15474/files
7adb9ad initial working shell sidebar taleinat Aug 5, 2019 https://github.com/python/cpython/pull/15474/commits/7adb9add69ecfb217ffc301d937db65bf2a356fe
26bbaec fix recall and handling of prompt and input lines taleinat Aug 23, 2019 https://github.com/python/cpython/pull/15474/commits/26bbaec0a50f70f8b641e5699c6984de8a1d2824
9076da5 update only as needed during editing, accounting for line wrapping taleinat Aug 23, 2019 https://github.com/python/cpython/pull/15474/commits/9076da5661c46bfe49617d643fbbbd97cfb236f0
cad2cd1 properly insert delegators into their proper place in the percolator taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/cad2cd1496480d238ef92bd56dfa6ca5208d23df
4040e26 move non-syntax tag highlighting out of ColorDelegator taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/4040e26c4c1e2b46c731b97d6625ee35b454ccfc
9b31031 replace shell sidebar prompt and input line recognition method taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/9b31031896964f5853d0f7d63ba83ac7bffc23c7
37a0db3 minor code cleanup taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/37a0db3c9c3981557e2bffff5146e0f14609c81b
c766822 remove unnecessary .replace() delegator method taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/c7668222b524d89c0f55a5db82969ea3dfbcdbad
50bd082 fix inverted condition in deciding whether to update sidebar (oops!) taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/50bd0820bc12c1477321859b27e8ab89e5afcd03
6f186f0 fix "stdin" tag removed when undo-ing a deletion taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/6f186f09c1325a1e2a0d3f0d2f8292f917c5c69d
f7f3de9 fix sidebar update on new prompt taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/f7f3de9964d65d0a59cfd3c46886e7a54a0774e1
e929ea7 add a NEWS entry taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/e929ea763488418e60ba28af5964252ade5150c6
d04bfa3 fix recall handling with multiple successive statements taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/d04bfa31b4b867eef943d9b2efa0608fcf652b39
81f4852 remove a dead line taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/81f48522b8764636014c8bec6d96c6e9f5146678
46be85e remove commented out initial attempt taleinat Aug 24, 2019 https://github.com/python/cpython/pull/15474/commits/46be85e1c26d7f93d14b4d3215842cc3d9b4b59b
1fc4bcb update shell sidebar font upon font config changes taleinat Aug 25, 2019 https://github.com/python/cpython/pull/15474/commits/1fc4bcbc998fef39163f7a1945ec347b882c45f6
6f1c975 update sidebar text colors upon highlight config changes taleinat Sep 17, 2020 https://github.com/python/cpython/pull/15474/commits/6f1c9758a3029ab080d76667626d2f4001163050
083fede use the prompt ("console") foreground color for the shell sidebar text taleinat Sep 17, 2020 https://github.com/python/cpython/pull/15474/commits/083fedeea74774a1b3422b0824125eb7ac8f9d4f
4ad72a1 show continuation prompts ("...") for multi-line history recall taleinat Sep 17, 2020 https://github.com/python/cpython/pull/15474/commits/4ad72a1cd94e9d6f985cfb5f99124cebfb17d35e
009e08d show continuation prompts ("...") after multi-line replace in the shell taleinat Sep 17, 2020 https://github.com/python/cpython/pull/15474/commits/009e08d0493dd56657dc091a080aa19c2c3386f4
e524cce show continuation prompts ("...") after multi-line undo/redo in the s… taleinat Sep 17, 2020 https://github.com/python/cpython/pull/15474/commits/e524cceec38c60afd79c9d34a97f466c0571a555
3ea2986 don't show continuation prompts ("...") for print() outputs taleinat Sep 17, 2020 https://github.com/python/cpython/pull/15474/commits/3ea29865162ed5aacb82ee189c66c8ebbf3f8b3f
7f9182f allow deleting ">>> " at the beginning of a line in shell windows taleinat Sep 17, 2020 https://github.com/python/cpython/pull/15474/commits/7f9182f7c15d52acc0721777e9e961f4efd61952
10aaf1d update shell sidebar on shell output squeeze/unsqueeze taleinat Sep 17, 2020 https://github.com/python/cpython/pull/15474/commits/10aaf1d96dd59f136e5447ca82dcf7e3ef3cbe5f
7c91901 remove failing editor window test that is no longer relevant taleinat Sep 17, 2020 https://github.com/python/cpython/pull/15474/commits/7c919018b56ec0fc49eaf890fa071ffd6e6ab52b
50ca9c6 add several tests for the shell sidebar taleinat Sep 18, 2020 https://github.com/python/cpython/pull/15474/commits/50ca9c6b1e68f39ab6b83bae900c21d8d550ef19
23c218f reduce shell sidebar test run time by reusing the PyShell taleinat Sep 18, 2020 https://github.com/python/cpython/pull/15474/commits/23c218f93c865c648fec0aaf4bbb348fb7d6682c
6cef0a9 revert removal of the "hit" tag from Colorizer.tag_defs taleinat Oct 11, 2020 https://github.com/python/cpython/pull/15474/commits/6cef0a934e6012b08848eea8ca01c40bd4d9b875
a018135 hide unnecessary extra "root" Tk window in tests taleinat Oct 11, 2020 https://github.com/python/cpython/pull/15474/commits/a01813543f3d350d7d0f94e054008053206b22e0
525fe44 fix test method names taleinat Oct 11, 2020 https://github.com/python/cpython/pull/15474/commits/525fe440dcc59c295f3875024716a55d2050c808
7b8913d fix test comments according to pep-8 style taleinat Oct 11, 2020 https://github.com/python/cpython/pull/15474/commits/7b8913d4506699e3cf18f4f033372e2cf005b786
8c8d0c0 rename sidebar test class according to convention taleinat Oct 11, 2020 https://github.com/python/cpython/pull/15474/commits/8c8d0c0ab5878af3cc1b71530e0a2e83e9dffe8e
7ecc843 re-word doc-strings for BaseSideBar and EndLineDelegator taleinat Oct 12, 2020 https://github.com/python/cpython/pull/15474/commits/7ecc84374a91b7f752992a94a023c51fdecf55eb
bedb1cb re-word doc-strings for get_lineno and get_end_linenumber taleinat Oct 12, 2020 https://github.com/python/cpython/pull/15474/commits/bedb1cb4511a0c342782ed6988e24124b590335f
eee0453 optimize tests and make them more robust taleinat Oct 12, 2020 https://github.com/python/cpython/pull/15474/commits/eee045381231e8a3a5c4886f2a159440ad2e51ba
7afcb57 handle mouse buttons except for button 1 (left-click) taleinat Oct 12, 2020 https://github.com/python/cpython/pull/15474/commits/7afcb57faaa21f6e0f474ff31c512350026ef615
8a7dd60 add tests for text font and color configs taleinat Oct 12, 2020 https://github.com/python/cpython/pull/15474/commits/8a7dd607216826b275af204e2f6fb62b9151363a
6efb968 remove show/hide_sidebar from the shell sidebar taleinat Oct 12, 2020 https://github.com/python/cpython/pull/15474/commits/6efb9685d2c483bda3cb95333be24670e92b6539
cc37924 add more test cases taleinat Oct 12, 2020 https://github.com/python/cpython/pull/15474/commits/cc3792415760a72e2759a8913028ad3e7aee93b1
97576da update coverage percentage taleinat Oct 12, 2020 https://github.com/python/cpython/pull/15474/commits/97576daf75a1146d3e09901f698faa0f571e4e5f
2aa4e1a re-word squeeze_current_text() doc-string taleinat Oct 12, 2020 https://github.com/python/cpython/pull/15474/commits/2aa4e1abe308c7e396b44f6ceba75140e3c6fddb
71f343e update coverage percentage taleinat Oct 13, 2020 https://github.com/python/cpython/pull/15474/commits/71f343eaa0555a04cde2ded75a7920f59b0205da
Clear filters https://github.com/python/cpython/pull/15474/files
Please reload this pagehttps://github.com/python/cpython/pull/15474/files
Please reload this pagehttps://github.com/python/cpython/pull/15474/files
colorizer.py https://github.com/python/cpython/pull/15474/files#diff-154272cdabdcdab1877433c05273e346a29d5b3b3cd4a32b5a92d7e53df997d2
configdialog.py https://github.com/python/cpython/pull/15474/files#diff-7399589961fc12d44599e3fd8e36010cf7b20dead5db3f82c461a0453708b9be
editor.py https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
history.py https://github.com/python/cpython/pull/15474/files#diff-bf1e1344ad391af714b2c96c6f4bb452b91be26f38a7a1e36236867a53f3e3a9
test_editor.py https://github.com/python/cpython/pull/15474/files#diff-bac2e14f6c7aadf914b40304552d8e0689317d8ff639a9a497cff07f3972392a
test_sidebar.py https://github.com/python/cpython/pull/15474/files#diff-8ba244944042d0a84a2030682a806bbb7e708e7a0046bdb5687adf32c84826fc
test_squeezer.py https://github.com/python/cpython/pull/15474/files#diff-afb0b76aac5e2c839ebbb7a74a6564b967b342c06254754b1da18ab0d44de58a
percolator.py https://github.com/python/cpython/pull/15474/files#diff-1daade51a116ed536daf0b07724f528f75402db0704fd76038d6999b8bc99164
pyshell.py https://github.com/python/cpython/pull/15474/files#diff-f6ced3d8ba872fb8904aa7cf07512890be864c5b00ae0ccf3d0c3edff0a03567
replace.py https://github.com/python/cpython/pull/15474/files#diff-6a968cbf37fa427793543fb8b5209016266b065f13eed92dae85cf193d1bcc5e
sidebar.py https://github.com/python/cpython/pull/15474/files#diff-cd6ed46961f0af5cb0f62a7bfd4badbcf4bd7334620227149fdd83ed74b6ba93
squeezer.py https://github.com/python/cpython/pull/15474/files#diff-486b6b07195bce1d36671cf788223d59dfacb9ded857a267295baf09cae1a29f
2019-08-24-23-49-36.bpo-37903.4xjast.rst https://github.com/python/cpython/pull/15474/files#diff-735d47d5a60bb5b0e6355cf3cffef332490dd98fa950821d695fce6ce246a01e
Lib/idlelib/colorizer.pyhttps://github.com/python/cpython/pull/15474/files#diff-154272cdabdcdab1877433c05273e346a29d5b3b3cd4a32b5a92d7e53df997d2
View file https://github.com/taleinat/cpython/blob/71f343eaa0555a04cde2ded75a7920f59b0205da/Lib/idlelib/colorizer.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/15474/{{ revealButtonHref }}
https://github.com/python/cpython/pull/15474/files#diff-154272cdabdcdab1877433c05273e346a29d5b3b3cd4a32b5a92d7e53df997d2
Please reload this pagehttps://github.com/python/cpython/pull/15474/files
https://github.com/python/cpython/pull/15474/files#diff-154272cdabdcdab1877433c05273e346a29d5b3b3cd4a32b5a92d7e53df997d2
Lib/idlelib/configdialog.pyhttps://github.com/python/cpython/pull/15474/files#diff-7399589961fc12d44599e3fd8e36010cf7b20dead5db3f82c461a0453708b9be
View file https://github.com/taleinat/cpython/blob/71f343eaa0555a04cde2ded75a7920f59b0205da/Lib/idlelib/configdialog.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/15474/{{ revealButtonHref }}
https://github.com/python/cpython/pull/15474/files#diff-7399589961fc12d44599e3fd8e36010cf7b20dead5db3f82c461a0453708b9be
https://github.com/python/cpython/pull/15474/files#diff-7399589961fc12d44599e3fd8e36010cf7b20dead5db3f82c461a0453708b9be
Lib/idlelib/editor.pyhttps://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
View file https://github.com/taleinat/cpython/blob/71f343eaa0555a04cde2ded75a7920f59b0205da/Lib/idlelib/editor.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/15474/{{ revealButtonHref }}
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
https://github.com/python/cpython/pull/15474/files#diff-0ebe4cdabcc123ccaae0e7cb5fcc54423a11b82957a8f972db70e98a1e847ae4
Lib/idlelib/history.pyhttps://github.com/python/cpython/pull/15474/files#diff-bf1e1344ad391af714b2c96c6f4bb452b91be26f38a7a1e36236867a53f3e3a9
View file https://github.com/taleinat/cpython/blob/71f343eaa0555a04cde2ded75a7920f59b0205da/Lib/idlelib/history.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/15474/{{ revealButtonHref }}
https://github.com/python/cpython/pull/15474/files#diff-bf1e1344ad391af714b2c96c6f4bb452b91be26f38a7a1e36236867a53f3e3a9
https://github.com/python/cpython/pull/15474/files#diff-bf1e1344ad391af714b2c96c6f4bb452b91be26f38a7a1e36236867a53f3e3a9
Lib/idlelib/idle_test/test_editor.pyhttps://github.com/python/cpython/pull/15474/files#diff-bac2e14f6c7aadf914b40304552d8e0689317d8ff639a9a497cff07f3972392a
View file https://github.com/taleinat/cpython/blob/71f343eaa0555a04cde2ded75a7920f59b0205da/Lib/idlelib/idle_test/test_editor.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/15474/{{ revealButtonHref }}
https://github.com/python/cpython/pull/15474/files#diff-bac2e14f6c7aadf914b40304552d8e0689317d8ff639a9a497cff07f3972392a
https://github.com/python/cpython/pull/15474/files#diff-bac2e14f6c7aadf914b40304552d8e0689317d8ff639a9a497cff07f3972392a
https://github.com/python/cpython/pull/15474/files#diff-bac2e14f6c7aadf914b40304552d8e0689317d8ff639a9a497cff07f3972392a
Please reload this pagehttps://github.com/python/cpython/pull/15474/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.