PythonでGmailのSMTPサーバーを使ってEmailを送信する

Pythonの標準ライブラリであるsmtplibを用いてSMTPでEmailを送信する。...

 · 1 min · しむどん三度無視

Redis

Redisとは インメモリデータベース Key Value Store 速い Pub/Subの機能もある Whalebrew #!/usr/bin/env whalebrew image: redis:alpine3.13 ports: - "6379:6379" Pythonとredis-pyでRedisを使う redis-pyをインス...

 · 1 min · しむどん三度無視

Celeryのワーカープロセス

Python製の非同期ジョブフレームワークであるCeleryのワーカープロセスのGraceful Shutdownの挙動を確認する。...

 · 3 min · しむどん三度無視

PythonのEnumをjson.dumpでJSON形式に変換する PythonのEnumをjson.dumpでJSON形式に変換するためのJSONEncoderの実装例を示す。

Pythonのjsonモジュールを使ってJSON化する際、その中の値にJSONに変換できない値があるとTypeErrorとなってしまう。 Traceback (most recent call last): File "<stdin>", line 1, in <module> File...

 · 2 min · しむどん三度無視

Pythonの型ヒント

型変数の例 from dataclasses import dataclass from functools import singledispatch from typing import Dict, Generic, List, NewType, Optional, TypeVar @dataclass class FooEvent: pass @dataclass class BarEvent: pass @dataclass class BazEvent: pass Event = TypeVar("Event", FooEvent, BarEvent, BazEvent) @singledispatch def as_custom_dict(ev: Event) -> Dict: return {} @as_custom_dict.register def _(ev: BazEvent) -> Dict: return {} def func_effect(ev: Event) -> Dict: return as_custom_dict(ev)...

 · 1 min · しむどん三度無視

pybrakeを用いてerrbitにエラーを送る

インストール pybrakeをインストールする。 pip install pybrake Requirement already satisfied: pybrake in MASK/lib/python3.8/site-packages (0.4.6) Requirement already satisfied: tdigest in MASK/lib/python3.8/site-packages (from pybrake) (0.5.2.2) Requirement already satisfied: accumulation-tree in MASK/lib/python3.8/site-packages (from tdigest->pybrake) (0.6.2) Requirement already satisfied: pyudorandom in MASK/lib/python3.8/site-packages (from tdigest->pybrake) (1.0.0) 環境変数を読み込む。 変数などは環境変数か...

 · 1 min · しむどん三度無視

scikit-learnを用いてガウシアンナイーブベイズでアイリスのクラスタリングを行う

import matplotlib.pyplot as plt from sklearn import datasets from sklearn.naive_bayes import GaussianNB データをロード iris = datasets.load_iris() 萼のデータでプロット X = iris.data[:, :2] plt.figure(2, figsize=(8, 6)) plt.scatter(X[:, 0], X[:, 1], c=iris.target, cmap=plt.cm.Set2) plt.show() 学習 model = GaussianNB() model.fit(iris.data, iris.target) テストデータ test_data = np.array([ [5.1, 3.5, 1.4, 0.2], [1, 4, 2, 0.2], [6.7,3.0,5.2,2.3], ]) 分類 test_result = model.predict(test_data) プロッ...

 · 1 min · しむどん三度無視

Pythonで書いたシンプルなAWS Lambda FunctionをTerraformでデプロイする

Pythonで書いたシンプルなスクリプトをTerraformを用いてAWS Lambdaにデプ ロイする方法を示す。 Terraformの設定 AWS Lambdaで用いるP...

 · 4 min · しむどん三度無視

SMTPでメールを送信する

Python PythonにはSMTP用のライブラリが標準で用意されている。 #! /usr/bin/env python import smtplib server = smtplib.SMTP(host="localhost", port=1025) server.set_debuglevel(1) server.sendmail("[email protected]", ["[email protected]"], "OK") server.quit()...

 · 1 min · しむどん三度無視

Pythonの証明書の更新

macOS上でPythonでSSLを用いたアクセスを行おうとすると以下のようなエラーが出力されることがある。 URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)> これはPythonが管理している証...

 · 1 min · しむどん三度無視

poetryをインストールする

Pythonのパッケージ管理ツールであるpoetryをインストールし...

 · 2 min · しむどん三度無視

PynamoDBのMapAttributeの使い方

この記事はPython Advent Calendar 2020の22日目の記事です。 ちょうど空いていたので書こうかなと思います。 DynamoDBを使うライブラリとしてPynamoDBという...

 · 2 min · しむどん三度無視

URL Encodeされたファイル名をPythonで戻す

#! /usr/bin/env python3 import os import urllib.parse plain_str = input("File name: ") quoted_str = urllib.parse.quote(plain_str) for name in os.listdir(): if name.startswith(quoted_str): new_name = name.replace(quoted_str, plain_str) os.rename(name, new_name)...

 · 1 min · しむどん三度無視