Python、ニッチな標準ライブラリの紹介

Pythonは「バッテリー付属」とよく表現されるとおり、数多くの高機能なモジュールが標準ライブラリとして利用可能です。
osモジュールやsysモジュール等の非常に汎用的なライブラリもあれば、限られた特定の用途に使うニッチなライブラリもあります。
今回は、少しニッチなライブラリを3つ紹介していきます。
calendarモジュール
https://docs.python.jp/3/library/calendar.html
Pythonで日付を扱う際の一般的な方法としては、標準ライブラリのdatetimeモジュールを使う方法です。
このdatetimeを拡張し、もう少し便利な機能を提供しているサードパーティ製ライブラリの「dateutil」というものがあり、タイムゾーンの変換ならば「pytz」があります。
これらとは別に、標準ライブラリには「calendar」というモジュールがあります。
ではこのcalendarモジュールですが、これは名前のとおりカレンダーの出力を行う際に大変便利です。
from calendar import TextCalendar cal = TextCalendar() text = cal.formatmonth(2017, 7) print(text)
text_calendar.png
おそらくcalendarモジュールで最も利用されるのは、HTMLとしてカレンダーを出力する、というものです。
サンプルは以下のようになります。
from calendar import HTMLCalendar cal = HTMLCalendar() html = cal.formatmonth(2017, 7) with open('calendar.html', 'w') as file: file.write(html)
html_calendar.png
もう少し見栄えをよくしたいならば、HTMLCalendarクラスを継承し、日の出力部分にあたるformatdayメソッド等を上書きすることでカスタマイズが可能です。
inspectモジュール
https://docs.python.jp/3/library/inspect.html
モジュール、クラス、メソッド、関数等のdocstringや、ソースコード、ファイル名など、様々な情報を取得することができるモジュールです。
Sphinxのようなドキュメント生成ツールや、IDE、Pythonプログラムのコーディングスタイルをチェックするツールを作成する等、少し凝ったことに使えます。
import inspect class MyClass: """クラスの説明.""" pass class_docstring = inspect.getdoc(MyClass) file_name = inspect.getsourcefile(MyClass) line = inspect.getsourcelines(MyClass) print(class_docstring) print(file_name) print(line[1])
出力
クラスの説明.
main.py
3
wsgirefモジュール
https://docs.python.jp/3/library/wsgiref.html
wsgirefモジュールはWSGIのリファレンス実装です。
WSGIはWeb Server Gateway Interfaceの略で、ウェブサーバーとウェブアプリケーションを繋ぐためのルールのようなものです。
このWSGIに準拠すると、異なるウェブサーバーであってもソースコードを変更することなく動作させることができるようになるため、現在のPythonのWebフレームワークの殆どはWSGIをサポートしています。
ドキュメントには簡単なサンプルもあり、Pythonでのウェブの仕組みを知りたい方は、興味があれば読んでみると良いでしょう。
株式会社キャパでは、アプリの企画・開発についてご相談を承っています。
アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介