Jamie Chang
@changs.co.uk
๐ค 19
๐ฅ 111
๐ 18
https://blog.changs.co.uk
reposted by
Jamie Chang
Thomas Wouters
7 days ago
Let me post a *non*-subskeet for once... We made a thing!
discuss.python.org/t/pep-810-ex...
#Python
#PEP
loading . . .
PEP 810: Explicit lazy imports
๐ Hi everyone, We are very exited to share with you PEP 810: Explicit lazy imports: Weโre proposing an opt-in lazy import syntax that defers module loading until first use, aiming for faster startup,...
https://discuss.python.org/t/pep-810-explicit-lazy-imports/104131
6
53
31
reposted by
Jamie Chang
Real Python
24 days ago
Python 3.14: 3 Smaller Features
#python
loading . . .
Python 3.14: 3 Smaller Features #python
With a jam packed 3.14 release around the corner, it's also important to look at the smaller features coming to Python
https://blog.changs.co.uk/python-314-3-smaller-features.html
0
4
1
New blog post about measuring the speed and memory performance on different asyncio baackpressure solutions.
blog.changs.co.uk/asyncio-back...
#python
#asyncio
loading . . .
Asyncio backpressure - follow up
Previously when discussing asyncio backpressure I've made some claims that were not necessarily complete. I said: It works well for 100s of urls...
https://blog.changs.co.uk/asyncio-backpressure-follow-up.html
25 days ago
0
0
0
I'm excited to see UUID V7 being supported more universally. For databases, UUID 7 combines the flexibility and security of UUID 4 with time based ordering making it a great choice for IDs
add a skeleton here at some point
29 days ago
0
6
2
Python 3.14: 3 smaller features
share.google/j0VSOzZH2lck...
loading . . .
Python 3.14: 3 smaller features
Python 3.14 is just around the corner and it's jampacked with huge updates: Free threading and multiple interpreters? Template strings But as with...
https://share.google/j0VSOzZH2lckMN9Rn
3 months ago
0
0
0
reposted by
Jamie Chang
Simon Willison
4 months ago
If you use "AI agents" (LLMs calling tools in a loop) you need to be aware of the Lethal Trifecta Combine access to private data, exposure to untrusted content and the ability to externally communicate and an attacker can trick the system into stealing your data
simonwillison.net/2025/Jun/16/...
loading . . .
The lethal trifecta for AI agents: private data, untrusted content, and external communication
If you are a user of LLM systems that use tools (you can call them โAI agentsโ if you like) it is critically important that you understand the risk of โฆ
https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/
7
296
93
#MCP
is here to stay, so I tried implementing something slightly more useful than a weather tool. See how you can use custom MCP servers to help with your github workflow:
blog.changs.co.uk/first-look-a...
loading . . .
First Look at MCP
Previously I've played with tool calling in Langchain and Python sandboxes. But recently MCP (Model Context Protocol) is front and center. So I...
https://blog.changs.co.uk/first-look-at-mcp.html
4 months ago
0
0
0
Quick look at the state of free-threading in
#python
3.14 beta
blog.changs.co.uk/python-314-s...
4 months ago
0
0
0
Python3.14 beta 1 is out today, I go over how to use and abuse the new t-strings:
blog.changs.co.uk/t-strings-th...
loading . . .
t-strings: the good and the ugly
This one's hot off the press as the first beta for Python 3.14 (aka. ฯ-thon) has hit. We're looking at a chunky release with a lot of new...
https://blog.changs.co.uk/t-strings-the-good-and-the-ugly.html
5 months ago
0
0
0
reposted by
Jamie Chang
Brett Cannon
6 months ago
t-strings are coming!
https://peps.python.org/pep-0750/
https://discuss.python.org/t/pep750-template-strings-new-updates/71594/130
loading . . .
PEP 750 โ Template Strings | peps.python.org
This PEP introduces template strings for custom string processing.
https://peps.python.org/pep-0750/
0
13
14
reposted by
Jamie Chang
Real Python
7 months ago
My SQLAlchemy Cookbook
#python
loading . . .
My SQLAlchemy Cookbook #python
The post contains an embedded JupyterLite notebook containing a cookbook for SQLAlchemy. It focuses on the patterns you use in everyday ORM coding.
https://blog.changs.co.uk/my-sqlalchemy-cookbook.html
0
3
1
I've been unknowingly building DSLs using operators in
#Python
. Here I walkthough how you might do the same!
blog.changs.co.uk/building-a-d...
loading . . .
Building a DSL with Python Operators
I've been a little obsessed with operator overloading lately. First using |= in sqlalchemy-builder and then using | and @ in better-functools. I...
https://blog.changs.co.uk/building-a-dsl-with-python-operators.html
7 months ago
0
0
0
reposted by
Jamie Chang
Real Python
7 months ago
Customising Pattern Matching Behaviour
#python
loading . . .
Customising Pattern Matching Behaviour #python
Jamie has been doing the [Advent of Code](https://adventofcode.com/) and two techniques that come up a lot in Python are iteration and pattern matching. This post talks about how they don't work well together and what you can do about it.
https://blog.changs.co.uk/customising-pattern-matching-behaviour.html
0
1
1
Check out my blog post on functional programming in Python, where I talk a bit more about my new
#Python
package
blog.changs.co.uk/better-funct...
loading . . .
better-functools: Python functional fun
I recently put some effort into creating better-functools. It's a package that adds some tooling for functional programming in Python. And allows...
https://blog.changs.co.uk/better-functools-python-functional-fun.html
7 months ago
0
1
0
Been a little obsessed with
#ocaml
lately, so I've tried to bring some of
#functional
ergonomics into
#Python
. Checkout my new package better-functools
pypi.org/project/bett...
7 months ago
0
0
0
TIL: though functools.partial can't be expressed using
#Python
types, both pyright and mypy support it fully.
pyright-play.net?pythonVersio...
loading . . .
Pyright Playground
https://pyright-play.net/?pythonVersion=3.13&code=GYJw9gtgBMCuB2BjALmMAbAzlAlhADmCMlPgIbE5noBQNAJgKbBRn30AUZAXLvMgBooAI145%2BASigBaAHx9k3GlBVQQjZLBDxWUANQi6begGYoAXlIVkVdF3ZCTEo%2BxMcARAAtG6dGHdSAMRQAAoAniA4AOaeJJieYLDo9GpkOJiMrDqMIOAgNEA
8 months ago
0
1
0
New blog post! Do you use
#sqlalchemy
? Have you run into this issue?
#Python
blog.changs.co.uk/sqlalchemy-f...
loading . . .
Sqlalchemy Footgun: Discarding the statement
This one has frustrated me for a while. It starts off with a REST API route. For example in fastAPI @app.get(
https://blog.changs.co.uk/sqlalchemy-footgun-discarding-the-statement.html
8 months ago
0
1
0
reposted by
Jamie Chang
Charlie Marsh
8 months ago
Weโre building a new static type checker for Python, from scratch, in Rust. From a technical perspective, itโs probably our most ambitious project yet. Weโre about 800 PRs deep!
35
728
138
I love this almost completely useless graphql page where it shows you all the cool tools but doesn't give you any links to them.
graphql.org/community/to...
loading . . .
Tools and Libraries | GraphQL
A collection of tools and libraries for GraphQL
https://graphql.org/community/tools-and-libraries/?tags=python
9 months ago
1
1
0
reposted by
Jamie Chang
Simon Willison
9 months ago
If you have a browser that supports WebGPU (like Google Chrome) you try out the DeepSeek-R1 model based on Qwen2.5-Math-1.5B directly in your browser! It's a 1.28GB page load:
huggingface.co/spaces/webml...
2
25
8
How much are folks using
#Python
structural pattern matching? Here's how I use it:
blog.changs.co.uk/jamies-patte...
loading . . .
Jamie's Pattern Matching Cookbook
Structural pattern matching is probably the coolest new syntax introduced to Python. Added in 3.10, it's been a few years now and more people are...
https://blog.changs.co.uk/jamies-pattern-matching-cookbook.html
9 months ago
0
2
2
reposted by
Jamie Chang
Savannah Ostrowski
9 months ago
๐๐๐
add a skeleton here at some point
1
10
1
A quick follow up to the last post of 2024, the first post of 2025. Here I use the not yet released subinterpreters feature in Python 3.13 to speed up my code.
blog.changs.co.uk/how-good-are...
9 months ago
0
0
0
Last post of 2024! I look at the challenges around free threaded Python.
blog.changs.co.uk/how-free-are...
#Python
#aoc
loading . . .
How free are threads in Python now?
Free-threaded Python (PEP-703) was released in October 2024. It enables true multi-threaded execution without the restriction of the GIL. I...
https://blog.changs.co.uk/how-free-are-threads-in-python-now.html
9 months ago
0
1
0
reposted by
Jamie Chang
Simon Willison
10 months ago
Found a fun new test prompt
chatgpt.com/share/675223...
4
42
3
Can you safely execute LLM generated
#Python
code?
blog.changs.co.uk/python-in-py...
#Python
#langchain
loading . . .
Python-in-Python Sandboxing LLM Generated Code
I've been experimenting with Langchain for GPT based queries. One problem we often encounter with GPT is hallucinations. This makes certain...
https://blog.changs.co.uk/python-in-python-sandboxing-llm-generated-code.html
10 months ago
0
0
0
I recently wrote about SQLAlchemy
blog.changs.co.uk/my-sqlalchem...
#python
loading . . .
My SQLAlchemy Cookbook
I've worked with SQLAlchemy for a while now, and in my opinion it's the best ORM in Python. It's feature rich with strong support for all major...
https://blog.changs.co.uk/my-sqlalchemy-cookbook.html
11 months ago
0
0
0
you reached the end!!
feeds!
log in