Wpis z mikrobloga

Pisze skrypt w #python, chce mieć do niego prosty plik konfiguracyjny. Jestem leniwy więc wolałbym, żeby ten plik konfiguracyjny był fragmentem kodu pythonowego inicjalizującym zmienne. Chciałbym, żeby działało to mniejwięcej tak:

config.py:
one = True
two = [1, 2, 3]

program.py:
loadconfigfile("config.py")
print(cfg.one)
print(cfg.two)

Da się?
#python #programowanie
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@LOLWTF: mozna i tak. Chociaż widzę zastosowania dla konfiga napisanego w pythonie. Mianowicie konfig mój dostarcza między innymi listę plików, które sparsować ma mój skrypt. Być może użyszkodnikowi będzie wygodniej napisać skrypt w pythonie, który przygotuje takową listę. ;) Inna sprawa, że skrypt ma być krótki i zwięzły, nie chce importować zewnętrznych bibliotek jeżeli ich jakoś specjalnie nie potrzebuję.
  • Odpowiedz
@TheNewIcek: e tam, obsługę jsona masz w bibliotece standardowej, użycie to jedna linijka.

Być może użyszkodnikowi będzie wygodniej napisać skrypt w pythonie, który przygotuje takową listę


Być może użyszkodnikowi będzie wygodniej napisać skrypt w jakimkolwiek innym języku, który przygotuje takową listę. A json jest formatem uniwersalnym.

Generalnie wiele osób uważa pisanie konfigów jako plik pythonowy jako coś bardzo nieeleganckiego.
  • Odpowiedz
@LOLWTF: Jedyna nieelegancka rzeczy jaką w tym widzę to ew. "złośliwe" configi, które mogą wykonywać nieoczekiwany kod. ;) Ale narazie mnie to nie boli. Obsługę configów w jsonie dodam sobie jako todo na później ;)
  • Odpowiedz
@TheNewIcek: nie tylko to jest nieeleganckie. Nieeleganckie jest też to, że aby napisać konfig musisz znać składnię pythona. A osoba pisząca konfig nie koniecznie musi znać ten język.

Mówię tak ogólnie, nie o Twoim przypadku :)
  • Odpowiedz
@LOLWTF: generalnie masa softwareu ma swój format configów, więc często tak czy inaczej trzeba się uczyć. U mnie w najprostszym przypadku config będzie miał format:

param1 = value1
param2 = value2
  • Odpowiedz