AWS lambda で python2なものとpython3なものが混じっていて、同一リポジトリ管理されていてlinterとかディレクトリごとに分けるのダルい、まとめてやりたい。
ということで、一念発起してpython3への移行を開始しました。
超雑に全部python3へ移行させて、実行エラーから修正するという、あんまりよろしくないやり方で進めました。
そんな中、よくあるエラーがあったのでまとめます。
urllib
urllib.request とか urllib.parse とかに分かれた。手動で適当になおしていると漏れがある。 urllibでgrepしましょう。
iterator
python2ではlistが帰ってきていたものの多くがiterableなものを返すようになったので、必要に応じてlistにする必要があります。 map, filter, reduce など、reduceはitertoolsモジュールに入ったのでそこも。 これもgrepして探しましょう。
str とbytes
厳密に区別されるようになったので、どっちを受け付けるのか、どっちを返すのかを確認しましょう。 これはわりと頑張るしかない気がします。
終わりに
python3へ移行して小学生に笑われないようにしていきまっしょい