Skip to content
This repository was archived by the owner on Mar 6, 2022. It is now read-only.
This repository was archived by the owner on Mar 6, 2022. It is now read-only.

falha a obter locals() em post_translations() - com resolução #3

@537mfb

Description

@537mfb

Onde está:

data = {k: v for k, v in locals().iteritems() if not v in (self, None)}

estava a obter uma falha que fazia com que data estivesse sempre vazia. Um debug rápido fez-me perceber que locals() estava a sofrer alterações (em stdin) durante a iteração o que provocava erro.
A solução é guardar os locals numa variável antes de iterar:

localvars = copy.deepcopy(locals())
data = {k: v for k, v in localvars.iteritems() if not v in (self, None)}

Após essa alteração já não tinha problemas a gerar o conteúdo de data, mas agora obtinha erro quando em make_request tentava obter o dump JSON de data. A excepção que ocorria dizia que UnBabel API não é um objecto serializável em JSON. Investigando descobri que data tinha como um dos seus dados self (apesar do if acima). Então voltei a alterar a linha acima para:

localvars = copy.deepcopy(locals())
data = {k: v for k, v in localvars.iteritems() if not v in (self, None) and not k == 'self'}

Agora data já é serializado em JSON e os dados enviados ao servidor com sucesso

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions