Support `Any` as an alias for `object` to describe a default typeclass implementation
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 38/100
Direção de pesquisa
A issue não nomeia arquivos de implementação nem testes. Comece localizando o tratamento por trás de @render.instance(object) e os testes existentes de instâncias de typeclass; em seguida, rastreie como o default de object é reconhecido. Considera-se concluído quando @render.instance(Any) se comporta de forma equivalente a @render.instance(object), enquanto o exemplo despacha a implementação de fallback.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Context. In order to define a default implementation (the one used if no other implementation matches), we currently have to write something like this:
from classes import typeclass
@typeclass
def render(data_value) -> str:
"""Render a data value nicely."""
@render.instance(int)
def _render_int(data_value: int) -> str:
return f'This is an integer: {data_value}'
@render.instance(object)
def _render_int(data_value: object) -> str:
return f'No idea what this is: {data_value}'
assert render('BADOOM') == 'No idea what this is: BADOOM'
(this script should be runnable as-is.)
Decision. Support Any as a special case to replace object:
@render.instance(Any)
def _render_int(data_value: Any) -> str: # type: ignore
return f'No idea what this is: {data_value}'
Consequences.
- Pro: The code will look a little bit more straightforward;
- Contra:
mypywith common settings might be unhappy aboutAnybeing used, but that can be silenced withtype: ignoreI suppose.
- Linguagem predominante
- Python
- Estrelas
- 730
- Forks
- 30
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de dry-python/classes
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
dry-python/classes#496 ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 45/100
dry-python/classes#494 ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 52/100
dry-python/classes#492 · 2 comentários ·
-
bug
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
dry-python/classes#481 · 5 comentários · 4 reações ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 35/100
dry-python/classes#386 ·
Todas as issues de dry-python/classes
Issues semelhantes
-
area: harness bug status: needs-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Human-Agent-Society/reef#625 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 80/100
learningequality/kolibri#15351 · 2 comentários ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Name consistency Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
eellak/triplestore#65 · 1 comentário ·