やっと、次の Debian “bullseye” のリリース予定がアナウンスされましたね。 あと、少し。
2021年7月25日日曜日
2021年6月26日土曜日
python-box を使ってみた。
久々のアップです。 時間はあるけど、自由にならないんです。
ちょこちょこ、とは作業はしてるんです。 で、最近便利だと感じているやつです。
いつものことで、以下のサイトに出会ったから。(感謝!)
これまで、設定ファイルから読んで、変数をあれこれセットするのに、 class 作ってとか結構頑張る必要があった(初心者なんで)けど、 こいつを使うと、この部分が随分楽になった、と、思う。
例えば、以下のように、簡単にドットでアクセスできる。 (json と ini。 エラー処理とかなし。まだ出来てない)
読み込ませるファイルをきちんと整理するのは大事。 自分は何度も直しとかしてるし、今も変更する候補あり。
あと、json より 自由にメモがかける、ini? の方が好きかも。 使い分けがスジなんだろうけど。
import configparser
import json
import sys
from box import Box
from prompt_toolkit import print_formatted_text as pprint
def read_ini(_f):
"""Return python-box."""
#
t_config = configparser.ConfigParser()
t_config.read(_f)
_p = {s: dict(t_config.items(s)) for s in t_config.sections()}
# 取り敢えず読んだものを辞書にするだけ.型とかセットしていない.
return Box(_p)
def read_json(_f):
"""Return python-box."""
#
with open(_f, encoding="utf-8") as _b:
_p = json.load(_b)
# = json.loads()
# loads は使えない。リストが含まれてるから?
return Box(_p)
def main():
"""Read setting files."""
#
para_box_i = read_ini("test.ini")
pprint(para_box_i.kml.path)
pprint(para_box_i.kml.descriptions)
para_box_j = read_json("test.json")
pprint(para_box_j.kml.path)
pprint(para_box_j.kml.descriptions)
sys.exit()
if __name__ == "__main__":
main()
クラスを書く量が随分と少なくなる。 速度や、使用メモリとか、どうなんだろうか。
まあ、便利になったはずなので、よし、としよう。
久々のアップで、手順忘れかけてる。
登録:
投稿 (Atom)
麻のボディタオル
2018年の秋(まだ、自転車を封印してない)、 近江上布伝統産業会館 で、興味からボディタオルを購入した。 お、よかった。: 自然派パン工房 ふるさとの道 ほぼ毎日風呂で使ってきて、ついに寿命がきたようだ。 お店の方に、「糸が痩せて破れてくる」まで使える、と...
-
最近、ロードバイクの後輪が、 スローパンクのような状況で空気が抜けるようになり、 ついに、一日持たない状況になったので、修理した話。 開けて見ると、昨年琵琶湖でパンクした時に、 PATCH処理した箇所がダメになっていた。 使ったのは、REMA TipTop の QUI...
-
今使っているヘルメットは三代目で、数年使っている。 OGKから一度離れたくて、割と評判が良い LAZER から、 安価な O2 というやつだ。 アンチインセクトもついている(結構、これ大事)。 フィット感や安定感がよくキノコ頭にもならないし、値段のわりに軽く感じる。 ユニサイズの...
-
簡単にダイアグラムを描きたい テキスト入力はそれなりに出来るようになってきたし、 図の挿入もそれほど苦痛ではなくなってきた。でも 図の作成、加工作業が面倒い。 キャプチャとか写真とかの加工は、imagemagic と gimp。 ドロー系は inkscape、 ラスタは g...