A well-crafted README is essential for any Python project, yet it's too often overlooked in the professional world—despite being crucial for smooth collaboration. In environments where developers frequently change, a clear and structured README ensures seamless onboarding and project continuity. This guide walks you through best practices to make your README informative, accessible, and contribution-friendly, so your code remains useful to both current and future developers.
read moreOther articles
- Asyncio Event loop in separate thread- If you ever wanted to use synchronous and asynchronous code in the same program you should definitively have a look at this article. It will also gives you a better understand of the magic behind read more- asyncioand the famous Event Loop.
- Resource management and generators in python- If, like me, you were not aware that python generators (async and normal) has a read more- closefunction with a cleanup mechanism, I strongly suggest you to read this article. You'll never forget to close your generators properly anymore.
- Processing large JSON files in Python without running out of memory- If you ever struggled reading large JSON files using Python this article highlight several strategies to overcome memory issues. If personally think that JSON Lines is a very underestimated solution for streaming (read/write) JSON. read more
- 6 cool things you can do with the functools module- The Python read more- functoolsmodule from the standard library has many gems that I'm using quite regularly. Discover 6 of them with examples and use cases.
- Renaming files using Python script- Lately, I wanted to rename lot of files and directories on my personal server, in particular media like TV Shows episodes. As there was lot of files I decided to look for an UNIX command to ease my burden. Unfortunately, I could not find such command on my server (a Synology NAS) and was unable to figure out how to install additional packages on it so I decided to build my own read more- renamecommand using a Python script.
- On the importance of naming in programming- I heard about the importance of naming in programming a couple years ago while reading Uncle Bob's Clean Code book. But I found this article to provide interesting examples as well as some nice tips on how to help you actually naming things. It also emphasis on the fact that names heavily depends on context and can actually highlight "bad code" in some ways. read more
- Execute a function until a specific value is returned- I had barely no idea that the read more- iterfunction could do that in Python. You can call it with two arguments, a function and a stop value, and have your function being executed until the stop value is returned. It can have some interesting usages, as shown in the article. I would not use it all over the place because it looks like a bit dark magic but still a nice tool to keep in mind.
- 8 versions of UUID and when to use them- I'm used to UUID v4 to generates random globally unique IDs whenever I need it in places where I can not benefit from a database with an auto numbering column. Actually, this is just the tree hiding the forest of UUIDs. This great article list the 8 versions of UUID and explain what they are about and when to use them. read more
- 10 Python programming optimisation techniques.- In this article, the author provide some interesting techniques for optimising Python code, in particular, memory consumption for cases where memory is critical or resources are limited. I would personally not apply all those techniques by default and reserve them for specific use cases, preferring readability in a first place. Still, those techniques are interesting to have in mind. read more
- Integrating Problem Details RFC with FastAPI- During my past development projects, I built a lot of HTTP APIs using various langages (TypeScript, JavaScript, Python) and frameworks (fastify, FastAPI, flask, express). One thing I've noticed is that each of those frameworks have their own way of shaping HTTP error responses. This is actually not a big deal considering that most clients (i.e: HTTP clients) do not really rely on strict structure for such errors. read more
- Testing Python code integration with an Azure Eventhub- On one of my project I needed to create a simple API allowing clients to publish some messages into an Azure EventHub. Because authentication is ensured by a JWT we could not rely on our clients to directly publish messages to the Eventhub (and by the way I prefer abstracting this away through a HTTP API). read more
- Debugger doesn't stop at breakpoints with pytest if pytest-cov is used- Recently, while trying to debug some of my read more- pytesttests using VSCode, I discovered that my breakpoints were completely ignored and the tests never stopped. After nearly breaking my keyboard in frustration, I stumbled upon this GitHub issue.
- One way to fix Python circular imports- I've already encountered issues regarding circular imports, most of the time it was related to typings only (two modules referencing types from each others) and is easily resolved using a read more- if TYPE_CHECKING:block. For other cases I try my best to shape my modules in a way that it does not require circular imports. In the following article I discovered another way to overcome circular imports that I could not have think about simply by defering imported names lookup.