shot-scraper: automated screenshots for documentation, built on Playwright shot-scraper is a new tool that I’ve built to help automate the process of keeping screenshots up-to-date in my documentation. It also doubles as a scraping tool—hence the name—which I … Simon Willison’s Weblog · simonwillison.net An interesting way to build automatically annotaatd docs with arrows pointing to elements on a webpage.
Posts tagged: python
All posts with the tag "python"
311 posts
latest post 2026-07-10
Publishing rhythm
Create Models with a Many-to-Many Link - SQLModel SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness. sqlmodel.tiangolo.com Creating many to many relationships with sqlmodel requires a LinkTable Model. The link model will keep track of the linked id’s between each of the models.
External Link stackoverflow.com I went down the route of leveraging the extention in htmx, but later realized that this completely breaks browsers/users who do not wish to use javascript. While most of the web would feel quite broken with javascript disabled, I don’t want to contribute to that without good reason. Taking a second look into this issue, rather than using, and using as_form to get form data into a model keeps the nice DX fo everything being a pydantic model, but the site still works without js. with js htmx kicks in, you get a spa like experience by loading partials onto the page, and without, you just get a full page reload. the implementation # copied from https://stackoverflow.com/questions/60127234/how-to-use-a-pydantic-model-with-form-data-in-fastapi And the usage looks like
How to enable debug mode in pywebview.
`ValueError: Constraint must have a name` in alembic 1.10.0 · Issue #1195 · sqlalchemy/alembic Describe the bug ValueError: Constraint must have a name in alembic 1.10.0. Expected behavior Migration succeeds. To Reproduce Please try to provide a Minimal, Complete, and Verifiable example, wit... GitHub · github.com After a nasty time with alembic upgrades, thoughts is about to get a new users table. This may have came from incorrectly setting up alembic for sqlite from the start, but I was able to fix the issue with this GitHub issue. The change I needed to make to get my migration to run.
![[None]] Since using alembic I have been just running out a new revision checking its content and deleting it if its empty, today I learned there is an command to check for operations that need to be created.
API — Jinja Documentation (3.1.x) jinja.palletsprojects.com 🤯 jinja comes with a loader to templates! Defihnitely need to look at this for, as is till one of the biggest hot spots.
I’ve definitely been missing out on setting up a proper jinja loader on a few projects, I need to lean on this a bit more. The path can be relative or absolute. Relative paths are relative to the current working directory.
Read a Range of Data - LIMIT and OFFSET - SQLModel SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness. sqlmodel.tiangolo.com Implement paging in sqlmodel with where, limit, and offset.
DuckDB vs. MotherDuck: When to Move to the Cloud | Kestra DuckDB is fast and free. MotherDuck adds cloud storage, collaboration, and scale. Here kestra.io duckdb is a new in process database that has been making its rounds in analytics for its high performance in those applications. Mother duck is a centeralized server that brings manages storage, data sharing and an ide to duckdb.
Textual - Center things Textual is a TUI framework for Python, inspired by modern web development. Textual Documentation · textual.textualize.io How to center things in textual. Textual has a very unique way of styling text user interfaces for the terminal using css. If you know css it feels natural. @willmcgugan, has put together a great article on how to center things in textual here the final result
Client Challenge pypi.org Super useful way to show a tree view of an s3 bucket’s structure!
External Link stackoverflow.com How to sort results from a sqlalchemy based orm. I needed this to enable paging on my thoughts api.
GitHub - kndndrj/nvim-dbee: Interactive database client for neovim Interactive database client for neovim. Contribute to kndndrj/nvim-dbee development by creating an account on GitHub. GitHub · github.com A neovim database client that I need to check out.
Textual - Using Rich Inspect to interrogate Python objects Textual is a TUI framework for Python, inspired by modern web development. Textual Documentation · textual.textualize.io I love rich inspect. It’s one of my most often used features of rich. It gives you a great human readable insight into python object instances. I have a pyflyby entry for it so that I can just run it ang get automatic imports. To not clash with the standard library inspect, which is quite useful on it’s own, I have aliased it to.
External Link stackoverflow.com In flask apps I often get a 404 for routes with a trailing slash. This Stack Overflow post shows how to configure flask to allow trailing slashes on some or all routes.
External Link htmx.org json-enc extension converts url encoded form values into json encoded data, this is very useful for fastapi to have the same interface for htmx and curl type of interfaces.
Header Parameters - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com Getting request headers in fastapi has a pretty nice stetup, it allows you to get headers values as function arguments, I was able to use headers to detect if a request was made from htmx or not. If the request was made from htmx, then we want a html format, otherwise I’m probably hitting the api programatically from something like or
GitHub - 1j01/textual-paint::art: MS Paint in your terminal.:art: MS Paint in your terminal. Contribute to 1j01/textual-paint development by creating an account on GitHub. GitHub · github.com 1j01 created a complete working clone of ms paint in the terminal using the textual framework. It’s incredible.
sqlite-utils now supports plugins sqlite-utils 3.34 is out with a major new feature: support for plugins. sqlite-utils is my combination Python library and command-line tool for manipulating SQLite databases. It recently celebrated... Simon Willison’s Weblog · simonwillison.net As the title states sqlite-utils now supports plugins. I dug in just a bit and Simon implemented this completely with entrypoints, no framework or library at all.