Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Support for Attributes?

Aberta
#48 5 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
25/100
Tipo de issue
Funcionalidade
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
fsharp, python

Direção de pesquisa

A issue menciona Fable reflection, atributos e desserialização JSON, mas não indica arquivos nem testes. Comece localizando os pontos de entrada de reflection e desserialização e, em seguida, determine se os atributos podem afetar a árvore de sintaxe gerada e ambas as formas de entrada JSON. Considera-se concluído quando o comportamento de atributos suportado e a desserialização resultante estiverem especificados e cobertos por testes.

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

Descrição

I'm now happy with Fable's reflection, which allows me to do what pydantic does in the python world.

However I want to step further. I want to allow syntax sugars in the configuration, but get the same syntax tree.

type github_url= { url: string;  [<Default("main")>] branch: string}

type myconfig = 
{
   [<AllowSingular>] author: string array
   url : github_url
    ...
}

By using attributes, I want to control JSON deserialization, to parse into the same results for

{
    "author" :  ["fable"],
    "url" : { "name": "xxx/xxx", "branch", "main" },
    ...
}

and

{ 
    "author":  "fable",
    "url": "xxx/xxx"
}

Is the use of attributes possible in Fable?

Linguagem predominante
F#
Estrelas
144
Forks
10
Merge médio
1d 6h
PRs com merge (30d)
15

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

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 fable-compiler/Fable.Python

Todas as issues de fable-compiler/Fable.Python

Issues semelhantes

Mais issues de Backend & API Design

Receba novas issues na sua caixa de entrada

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