TIL (Today I Learned)

The TIL series of articles contains very short articles documenting something I learned “today”.

Today I learned that you can dynamically change the type of an object in Python.

Today I learned about a Python Easter Egg hidden in the hash of two special float values.

Today I learned you can embed images in your module docstrings and they'll be rendered in the tooltips inside your IDE.

Today I learned how to set different thousands separators using string formatting.

Today I learned that the module builtins grows dynamically in the REPL.

Today I learned you can use uv to install CLI tools with extra dependencies.

Today I learned how to use uv to escape uv and go back to using venv and pip for a given project.

Today I learned how to detect collisions between circles and rectangles with 100% accuracy.

Today I learned how to create co-authored commits on GitHub.

Today I learned how to quickly switch back and forth between two different git branches.

Today I learned how to publish a Python package to PyPI with uv.

Today I learned that I can use the percent sign to run commands from inside Jupyter notebooks.

Today I learned that Python has nested Easter eggs in the standard library.

Today I learned that Polars allows non-strict vertical concatenation of dataframes with the parameter how="vertical".

Today I learned how to create standalone Python scripts with uv.

Today I learned how I can use the method 'groupdict' from a regex match to get a dictionary with all named groups.

Today I learned that if you suppress the exception KeyboardInterrupt then your program is still interrupted but it doesn't display a traceback.

Today I learned that the hash of an integer is the integer itself, except for -1. The hash of -1 is -2.

Today I learned how to allow my custom objects to be unpacked into keyword arguments like '**kwargs'.

Today I learned how to use the Polars function pl.date_range to create date sequences with calendar-aware intervals between dates.