Ben Chuanlong Du's Blog

And let it direct your passion with reason.

Hands on dict in Python

Tips and Traps

  1. Starting from Python 3.7, dict preserves insertion order (i.e., dict is ordered). There is no need to use OrderedDict any more in Python 3.7+. However, set in Python is implemented as an unordered hashset and thus is neither ordered nor sorted. A trick to dedup an iterable values

Install Python in macOS

There are a few ways to install Python in Mac.

  1. Install system-wide via the official Python installation package.

  2. Install locally using Homebrew (recommended).

You should avoid installing multiple versions of Python in your system. It usually brings more troubles than conveniences. Python virtual environemnts ( via uv ) and Docker containers are …

Working with Spreadsheet in Python

It is suggested that you avoid using Excel files (or other spreadsheet tools) for storing data. Parquet file is currently the best format for storing table-like data. If you do want to interact and manipulate your data using Excel (or other spreadsheet tools), dump your data into CSV files and …

GitHub API

Shell Command - gh

gh is GitHub's official command-line tool. Persoanlly, I'm not a fan of gh mainly because I'm not a fan of writing complicated (>10 lines) shell scripts.

Python Bindings - ghapi

  1. ghapi provides 100% always-updated coverage of the entire GitHub REST API by automatically converting the OpenAPI spec to a Pythonic API. ghapi is always up to date with the latest changes to GitHub APIs.

Hands on the Python Library pexpect

Tips and Traps

  1. The command-line tool of some (e.g., network) applications might be slow to authenticate. If you use pexect to automate such a command-line tool, it is best to wait for sometime after sending password using child.sendline(passwd). If the authentication has ouput on both success and failure, a smart way is to wait for the success or failure message to come out.