<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>python</title>
    <link rel="self" type="application/atom+xml" href="https://links.pgmac.net.au/guest/tags/19/feed"/>
    <updated>2026-06-21T11:34:52+10:00</updated>
    <id>https://links.pgmac.net.au/guest/tags/19/feed</id>
            <entry>
            <id>https://links.pgmac.net.au/links/1804</id>
            <title type="text"><![CDATA[Copy Fail — CVE-2026-31431]]></title>
            <link rel="alternate" href="https://copy.fail/" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1804"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[Copy Fail (CVE-2026-31431): a 732-byte Linux LPE — straight-line, no race, no per-distro offsets. Same Python script roots Ubuntu, Amazon Linux, RHEL, SUSE since 2017. Page-cache write bypasses on-disk file-integrity tools and crosses container boundaries. Found by Xint Code.]]>
            </summary>
            <updated>2026-05-03T10:44:23+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/1733</id>
            <title type="text"><![CDATA[Show HN: A WYSIWYG word processor in Python]]></title>
            <link rel="alternate" href="https://codeberg.org/chrisecker/miniword" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1733"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[miniword - A WYSIWYG  word processor in Python.]]>
            </summary>
            <updated>2026-04-12T14:41:12+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/1644</id>
            <title type="text"><![CDATA[Astral to Join OpenAI]]></title>
            <link rel="alternate" href="https://astral.sh/blog/openai" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1644"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[Astral has entered into an agreement to join OpenAI as part of the Codex team.]]>
            </summary>
            <updated>2026-03-20T14:05:59+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/1586</id>
            <title type="text"><![CDATA[These Python scripts will supercharge your Obsidian vault]]></title>
            <link rel="alternate" href="https://www.xda-developers.com/these-python-scripts-will-supercharge-your-obsidian-vault/" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1586"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[All the benefits of plugins with none of the downsides.]]>
            </summary>
            <updated>2026-03-09T06:19:06+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/1480</id>
            <title type="text"><![CDATA[GitHub - pydantic/monty: A minimal, secure Python interpreter written in Rust for use by AI]]></title>
            <link rel="alternate" href="https://github.com/pydantic/monty" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1480"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[A minimal, secure Python interpreter written in Rust for use by AI - pydantic/monty]]>
            </summary>
            <updated>2026-02-08T12:08:38+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/1305</id>
            <title type="text"><![CDATA[Announcing the Beta release of ty]]></title>
            <link rel="alternate" href="https://astral.sh/blog/ty" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1305"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[ty is an extremely fast Python type checker and language server, written in Rust, and designed as an alternative to mypy, Pyright, and Pylance.]]>
            </summary>
            <updated>2025-12-17T18:37:13+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/1137</id>
            <title type="text"><![CDATA[Pdoc – Generate API documentation for Python projects]]></title>
            <link rel="alternate" href="https://pdoc.dev/" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1137"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[pdoc auto-generates API documentation that follows your project&amp;#039;s Python module hierarchy. It requires no configuration, has first-class support for type annotations, cross-links between identifiers, comes with an integrated live-reloading web server, and understands numpydoc or Google-style docstrings.]]>
            </summary>
            <updated>2025-10-12T17:34:15+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/1116</id>
            <title type="text"><![CDATA[Making Python in Zed Fun — Zed&amp;#039;s Blog]]></title>
            <link rel="alternate" href="https://zed.dev/blog/making-python-in-zed-fun" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1116"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[From the Zed Blog: Less wrestling with settings.json == more coding.]]>
            </summary>
            <updated>2025-10-04T06:25:17+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/1113</id>
            <title type="text"><![CDATA[Creating Python GUIs With GIMP | Hackaday]]></title>
            <link rel="alternate" href="https://hackaday.com/2025/09/29/creating-python-guis-with-gimp/" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1113"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[GUI design can be a tedious job, requiring the use of specialist design tools and finding a suitable library that fits your use case. If you’re looking for a lightweight solution, though, you…]]>
            </summary>
            <updated>2025-10-04T06:18:28+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/1073</id>
            <title type="text"><![CDATA[pyx | Astral]]></title>
            <link rel="alternate" href="https://astral.sh/pyx" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1073"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[A Python-native package registry from the creators of uv.]]>
            </summary>
            <updated>2025-08-14T07:27:43+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/1065</id>
            <title type="text"><![CDATA[GitHub - google/langextract: A Python library for extracting structured information from unstructured text using LLMs with precise source grounding and interactive visualization.]]></title>
            <link rel="alternate" href="https://github.com/google/langextract" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1065"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[A Python library for extracting structured information from unstructured text using LLMs with precise source grounding and interactive visualization. - google/langextract]]>
            </summary>
            <updated>2025-08-10T20:29:16+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/1013</id>
            <title type="text"><![CDATA[uv + Ray: Pain-Free Python Dependencies in Clusters | Anyscale]]></title>
            <link rel="alternate" href="https://www.anyscale.com/blog/uv-ray-pain-free-python-dependencies-in-clusters" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/1013"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[Pain-free Python dependencies in clusters with uv + Ray! Learn how to build lightning-fast, consistent environments for distributed applications.]]>
            </summary>
            <updated>2025-06-27T17:49:45+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/984</id>
            <title type="text"><![CDATA[Auto activating a python virtualenv · GitHub]]></title>
            <link rel="alternate" href="https://gist.github.com/pgmac/0bc0da3df511ca58993ec5416950a04d" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/984"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[Auto activating a python virtualenv. GitHub Gist: instantly share code, notes, and snippets.]]>
            </summary>
            <updated>2025-06-15T08:45:00+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/982</id>
            <title type="text"><![CDATA[Setup | Ruff]]></title>
            <link rel="alternate" href="https://docs.astral.sh/ruff/editors/setup/#zed" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/982"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[An extremely fast Python linter and code formatter, written in Rust.]]>
            </summary>
            <updated>2025-06-15T07:50:14+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/981</id>
            <title type="text"><![CDATA[Running scripts | uv]]></title>
            <link rel="alternate" href="https://docs.astral.sh/uv/guides/scripts/#using-a-shebang-to-create-an-executable-file" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/981"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[A guide to using uv to run Python scripts, including support for inline dependency metadata, reproducible scripts, and more.]]>
            </summary>
            <updated>2025-06-15T07:46:20+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/906</id>
            <title type="text"><![CDATA[GitHub - hxu296/tariff: The official repository for tariff]]></title>
            <link rel="alternate" href="https://github.com/hxu296/tariff" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/906"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[The official repository for tariff. Contribute to hxu296/tariff development by creating an account on GitHub.]]>
            </summary>
            <updated>2025-05-29T22:04:28+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/795</id>
            <title type="text"><![CDATA[Scripton]]></title>
            <link rel="alternate" href="https://scripton.dev/" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/795"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[Scripton is a powerful yet easy to use Python IDE. It includes rich visualization and AI features.]]>
            </summary>
            <updated>2025-05-28T00:54:13+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/694</id>
            <title type="text"><![CDATA[Are we PEP 740 yet? 🔏]]></title>
            <link rel="alternate" href="https://trailofbits.github.io/are-we-pep740-yet/" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/694"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[]]>
            </summary>
            <updated>2026-01-24T04:00:26+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/631</id>
            <title type="text"><![CDATA[The Ultimate Guide to Error Handling in Python - miguelgrinberg.com]]></title>
            <link rel="alternate" href="https://blog.miguelgrinberg.com/post/the-ultimate-guide-to-error-handling-in-python" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/631"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[miguelgrinberg.com]]>
            </summary>
            <updated>2026-01-10T04:00:51+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/446</id>
            <title type="text"><![CDATA[Cleaning Up Confluence Chaos: A Python and BERTopic Quest | by Massimiliano]]></title>
            <link rel="alternate" href="https://towardsdatascience.com/cleaning-up-confluence-chaos-a-python-and-bertopic-quest-d3aafc2ed736" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/446"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[A tale of taming unruly documents to create the ultimate GPT-based chatbot]]>
            </summary>
            <updated>2025-11-28T04:00:24+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/376</id>
            <title type="text"><![CDATA[Some reorg in order to help and allow other to contribute easier &amp;amp; Adding B]]></title>
            <link rel="alternate" href="https://github.com/mingrammer/diagrams/pull/439" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/376"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[Hey @mingrammer,
I&amp;#039;m aware that this PR is a big change but I believe it will help a lot for the maintainability of the project.]]>
            </summary>
            <updated>2026-01-26T06:00:22+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/368</id>
            <title type="text"><![CDATA[https://isc.sans.edu/forums/diary/Quick+and+dirty+Python+masscan/27384/?s=09]]></title>
            <link rel="alternate" href="https://isc.sans.edu/forums/diary/Quick+and+dirty+Python+masscan/27384/?s=09" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/368"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[]]>
            </summary>
            <updated>2026-01-22T16:00:36+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/327</id>
            <title type="text"><![CDATA[https://learnbyexample.github.io/py_resources/]]></title>
            <link rel="alternate" href="https://learnbyexample.github.io/py_resources/" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/327"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[]]>
            </summary>
            <updated>2026-01-21T06:00:07+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/281</id>
            <title type="text"><![CDATA[willmcgugan/rich: Rich is a Python library for rich text and beautiful form]]></title>
            <link rel="alternate" href="https://github.com/willmcgugan/rich" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/281"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[Rich is a Python library for rich text and beautiful formatting in the terminal. - Textualize/rich]]>
            </summary>
            <updated>2026-01-15T06:00:27+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/203</id>
            <title type="text"><![CDATA[Learn To Loop The Python Way: Iterators And Generators Explained | Hackaday]]></title>
            <link rel="alternate" href="https://hackaday.com/2018/09/19/learn-to-loop-the-python-way-iterators-and-generators-explained/" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/203"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[If you’ve ever written any Python at all, the chances are you’ve used iterators without even realising it. Writing your own and using them in your programs can provide significant perfo…]]>
            </summary>
            <updated>2025-12-12T12:00:07+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/202</id>
            <title type="text"><![CDATA[Building Recommendation Systems using Python - CodeProject]]></title>
            <link rel="alternate" href="https://www.codeproject.com/Articles/1251123/Building-Recommendation-Systems-using-Python" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/202"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[For those who code]]>
            </summary>
            <updated>2026-03-25T00:00:37+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/200</id>
            <title type="text"><![CDATA[6 Visual Charts Drawn in Python - TutorialDocs]]></title>
            <link rel="alternate" href="https://www.tutorialdocs.com/article/python-chart.html" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/200"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[]]>
            </summary>
            <updated>2026-03-27T06:00:30+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/100</id>
            <title type="text"><![CDATA[https://medium.com/python-pandemonium/never-write-for-loops-again-91a5a4c84baf]]></title>
            <link rel="alternate" href="https://medium.com/python-pandemonium/never-write-for-loops-again-91a5a4c84baf" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/100"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[]]>
            </summary>
            <updated>2026-05-29T08:00:23+10:00</updated>
        </entry>
            <entry>
            <id>https://links.pgmac.net.au/links/9</id>
            <title type="text"><![CDATA[PythonEditors - PythonInfo Wiki]]></title>
            <link rel="alternate" href="http://wiki.python.org/moin/PythonEditors" />
            <link rel="via" type="application/atom+xml" href="https://links.pgmac.net.au/links/9"/>
            <author>
                <name><![CDATA[Paul Macdonnell]]></name>
            </author>
            <summary type="text">
                <![CDATA[]]>
            </summary>
            <updated>2026-04-02T22:00:08+10:00</updated>
        </entry>
    </feed>
