Python

PyConJP2019に当日スタッフとして参加しました

2018年9月から本格的に業務でPythonを使い始めて1年が経ちました。 満を持して!初PyConJPに参加してきました。 しかも当日スタッフとして。 自分の中ではかなりのチャレンジをしました…! 9/15(前日) 事前準備から参加しました。何もないだだっ広い大展示ホ…

Qiitaに初投稿した

qiita.com 温めてたブログ用ネタのうち、 そこそこのサイズ感で、Qiitaに出しても一応恥ずかしくなさそうなやつを選んだつもり…つもり。 バーンと出すのが恥ずかしい小さいやつはブログ、そうじゃないやつはQiitaに流していこうと思いました。

mimetypes.guess_type()の挙動はOS依存だよ

なんだこれゎ。 mimetypes.guess_type() でどのmimetypeが返ってくるかは動作している環境のOSに依存する様子。 そのため、たとえば hogehoge.csv というファイルを引数に与えたとき、 Windowsでは application/vnd.ms-excel が返り、Linuxでは text/csv が…

Djangoのテストでsettingsの値をモックする

定期的に忘れるのでメモ settingsの値をモックしたいときは、 django.test.utils.override_settings か TestCase.settings を使う。 override_settingsを使う場合 参考: https://gist.github.com/blaix/2294982#gistcomment-1318400 に書いてある通り。 fro…

moto+boto3のテストでOSError、NoCredentialErrorが出る場合

現象 moto == 1.3.7, boto3 == 1.9.130 環境でテスト実行時に発生。 urllib3.exceptions.NewConnectionError: <botocore.awsrequest.AWSHTTPConnection object at xxxxxxxxxxxxxxxx>: Failed to establish a new connection: [WinError 10051] 到達できないネットワークでソケット操作を実行しようとしました。 テストのときにbo</botocore.awsrequest.awshttpconnection>…

Windows環境でpipenvコマンドが認識されないとき

pip install pipenv したのに C:\Users\foo\var\ >pipenv 'pipenv' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 になるときの対処法。 stackoverflow.com stackoverflowに対処法があった。 …

serverless-python-requirementsで変名Pipfileを読むことはできない

タイトルの通り。 serverless-python-requirements で無理をしたかったができなかった話。 serverless-python-requirementsはpipだけでなくpipenvにも対応している。 custom: pythonRequirements: usePipenv: true でpipenvのPipfileを読むことが可能になる…

Python+Django+MySQL環境でMySQLdbがModuleNotFoundErrorになったときの対処

こんなエラーログ File "/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 15, in <module> import MySQLdb as Database ModuleNotFoundError: No module named 'MySQLdb' 対処方法 使っているsettingファイルに、以下のコードブロ</module>…

Django Rest FrameworkのSerializerでバリデーションをして、ついでにkey名を変更したいとき

Modelから取得したレコードをシリアライズするSerializerでは、入出力するkey(カラム)名が異なる場合、sourceオプションで入力元のカラム名を指定すればよい。 しかし、dictを整形したりvalidationしたいがためだけにSerializerを使う場合、これが逆にする…

Djangoで空文字・Noneを許容する文字列Validateを作る

やりたいこと DjangoのSerializerで、 空文字とNoneと、ついでに未入力も許容する文字列バリデータをつくる 結論 CharFieldを定義するときに、 requiredだけでなく allow_blank, allow_null も設定しよう(でも罠がある) class TestSerializer(serializers.…