Config should be validated with clearer errors

Aberta
#45 0 comentários 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
42/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
python
Domínio
backend

Direção de pesquisa

Comece por mautrix/util/config.py, especialmente _recursive_get, e por mautrix_telegram/config.py, onde bridge.filter.mode é copiado durante a configuração. Reproduza a falha na inicialização mostrada no relatório e faça com que uma configuração aninhada inválida produza um erro que identifique o problema em vez do traceback de NoneType.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

This doesn't tell me what is wrong:

Feb  3 10:15:20 integrations systemd[1]: Started Telegram Bridge.
Feb  3 10:15:22 integrations python[16389]: Traceback (most recent call last):
Feb  3 10:15:22 integrations python[16389]:   File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
Feb  3 10:15:22 integrations python[16389]:     "__main__", mod_spec)
Feb  3 10:15:22 integrations python[16389]:   File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
Feb  3 10:15:22 integrations python[16389]:     exec(code, run_globals)
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix_telegram/__main__.py", line 113, in <module>
Feb  3 10:15:22 integrations python[16389]:     TelegramBridge().run()
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix/bridge/bridge.py", line 92, in run
Feb  3 10:15:22 integrations python[16389]:     self._prepare()
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix/bridge/bridge.py", line 99, in _prepare
Feb  3 10:15:22 integrations python[16389]:     self.prepare_config(args.config, args.registration, args.base_config)
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix/bridge/bridge.py", line 122, in prepare_config
Feb  3 10:15:22 integrations python[16389]:     self.config.update()
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix/util/config.py", line 152, in update
Feb  3 10:15:22 integrations python[16389]:     self.do_update(ConfigUpdateHelper(base, self))
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix_telegram/config.py", line 146, in do_update
Feb  3 10:15:22 integrations python[16389]:     copy("bridge.filter.mode")
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix/util/config.py", line 112, in copy
Feb  3 10:15:22 integrations python[16389]:     if from_path in self.source:
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix/util/config.py", line 57, in __contains__
Feb  3 10:15:22 integrations python[16389]:     return self.get(key, None) is not None
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix/util/config.py", line 50, in get
Feb  3 10:15:22 integrations python[16389]:     return self._recursive_get(self._data, key, default_value)
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix/util/config.py", line 45, in _recursive_get
Feb  3 10:15:22 integrations python[16389]:     return self._recursive_get(next_data, next_key, default_value)
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix/util/config.py", line 45, in _recursive_get
Feb  3 10:15:22 integrations python[16389]:     return self._recursive_get(next_data, next_key, default_value)
Feb  3 10:15:22 integrations python[16389]:   File "/home/telegram/tgenv/lib/python3.6/site-packages/mautrix/util/config.py", line 46, in _recursive_get
Feb  3 10:15:22 integrations python[16389]:     return data.get(key, default_value)
Feb  3 10:15:22 integrations python[16389]: AttributeError: 'NoneType' object has no attribute 'get'
Feb  3 10:15:22 integrations systemd[1]: telegram.service: Main process exited, code=exited, status=1/FAILURE
Linguagem predominante
Python
Estrelas
249
Forks
84
Métricas de merge de PRs
Nenhum PR com merge em 30d

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de mautrix/python

Todas as issues de mautrix/python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.