mizzsugar’s blog

日々感じていることや学んだことを書きます。エンジニアリング以外にも書くかもしれません。

Python

【Python】【TypeHint】ImmutableなオブジェクトにProtocolを使った時にmypyがエラーとなった

普段mypyを使って開発をしているのですが、Immutableなオブジェクトにtyping.Protocolを使ったらmypyがエラーを出して困ったので備忘録として記事を書きます。 Protocolとは Wikipediaには「複数の者が対象となる事項を確実に実行するための手順について定め…

PythonとTypeScriptで学ぶGenerics初めの一歩

Twitterで Genericsの話が浮上しているのに影響されて、Generics使うと何が良いのか落とし込みました。 なお、この2つの言語にしたのは、普段自分が使うからです。 Genericsとは 「総称型」とか「汎用型」と言われます。 型定義にGenericsを使うことで文字列…

そのif文、Enumにしてみませんか。

これは、Python Advent Calendar 17日目の記事です。 Python Advent Calendar 2019 - Qiita この記事では、私が好きな標準モジュールのうちの一つenumモジュールの基本的な使い方と enumモジュールを使ってリファクタリングする例を紹介します。 enumモジュ…

DjangoORMでウィンドウ関数を使おう

この記事はDjango Advent Calendar 2019の記事です。 Django Advent Calendar 2019 - Qiita そして私の初のアドベントカレンダーです! 最近仕事でBigQueryで分析関数を使うことが多いので、 そのなかでもウィンドウ関数をDjangoのORMでも使えないかなと思い…

djangoでタイムゾーンとうまく付き合う

Djangogirls Tutorialで今まで何気なく書いていた、Postモデルのpublished_dateとcreated_dateで使うdjango.utils.timezone.now。これについて疑問に思ったことがあったので調べました。 対象 (レベル感)Djangoチュートリアルくらいの複雑さのものを自力で作…

Stapy50回記念で登壇しました

10/9(水)に行われた「みんなのPython勉強会」で登壇した振り返りをします。 startpython.connpass.com 「みんなのPython勉強会」とは、Python初学者からベテランまでいろんな層を対象にしてWebから科学までいろんな題材を扱う「みんな」のための勉強会です。…

ざっくりPyConJP2019のSprint Dayの感想とDjangogirlsTutorial翻訳の感想

PyConJP本体の前にSprintに参加しました。 Sprintは、Pythonの何かしらの開発をする短期集中型イベントです。Sprint Dayに開発したいテーマを提案する人と、それをお手伝いする人で構成されています。 https://pycon.jp/2019/sprint 機械学習・Web・Core Pyt…

ざっくりPyConJP2019の2日目感想

ざっくり2日目の感想を書き残します。 Pythonで始めてみよう関数型プログラミング Twitter twitter.com スライド Pythonで始めてみよう関数型プログラミング - Speaker Deck YouTube www.youtube.com 安全でわかりやすいコードを書くためのプログラミングの…

【Python】Poetryでパッケージ管理 on Docker Container

DockerでPython開発する時、パッケージ管理はpip install -r requirement.txtで行なっていましたが、 requirement.txtのみではパッケージ同士の依存関係まで管理できないことが問題でした。 そこで、Poetryを使ってみることにしました。 github.com 使用技術…

【Django】独自ヘッダーをつけてリクエストを送る

地味に苦労したやつです。 利用技術 - python 3.7.3 - Django 2.2.1 ヘッダーに関して、Djangoの公式ドキュメントはなんて言っているでしょうか。 HttpRequest.META 利用できるすべての HTTP ヘッダーが格納されたディクショナリです。 -- Django公式ドキュ…

【Django】複数のファイルをまとめてテストするとTransactionErrorやIntegurityErrorになってしまう事件について

仕事でテスト周りについて色々あったので備忘録として 例えば、こういうViewとModelがあったとして・・・ (まあ、こんなこと普通しないとは思いつつ簡単な例を出したく) models.py from typing import Dict from django.db import models from django.db i…

【Django】複合ユニーク制約を実装する

Djangoで複合主キーっぽいことをやりたくて。 使用技術 * Django 2.2.1 * Python 3.7.3 Djangoでは単一主キーのみをサポートしているため複合主キーはできないのですが 複合ユニーク制約ならできるようです。 Django2.2にて、MetaオプションにUniqueConstrai…

【Python】GoogleAPIを利用したメソッドのテストでモックを使う

外部APIを利用したメソッドの単体テスト書きたいなあ・・・ 単体テストで何回も外部APIに接続するのはお行儀悪いって聞くけどどう書けば良いのだろう?と思い。 簡単な機能のテストを書きました。 ちょっと変更しましたが、Google Calendar APIのquick start…

【Django】フォームのカスタムバリデーションをテストする

Djangoのフォームで独自のバリデーションを実装した際のテスト方法を紹介します。 間違いがありましたら、ご指摘お願いします(>人<) 今回使ったバージョン * Python 3.7.1 * Django 2.1.7 今回実装するフォームはこちら forms.py import re from django impo…

DjangoCongress2019に参加しました

初DjangoConでした! とても刺激になったので拝聴したトークを自分なりにアウトプットしようと思います。 なお、DjangoCongressJPのHPは以下になります。(TimeTableも載っています) djangocongress.jp 私が拝聴したのは下記のトークです! Djangoで静的フ…

【Django】JsonResponseでのテストの仕方(GET/POST)

久々の投稿となってしまいました(^^; 今回使用したバージョン * Python 3.7.1 * Django 2.1.7 今回サンプルとしてテストしたいメソッドはこちらのView関数 views.py import json from django.views.decorators.http import require_POST, require_GET from d…

【非公式翻訳】ForeignKey in Django公式ドキュメント

Django公式ドキュメントのForeignKeyの日本語訳です。 docs.djangoproject.com 間違いがありましたら、コメント欄にてご指摘お願いします! ForeignKey class ForeignKey(to, on_delete, **options) [ソース] 多対一のリレーションです。2つの位置引数を必要…

【非公式翻訳】Google API Client Libraries > Python

公式の日本語版がなかったので、備忘録的に・・・ ※2017/02/17が最終更新の記事となります。 ※表現するのが難しかったので図中の語句の訳は書きませんでした。 ※わかりづらい箇所や間違えている箇所がありましたら、コメント欄にてご指摘お願いします。 deve…