Se ho uno script che utilizza un file di configurazione (o predefinito per un file di configurazione generico) che chiama un altro modulo che ha bisogno del file di configurazione passato come parametro dovrei sempre
File 1 (lo script): / bin / runner
include doer.py
... initializing backup conf file
backup_conf_file = "/etc/thing.conf"
... processing opts and args ...
if ("backup_conf_file" in opts):
backup_conf_file = arg
doer.copy_thing(backup_conf_file)
File 2 (il modulo): /lib/doer.py:
def copy_thing(backup_conf_file="/etc/thing.conf"):
"""Do stuff"""
Quindi, ovviamente ho fatto qualcosa di sbagliato sopra, ma qual è il modo giusto per farlo? Vorrei consentire di testare lo script con una diversa posizione del file di conf e vorrei consentire di testare il modulo con un percorso di file conf diverso.
Quello che mi piacerebbe davvero sarebbe una funzione in cui posso chiamare copy_thing
con backup_conf_file=backup_conf_file or DEFAULT if None)
, ma a meno che esista e non ne sappia nulla, cosa dovrei fare qui?