[pyar] __unicode__ deberia tomar los mismos parametros que unicode() ?

Ezequiel Brizuela [aka EHB or qlixed] qlixed en gmail.com
Mie Sep 10 21:20:28 ART 2014


Y q seria un ejemplo de ese "algo mas"?.
La conversion a/desde unicode/"otro encoding" solo deberia encargarse de
hacer eso: buscar en la tabla de codigo correspondiente los valores
traducibles o las q se tiene que transferir/mutar el valor.
Sanitizacion, validacion y demas yerbas tiene q ser externo y nativo al
encoding original antes de hacer la conversion.
O estoy muy pifiado con el concepto?
El sep 5, 2014 3:48 PM, "fisa" <fisadev en gmail.com> escribió:

> Claro.
> Pero vos sabés que me quedé pensando, y quizás tendría sentido que
> esos parámetros se pasen a __unicode__, porque a pesar de que un
> objeto sepa cómo "unicodizarse" (proveyendo __unicode__), puede que
> también le interese hacerlo de diferentes formas, y que eso se decida
> a la hora de que el usuario llama a unicode(). Habría que plantear la
> duda en la lista de desarrollo de python, quizás interesa.
>
> El día 5 de septiembre de 2014, 15:38, Andres Riancho
> <andres.riancho en gmail.com> escribió:
> > Ok, creo que entiendo. Entonces traduciendo "Objetito" deberia saber
> > como decodificarse, entonces deberia verse como:
> >
> > class Objetito(object):
> >     def __init__(self, errors='strict', encoding='utf-8')
> >         self.errors = errors
> >         self.encoding = encoding
> >
> >     def __unicode__(self):
> >         return unicode(self.un_atributo, self.errors, self.encoding)
> >
> > 2014-09-05 15:30 GMT-03:00 fisa <fisadev en gmail.com>:
> >> El tema es este: esos parámetros sirven para afectar a cómo se
> >> *decodifica* lo que le pasás a unicode(), cuando eso que le pasás es
> >> algo que tiene que decodificarse. Pero en el caso de __unicode__, el
> >> método ya tiene que devolver algo que sea un unicode, por tanto no
> >> necesita decodificarse y por eso no tendrían sentido los parámetros.
> >>
> >> El día 5 de septiembre de 2014, 15:20, Andres Riancho
> >> <andres.riancho en gmail.com> escribió:
> >>> Lista,
> >>>
> >>>     Estoy solucionando algunos problemas de UnicodeDecodeError y me
> >>> encuentro con que en una seccion de mi codigo ocurre algo asi
> >>> (simplificado):
> >>>
> >>> print unicode(un_string, errors, encoding)
> >>> print unicode(un_objeto)
> >>>
> >>>     La implementacion del objeto, tambien simplificada dice:
> >>>
> >>> class Objetito(object):
> >>>     def __unicode__(self):
> >>>         return unicode(self.un_atributo)
> >>>
> >>>     Entonces... algo que me hubiese gustado es poder hacer esto:
> >>>
> >>> print unicode(un_string, errors, encoding)
> >>> print unicode(un_objeto, errors, encoding)
> >>>
> >>> class Objetito(object):
> >>>     def __unicode__(self, errors='strict', encoding='utf-8'):
> >>>         return unicode(self.un_atributo, errors, encoding)
> >>>
> >>>     Pero python no me deja:
> >>>
> >>>>>> class Objetito(object):
> >>> ...     def __unicode__(self, errors='strict', encoding='utf-8'):
> >>> ...         return u'%s %s' % (errors, encoding)
> >>> ...
> >>>>>> o = Objetito()
> >>>>>> unicode(o)
> >>> u'strict utf-8'
> >>>>>> unicode(o, errors='ignore')
> >>> Traceback (most recent call last):
> >>>   File "<stdin>", line 1, in <module>
> >>> TypeError: coercing to Unicode: need string or buffer, Objetito found
> >>>>>>
> >>>
> >>>     Se ve que por algun lado verifica que si hay parametros como
> >>> errors y encoding, el primer parametro necesita ser un string.
> >>>
> >>>     Me imagino algunas soluciones posibles a este problema (como no
> >>> llamar a unicode sino implementar mi propio metodo "as_unicode" y
> >>> pasarle los parametros que quiera), pero la realidad es que no
> >>> entiendo bien el porque de esta limitacion.
> >>>
> >>>     Es una limitacion real? Esta solucionado en py3k?
> >>>
> >>> [0] https://docs.python.org/2/library/functions.html#unicode
> >>>
> >>> Saludos,
> >>> --
> >>> Andrés Riancho
> >>> Project Leader at w3af - http://w3af.org/
> >>> Web Application Attack and Audit Framework
> >>> Twitter: @w3af
> >>> GPG: 0x93C344F3
> >>> _______________________________________________
> >>> pyar mailing list pyar en python.org.ar
> >>> http://listas.python.org.ar/listinfo/pyar
> >>>
> >>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >>>
> >>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
> >>
> >>
> >>
> >> --
> >> fisa  -  Juan Pedro Fisanotti
> >> _______________________________________________
> >> pyar mailing list pyar en python.org.ar
> >> http://listas.python.org.ar/listinfo/pyar
> >>
> >> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >>
> >> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
> >
> >
> >
> > --
> > Andrés Riancho
> > Project Leader at w3af - http://w3af.org/
> > Web Application Attack and Audit Framework
> > Twitter: @w3af
> > GPG: 0x93C344F3
> > _______________________________________________
> > pyar mailing list pyar en python.org.ar
> > http://listas.python.org.ar/listinfo/pyar
> >
> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >
> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
>
>
> --
> fisa  -  Juan Pedro Fisanotti
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140910/74717a22/attachment-0001.html>


More information about the pyar mailing list