<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7593719622919430748</id><updated>2026-10-14T13:55:55.265-07:00</updated><category term="PyScripter"/><category term="Python"/><category term="New features"/><category term="Release"/><category term="tip"/><category term="SSH"/><category term="LLM"/><category term="QGIS"/><category term="Tutorial"/><category term="Code folding"/><category term="Delphi"/><category term="Editor"/><category term="LSP"/><category term="Thread debugging"/><category term="pip"/><category term="Anaconda"/><category term="ArcGIS"/><category term="Benchmark"/><category term="Color themes"/><category term="External Tools"/><category term="File Templates"/><category term="IPython"/><category term="IntelliSense"/><category term="Jupiter"/><category term="PCRE"/><category term="Py"/><category term="PyInstaller"/><category term="Refactoring"/><category term="Regular expressions"/><category term="Themes"/><category term="Unicode"/><category term="Webinar"/><category term="Windows 7"/><category term="conda"/><category term="multi-caret"/><category term="pylint"/><category term="venv"/><category term="virtualenv"/><title type='text'>PyScripter</title><subtitle type='html'>This is a blog about the Python IDE &lt;a href=&quot;https://github.com/pyscripter/pyscripter/wiki&quot;&gt;PyScripter&lt;/a&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>147</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-686496579810728243</id><published>2026-01-04T07:55:00.000-08:00</published><updated>2026-01-04T07:55:26.322-08:00</updated><title type='text'>In Memoriam: Kiriakos Vlahos</title><content type='html'>&lt;p data-end=&quot;418&quot; data-start=&quot;286&quot;&gt;With great regret, we write to inform the community of the passing of the founder and main developer of PyScripter, Kiriakos Vlahos.&lt;/p&gt;&lt;p data-end=&quot;594&quot; data-start=&quot;424&quot;&gt;PyScripter was his passion project. He loved working on new features and interacting with users, whether by fixing reported bugs or discussing the project and its future.&lt;/p&gt;&lt;p data-end=&quot;717&quot; data-start=&quot;600&quot;&gt;We will look into finding a successor to continue the project and will share an update if and when we have more news.&lt;/p&gt;&lt;p data-end=&quot;759&quot; data-start=&quot;723&quot;&gt;Thank you for supporting PyScripter,&lt;/p&gt;&lt;p data-end=&quot;469&quot; data-start=&quot;337&quot;&gt;



&lt;/p&gt;&lt;p data-end=&quot;810&quot; data-start=&quot;765&quot;&gt;Daphne and Filippos&lt;br data-end=&quot;787&quot; data-start=&quot;784&quot; /&gt;
(Kiriakos’s children)&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/686496579810728243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/686496579810728243' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/686496579810728243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/686496579810728243'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2026/01/in-memoriam-kiriakos-vlahos.html' title='In Memoriam: Kiriakos Vlahos'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-1465065736341888467</id><published>2025-11-19T19:43:00.000-08:00</published><updated>2025-11-19T19:43:41.422-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Release"/><title type='text'>PyScripter v5.3.1 released</title><content type='html'> PyScripter v5.3.1 is now available at &lt;a href=&quot;https://sourceforge.net/projects/pyscripter/files/PyScripter-v5.3/&quot;&gt;Sourceforge&lt;/a&gt;. This is a bug fix release.&amp;nbsp; A regression in v5.3.0 and a couple of more bugs have been fixed.&lt;p&gt;&lt;span face=&quot;Arial, Tahoma, Helvetica, FreeSans, sans-serif&quot; style=&quot;background-color: white; color: #333333; font-size: 13px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;line-height: 1.4; list-style-image: initial; list-style-position: initial; margin: 0.5em 0px; padding: 0px 2.5em; text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;New features:&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Turkish translation added&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Issues addressed:&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1444&quot;&gt;#1444&lt;/a&gt;, &lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1448&quot;&gt;#1448&lt;/a&gt;, &lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1484&quot;&gt;#1484&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/1465065736341888467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/1465065736341888467' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/1465065736341888467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/1465065736341888467'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/11/pyscripter-v531-released.html' title='PyScripter v5.3.1 released'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-8753207286653399025</id><published>2025-11-11T09:56:00.000-08:00</published><updated>2025-11-11T09:56:52.952-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Release"/><title type='text'>PyScripter v5.3.0 released</title><content type='html'>&lt;p&gt;&lt;span&gt;PyScripter v5.3.0 is now available at&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://sourceforge.net/projects/pyscripter/files/PyScripter-v5.3/&quot; style=&quot;background-color: white; color: #29aae1; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; text-decoration-line: none;&quot;&gt;Sourceforge&lt;/a&gt;&lt;span&gt;. There are exciting new features in this release, such as the integrated code diagnostics with automated quick fixes, the refactoring support. and the built-in code formatter.&amp;nbsp; Projects have also received a facelift with the support for auto-updating folders, which was a long standing request.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span face=&quot;Arial, Tahoma, Helvetica, FreeSans, sans-serif&quot; style=&quot;background-color: white; color: #333333; font-size: 13px;&quot;&gt;&lt;b&gt;New features:&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;a href=&quot;https://pyscripter.blogspot.com/2025/10/feature-preview-code-checks-and-quick.html&quot; rel=&quot;nofollow&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;Code diagnostics&lt;/a&gt;&amp;nbsp;using &lt;a href=&quot;https://docs.astral.sh/ruff/&quot;&gt;ruff&lt;/a&gt; a very fast linter and language server&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;File Check, with issues shown in the editor&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Fixable issues flagged in the gutter&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Quick Fix or Ignore fixable found issues&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Fix all command&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;&lt;a href=&quot;https://pyscripter.blogspot.com/2025/10/feature-preview-refactoring.html&quot; rel=&quot;nofollow&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;Refactoring&lt;/a&gt;&amp;nbsp;support: Organize Imports, rename, extract variable, extract function, inline&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Built-in code formatting (Edit, Source Code, Format)&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Added auto-refreshing project folders that mirror physical folders (&lt;em style=&quot;box-sizing: border-box;&quot;&gt;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/521&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#521&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Scrollbar annotation for highlighted search term&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span face=&quot;Arial, Tahoma, Helvetica, FreeSans, sans-serif&quot; style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 13px;&quot;&gt;&lt;b&gt;Issues addressed:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1407&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1407&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1409&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1409&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1411&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1411&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1418&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1418&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1419&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1419&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1436&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1436&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1438&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1438&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/8753207286653399025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/8753207286653399025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/8753207286653399025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/8753207286653399025'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/11/pyscripter-v530-released.html' title='PyScripter v5.3.0 released'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-2200536603953062089</id><published>2025-10-18T04:36:00.000-07:00</published><updated>2025-10-18T09:43:17.566-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Refactoring"/><title type='text'>Feature Preview: Refactoring</title><content type='html'>&lt;p&gt;&amp;nbsp;The upcoming version of PyScripter introduces refactoring support, including the following refactorings:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Organize imports&lt;/li&gt;&lt;li&gt;Rename (shortcut: F2)&lt;/li&gt;&lt;li&gt;Extract variable&lt;/li&gt;&lt;li&gt;Extract function&lt;/li&gt;&lt;li&gt;Inline&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The video below showcases the refactoring features of PyScripter.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dzmd0tn-pjSR2hOYYWVq1lrXkisybxviCEWlKIyRA1MxhHrozwK5hDTBBdnB6DlGuTvf6oAqqsEClj9A_xvvQ&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/2200536603953062089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/2200536603953062089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/2200536603953062089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/2200536603953062089'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/10/feature-preview-refactoring.html' title='Feature Preview: Refactoring'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-7145309993912050872</id><published>2025-10-11T15:43:00.000-07:00</published><updated>2025-10-18T10:11:29.577-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Feature Preview:  Code checks and quick fixes</title><content type='html'>&lt;p&gt;The next version of PyScripter provides an integration with &lt;a href=&quot;https://docs.astral.sh/ruff/&quot;&gt;Ruff&lt;/a&gt;, an &quot;extremely fast Python linter and code formatter&quot;.&amp;nbsp; With the help of Ruff, PyScripter analyses your code, finds errors and provides warnings and hints. Many of the errors and warnings can be fixed automatically as shown in this short video.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dyM1h3sTouc0MEFHR7wpTsHRiYNr5f197rd5IsPBaIUas89o79wgpdtRz9aGc25xF7zEKUix8TITclxVEbQAg&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/7145309993912050872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/7145309993912050872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/7145309993912050872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/7145309993912050872'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/10/feature-preview-code-checks-and-quick.html' title='Feature Preview:  Code checks and quick fixes'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-5166037377714530329</id><published>2025-09-16T08:33:00.000-07:00</published><updated>2025-09-16T08:33:42.602-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><title type='text'>Feature preview:  File-system project folders</title><content type='html'>&lt;p&gt;The next version of PyScripter will add file-system project folders, a much requested feature.&amp;nbsp; In PyScripter Project Explorer you will be able to use two types of file folders:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Virtual folders&lt;/b&gt;:&amp;nbsp; These folders allow&amp;nbsp;you to organize your project files in a logical manner. For example you can have a folder for source files, another one for documentation files and another one for configuration files. These folders are just collections of files and not necessarily correspond to physical folders on disk. They may contain subfolders. You can create virtual folders using the Add commands of the folder context menu.&amp;nbsp; This is what we currently have in PyScripter.&lt;/li&gt;&lt;li&gt;&lt;b&gt;File-system folders&lt;/b&gt;:&amp;nbsp; These folders mirror the directory structure on disk. Their content reflects the content of the physical folders and they are &lt;u&gt;&lt;i&gt;auto-updating&lt;/i&gt;&lt;/u&gt; when the contents of the folders on disk change, e.g. when files are added, deleted or renamed. They are created using the Import Directory folder context menu. They may also contain subfolders.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Project Explorer uses different icons to distinguish between these two types of folder nodes. For example in the picture below, &quot;Doc&quot; is a virtual folder and &quot;rpyc&quot; a file-system one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjdrTg0TnR312v2TZFXkXmkRQcWsgv27eVycrF-7zzmHVcShnM60ZGOcgxHu3BBCp-aAEhZyjhYh0rjecePsZ-aQ6-9hfgebsppUQcD-UNZSL-WRqbguWnCVLRMjTDaf5q5qVR5tYbAGsUmIF4MmzEXiggamBdG95fW_YOAYE8GkRS6zNYxpXVXsiMuaBiz&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;540&quot; data-original-width=&quot;295&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjdrTg0TnR312v2TZFXkXmkRQcWsgv27eVycrF-7zzmHVcShnM60ZGOcgxHu3BBCp-aAEhZyjhYh0rjecePsZ-aQ6-9hfgebsppUQcD-UNZSL-WRqbguWnCVLRMjTDaf5q5qVR5tYbAGsUmIF4MmzEXiggamBdG95fW_YOAYE8GkRS6zNYxpXVXsiMuaBiz&quot; width=&quot;131&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;The updated &quot;Import Directory&quot; dialog box&lt;/h4&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEik0r0b-9EdlGzr34herpMn9qnxEeU1_BxtIS11_7kfQcx2t3f8RrSNmXyMRgbUTG2e_b4BUtZNqIZ3c7Ja4jDLx-7uSHjY93_m1Jl8UuLUA42Wfzd1aQ8A8ca9D-3M_mQAyYxfe4YC8OVa9nwiOlYIldLnMQVNU5CAeVTg-2cv8LaAL9v2F0CIeMDWOrig&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;246&quot; data-original-width=&quot;501&quot; height=&quot;157&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEik0r0b-9EdlGzr34herpMn9qnxEeU1_BxtIS11_7kfQcx2t3f8RrSNmXyMRgbUTG2e_b4BUtZNqIZ3c7Ja4jDLx-7uSHjY93_m1Jl8UuLUA42Wfzd1aQ8A8ca9D-3M_mQAyYxfe4YC8OVa9nwiOlYIldLnMQVNU5CAeVTg-2cv8LaAL9v2F0CIeMDWOrig&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This dialog box is accessible from the folder context menu. It allows you to import a directory into the project. In the file masks field, you can provide one or more masks separated by semi-colon that determines which file types will be imported into the project. If &quot;Recursive&quot; is checked subfolders will be imported too. If &quot;Auto-update&quot; is checked then a file-system folder will be created that will automatically refresh, whenever a change in the specified directory takes place. Otherwise, a virtual folder will be created. Finally, you have the option to add the specified directory to the project&#39;s &quot;Extra Python Path&quot;, so that the python interpreter can find and import modules in this directory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/5166037377714530329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/5166037377714530329' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/5166037377714530329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/5166037377714530329'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/09/feature-preview-file-system-project.html' title='Feature preview:  File-system project folders'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjdrTg0TnR312v2TZFXkXmkRQcWsgv27eVycrF-7zzmHVcShnM60ZGOcgxHu3BBCp-aAEhZyjhYh0rjecePsZ-aQ6-9hfgebsppUQcD-UNZSL-WRqbguWnCVLRMjTDaf5q5qVR5tYbAGsUmIF4MmzEXiggamBdG95fW_YOAYE8GkRS6zNYxpXVXsiMuaBiz=s72-c" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-8636493761452054871</id><published>2025-05-21T05:58:00.000-07:00</published><updated>2025-05-21T06:03:29.418-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="External Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="PyInstaller"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Turning your python script into an executable the easy way</title><content type='html'>&lt;p&gt;&amp;nbsp;Sometimes you may want to convert your python script into a self-contained executable.&amp;nbsp; &amp;nbsp;The best tool for this job is &lt;a href=&quot;https://pyinstaller.org/en/stable/&quot; target=&quot;_blank&quot;&gt;PyInstaller&lt;/a&gt;,&amp;nbsp; The PyScripter External Tools can simplify the process.&lt;/p&gt;&lt;p&gt;First you need to install PyInstaller, using the menu Tools, Tools, Install packages with pip:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhVEpX6UDUioKg8kqHLo7fAC0zaZx-QCrtOULuI6LuHkxYGVRK23ef96ctiv7lCxR8Id1KlmqGxIZbbnD7IsC3os8cKCXGOLjWtv935xmJCHIMKAu7dkf3yIYh8MPQCiDVtXvCWOM4Oc2DB-M03Ervt3w_V07N0GL_3t-NzaJHni4PMfOtemZdvxYnNuVoa&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;133&quot; data-original-width=&quot;418&quot; height=&quot;102&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhVEpX6UDUioKg8kqHLo7fAC0zaZx-QCrtOULuI6LuHkxYGVRK23ef96ctiv7lCxR8Id1KlmqGxIZbbnD7IsC3os8cKCXGOLjWtv935xmJCHIMKAu7dkf3yIYh8MPQCiDVtXvCWOM4Oc2DB-M03Ervt3w_V07N0GL_3t-NzaJHni4PMfOtemZdvxYnNuVoa&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then you need to create an External Tool that uses PyInstaller to convert the active script into an executable.&amp;nbsp; &amp;nbsp;Use the menu Tools, Configure Tools... and then press Add.&amp;nbsp; &amp;nbsp;Configure the external tools as shown below:&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjPLcO8zHjn1VA86ienZzhcqyvTfo68C7N9fjrhFtHV7FLXiiCsCsL4pWj0yVpiGryWOFYxQ-4p0ezNlzn9ePOtkp1DnJMA8b7ESNJNEjghJwyqlwdzohVcaXDjXy4twksPh7y0aO0DL2DmIg3qfkEu6Cqg7UFT6MjSkV7ABTrJTm_10jBuu0DQf2VNQS8-&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;536&quot; data-original-width=&quot;460&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjPLcO8zHjn1VA86ienZzhcqyvTfo68C7N9fjrhFtHV7FLXiiCsCsL4pWj0yVpiGryWOFYxQ-4p0ezNlzn9ePOtkp1DnJMA8b7ESNJNEjghJwyqlwdzohVcaXDjXy4twksPh7y0aO0DL2DmIg3qfkEu6Cqg7UFT6MjSkV7ABTrJTm_10jBuu0DQf2VNQS8-&quot; width=&quot;206&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;With the above, all it takes to convert your script into an executable is to invoke the menu Tools, Tools, Create executable. Your executable can then be found in a subfolder of your script&#39;s folder called &quot;dist&quot;.&lt;p&gt;&lt;/p&gt;&lt;p&gt;If you want to learn more about external tools, consult the help file using Help, PyScripter, External Tools and Help, PyScripter, Parameters.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/8636493761452054871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/8636493761452054871' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/8636493761452054871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/8636493761452054871'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/05/turning-your-python-script-into.html' title='Turning your python script into an executable the easy way'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhVEpX6UDUioKg8kqHLo7fAC0zaZx-QCrtOULuI6LuHkxYGVRK23ef96ctiv7lCxR8Id1KlmqGxIZbbnD7IsC3os8cKCXGOLjWtv935xmJCHIMKAu7dkf3yIYh8MPQCiDVtXvCWOM4Oc2DB-M03Ervt3w_V07N0GL_3t-NzaJHni4PMfOtemZdvxYnNuVoa=s72-c" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-732111203015581070</id><published>2025-05-10T04:47:00.000-07:00</published><updated>2025-05-10T04:47:06.843-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Release"/><title type='text'>PyScripter v5.2.3 released</title><content type='html'>&lt;p&gt;&lt;span face=&quot;Arial, Tahoma, Helvetica, FreeSans, sans-serif&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;&quot;&gt;PyScripter v5.2.3 is now available at&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://sourceforge.net/projects/pyscripter/files/PyScripter-v5.2/&quot; style=&quot;background-color: white; color: #29aae1; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; text-decoration-line: none;&quot;&gt;Sourceforge&lt;/a&gt;&lt;span face=&quot;Arial, Tahoma, Helvetica, FreeSans, sans-serif&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;&quot;&gt;. This is mainly a bug fix release.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;Arial, Tahoma, Helvetica, FreeSans, sans-serif&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 1.4; list-style-image: initial; list-style-position: initial; margin: 0.5em 0px; padding: 0px 2.5em;&quot;&gt;&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;&quot;&gt;&lt;b&gt;New features:&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;line-height: 1.4; list-style: disc; margin: 0.5em 0px; padding: 0px 2.5em;&quot;&gt;&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;&quot;&gt;Turkish translation added&lt;/li&gt;&lt;/ul&gt;&lt;li style=&quot;border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;&quot;&gt;&lt;b&gt;Issues addressed:&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;line-height: 1.4; list-style: disc; margin: 0.5em 0px; padding: 0px 2.5em;&quot;&gt;&lt;li style=&quot;border: none; box-sizing: border-box; margin: 0px 0px 0.25em; padding: 0.25em 0px;&quot;&gt;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1382&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-decoration-line: none; text-underline-offset: 0.2rem;&quot;&gt;#1382&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1392&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-decoration-line: none; text-underline-offset: 0.2rem;&quot;&gt;#1392&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1397&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-decoration-line: none; text-underline-offset: 0.2rem;&quot;&gt;#1397&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1401&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-decoration-line: none; text-underline-offset: 0.2rem;&quot;&gt;#1401&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/732111203015581070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/732111203015581070' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/732111203015581070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/732111203015581070'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/05/pyscripter-v523-released.html' title='PyScripter v5.2.3 released'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-6197478149050766614</id><published>2025-04-13T14:28:00.000-07:00</published><updated>2025-04-13T14:28:01.147-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Release"/><title type='text'>PyScripter v5.2.2 released</title><content type='html'>&lt;p&gt;&lt;span face=&quot;Arial, Tahoma, Helvetica, FreeSans, sans-serif&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;&quot;&gt;PyScripter v5.2.2 is now available at&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://sourceforge.net/projects/pyscripter/files/PyScripter-v5.2/&quot; style=&quot;background-color: white; color: #29aae1; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; text-decoration-line: none;&quot;&gt;Sourceforge&lt;/a&gt;&lt;span face=&quot;Arial, Tahoma, Helvetica, FreeSans, sans-serif&quot; style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;&quot;&gt;. The main new feature is the support for Grok 3, which is one of the best Large Language Models available.&amp;nbsp; The reasoning variant (&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;&quot;&gt;grok-3-mini) is also supported.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;&quot;&gt;&lt;b&gt;New features:&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;&quot;&gt;Support for Grok LLM&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 13px;&quot;&gt;New editor commands Next/Previous change (Shft+Ctrl+Num+/-)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: white; font-size: 13px;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;&quot;&gt;IDE option to enable/disable editor accessibility support&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 13px;&quot;&gt;&lt;b&gt;Issues addressed:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1367&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1367&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1369&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1369&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1372&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1372&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1373&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1373&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1374&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1374&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1375&quot; style=&quot;box-sizing: border-box; color: #4493f8; text-underline-offset: 0.2rem;&quot;&gt;#1375&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/6197478149050766614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/6197478149050766614' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/6197478149050766614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/6197478149050766614'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/04/pyscripter-v522-released.html' title='PyScripter v5.2.2 released'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-5066371833038738863</id><published>2025-02-27T03:24:00.000-08:00</published><updated>2025-02-27T04:16:28.862-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="QGIS"/><title type='text'>Using QGIS - Update</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;a href=&quot;https://qgis.org/&quot;&gt;QGIS&lt;/a&gt; is a widely used, free and open source, GIS software package.&amp;nbsp; This is an update on how to use it with PyScripter.&amp;nbsp; &amp;nbsp;I have used the currently latest version for Windows (3.42) but you can adapt the instructions to other recent versions of QGIS.&lt;/p&gt;&lt;p&gt;Create a command file &quot;PyScripter-QGIS.cmd&quot; with the following content:&lt;/p&gt;&lt;div style=&quot;background-color: black; color: white; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div style=&quot;line-height: 19px;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #569cd6;&quot;&gt;off&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;rem&lt;/span&gt;&lt;span style=&quot;color: #7ca668;&quot;&gt; Adapt the following line to match your installation&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;set&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;QGIS_ROOT&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;C:\Program Files\QGIS 3.42.0&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;call&lt;/span&gt; &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;%QGIS_ROOT%&lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;\bin\o4w_env.bat&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;path&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;%OSGEO4W_ROOT%&lt;/span&gt;\apps\qgis\bin;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;%PATH%&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #569cd6;&quot;&gt;on&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;rem&lt;/span&gt;&lt;span style=&quot;color: #7ca668;&quot;&gt; Set VSI cache to be used as buffer, see #6448&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;set&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;VSI_CACHE&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;TRUE&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;set&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;VSI_CACHE_SIZE&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #b5cea8;&quot;&gt;1000000&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;set&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;GDAL_FILENAME_IS_UTF8&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;YES&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;set&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;QT_PLUGIN_PATH&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;%OSGEO4W_ROOT%&lt;/span&gt;\apps\qgis\qtplugins;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;%OSGEO4W_ROOT%&lt;/span&gt;\apps\qt5\plugins&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;set&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;PYTHONPATH&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;%QGIS_ROOT%&lt;/span&gt;\apps\qgis\python;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;%PYTHONPATH%&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;pushd&lt;/span&gt; &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;c:\Program Files\PyScripter&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;rem&lt;/span&gt;&lt;span style=&quot;color: #7ca668;&quot;&gt; Adapt the following line to match the python version that comes with QGIS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;start&lt;/span&gt; &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;PyScripter&quot;&lt;/span&gt; /B &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;PyScripter.exe&quot;&lt;/span&gt; --PYTHON312 --PYTHONDLLPATH=&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;%QGIS_ROOT%&lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;\apps\Python312&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;popd&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Save it anywhere you want and run it.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Then in the PyScripter python interpreter you can do:&lt;/p&gt;&lt;div style=&quot;background-color: #282828; font-family: &amp;quot;Cascadia Code&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 10pt;&quot;&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;color: #99cc66;&quot;&gt;*** Python 3.12.9 (main, Feb  7 2025, 14:34:44) [MSC v.1938 64 bit (AMD64)] on win32. ***
*** Remote Python engine is active ***&lt;/span&gt;
&lt;span style=&quot;color: lime;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;qgis&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;core&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;*&lt;/span&gt;
&lt;span style=&quot;color: lime;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;qgis&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;utils&lt;/span&gt;
&lt;span style=&quot;color: lime;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;PyQt5&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;QtCore&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;QSettings&lt;/span&gt;
&lt;span style=&quot;color: lime;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That&#39;s it.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/5066371833038738863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/5066371833038738863' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/5066371833038738863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/5066371833038738863'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/02/using-qgis-update.html' title='Using QGIS - Update'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-5922337016790277923</id><published>2025-02-09T18:43:00.000-08:00</published><updated>2025-02-10T03:32:01.755-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Release"/><title type='text'>PyScripter v5.2.1 released</title><content type='html'>&lt;p&gt;&lt;span face=&quot;Arial, Tahoma, Helvetica, FreeSans, sans-serif&quot; style=&quot;background-color: white; color: #333333; font-size: 13px;&quot;&gt;PyScripter v5.2.1 is now available at&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://sourceforge.net/projects/pyscripter/files/PyScripter-v5.2/&quot; style=&quot;background-color: white; color: #29aae1; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; text-decoration-line: none;&quot;&gt;Sourceforge&lt;/a&gt;&lt;span face=&quot;Arial, Tahoma, Helvetica, FreeSans, sans-serif&quot; style=&quot;background-color: white; color: #333333; font-size: 13px;&quot;&gt;.&amp;nbsp; This release brings a number of significant improvements in the areas of LLM-Assisted coding and Debugging.&amp;nbsp; &amp;nbsp;This is the list of the main new features and fixes:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span face=&quot;Arial, Tahoma, Helvetica, FreeSans, sans-serif&quot; style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 13px;&quot;&gt;&lt;b&gt;New Features:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://pyscripter.blogspot.com/2025/02/deepseek-and-other-improvements-to-llm.html&quot;&gt;LLM Support improvements&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Added support for DeepSeek LLM&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Added support for DeepSeek and OpenAI &quot;o&quot; LLM reasoning models&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Improved display of LLM output&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Syntax Highligting for 300 languges&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Exposed the temperature LLM parameter&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Printing of LLM output&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Debugging&lt;/li&gt;&lt;ul&gt;&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Much&amp;nbsp;&lt;a href=&quot;https://pyscripter.blogspot.com/2025/01/teaser-super-fast-debugging-is-coming.html&quot; rel=&quot;nofollow&quot; style=&quot;box-sizing: border-box; text-underline-offset: 0.2rem;&quot;&gt;faster debugging&lt;/a&gt;&amp;nbsp;for python &amp;gt;= 3.13&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Debugging improvements for python &amp;gt;= 3.10&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Added support for&amp;nbsp;&lt;a href=&quot;https://pyscripter.blogspot.com/2025/01/breakpoint-conditions-and-ignore-counts.html&quot; rel=&quot;nofollow&quot; style=&quot;box-sizing: border-box; text-underline-offset: 0.2rem;&quot;&gt;breakpoint ignore counts&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Surround editor selection with brackets and quotes&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Added two new styles: Windows11 MineShaft (new default) and Windows 11 Impressive Light&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Issues addressed:&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1347&quot;&gt;#1347&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/5922337016790277923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/5922337016790277923' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/5922337016790277923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/5922337016790277923'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/02/pyscripter-v520-released.html' title='PyScripter v5.2.1 released'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-2649548783701458579</id><published>2025-02-09T12:49:00.000-08:00</published><updated>2025-02-09T12:49:06.690-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>DeepSeek and Other improvements to LLM-Assisted Coding</title><content type='html'>&lt;p&gt;&amp;nbsp;The forthcoming version of PyScripter has a number of improvements to LLL-assisted coding:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Support for &lt;a href=&quot;/teaser-super-fast-debugging-is-coming.html) for python &amp;gt;= 3.13&quot; target=&quot;_blank&quot;&gt;DeepSeek&amp;nbsp;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;When it comes to coding, DeepSeek is simply amazing.&amp;nbsp; It is now supported both in the &lt;a href=&quot;https://github.com/pyscripter/pyscripter/wiki/ChatWindow&quot;&gt;Chat&lt;/a&gt; and &lt;a href=&quot;https://github.com/pyscripter/pyscripter/wiki/Assistant&quot;&gt;Assistant&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;The rendering of the LLM responses is much improved and it is now on a par with the Web interface of the LLM providers.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiG_0Q1AT9mbbdzA7Hc0KufuZimE1Z3F42qu-tQNGme9TxayFraj8vQS58s1Kk_HLdoEiHaFOBFJ9JWNhsgbu_EnKn4_jXgN-ZKE5uaoKRp6G8s5nJFRFIjRiy0DDO3IP0xPXxjcz9QnH6F3PXwvWx-bP5p-5ke21NtD3UcTrcnPzC-QOtrfqucPcjd9Wq7&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;565&quot; data-original-width=&quot;608&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiG_0Q1AT9mbbdzA7Hc0KufuZimE1Z3F42qu-tQNGme9TxayFraj8vQS58s1Kk_HLdoEiHaFOBFJ9JWNhsgbu_EnKn4_jXgN-ZKE5uaoKRp6G8s5nJFRFIjRiy0DDO3IP0xPXxjcz9QnH6F3PXwvWx-bP5p-5ke21NtD3UcTrcnPzC-QOtrfqucPcjd9Wq7&quot; width=&quot;258&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Code is presented in code boxes, and using the icons in the header, you can copy the code into the clipboard or directly into a new editor.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Markdown is now rendered perfectly:&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjcYFRNUIey_XuxyfwoAFOi2vNdWXui9qc-qAZQNtl3p_37pThIUor3U3sl8z0QqRJbJdr0d9iFt60GYgD4rmsY2lmQOAILZhjbqIxHEgm_3XLqUVCE6ju8qGX8Od_wKTSvG2RLiS1LDX20oY-JJxsRYASS-sEg2c8Jng7_joZuMbSdqksfoXIGhJh5Hi9f&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;483&quot; data-original-width=&quot;580&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjcYFRNUIey_XuxyfwoAFOi2vNdWXui9qc-qAZQNtl3p_37pThIUor3U3sl8z0QqRJbJdr0d9iFt60GYgD4rmsY2lmQOAILZhjbqIxHEgm_3XLqUVCE6ju8qGX8Od_wKTSvG2RLiS1LDX20oY-JJxsRYASS-sEg2c8Jng7_joZuMbSdqksfoXIGhJh5Hi9f&quot; width=&quot;288&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Support for DeepSeek and OpenAI LLM reasoning models&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;You can now follow the reasoning behind the answers, using DeepSeek&#39;s &lt;i&gt;deepseek-reasoner&lt;/i&gt;&amp;nbsp;model or OpenAI&#39;s &quot;o&quot; models, such &lt;i&gt;o1-mini&lt;/i&gt;.&amp;nbsp; The reasoning is presented without cluttering the output.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiMHRSqmkPKsA_YK_-gn-GpF1pzONXwz0Bmg1Uuambpq1ttpoWnBXMqRN4MMWPTuUpU4VyPjwBJJxqaoxcEBF2cJUu-I4M5msqzTBDfK9pl08E1qObOxEJ7YE1c2AcJxvjB5eHDlHFkugy28Q4eKYBKPu0zuCu6be9iegtIykUDMgWOxIb8JchdKxaGSzYz&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;121&quot; data-original-width=&quot;607&quot; height=&quot;64&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiMHRSqmkPKsA_YK_-gn-GpF1pzONXwz0Bmg1Uuambpq1ttpoWnBXMqRN4MMWPTuUpU4VyPjwBJJxqaoxcEBF2cJUu-I4M5msqzTBDfK9pl08E1qObOxEJ7YE1c2AcJxvjB5eHDlHFkugy28Q4eKYBKPu0zuCu6be9iegtIykUDMgWOxIb8JchdKxaGSzYz&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjW7elZ9W9P3qSCvj2cpgZhNIO6ImCybQI4RBXKkXo1G1WDP4C1hFubQv_3ZWqJXVysJpZARSOm1avcnMm0jGENKFw48At9f4t6qUocZv7nTDW6rAtR-8eusLGU2oepq31MWn7xyQ0KBlrt2ngUKXiybvMo5p4GAB1EihF4WrVJSeWXatfE-y9ESznpQ21H&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;262&quot; data-original-width=&quot;598&quot; height=&quot;140&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjW7elZ9W9P3qSCvj2cpgZhNIO6ImCybQI4RBXKkXo1G1WDP4C1hFubQv_3ZWqJXVysJpZARSOm1avcnMm0jGENKFw48At9f4t6qUocZv7nTDW6rAtR-8eusLGU2oepq31MWn7xyQ0KBlrt2ngUKXiybvMo5p4GAB1EihF4WrVJSeWXatfE-y9ESznpQ21H&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Other improvements&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px;&quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The temperature LLM model parameter is exposed by the Chat UI.&amp;nbsp; &amp;nbsp;It is a decimal number between 0 and 2 that controls the randomness of the results (higher values leed to more random answers).&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px;&quot;&gt;&lt;ul&gt;&lt;li&gt;You can now print the chat topic content.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px;&quot;&gt;&lt;ul&gt;&lt;li&gt;Syntax highlighting for about 300 programming languages is available.&amp;nbsp; So you can now ask questions not just about python but also for other languages.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;And don&#39;t forget the Assistant.&amp;nbsp; While coding Assistant completion is available by pressing Ctrl+Alt+Space. as well as by using the editor context menu.&lt;/p&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/2649548783701458579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/2649548783701458579' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/2649548783701458579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/2649548783701458579'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/02/deepseek-and-other-improvements-to-llm.html' title='DeepSeek and Other improvements to LLM-Assisted Coding'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiG_0Q1AT9mbbdzA7Hc0KufuZimE1Z3F42qu-tQNGme9TxayFraj8vQS58s1Kk_HLdoEiHaFOBFJ9JWNhsgbu_EnKn4_jXgN-ZKE5uaoKRp6G8s5nJFRFIjRiy0DDO3IP0xPXxjcz9QnH6F3PXwvWx-bP5p-5ke21NtD3UcTrcnPzC-QOtrfqucPcjd9Wq7=s72-c" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-193922415537594670</id><published>2025-01-30T08:51:00.000-08:00</published><updated>2025-01-30T08:51:42.232-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Breakpoint conditions and ignore counts</title><content type='html'>&lt;p&gt;&amp;nbsp;PyScripter has always supported conditional breakpoints.&amp;nbsp; &amp;nbsp;Conditional breakpoints allow you to finetune the debugging experience, by only stopping execution when certain conditions are met.&lt;/p&gt;&lt;p&gt;Consider the following example:&lt;/p&gt;&lt;div style=&quot;background-color: #282828; font-family: Cascadia Code, &#39;Courier New&#39;, monospace; font-size: 10pt;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ff7474; font-weight: bold;&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;():&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #2ed5cf;&quot;&gt;sum&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #97bcf3; font-weight: bold;&quot;&gt;0&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #2ed5cf;&quot;&gt;range&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #97bcf3; font-weight: bold;&quot;&gt;1000&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;):&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #2ed5cf;&quot;&gt;sum&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #2ed5cf;&quot;&gt;sum&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;i&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #2ed5cf;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #2ed5cf;&quot;&gt;sum&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #2ed5cf;&quot;&gt;__name__&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #e1b42b;&quot;&gt;&#39;__main__&#39;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;()&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Say you are interested to know when sum becomes &amp;gt;= 1000.&amp;nbsp; If you set a breakpoint at the 4th line of the code, it will be tedious and time consuming to reach that point.&amp;nbsp; &amp;nbsp;What you can do is to set a conditional breakpoint:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhSCbxQ5SHNSAUE62So39-tVOHVhv4pqu2SOEUFTFIkjLIvNShAuF9AeEiLR9LbwyvuLjhWBFPxqSwqazlZVw91uMeyUtSeTK91s0Z-Gt78opHhtFXdq7YGc7kEYLDjGKPeZg9urLUeCyeW3lN5AsSUicoLme2cT4JCxtzRbpeuPAL9GP2h-cp6NqEUH-wZ&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;90&quot; data-original-width=&quot;410&quot; height=&quot;70&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhSCbxQ5SHNSAUE62So39-tVOHVhv4pqu2SOEUFTFIkjLIvNShAuF9AeEiLR9LbwyvuLjhWBFPxqSwqazlZVw91uMeyUtSeTK91s0Z-Gt78opHhtFXdq7YGc7kEYLDjGKPeZg9urLUeCyeW3lN5AsSUicoLme2cT4JCxtzRbpeuPAL9GP2h-cp6NqEUH-wZ&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;When you debug the code, execution will stop at the break point only when the condition is met (i = 46).&lt;p&gt;&lt;/p&gt;&lt;p&gt;As you can tell from the screenshot above, the forthcoming version of PyScripter, introduces and new breakpoint property &quot;Ignore Count&quot;.&amp;nbsp; If you set the the Ignore Count to a positive integer value, then the breakpoint will be ignored a number of times equal to that value.&amp;nbsp; So in the above example if you remove the condition and set the Ignore Count to 100, execution will stop when i becomes 100.&amp;nbsp; When you resume execution, the breakpoint will be ignored another 100 times.&lt;/p&gt;&lt;p&gt;There are a few ways to set the breakpoint properties Condition and Ignore Count.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;In the Breakpoints Window select the property you want to change and press F2.&amp;nbsp; This will allow you to edit the property directly.&amp;nbsp; Press Enter when you are done:&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhEdX5rZb-B_e6yreJ7GuKORg61KyiIPZAQ94G-iEsg9gTmrpk8CESswtA7zW93pzuo6RKmN9ikIA9DzimRi_dksxtPihxdM_fT33OZaVuzH1C_aHWTi8Ok8hOVIhQAhfdsDqYUevArP6TkPrqlBzZ0_A5tnFuTW2tFoiSW1lm5-Dp0RcwarkQB2RIcAUem&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;96&quot; data-original-width=&quot;450&quot; height=&quot;68&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhEdX5rZb-B_e6yreJ7GuKORg61KyiIPZAQ94G-iEsg9gTmrpk8CESswtA7zW93pzuo6RKmN9ikIA9DzimRi_dksxtPihxdM_fT33OZaVuzH1C_aHWTi8Ok8hOVIhQAhfdsDqYUevArP6TkPrqlBzZ0_A5tnFuTW2tFoiSW1lm5-Dp0RcwarkQB2RIcAUem&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;In the Breakpoints Window right-click on the breakpoint and select &quot;Breakpoint Properties...&quot;.&amp;nbsp; A dialog box like the following pops up and you can edit the values.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEicpUN-92BarO3-pKOhJiT8MqD5LOzAExof3QuWfyMjVvMA14zaF5ptFvWG8nEt1BYch8H4sRJ8yZfR7G_Kx8nwkRuHz_ocflIMrWB3Nu2kUQLz7Y2DNLO_HwrdXWYddHTh78G5vh6TYj_sTYAPjRipITrBEx5kQkK-tYVi29ocE2H_pHqzoX1YMeF3Dfmh&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;159&quot; data-original-width=&quot;409&quot; height=&quot;124&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEicpUN-92BarO3-pKOhJiT8MqD5LOzAExof3QuWfyMjVvMA14zaF5ptFvWG8nEt1BYch8H4sRJ8yZfR7G_Kx8nwkRuHz_ocflIMrWB3Nu2kUQLz7Y2DNLO_HwrdXWYddHTh78G5vh6TYj_sTYAPjRipITrBEx5kQkK-tYVi29ocE2H_pHqzoX1YMeF3Dfmh&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;In the editor, when you click on a breakpoint you get a context menu (new feature) from which you can select &quot;Breakpoint Properties...&quot;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhnUwCMV3EXOmF7UAHMqrB9hK_B7w1JHabE2RvBADUHu51Axj8t8I1BG6gUgoW04JddzwgJ-Fwin26uRk7svM_Ujh9uaAdwKEMWPPQH6F1Qlq8sb2_qiVFErBTIeHSs2VeXdhEvlWKe57BteyQgI4l6BLQ9yh5OqKIdQfBa16MDn55v9uSW2IgtQaDp-vTG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;145&quot; data-original-width=&quot;313&quot; height=&quot;148&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhnUwCMV3EXOmF7UAHMqrB9hK_B7w1JHabE2RvBADUHu51Axj8t8I1BG6gUgoW04JddzwgJ-Fwin26uRk7svM_Ujh9uaAdwKEMWPPQH6F1Qlq8sb2_qiVFErBTIeHSs2VeXdhEvlWKe57BteyQgI4l6BLQ9yh5OqKIdQfBa16MDn55v9uSW2IgtQaDp-vTG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Another breakpoint tip:&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;You can quickly disable/enable a breakpoint by Ctrl + clicking on it in the editor gutter.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/193922415537594670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/193922415537594670' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/193922415537594670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/193922415537594670'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/01/breakpoint-conditions-and-ignore-counts.html' title='Breakpoint conditions and ignore counts'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhSCbxQ5SHNSAUE62So39-tVOHVhv4pqu2SOEUFTFIkjLIvNShAuF9AeEiLR9LbwyvuLjhWBFPxqSwqazlZVw91uMeyUtSeTK91s0Z-Gt78opHhtFXdq7YGc7kEYLDjGKPeZg9urLUeCyeW3lN5AsSUicoLme2cT4JCxtzRbpeuPAL9GP2h-cp6NqEUH-wZ=s72-c" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-1818044132322369073</id><published>2025-01-18T15:08:00.000-08:00</published><updated>2025-01-18T15:15:03.392-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Teaser: Super fast debugging is coming to PyScripter</title><content type='html'>&lt;p&gt;&amp;nbsp;You expect code to run with debugging much slower than without.&amp;nbsp; Indeed this is the case and with python, debugging can be sometimes painfully slow.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;A relatively recent, low-level feature that was introduces in Python 3.12 is &lt;a href=&quot;https://docs.python.org/3/library/sys.monitoring.html&quot;&gt;monitoring&lt;/a&gt;. Monitoring allows programmers to hook into low level events that occur during the execution of code.&amp;nbsp; &amp;nbsp;This is similar to &lt;a href=&quot;https://docs.python.org/3/library/sys.html#sys.settrace&quot;&gt;tracing&lt;/a&gt;, which is used by debuggers,&amp;nbsp;but with much greater granularity and control.&amp;nbsp; It turns out that monitoring can help make faster debuggers.&amp;nbsp; Much faster.&amp;nbsp; The next version of PyScripter will include a new debugger that is based on monitoring for python versions 3.12+.&amp;nbsp; Just to give you a taste of the speed-up you get, consider the following code:&lt;/p&gt;&lt;div style=&quot;background-color: #282828; font-family: &amp;quot;Cascadia Code&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 10pt;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;time&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ff7474; font-weight: bold;&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;():&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;start_time&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;time&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;time&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;()&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #2ed5cf;&quot;&gt;range&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #97bcf3; font-weight: bold;&quot;&gt;1000&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;):&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #2ed5cf;&quot;&gt;range&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #97bcf3; font-weight: bold;&quot;&gt;1000&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;):&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;i&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;cost&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;time&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;time&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;start_time&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #2ed5cf;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e1b42b;&quot;&gt;&quot;Elapsed&amp;nbsp;time:&amp;nbsp;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;cost&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #97bcf3; font-weight: bold;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;)&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ff7474; font-weight: bold;&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;):&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #aad1c3; font-style: italic; font-weight: bold;&quot;&gt;#&amp;nbsp;Set&amp;nbsp;breakpoint&amp;nbsp;here&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;*=&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #97bcf3; font-weight: bold;&quot;&gt;2&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #67df87;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #97bcf3; font-weight: bold;&quot;&gt;1&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: white;&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;()&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;If you set a break point at the line &quot;f(0)&quot; and start debugging, this is what you get with the PyScripter v5.1.4 and python 3.13.&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;background-color: #282828; font-family: &amp;quot;Cascadia Code&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 10pt;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: #99cc66;&quot;&gt;***&amp;nbsp;Remote&amp;nbsp;Interpreter&amp;nbsp;Reinitialized&amp;nbsp;***&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #00bbff;&quot;&gt;Elapsed&amp;nbsp;time:&amp;nbsp;&amp;nbsp;2.5882363319396973&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: lime;&quot;&gt;[Dbg]&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;There are a million iterations that happen before you reach the breakpoint, so this takes about 2.5 seconds. If you do the same with the forthcoming release of PyScripter you get:&lt;/p&gt;&lt;div style=&quot;background-color: #282828; font-family: &amp;quot;Cascadia Code&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 10pt;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: #99cc66;&quot;&gt;***&amp;nbsp;Remote&amp;nbsp;Interpreter&amp;nbsp;Reinitialized&amp;nbsp;***&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #00bbff;&quot;&gt;Elapsed&amp;nbsp;time:&amp;nbsp;&amp;nbsp;0.016160964965820312&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: lime;&quot;&gt;[Dbg]&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;This is more than x150 speed-up.&amp;nbsp; The code until you reach the breakpoint, runs almost as fast as without debugging.&amp;nbsp; The new debugger shines when you debug over loops or other pieces of code that it is executed repetitively.&amp;nbsp; For other types of code the speedup is not as impressive.&lt;/p&gt;&lt;p&gt;The new release also back-ports some debugging improvements introduced in python 3.14 to python versions 3.10+.&amp;nbsp; &amp;nbsp;So users of these versions will experience faster debugging.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/1818044132322369073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/1818044132322369073' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/1818044132322369073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/1818044132322369073'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/01/teaser-super-fast-debugging-is-coming.html' title='Teaser: Super fast debugging is coming to PyScripter'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-1072739966547263218</id><published>2025-01-07T06:42:00.001-08:00</published><updated>2025-01-07T06:42:40.801-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Release"/><title type='text'>PyScripter v5.1.3 released</title><content type='html'>&lt;p&gt;PyScripter v5.1.3 is now available at &lt;a href=&quot;https://sourceforge.net/projects/pyscripter/files/PyScripter-v5.1/&quot;&gt;Sourceforge&lt;/a&gt;. Despite being a minor release it does include a number of new features and improvements:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Support for Python 3.14 &lt;/li&gt;    &lt;li&gt;Support for &lt;a href=&quot;https://pyscripter.blogspot.com/2024/12/free-threaded-python-support-is-coming.html&quot;&gt;free-threaded python&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;New external tool &amp;quot;Create &lt;a href=&quot;https://docs.python.org/3/library/venv.html&quot;&gt;venv&lt;/a&gt;&amp;quot; &lt;/li&gt;    &lt;li&gt;Support tqdm and similar modules in the interactive interpreter (&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/812&quot;&gt;#812&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;The Chat Window renders Markdown &lt;/li&gt;    &lt;li&gt;The Assistant can use a greater variety of Ollama models &lt;/li&gt;    &lt;li&gt;Layouts now include the secondary workspace status (&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/494&quot;&gt;#494&lt;/a&gt;)&lt;/li&gt; &lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/1072739966547263218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/1072739966547263218' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/1072739966547263218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/1072739966547263218'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2025/01/pyscripter-v513-released.html' title='PyScripter v5.1.3 released'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-7241147210572692168</id><published>2024-12-13T08:30:00.001-08:00</published><updated>2024-12-13T08:46:29.192-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Create virtual environments the easy way</title><content type='html'>&lt;p&gt;A powerful and possibly underused feature or PyScripter is the Externa Tools.&amp;nbsp; A collection of such tools is included with the installation, but you can create your own.&lt;/p&gt;  &lt;p&gt;Virtual python environments are isolated workspaces, that allow you to install packages and test code, without messing up the main python installation.&amp;nbsp; After using them for a specific purpose you can just delete them.&amp;nbsp; Python ships with a module called &lt;a href=&quot;https://docs.python.org/3/library/venv.html&quot;&gt;venv&lt;/a&gt;, that allows you to easily create such virtual environments.&lt;/p&gt;  &lt;p&gt;Instead of creating such environments from the command prompt you can create an external tool to do that.&amp;nbsp; You can can create new external tools using Tools, Configure Tools, Add.&amp;nbsp; You can then fill the information as in the image below.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg2lUeSPAeemsXvbvydOoRCNMIkfAnHzWHRf6__-LCjUxnqU1czZhBG4Eox-cMF2vIVbLXVPGH4Ql5beKeLUeG1M5w9ybD0ZAb4yBYKet458kT_8RBkzSBdH6cbUNpaCmWge7JAaqJW5JhfMjRErmlRLJ6NR-fPUtd7s6LAJsvF-NF4Ba8JQ_apD3gcoHPD&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;536&quot; data-original-width=&quot;460&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg2lUeSPAeemsXvbvydOoRCNMIkfAnHzWHRf6__-LCjUxnqU1czZhBG4Eox-cMF2vIVbLXVPGH4Ql5beKeLUeG1M5w9ybD0ZAb4yBYKet458kT_8RBkzSBdH6cbUNpaCmWge7JAaqJW5JhfMjRErmlRLJ6NR-fPUtd7s6LAJsvF-NF4Ba8JQ_apD3gcoHPD&quot; width=&quot;206&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;You can run the created tool by selecting it from the Tools, Tools menu.&amp;nbsp; It will prompt you for a folder in which the virtual environment will be created and then will create the environment.&amp;nbsp; To use the created environment, you then go to Run, Python Versions, Setup Python Versions..., add a new unregistered python version at the new virtual environment folder and activate it.&lt;p&gt;&lt;/p&gt;&lt;p&gt;If you are using &lt;a href=&quot;https://anaconda.org/anaconda/python&quot; target=&quot;_blank&quot;&gt;Conda python distributions&lt;/a&gt;&amp;nbsp;you can create an external tool to create conda virtual environments instead.&amp;nbsp; Note though, that conda virtual environments are much more heavyweight than the venv ones.&lt;/p&gt;&lt;p&gt;The next release of PyScripter will add such an external tool to new installations and you can easily add it to existing installations.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/7241147210572692168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/7241147210572692168' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/7241147210572692168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/7241147210572692168'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2024/12/create-virtual-environments-easy-way.html' title='Create virtual environments the easy way'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEg2lUeSPAeemsXvbvydOoRCNMIkfAnHzWHRf6__-LCjUxnqU1czZhBG4Eox-cMF2vIVbLXVPGH4Ql5beKeLUeG1M5w9ybD0ZAb4yBYKet458kT_8RBkzSBdH6cbUNpaCmWge7JAaqJW5JhfMjRErmlRLJ6NR-fPUtd7s6LAJsvF-NF4Ba8JQ_apD3gcoHPD=s72-c" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-5086405316268336072</id><published>2024-12-12T18:23:00.001-08:00</published><updated>2024-12-12T18:33:29.268-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Free-threaded python support is coming to PyScripter</title><content type='html'>&lt;p&gt;One of the main limitations of Python has been its inability to make use of the multiple cores of modern CPUs, at least not easily. This is due to the infamous &lt;a href=&quot;https://wiki.python.org/moin/GlobalInterpreterLock&quot;&gt;Global Interpreter Lock&lt;/a&gt;.&amp;nbsp; In essence, due to the presence of the GIL, only one python thread can execute at a time,&lt;/p&gt;  &lt;p&gt;Python 3.13 has changed this and provides an &lt;a href=&quot;https://docs.python.org/3/howto/free-threading-python.html&quot;&gt;experimental free-threaded (or No-GIL) version&lt;/a&gt;.&amp;nbsp; It is included in the standard installer, but you need to select the relevant option (see below) to install it.&lt;/p&gt;  &lt;p&gt;&lt;img alt=&quot;Python 3.13 Windows Installer&quot; height=&quot;318&quot; src=&quot;https://files.realpython.com/media/windows-installer-virtualbox.c9a524a24102.png&quot; style=&quot;display: block; float: none; margin-left: auto; margin-right: auto;&quot; width=&quot;515&quot; /&gt;&lt;/p&gt;  &lt;p&gt;What you get is a another python executable called python3.13t.exe alongside python.exe.&amp;nbsp;&amp;nbsp; This executable runs the free-threaded version of python.&lt;/p&gt;  &lt;p&gt;This &lt;a href=&quot;https://realpython.com/python313-free-threading-jit/&quot;&gt;RealPython article&lt;/a&gt; provides an in-depth coverage of free-threaded python and is recommended reading. .&lt;/p&gt;  &lt;p&gt;The next version of PyScripter will include support for free-treaded Python. The Run, Python Engine submenu now includes an option to use the Free-Threaded version if is available.&amp;nbsp; It also allows you to easily switch between the standard and free-threaded version.&lt;/p&gt; &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgCdtlJT_QWoBU8vgghBzYrm5oUFmknNrZgTa-0ALlMM3-Lz5Y1gMEQcQj1DKAF6emLiu54rHG7mO5biuAuvTFF8ahYtK5WDjYG3g51Eu4OZWka87MiuRv0vFOc8Bs3GFG3SrQ3IYYm1yMA3WEQBEZNXi583z_xtlUPPKFaO7aXl4-jp-pTN0yYvceQY079&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;159&quot; data-original-width=&quot;267&quot; height=&quot;191&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgCdtlJT_QWoBU8vgghBzYrm5oUFmknNrZgTa-0ALlMM3-Lz5Y1gMEQcQj1DKAF6emLiu54rHG7mO5biuAuvTFF8ahYtK5WDjYG3g51Eu4OZWka87MiuRv0vFOc8Bs3GFG3SrQ3IYYm1yMA3WEQBEZNXi583z_xtlUPPKFaO7aXl4-jp-pTN0yYvceQY079&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;To get an idea of the performance benefits from using free-threaded python, here are the the results of running the benchmark code of the RealPython article without/with free-threading:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;background-color: #282828; font-family: Cascadia Code, &#39;Courier New&#39;, monospace; font-size: 9pt;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: #99cc66;&quot;&gt;***&amp;nbsp;Python&amp;nbsp;3.13.0&amp;nbsp;(tags/v3.13.0:60403a5,&amp;nbsp;Oct&amp;nbsp;&amp;nbsp;7&amp;nbsp;2024,&amp;nbsp;09:38:07)&amp;nbsp;[MSC&amp;nbsp;v.1941&amp;nbsp;64&amp;nbsp;bit&amp;nbsp;(AMD64)]&amp;nbsp;on&amp;nbsp;win32.&amp;nbsp;***&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: lime;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c2e890;&quot;&gt;=======================================================================&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #00bbff;&quot;&gt;💻&amp;nbsp;Windows&amp;nbsp;64bit&amp;nbsp;with&amp;nbsp;20x&amp;nbsp;CPU&amp;nbsp;cores&amp;nbsp;(Intel64&amp;nbsp;Family&amp;nbsp;6&amp;nbsp;Model&amp;nbsp;151&amp;nbsp;Stepping&amp;nbsp;2,&amp;nbsp;GenuineIntel&amp;nbsp;Little&amp;nbsp;Endian)&lt;br /&gt;
🐍&amp;nbsp;CPython&amp;nbsp;3.13.0&amp;nbsp;C:\Python\Python313\python.exe&lt;br /&gt;
Free&amp;nbsp;Threading:&amp;nbsp;unsupported&lt;br /&gt;
=======================================================================&lt;br /&gt;
Running&amp;nbsp;20&amp;nbsp;threads...   :&amp;nbsp;15.07s&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;background-color: #282828; font-family: Cascadia Code, &#39;Courier New&#39;, monospace; font-size: 9pt;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: #99cc66;&quot;&gt;***&amp;nbsp;Python&amp;nbsp;3.13.0&amp;nbsp;experimental&amp;nbsp;free-threading&amp;nbsp;build&amp;nbsp;(tags/v3.13.0***&amp;nbsp;Remote&amp;nbsp;Interpreter&amp;nbsp;Reinitialized&amp;nbsp;***&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #00bbff;&quot;&gt;=======================================================================&lt;br /&gt;
💻&amp;nbsp;Windows&amp;nbsp;64bit&amp;nbsp;with&amp;nbsp;20x&amp;nbsp;CPU&amp;nbsp;cores&amp;nbsp;(Intel64&amp;nbsp;Family&amp;nbsp;6&amp;nbsp;Model&amp;nbsp;151&amp;nbsp;Stepping&amp;nbsp;2,&amp;nbsp;GenuineIntel&amp;nbsp;Little&amp;nbsp;Endian)&lt;br /&gt;
🐍&amp;nbsp;CPython&amp;nbsp;3.13.0&amp;nbsp;C:\Python\Python313\python3.13t.exe&lt;br /&gt;
Free&amp;nbsp;Threading:&amp;nbsp;enabled&amp;nbsp;✨&lt;br /&gt;
========================================================================&lt;br /&gt;
Running&amp;nbsp;20&amp;nbsp;threads...   :&amp;nbsp;2.81s&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/5086405316268336072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/5086405316268336072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/5086405316268336072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/5086405316268336072'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2024/12/free-threaded-python-support-is-coming.html' title='Free-threaded python support is coming to PyScripter'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgCdtlJT_QWoBU8vgghBzYrm5oUFmknNrZgTa-0ALlMM3-Lz5Y1gMEQcQj1DKAF6emLiu54rHG7mO5biuAuvTFF8ahYtK5WDjYG3g51Eu4OZWka87MiuRv0vFOc8Bs3GFG3SrQ3IYYm1yMA3WEQBEZNXi583z_xtlUPPKFaO7aXl4-jp-pTN0yYvceQY079=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-6803920821909160856</id><published>2024-11-21T19:14:00.001-08:00</published><updated>2024-11-21T19:26:54.319-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Py"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="SSH"/><title type='text'>SSH Engines broken by November 12, 2024 Windows update</title><content type='html'>&lt;p&gt;If you are using SSH engines that rely on OpenSSH (and not PuTTY), you may find that they stopped working after the November 23 Windows 11 update.&amp;nbsp; The reason is that OpenSSH has been updated to version 9.5 and this affects how the scp command works. It now uses the SFTP mode by default and it breaks compatibility with earlier versions.&lt;/p&gt;  &lt;p&gt;To fix this, you need to edit the settings of your ssh engine and add a new option –O to the scp command options.&amp;nbsp; This options instructs scp to work in a backward compatible manner.&amp;nbsp; With this change you will find that your SSH engines work as before the update.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/6803920821909160856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/6803920821909160856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/6803920821909160856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/6803920821909160856'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2024/11/ssh-engines-broken-by-november-12-2024.html' title='SSH Engines broken by November 12, 2024 Windows update'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-2261112051649941443</id><published>2024-10-28T18:28:00.000-07:00</published><updated>2024-10-28T18:28:52.881-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Release"/><title type='text'>PyScripter v5.1.0 released</title><content type='html'>&lt;p&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;&quot;&gt;PyScripter v5.1.0 is now available at&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://sourceforge.net/projects/pyscripter/files/PyScripter-v5.1/&quot; style=&quot;background-color: white; color: #29aae1; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; text-decoration-line: none;&quot;&gt;Sourceforge&lt;/a&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;&quot;&gt;.&amp;nbsp; This release features very significant improvements in the PyScripter editor.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;i&gt;New Features&lt;/i&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://pyscripter.blogspot.com/2024/10/teaser-multi-caret-editing-is-coming-to.html&quot;&gt;Multi-caret and multi-selection editing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://pyscripter.blogspot.com/2024/10/teaser-annotated-scrollbars-are-coming.html&quot;&gt;Annotated scrollbars&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://pyscripter.blogspot.com/2024/10/teaser-highlight-program-structure-is.html&quot;&gt;Colored code structure highlight&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://pyscripter.blogspot.com/2024/10/teaser-display-of-program-flow-control.html&quot;&gt;Display of program flow control symbols&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Support for TOML files&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Issues addressed&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1307&quot;&gt;#1307&lt;/a&gt;, &lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1321&quot;&gt;#1321&lt;/a&gt;, &lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1329&quot;&gt;#1329&lt;/a&gt;, &lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1336&quot;&gt;#1336&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/2261112051649941443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/2261112051649941443' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/2261112051649941443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/2261112051649941443'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2024/10/pyscripter-v510-released.html' title='PyScripter v5.1.0 released'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-3298012973221234714</id><published>2024-10-26T19:20:00.000-07:00</published><updated>2024-10-26T19:28:10.637-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><title type='text'>Teaser: Colored highlight of program structure is coming to PyScripter</title><content type='html'>&lt;p&gt;The PyScripter editor had the option to show indentation guides (thin vertical lines that help you visualize blocks of python code).&amp;nbsp; This feature has been enhanced and it is now using colors to help you better understand the python code structure.&amp;nbsp; See the picture below:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdMO1rzX8O158DWl7napTtVOMXZTtRaxhtKDYv6_PiKIAMnCTPlBaXwvXS1F1EYIylPO3-V9cm-vcnEvwJtHm4cf1uZrbQFWu-pZCKRekjtrSh1HPMAO6jQXyRsX97gFC7873El2qvJcSOg5lFcJkZpPFmXAA8wwtfPyWWwu01ZYDj_rF1fyyhfj7NbW1y/s551/Screenshot%202024-10-27%20041610.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;321&quot; data-original-width=&quot;551&quot; height=&quot;186&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdMO1rzX8O158DWl7napTtVOMXZTtRaxhtKDYv6_PiKIAMnCTPlBaXwvXS1F1EYIylPO3-V9cm-vcnEvwJtHm4cf1uZrbQFWu-pZCKRekjtrSh1HPMAO6jQXyRsX97gFC7873El2qvJcSOg5lFcJkZpPFmXAA8wwtfPyWWwu01ZYDj_rF1fyyhfj7NbW1y/s320/Screenshot%202024-10-27%20041610.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;The option is enabled by the default.&amp;nbsp; You can disable by unchecking the option using Tools, Options, IDE Options, Editor, &quot;Indentation Guides&quot;, &quot;Highlight Structure&quot;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/3298012973221234714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/3298012973221234714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/3298012973221234714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/3298012973221234714'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2024/10/teaser-highlight-program-structure-is.html' title='Teaser: Colored highlight of program structure is coming to PyScripter'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdMO1rzX8O158DWl7napTtVOMXZTtRaxhtKDYv6_PiKIAMnCTPlBaXwvXS1F1EYIylPO3-V9cm-vcnEvwJtHm4cf1uZrbQFWu-pZCKRekjtrSh1HPMAO6jQXyRsX97gFC7873El2qvJcSOg5lFcJkZpPFmXAA8wwtfPyWWwu01ZYDj_rF1fyyhfj7NbW1y/s72-c/Screenshot%202024-10-27%20041610.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-6525303556487727372</id><published>2024-10-26T18:51:00.000-07:00</published><updated>2024-10-26T18:54:20.425-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><title type='text'>Teaser: Display of program flow control symbols is coming to PyScripter</title><content type='html'>&lt;p&gt;The next version of PyScripter will be able to display program flow control symbols (small arrows next to return/continue/break/yield statements), that help you visualize and better understand the flow of execution:&lt;/p&gt;&lt;p&gt;See the picture below:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjZyZWxhySkkX4QKVEU3kuLNl4psxziTqWdLbRpw59097542uIAxMv3qa2_g3O5x7rr-Ko9rgUH4neh0nvJfsaEFzT0xONrvirO3-ETkqLd7V-TOa9mekZHxP8mkSPsGfp-XEZAOKIofDeSuQZbZE_THgU_6nPcgxldurXJVkEKwwKFDqc1-vEziivoa_vh&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;155&quot; data-original-width=&quot;560&quot; height=&quot;89&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjZyZWxhySkkX4QKVEU3kuLNl4psxziTqWdLbRpw59097542uIAxMv3qa2_g3O5x7rr-Ko9rgUH4neh0nvJfsaEFzT0xONrvirO3-ETkqLd7V-TOa9mekZHxP8mkSPsGfp-XEZAOKIofDeSuQZbZE_THgU_6nPcgxldurXJVkEKwwKFDqc1-vEziivoa_vh&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;You can enable/disable this feature through, Tools, Options, IDE Options, Editor, &quot;Display flow control symbols&quot;.&amp;nbsp; You can also customize their color.&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/6525303556487727372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/6525303556487727372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/6525303556487727372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/6525303556487727372'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2024/10/teaser-display-of-program-flow-control.html' title='Teaser: Display of program flow control symbols is coming to PyScripter'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjZyZWxhySkkX4QKVEU3kuLNl4psxziTqWdLbRpw59097542uIAxMv3qa2_g3O5x7rr-Ko9rgUH4neh0nvJfsaEFzT0xONrvirO3-ETkqLd7V-TOa9mekZHxP8mkSPsGfp-XEZAOKIofDeSuQZbZE_THgU_6nPcgxldurXJVkEKwwKFDqc1-vEziivoa_vh=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-6964047692484199030</id><published>2024-10-23T14:20:00.000-07:00</published><updated>2024-10-23T14:21:37.552-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><title type='text'>Teaser:  Annotated scrollbars are coming to PyScripter</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh-HFi71tlfTQFPLuSltvUopYkdf317taLOX5uyOq6vbB3elylYGkJiJeKeavRKnxMOGD4VifDQSHD5Dv9jweagH0-7wrgF_XgfV7GsJvRzFdTheyvDrTHV6Kkg_eSAD9s8M1AlBFXcF2cVKGNpIWEqUb20i_cUSpJWwDZqzE9UVh-UL3QykIjSl2Th0AcC&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;167&quot; data-original-width=&quot;708&quot; height=&quot;75&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh-HFi71tlfTQFPLuSltvUopYkdf317taLOX5uyOq6vbB3elylYGkJiJeKeavRKnxMOGD4VifDQSHD5Dv9jweagH0-7wrgF_XgfV7GsJvRzFdTheyvDrTHV6Kkg_eSAD9s8M1AlBFXcF2cVKGNpIWEqUb20i_cUSpJWwDZqzE9UVh-UL3QykIjSl2Th0AcC&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;In this screenshot you can see in the scrollbar:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;the position of the &lt;a href=&quot;https://pyscripter.blogspot.com/2024/10/teaser-multi-caret-editing-is-coming-to.html&quot;&gt;multiple carets&lt;/a&gt; (full blueish line)&lt;/li&gt;&lt;li&gt;lines with errors (full red line)&lt;/li&gt;&lt;li&gt;the position of the bookmarks (mini bluish marks on the left)&lt;/li&gt;&lt;li&gt;line modification info (on the right side)&lt;/li&gt;&lt;li&gt;alpha-blended slider&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/6964047692484199030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/6964047692484199030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/6964047692484199030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/6964047692484199030'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2024/10/teaser-annotated-scrollbars-are-coming.html' title='Teaser:  Annotated scrollbars are coming to PyScripter'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEh-HFi71tlfTQFPLuSltvUopYkdf317taLOX5uyOq6vbB3elylYGkJiJeKeavRKnxMOGD4VifDQSHD5Dv9jweagH0-7wrgF_XgfV7GsJvRzFdTheyvDrTHV6Kkg_eSAD9s8M1AlBFXcF2cVKGNpIWEqUb20i_cUSpJWwDZqzE9UVh-UL3QykIjSl2Th0AcC=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-1594357763199706001</id><published>2024-10-16T10:09:00.001-07:00</published><updated>2024-10-16T10:09:21.223-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7"/><title type='text'>PyScripter on Windows 7</title><content type='html'>&lt;p&gt;Windows 7 share of the Windows market is under 3% and declining.Microsoft stopped support for Win 7 on January 2020.&amp;#160; Python no longer supports Win7 since version 3.9.&amp;#160; However there are still quite a few PyScripter users on Win 7.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;I recently&amp;#160; got an issue report that the latest versions 5.x do not paint well on Windows 7.&amp;#160; The problem was resolved when the user activated an Aero theme instead of a classic one.&amp;#160; So, if you are on Windows 7 and want to use PyScripter you still can.&lt;/p&gt;  &lt;p&gt;If you have trouble activating an Aero theme please have a look a this &lt;a href=&quot;https://superuser.com/questions/396580/windows-7-aero-themes-greyed-out-no-found-fix&quot;&gt;troubleshooting guide&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/1594357763199706001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/1594357763199706001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/1594357763199706001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/1594357763199706001'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2024/10/pyscripter-on-windows-7.html' title='PyScripter on Windows 7'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-3814254703466905918</id><published>2024-10-10T08:22:00.000-07:00</published><updated>2024-10-10T20:22:50.309-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="multi-caret"/><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><title type='text'>Teaser: Multi-caret editing is coming to PyScripter</title><content type='html'>&lt;p&gt;The series of short videos that follow, introduce the forthcoming new multi-caret and multi-selection editing capabilities of PyScripter. They can also serve as a tutorial on how to effectively use them for more productive code editing.&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Multiple carets and selections using the mouse&lt;/h2&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dxUm4LUq0lCM2qkEME-Gbsm-zdkNF5ptp3Z0pnZ4n_eGKKFupCDJR_dwoYvxGNRwdufa1FWUThvEpQ8v5eSRg&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Takeaways:&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;i&gt;Alt + Mouse click&lt;/i&gt;:&amp;nbsp; Adds new caret&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt + Mouse move&lt;/i&gt;: Adds new selection&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt + Shift + Mouse click/move&lt;/i&gt;: Selects column mode&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Multiple carets and selections using the keyboard&lt;/h2&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dxmx_GZjXIZyobRn4Cn8JA7q-kljzsXigIiLJtzKTh-RPJWTWTGSl2ntLVnH8X7T90_hcIKRAg7bqvObckYkA&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Takeaways:&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Alt + Shift + Left/Right/Up/Down/PgUp/PgDown&lt;/i&gt;: Selects column mode&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt + End&lt;/i&gt;: Adds carets to the end of the lines in the current selection&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h2&gt;Editing with multiple carets and selections&lt;/h2&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dznJhuoyEeqihnbHXiI74ToHfX792IWI2XYfAmig460D3aIOn-BAHT309oW2jFG9Gd1wJ_XzSHFwSFoE6RTYA&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Takeaways:&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Most editing commands work with multiple carets and selections&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;h2&gt;Copying and pasting with multiple selections&lt;/h2&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dyhlnDbUkODCJWYoGfkHWFoj7jsW1WtaxsZLmvelx5_pmEXvBQDVNnIxjU5ezaIdpYelNZnRkcR_o4Y4xmz_w&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Takeaways:&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;If the number of carets when you copy, is equal to the number of carets when you paste, copying is taking place on a one-to-one basis.&amp;nbsp; Otherwise, the full selected text is copied.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;h2&gt;Selecting matching words and text&lt;/h2&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dwSCLZqWby2tQ-fJTcC9HXnS93kY4t7vbTZkjGvVCOtGxC5xEzCCX8A-gFAaDUTXNe47k9UjEVEwbT5Jrggvw&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Takeaways:&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Ctrl + W&lt;/i&gt;: Adds the next matching word as a new selection&lt;/li&gt;&lt;li&gt;&lt;i&gt;Shift +Ctrl + W&lt;/i&gt;: Selects all matching occurrences of the current selection&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/3814254703466905918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/3814254703466905918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/3814254703466905918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/3814254703466905918'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2024/10/teaser-multi-caret-editing-is-coming-to.html' title='Teaser: Multi-caret editing is coming to PyScripter'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7593719622919430748.post-8681127987684960547</id><published>2024-09-10T09:59:00.001-07:00</published><updated>2024-09-10T09:59:04.727-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="LLM"/><category scheme="http://www.blogger.com/atom/ns#" term="New features"/><category scheme="http://www.blogger.com/atom/ns#" term="PyScripter"/><category scheme="http://www.blogger.com/atom/ns#" term="Release"/><title type='text'>PyScripter v5.0.1 released</title><content type='html'>&lt;p&gt;PyScripter v5.0.1 is now available at &lt;a href=&quot;https://sourceforge.net/projects/pyscripter/files/PyScripter-v5.0/&quot;&gt;Sourceforge&lt;/a&gt;. Google’s &lt;a href=&quot;https://gemini.google.com/app&quot;&gt;Gemini&lt;/a&gt; LLM has been added to the list of supported LLM service providers.&amp;#160; Low usage of Gemini is free, so this makes it a great choice for working with PyScripter’s &lt;a href=&quot;https://pyscripter.blogspot.com/2024/06/teaser-integration-with-llm.html&quot;&gt;LLM-assisted coding.&lt;/a&gt;&amp;#160; See this &lt;a href=&quot;https://github.com/pyscripter/pyscripter/wiki/LLM_Support&quot;&gt;wiki page&lt;/a&gt; to get started.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;em&gt;New features:&lt;/em&gt;      &lt;ul&gt;       &lt;li&gt;Support for Google&#39;s Gemini LLM&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;em&gt;Issues addressed:&lt;/em&gt;      &lt;ul&gt;       &lt;li&gt;&lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1227&quot;&gt;#1227&lt;/a&gt;, &lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1271&quot;&gt;#1271&lt;/a&gt;, &lt;a href=&quot;https://github.com/pyscripter/pyscripter/issues/1319&quot;&gt;#1319&lt;/a&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://pyscripter.blogspot.com/feeds/8681127987684960547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7593719622919430748/8681127987684960547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/8681127987684960547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7593719622919430748/posts/default/8681127987684960547'/><link rel='alternate' type='text/html' href='http://pyscripter.blogspot.com/2024/09/pyscripter-v501-released.html' title='PyScripter v5.0.1 released'/><author><name>PyScripter</name><uri>http://www.blogger.com/profile/01872810912511222321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='10' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8j_XQ6_YPi2iUJJyv4BMKB0vLIYEeyrNiucNqe3OmOhFAqjqfT8idBlvCvzkbsAvJf-9O_pwI1TF6AbheTPVEJeFW_Argof6RHplkHpOHTGYkhpiFjj4aGIGM45IT2eQ/s220/PyScripterLogo.jpg'/></author><thr:total>0</thr:total></entry></feed>