matplotlib / matplotlib/matplotlib

Add a public backend fallback API

Aberta
#17,386 4 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

keep status: inactive
Linguagem predominante
Python
Estrelas
23.2k
Forks
8.5k
Merge médio
1d 6h
PRs com merge (30d)
66

Descrição

Bug report

Bug summary

Back in #11600/#11896 I added backend fallback autodetection, which (by default) picks the first available backend among macosx, qt5agg, qt4agg, gtk3agg, etc. Initially the fallback order was configurable, but that got removed before the PRs were merged because of concerns about the API. I would like to revive that feature (essentially so that I can configure my envs to use module://mplcairo.qt by default, but module://mplcairo.base when no $DISPLAY is available). In itself it's not really hard, it's just a matter of what API we expose. One concern was that the initial approach was to put the list of backends to attempt in rcParams["backend"], which made that entry "active" (it's not just a plain dict entry, but something rather more complicated). One possible API (considering that this mostly just only needs to work before importing matplotlib) may be to only support configuring this in the $MPLBACKEND environment variable, which could e.g. be set to a (semi?)colon-separated list of backends to attempt.

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.

Direção de pesquisa

Comece lendo o trabalho de autodetecção de fallback de backend referenciado em #11600 e #11896 e, em seguida, inspecione como rcParams["backend"] e a variável de ambiente $MPLBACKEND são tratados antes da importação de matplotlib. A issue deixa a API pública e a sintaxe da lista de fallback sem resolução; sua conclusão exigiria uma interface de configuração acordada, com cobertura do comportamento de seleção do backend.

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

Avaliação

Stack de tecnologia
python
Domínio
backend
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Pouca atividade
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

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