Pythonのpdbで変数名がコマンド名と被った時の対処

pdbのコマンド名と同名の変数、たとえばuやlをコマンドラインで入力しても、変数の中身が確認できない。 pdbのコマンドと認識されるためである。 その場合、!を変数名の前につけるか、p 変数名とすれば参照できるようになる。 たとえば、以下のようなユーザーIDを元にユーザーを取得するコードがあったとする。 デバッグしたい位置に`br ...

FlaskをCloud Runで動かす

Flaskのコードを実行時のみの課金、そして自動でスケールする環境へ楽にデプロイしたかったので、Cloud Runを使うことにした。 公式サイトにも手順はのっているのだけど、ローカルで動作確認をして、Dockerイメージをマルチステージビルドで作成し、アジアのデータセンター(asia.gc ...

Python3.7でtuple、namedtuple、list、dict、自作オブジェクトのforループ

ループさせる方法が型によって微妙に違うので、tuple、namedtuple、list、dict、自作オブジェクトのループの仕方をまとめた。 tuple tupleの値をループする そのままfor 変数 in タプルとすればループできる。 tpl = ('hoge', 'fuga', 'piyo') for t in tpl: ...

Python3.7でenumを定義し、文字列からEnumを生成する、Enumの値から文字列を取得する、一覧を取得する、振る舞いを持たせる

HTTPリクエストで送られてくる文字列の取りうる値が決まっている。そういう場合に、サーバー側で取りうる値が限定されていることを示すために、文字列からEnum(列挙型)に変換したい。 また、レスポンスはEnumから文字列にして値を返したい。 そこで、PythonにおいてEnumをどう扱えばいいか見ていく。 なお、確認したPythonのバージョンはPython ...

Cloud FirestoreからPython3.7でdocument一覧、subcollectionのdocument一覧を取得する

Cloud FirestoreをPython3.7からgoogle-cloud-firestoreを使ってデータを取得する。 以下のデータ構造から一覧を取得する方法をまとめる。 rooms [collection] name messages [subcollection] from ...