📑

Pythonの関数実行の開始と終了をLINEで通知する「pyline_notify」を作成してみた!

2023/10/14に公開

「pyline_notify」 とは?

簡潔には 「任意のpythonスクリプトにデコレーターをつけることで、処理の開始と終了(エラー)をLINE notifyを用いて通知するPythonパッケージ」 になります。

https://github.com/lovelovetrb/pyline_notify

制作の動機

自分は自然言語処理を研究する研究室に所属しており、機械学習におけるモデルの学習や推論を行うようなPythonスクリプトを扱っています。

機械学習における処理は基本的に数時間から数日など処理にとても時間のかかるもので、時間をかけて実行しても処理がうまくいかずエラーが発生したり、処理の終了にすぐに気づくことができず、次のプロセスにすぐに移行できなかったりといったことがありました。

そこでPythonスクリプトの開始と終了(またはエラーの発生)時にLINE notifyを用いてLINEに通知してくれるようなPythonのパッケージを自作し、公開しました。

実際のPythonパッケージ

以下Githubページからコードを閲覧・pip等でインストールすることができます。

https://github.com/lovelovetrb/pyline_notify

TwitterやGithubのissueなどでご意見・ご感想などお待ちしております!

使い方

from pyline_notify import notify
from time import sleep

LINE_TOKEN = "YOUR_LINE_NOTIFY_TOKEN"

# ↓このデコレーターを追加
@notify(LINE_TOKEN)
def main():
    print("Hello World")
    sleep(5)
	
	
if __name__ = "__main__":
    main()

上記のような形で、既存のコードにimport文とデコレーターの2行を追加するだけで簡単に通知をすることができます。

@notify(LINE_TOKEN)
def main():
    raise Exception("Error!")
	
	
if __name__ = "__main__":
    main()

エラーが発生した場合は、エラー文も通知してくれます。

参考にさせていただいたサイト

https://zenn.dev/shiro46/articles/49dc4c479f9675
こちらの記事を元に今回のスクリプトの大枠を組ませていただきました。

https://qiita.com/AoyaHashizu/items/13848b013daa18f6461b
LINEの通知はこちらを参考にしました。PythonのRequestパッケージで簡単にLINE Notifyを用いてとても簡単に通知を飛ばすことができました〜!!

https://zenn.dev/ryo_kawamata/articles/learn_decorator_in_python
正直デコレータの概念をしっかり知ったのは今回が初めてだったのでとても勉強になりました。
自分のその他のスクリプトにも使えそうだな〜と思います。

終わりに...

同じようなニーズを抱えていらっしゃる方がいればぜひ......
使ってみた感想などもしあればTwitterなど気軽にご連絡ください!

Discussion