Closed labanca closed 2 months ago
Não olhei o código mas a validação não está passando:
frictionless validate datapackage.json ─────────────────────────────────── Dataset ──────────────────────────────────── dataset ┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓ ┃ name ┃ type ┃ path ┃ status ┃ ┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩ │ acao │ table │ data/acao.csv │ INVALID │ │ elemento_item │ table │ data/elemento_item.csv │ INVALID │ │ fonte_recurso │ table │ data/fonte_recurso.csv │ INVALID │ │ funcional_programatica │ table │ data/funcional_programatica.csv │ INVALID │ │ natureza_receita │ table │ data/natureza_receita.csv │ INVALID │ │ uo │ table │ data/uo.csv │ INVALID │ └────────────────────────┴───────┴─────────────────────────────────┴─────────┘
A princípio a ordem dos fields da pasta schemas estavam erradas. Mas a validação ainda estava falhando.
No transform eu estava mudando a ordem das colunas para que chave_*
fossem sempre a primeira coluna de cada tabela:
table = etl.cut(table, f'chave_{resource.name}', *[field for field in table.header() if field != f'chave_{resource.name}'])
Parece que a coluna chave
ser a primeira da tabeça e ter o delimitador |
fazia com que resource.infer(stats=True)
inferisse o delimitador errado csv em tabelas pequenas. Ao remover essa linha que fazia a reordenação o datapackage.json passou na validação normalmente.
@fjuniorr
@hslinhares fizemos merge deste PR adicionando colunas chave_*
nos recursos do conjunto dados-aux-classificadores.
Dá uma olhada se no relatório operacional isso vai quebrar alguma coisa
Closes https://github.com/splor-mg/dados-aux-classificadores/issues/25