Como armazenar as configurações do aplicativo nos módulos [duplicado]
Esta questão já tem uma resposta aqui:
Como salvar as configurações do aplicativo em um arquivo de configuração? 3 respostasRecebi um projeto do desenvolvedor que saiu da nossa empresa. Não é muito complexo, mas não parece muito legal. Então, aqui está a pergunta: O aplicativo tem alguns módulos e um é "configurações", que armazena alguns aplicativos. opções (nem todas as opções possíveis, digamos apenas dois:foo
ebar
). Quando o aplicativo é iniciado, ele lê as opções da linha de comando (usando argparse):
parser.add_argument('--foo', action='store_true')
parser.add_argument('--bar', action='store_true')
parser.add_argument('--baz', action='store_true')
E então ele executa essa coisa desagradável:
for name, val in parser.parse_args(sys.argv[1:])._get_kwargs():
setattr(sys.modules['settings'], name, val)
Primeiro: eu acho que isso é um truque sujo e não-pythônico. E em segundo lugar, é simplesmente inconveniente usar esse código, porque quando eu preciso usarsettings.baz
, IDE reclama que não existe. A intenção deste hack é tornar as opções analisadas a partir da linha de comando disponível em todos os módulos que são usados na aplicação.
Estou pensando em algo como singleton pattern, mas eu usei apenas uma vez em PHP, e não sei se esta solução correta em python. E mesmo que seja, alguém pode mostrar exemplo?
Eu sou noob em python e em SO, por favor, seja gentil comigo :) Obrigado.
p.s. Sinto muito por possíveis erros no meu inglês