Graham Dumpleton: Writing a workshop for JupyterLab
Link: https://grahamdumpleton.me/posts/2026/09/writing-a-workshop-for-jupyterlab/
Yesterday's post introduced jupyterlab-workshop and showed one page of a workshop. This one writes a whole workshop from an empty directory. It is small enough to fit in a post, but it has everything
Link: https://grahamdumpleton.me/posts/2026/09/writing-a-workshop-for-jupyterlab/
Yesterday's post introduced jupyterlab-workshop and showed one page of a workshop. This one writes a whole workshop from an empty directory. It is small enough to fit in a post, but it has everything
grahamdumpleton.me
Writing a workshop for JupyterLab - Graham Dumpleton
Writing a small guided workshop for JupyterLab from nothing with jupyterlab-workshop: the manifest, pages, actions, checks, linting, self-testing and author mode.
Bob Belderbos: Protocol or ABC for a pluggable interface?
Link: https://belderbos.dev/blog/protocol-vs-abc-provider-interface/
I was designing the provider boundary with a student for a CLI tool that talks to two different image-generation backends.
Same inputs from the user, two different SDKs underneath. We were figuring ou
Link: https://belderbos.dev/blog/protocol-vs-abc-provider-interface/
I was designing the provider boundary with a student for a CLI tool that talks to two different image-generation backends.
Same inputs from the user, two different SDKs underneath. We were figuring ou
belderbos.dev
Protocol or ABC? Designing a pluggable provider interface
When you need a common interface for swappable backends, the reflex is to use a good ol' abstract base class (ABC). But typing.Protocol offers a more flexible alternative.
ListenData: AutoGPT : Everything You Need To Know
Link: https://www.listendata.com/2023/04/autogpt-explained-everything-you-need.html
In this post we have covered AutoGPT in detail. By end of this tutorial, you will not only understand how it works but also will be able to run it on your system. Auto-GPT has gained a significant amo
Link: https://www.listendata.com/2023/04/autogpt-explained-everything-you-need.html
In this post we have covered AutoGPT in detail. By end of this tutorial, you will not only understand how it works but also will be able to run it on your system. Auto-GPT has gained a significant amo
ListenData
AutoGPT : Everything You Need To Know
Learn how AutoGPT works and how you can run it on your system. This article also includes limitations and other critical aspects of AutoGPT.
Django Weblog: Proposed change to DSF voting membership
Link: https://www.djangoproject.com/weblog/2026/sep/18/proposed-change-to-dsf-voting-membership/
We're proposing a new voting membership status to help us track active members. If you've voted in a Board election in the last two years, you're active, and you count toward quorum. If you haven't, y
Link: https://www.djangoproject.com/weblog/2026/sep/18/proposed-change-to-dsf-voting-membership/
We're proposing a new voting membership status to help us track active members. If you've voted in a Board election in the last two years, you're active, and you count toward quorum. If you haven't, y
Django Project
Proposed change to DSF voting membership
Posted by Jeff Triplett and the DSF Board on Sept. 18, 2026
LernerPython blog, from Reuven Lerner: Python callables: Any object that defines __call__
Link: https://lernerpython.com/2026/09/17/python-callables-any-object-that-defines-call/
What is a “callable” in Python? Typically, a function or class.
But really, it’s anything with __call__ defined:
class MyClass:
def __call__(self):
return 'Hi!'
m = MyClass()
m() # 'Hi!'
Link: https://lernerpython.com/2026/09/17/python-callables-any-object-that-defines-call/
What is a “callable” in Python? Typically, a function or class.
But really, it’s anything with __call__ defined:
class MyClass:
def __call__(self):
return 'Hi!'
m = MyClass()
m() # 'Hi!'
LernerPython
Python callables: Any object that defines __call__ - LernerPython
What is a “callable” in Python? Typically, a function or class. But really, it’s anything with __call__ defined: The “callable” builtin basically returns True if it finds __call__.
LernerPython blog, from Reuven Lerner: np.nan in Pandas: Why missing values break comparisons
Link: https://lernerpython.com/2026/09/18/np-nan-in-pandas-why-missing-values-break-comparisons/
Missing data in Python Pandas? We use nan (“not a number”), which comes from NumPy.
np.nan is a float, but not a normal one:
np.nan + 10 # nan
np.nan * 12345 # nan
sum([10, 20, np.na
Link: https://lernerpython.com/2026/09/18/np-nan-in-pandas-why-missing-values-break-comparisons/
Missing data in Python Pandas? We use nan (“not a number”), which comes from NumPy.
np.nan is a float, but not a normal one:
np.nan + 10 # nan
np.nan * 12345 # nan
sum([10, 20, np.na
LernerPython
np.nan in Pandas: Why missing values break comparisons - LernerPython
Missing data in Python Pandas? We use nan (“not a number”), which comes from NumPy. np.nan is a float, but not a normal one:
Bob Belderbos: Ship Your First Python App: a Free Course on the Local Dev Workflow
Link: https://belderbos.dev/blog/free-python-foundations-course-local-dev-workflow/
I keep hearing this a lot: the Python syntax I picked up in an afternoon, but shipping a real project meant learning ten more things. There is a stark difference between writing some code in Python vs
Link: https://belderbos.dev/blog/free-python-foundations-course-local-dev-workflow/
I keep hearing this a lot: the Python syntax I picked up in an afternoon, but shipping a real project meant learning ten more things. There is a stark difference between writing some code in Python vs
belderbos.dev
Ship Your First Python App: a Free Course on the Local Dev Workflow
You know Python, but the pieces around it that make a real project still confuse you. This free course teaches the local dev workflow from scratch.
PyPy: PyPy v78.0.0 release
Link: https://www.pypy.org/posts/2026/09/pypy-v800-release.html
PyPy v8.0.0: release of python 2.7, 3.11,3.12 beta released 2026-09-19
The PyPy team is proud to release version 8.0.0 of PyPy after the previous
release on May 26, 2026. This is a major new version,
Link: https://www.pypy.org/posts/2026/09/pypy-v800-release.html
PyPy v8.0.0: release of python 2.7, 3.11,3.12 beta released 2026-09-19
The PyPy team is proud to release version 8.0.0 of PyPy after the previous
release on May 26, 2026. This is a major new version,
PyPy
PyPy v8.0.0 release
PyPy v8.0.0: release of python 2.7, 3.11, and 3.12 beta released 2026-09-19
The PyPy team is proud to release version 8.0.0 of PyPy after the previous
release on May 26, 2026. This is a major new vers
The PyPy team is proud to release version 8.0.0 of PyPy after the previous
release on May 26, 2026. This is a major new vers
LernerPython blog, from Reuven Lerner: Get Python help, one on one: my coaching sessions
Link: https://lernerpython.com/2026/09/20/get-python-help-one-on-one-my-coaching-sessions/
Some of the most satisfying work I do happens one on one. You arrive with a real problem from your real job — code that will not behave, an architecture you are unsure about, a Git situation that has
Link: https://lernerpython.com/2026/09/20/get-python-help-one-on-one-my-coaching-sessions/
Some of the most satisfying work I do happens one on one. You arrive with a real problem from your real job — code that will not behave, an architecture you are unsure about, a Git situation that has
LernerPython
Get Python help, one on one: my coaching sessions
An hour on Zoom for code review, pair programming, Git, Pandas or Claude Code. Private, recorded for you, $300, and no membership required.
LernerPython blog, from Reuven Lerner: Get Python help, one on one: my coaching sessions
Link: https://lernerpython.com/2026/09/20/python-coaching-one-on-one/
Some of the most satisfying work I do happens one on one. You arrive with a real problem from your real job — code that will not behave, an architecture you are unsure about, a Git situation that has
Link: https://lernerpython.com/2026/09/20/python-coaching-one-on-one/
Some of the most satisfying work I do happens one on one. You arrive with a real problem from your real job — code that will not behave, an architecture you are unsure about, a Git situation that has
LernerPython
Get Python help, one on one: my coaching sessions
An hour on Zoom for code review, pair programming, Git, Pandas or Claude Code. Private, recorded for you, $300, and no membership required.
Andre Roberge: Breaking a four year hiatus to talk about the export keyword (PEPs 842 and 843)
Link: https://aroberge.blogspot.com/2026/09/breaking-four-year-hiatus-to-talk-about.html
I started writing this blog in 2004 and, every year I published at least one post until 2022. So four years of not writing about Python ... and, actually, four years of (essentially) not writing any c
Link: https://aroberge.blogspot.com/2026/09/breaking-four-year-hiatus-to-talk-about.html
I started writing this blog in 2004 and, every year I published at least one post until 2022. So four years of not writing about Python ... and, actually, four years of (essentially) not writing any c
Blogspot
Breaking a four year hiatus to talk about the export keyword (PEPs 842 and 843)
I started writing this blog in 2004 and, every year I published at least one post until 2022. So four years of not writing about Python ... ...
Django Weblog: New Technical Governance Approved
Link: https://www.djangoproject.com/weblog/2026/sep/22/new-technical-governance-approved/
Both the Steering Council and DSF Board have approved DEP 19, which implements our new technical governance. Thank you to everyone who read the document and participated in the process! This was the e
Link: https://www.djangoproject.com/weblog/2026/sep/22/new-technical-governance-approved/
Both the Steering Council and DSF Board have approved DEP 19, which implements our new technical governance. Thank you to everyone who read the document and participated in the process! This was the e
Django Project
New Technical Governance Approved
Posted by Tim Schilling and the Steering Council on Sept. 22, 2026
Talk Python to Me: #564: EVE Online Departs for Python 3
Link: https://talkpython.fm/episodes/show/564/eve-online-departs-for-python-3
Every ship in EVE Online eventually undocks and leaves the station. This time, it's the whole game. EVE has run on Python 2 since it launched in 2003, all 2.4 million lines of it, on a custom Stackles
Link: https://talkpython.fm/episodes/show/564/eve-online-departs-for-python-3
Every ship in EVE Online eventually undocks and leaves the station. This time, it's the whole game. EVE has run on Python 2 since it launched in 2003, all 2.4 million lines of it, on a custom Stackles
talkpython.fm
EVE Online Departs for Python 3
Every ship in EVE Online eventually undocks and leaves the station. This time, it's the whole game. EVE has run on Python 2 since it launched in 2003, all 2.4 million lines of it, on a custom Stackless interpreter that stopped at 3.8 and was archived last…
PyCoder’s Weekly: Issue #753: frozendict, pytest Plugins, re.prefixmatch(), and More (2026-09-22)
Link: https://pycoders.com/issues/753
#753 – SEPTEMBER 22, 2026 View in Browser » Python 3.15 Preview: frozendict Preview Python 3.15’s frozendict: build immutable mappings you can hash, cache, and share across threads, and learn wh
Link: https://pycoders.com/issues/753
#753 – SEPTEMBER 22, 2026 View in Browser » Python 3.15 Preview: frozendict Preview Python 3.15’s frozendict: build immutable mappings you can hash, cache, and share across threads, and learn wh
Pycoders
PyCoder’s Weekly | Issue #753
frozendict, pytest Plugins, re.prefixmatch(), and More
Python Bytes: #497 Faster than light profiling
Link: https://pythonbytes.fm/episodes/show/497/faster-than-light-profiling
Topics covered in this episode:
Tachyon: A sampling profiler ships in Python 3.15's stdlib
Python Workers are now generally available on Cloudflare
Flet 1.0 - build cross-platform apps in Python
mari
Link: https://pythonbytes.fm/episodes/show/497/faster-than-light-profiling
Topics covered in this episode:
Tachyon: A sampling profiler ships in Python 3.15's stdlib
Python Workers are now generally available on Cloudflare
Flet 1.0 - build cross-platform apps in Python
mari
pythonbytes.fm
Faster than light profiling
News and announcements from the Python community for the week of Sep 22nd, 2026
LernerPython blog, from Reuven Lerner: NaN in Pandas: Why you need np.nan, not pd.NaN
Link: https://lernerpython.com/2026/09/20/nan-in-pandas-why-you-need-np-nan-not-pd-nan/
Missing data? NumPy calls it nan. Python Pandas displays it as NaN.
But: Pandas doesn’t define pd.nan or pd.NaN. NumPy removed np.NaN in version 2.0.
So you have to refer to np.nan from within Panda
Link: https://lernerpython.com/2026/09/20/nan-in-pandas-why-you-need-np-nan-not-pd-nan/
Missing data? NumPy calls it nan. Python Pandas displays it as NaN.
But: Pandas doesn’t define pd.nan or pd.NaN. NumPy removed np.NaN in version 2.0.
So you have to refer to np.nan from within Panda
LernerPython
NaN in Pandas: Why you need np.nan, not pd.NaN - LernerPython
Missing data? NumPy calls it nan. Python Pandas displays it as NaN. But: Pandas doesn’t define pd.nan or pd.NaN. NumPy removed np.NaN in version 2.0. So you have to refer […]
LernerPython blog, from Reuven Lerner: Pandas nullable integers: Keeping ints with Int64 and pd.NA
Link: https://lernerpython.com/2026/09/22/pandas-nullable-integers-keeping-ints-with-int64-and-pd-na/
You have a Python Pandas series with ints + NaN. You don’t want float forced on you.
Solution: Use the “extension” type Int64 (note Initial Caps) and pd.NA:
s = Series([10, pd.NA, 30], dtype='Int64')
Link: https://lernerpython.com/2026/09/22/pandas-nullable-integers-keeping-ints-with-int64-and-pd-na/
You have a Python Pandas series with ints + NaN. You don’t want float forced on you.
Solution: Use the “extension” type Int64 (note Initial Caps) and pd.NA:
s = Series([10, pd.NA, 30], dtype='Int64')
LernerPython
Pandas nullable integers: Keeping ints with Int64 and pd.NA - LernerPython
You have a Python Pandas series with ints + NaN. You don’t want float forced on you. Solution: Use the “extension” type Int64 (note Initial Caps) and pd.NA: s is: […]
Python GUIs: Dynamically Adding Rows of Widgets in PyQt6 — How to use QGridLayout to add multiple widgets per row at runtime
Link: https://www.pythonguis.com/faq/creating-dynamic-textboxes/
I have a GUI where I dynamically add a QLineEdit for each image a user selects. That part works. But now I want to extend it so that each image gets a row of three text boxes — one for the filename,
Link: https://www.pythonguis.com/faq/creating-dynamic-textboxes/
I have a GUI where I dynamically add a QLineEdit for each image a user selects. That part works. But now I want to extend it so that each image gets a row of three text boxes — one for the filename,
Python GUIs
How to Dynamically Add Rows of Widgets in PyQt6 with QGridLayout
Learn how to dynamically create rows of QLineEdit widgets in PyQt6 using QGridLayout. This tutorial shows how to add multiple text boxes per row based on user input, such as selecting files from a dialog.
Python Insider: The Python documentation is now available in Persian
Link: https://blog.python.org/2026/09/the-python-documentation-is-now-available-in-persian/
Link: https://blog.python.org/2026/09/the-python-documentation-is-now-available-in-persian/
Python Insider
The Python documentation is now available in Persian | Python Insider
The official blog of the Python core development team.
LernerPython blog, from Reuven Lerner: PyArrow dtypes in pandas: Nullable integers with pd.NA
Link: https://lernerpython.com/2026/09/23/pyarrow-dtypes-in-pandas-nullable-integers-with-pd-na/
PyArrow dtypes in Python Pandas are nullable (with pd.NA):
s = Series([10, pd.NA, 30], dtype='int64[pyarrow]')
s is:
0 101 2 30dtype: int64[pyarrow]
The dtype is int64, but allows nulls.
Link: https://lernerpython.com/2026/09/23/pyarrow-dtypes-in-pandas-nullable-integers-with-pd-na/
PyArrow dtypes in Python Pandas are nullable (with pd.NA):
s = Series([10, pd.NA, 30], dtype='int64[pyarrow]')
s is:
0 101 2 30dtype: int64[pyarrow]
The dtype is int64, but allows nulls.
LernerPython
PyArrow dtypes in pandas: Nullable integers with pd.NA - LernerPython
PyArrow dtypes in Python Pandas are nullable (with pd.NA): s is: 0 101 <NA>2 30dtype: int64[pyarrow] The dtype is int64, but allows nulls. (Use np.nan? It’s turned into pd.NA.)