内閣府がCSV形式の国民の祝日データを公開している

のを見つけて、GitHubの最終面接も残念な結果に終わったことだし、そのデータをPythonでラップするライブラリを勢いでざっと書いてみました。名前は日本語が読める人に覚えやすいようにpython-shukujitsu(パイソン祝日)にしました。

github.com

作り始めはどういった使い方ができるライブラリにしようかと悩んだのですが、結局はPythonの祝日ライブラリでデファクトスタンダードだと思われるpython-holidaysと同じような使い方ができるように作りました。

github.com

そしてREADMEにも書きましたが、使い方はちょー簡単。

import shukujitsu
jp_holidays = shukujitsu.Japan()

こんな感じで取得した「jp_holidays」は、キーが日付で値が祝日名の辞書みたいなオブジェクトになっています。そのオブジェクトは以下のように雑多な書式・形式の日付で引けますし、スライスすることも可能となっています。

'2014-01-01' in jp_holidays  # True
'1/1/2014' in jp_holidays    # True
1388597445 in jp_holidays    # True ※Unixタイムスタンプ
jp_holidays['2014-01-01': '2014-01-03']  # [date(2014, 1, 1)]

またpython-holidaysにはないオリジナルの機能として、shukujitsu(祝日)というコマンドラインインターフェースを準備しました。これ、手前味噌なんですが、かなりの可能性を感じさせる使い方ができます。

pip3 install python-shukujitsu

というコマンドでpython-shukujitsu(パイソン祝日)をインストールすると、シェル上で条件分岐やテキストデータをフィルタするためのshukujitsu(祝日)というコマンドが一緒に使えるようになります。これを使えば、例えば今日が祝日かどうかによって処理を分ける場合にも、

$ shukujitsu `date +%s` > /dev/null && echo 今日は祝日 || echo 今日は祝日じゃない

みたいなワンライナーで一発です。これ、システムのバッチ処理なんかでも活躍しそうでしょ?そして何より祝日の判別は国のデータを元にしているので精度もばっちりなはずです!

ただひとつの難点は、未来の祝日判別は2020年11月20日時点で2021年末までしか対応していないところです。これはそもそも国の元データが令和3年(2021年)までしか存在していないので仕方ありません。一方で過去の祝日判別については元データが昭和30年(1955年)から存在しているので、データ分析用途などにも問題なく利用できると思います。

さて本エントリ、特にオチはありません。どうか私奴(わたくしめ)のpython-shukujitsu(パイソン祝日)を皆様で愛でてやってください。 

 

あー、命(人生)を燃やして最高のサポートを!世界最高のデベロッパーたちに!って思ってたのに。。。その気持ちを供養するための昇華活動です。まぁでも、自分よりも良い人が時を同じくした「ただ、それだけのこと(プフ)」だったんです。でも「勝たなきゃダメなんだ・・・・・・!」ですよね、トネガワさん。

でも冗談抜きに、面接でお話ししたドイツのティンカーベルさんは、本当に一緒に仕事がしたいと思える素晴らしい方だった一方、彼の「See you again」に応えられなかった自分の至らなさには本当に残念に思います。

でもまぁまぁ仕方ないさ。さぁ、切り替えていこう!

 

追伸:CSV形式の国民の祝日データはここで公開されています。

www8.cao.go.jp