loading...

Tuxmind

Visidata v2.2.1 Ubuntu 22.04

domingo, 5 de março de 2023
Tuxmind

O visidata versão que está no repositório do ubuntu 22.04 LTS não salva arquivos JSON com encode utf-8.

Após ver o código fonte, verifiquei que o problema está na classe "JSONEncoder" que por default utiliza o "ensure_ascii=True"

Solução:

Depois de instalar o visidata pelo apt é só abrir o arquivo:

/usr/lib/python3/dist-packages/visidata/loaders/json.py

e substituir a linha (94 aprox.):

super().__init__(sort_keys=options.json_sort_keys, **kwargs)

por:

super().__init__(sort_keys=options.json_sort_keys, ensure_ascii=False, **kwargs)

Como se trata de python, não se esqueça de manter a indentação :)

De salientar que esta solução é apenas para a versão v2.2.1 do ubuntu 22.04 LTS.

A última versão do visidata v2.11 que está no pip e no github, também não salva o JSON em utf-8.

Mas já fiz um "pull request" na página do projecto no github.

https://github.com/saulpw/visidata/pull/1776/commits

Nessa versão (v2.11) adicionei uma vd.option com o nome de "json_ensure_ascii".

É uma solução mais flexível. Porque passa a ser possível usar o "json_ensure_ascii" nas configurações do visidata em ".visidatarc".

Basta adicionar a seguinte linha no final do ".visidatarc"

options.json_ensure_ascii = False

O pull request que eu fiz no github já foi aceite na branch de desenvolvimento.

Provalvelmente versões maiores que a v2.11 já virão com essa alteração.

Nenhum comentário: