Category:

標準モジュールunittestでpythonのテストを書く

Pythonで本格的?にテストを書き始めました。標準ライブラリの unittest が普通にまあまあ使いやすいので、使い方をまとめていきます。 基本的な書き方 基本は以下の構造になります。 import unittest class TestSimple(unittest.TestCase): @classmethod def setUpClass(cls): """各クラスが実行される直前に一度だけ呼び出される""" print('setUpClass called.') @classmethod def tearDownClass(cls): """各クラスが実行された直後に一度だけ呼び出される""" print('tearDownCla Continue Reading

Posted On :
Category:

Pythonでasyncioを使った非同期処理

Pythonで非同期処理を実装する場合、 asyncio モジュールを使うのが一般的だと思いますが、並行処理をさせたり、ネストしたりするケースは多少気をつけることもあったので、メモ的にやり方を残しておきます。 シーケンシャルな非同期処理 まずはシンプルなケースとして、3サイト(qiita, google, yahoo)の合計6ページについて、pyppeteer(chromiumを起動して非同期スクレイピングするライブラリ)を使って、HTMLを取得するケースを書いてみました。 from pyppeteer.browser import Browser from pyppeteer.page import Page from pyppeteer.launcher import launch from typing import List import datetime from asyncio Continue Reading

Posted On :
Category:

投資について調べてみた

最近「中田敦彦のYouTube大学」を見ていて、ちゃんと投資をしないとなーという気持ちになったものの、投資に関しては全くの素人だし書籍を読み込むほどの情熱も持てないので、YouTubeを見たり証券会社のWebサイトを見たりしながら、投資関連の知識をメモしていこうと思います。 前提知識 所得税 (会社員の場合) 所得税 = 課税所得 * 所得税率 そもそも「所得」とは収入からその収入を得るために使った経費を抜いた金額というような意味 課税所得は、課税対象になる所得のこと(課税対象は給与収入ではない) 所得税率は、累進課税。課税所得が多いほど税率が高くなる。最高で45% 課税所得 = 給与収入 – 給与所得控除 – 所得控除 給与収入は会社から支払われる給与・賞与の合計金額 給与所得控除は、給与収入から計算さる。収入が多いほど控除額も大きくなるが上限195万円。給与所得控除は「みなし経費」とも Continue Reading

Posted On :
Category:

GCR(Google Container Registry)を使ってみる

Google Container Registry(GCR)はGCPが提供するプライベートなDocker Registryです。Docker Hubと同じようにDockerイメージのアップロード/ダウンロードができ、かつ、外部から利用されることもありません。 今回は、自作したDockerイメージをサービスアカウントを通じてCLIでGCRにpushしてpullするところまでを検証してみようと思います。基本的には公式のクイックスタートをベースに検証を進めます。 GCRの特徴 以下の様なことができるみたいです。 Docker Registoryとして、Dockerイメージをpushしたりpullしたりできる アクセス制御ができる CI/CDシステムと連動できる 今回はこれのうち1.と2.あたりを軽く検証してみます。 事前準備 GCP側の設定 こちらからGCPのプロジェクトを作成/選択します 今回 Continue Reading

Posted On :
Category:

AirflowでDockerOperatorを動かす

Airflowは、ワークフローをプログラムで作成、スケジュール、および監視するためのプラットフォームです。仕事でAirflowを採用することにしたので、今回はAirflowをローカルPC上で動かして、DockerOperatorで任意のDockerコンテナを実行しつつ、必要な要素(DAG実行時のパラメータ指定とか環境変数渡しなど)を試していきたいと思います。 Airflowについて 公式のトップページから引っ張ってきただけですが、以下のような原則・特徴があるそうです。 原則 スケーラブル Airflowはモジュール化されたアーキテクチャを備えていて、Messageキューを使用して任意の数のワーカーを調整でき、無限に拡張できる 動的 AirflowのパイプラインはPythonで定義されており、動的にパイプラインを生成することができる 拡張可能 独自の演算子を簡単に定義し、ライブラリを拡張して Continue Reading

Posted On :