Closed jdcarvalho closed 7 years ago
Esta linha https://github.com/rochacbruno/python-pagseguro/blob/master/pagseguro/__init__.py#L188
deve mudar de
def clean_none_params(self):
copy = dict(self.data)
for k, v in list(copy.items()):
if not v:
del self.data[k]
para
def clean_none_params(self):
copy = dict(self.data)
for k, v in list(copy.items()):
if v is None:
del self.data[k]
usar is None é a forma correta.
@jdcarvalho na verdade dá para simplificar
In [4]: data
Out[4]: {'1': 'b', '2': False, '4': None}
In [5]: {k: v for k, v in data.items() if v is not None}
Out[5]: {'1': 'b', '2': False}
então
def clean_none_params(self):
self.data = {k: v for k, v in self.data.items() if v is not None}
Perfeito Bruno! Era isso mesmo que tinha em mente. o Segundo snippet ficou bem mais interessante com a compreensão de dicionário. Posso aplicar o fix e solicitar o pull para integração ou você faz isso por ai?
Se puder mandar um PR é melhor :)
Olá pessoal,
recentemente contribui com o projeto com a possibilidade de usar ou não o endereço no checkout através do parâmetro shippingAddressRequired. Estando como False o mesmo não requer endereços para utilizar o checkout para serviços. Encontrei um pequeno problema com o uso deste parâmetro. Debugando o código, conforme prints percebi que o problema está no método clean_none_params(), linha 164 do init.py
O parâmetro é preenchido como False corretamente mas o clean_none_params o remove.
Como isso certamente é uma decisão de projeto pelo uso do clean_none_params, gostaria de saber de vocês como posso implementar um fix para o que o clean_none_params continue fazendo o seu trabalho e possa também aceitar booleanos False.
Pensei em uma checagem de tipo para ignorar a limpeza de booleanos False mas gostaria de partilhar com vocês antes a fim de obter a melhor solução,
Atenciosamente,
João Carvalho