[python-madrid] Propuesta

Jesus Cea jcea at jcea.es
Fri Apr 20 20:21:20 CEST 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 20/04/12 20:02, Josep Danti wrote:
> Hay algún caso en el que creo que gana twisted. Si se quieren usar 
> puertos serie,  twisted lo tiene implementado. gevent no lo tiene
> por lo que en el primer read se quedaría bloqueado. Habría que
> implementar el servicio con greenlets ¿verdad? En general veo que
> Twisted tiene más protocolos.

Como ya he dicho, twisted es un framework.

Resumido, en cuanto tu código toca twisted, tiene que adaptarse a él y
se vuelve dependiente, y si quieres usar una librería no soportada, ya
puedes reescribirla...

Eso provoca que twisted incluya mucho ecosistema alrededor. Pero es
precisamente porque no se habla con nadie, así que todo lo que quieras
hacer depende de twisted. Básicamente twisted es un mundo aparte,
incluyo soporte de muchas cosas porque no es posible usar librerías
"normales".

Otros proyectos usando greenlets, por ejemplo, y con un simple
"monkeypatching" del módulo "socket" (trivial) pueden utilizar
CUALQUIER librería de terceros. Naturalmente, estos proyectos no
incluyen apenas nada "de serie". No lo necesitan, porque usan
cualquier librería python que encuentres y que te venga bien. No es
necesario que esa librería esté programada para "twisted".

Ejemplo simple:

Si mi libreria hace "monkeypatch" de "socket" haciendo que cualquier
lectura o escritura se meta automáticamente en un "select" y que ese
"greenlet" se pare o se reanude cuando toca, mi programa puede usar
CUALQUIER librería de la biblioteca estándar, como "smtplib" para
enviar 1000 mensajes en paralelo sin tener que tocar esa librería y
sin lanzar ni un solo hilo.

Eso con twisted no se puede hacer.

Así que sí, twisted incluye muchas cosa de serie... porque no tiene
más remedio. Si necesitas algo que no está ahí, o no te gusta cómo lo
hace... prepárate a sufrir.

En su caso, si manejas el puerto serie como un fichero, puedes usar
"select" o similares. Si tienes que hacer muchas más cosas a la vez,
greenlets con un pelín de monkeypatching, o una librería específica
como gevent o similar.

PS: Yo sigo usando "poll" de forma masiva.

- -- 
Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
jcea at jcea.es - http://www.jcea.es/     _/_/    _/_/  _/_/    _/_/  _/_/
jabber / xmpp:jcea at jabber.org         _/_/    _/_/          _/_/_/_/_/
.                              _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQCVAwUBT5GpIJlgi5GaxT1NAQLzxAP/W43EyV82FmbCQuV8WqFTmP9KGIPppSq+
udSIn/xtsLWYpA9WsZ9SwTs+t9dxqX7zksd9E8uhE57PnX3x8Oc6OkOnWt6opJ1A
Vdn9j0b8C9Fy8CiJmUqODoQmmDIzri6PuMKZa+NcqOSYDL4Hly8gMFIzITEbF9/H
bVgIxTEDZIA=
=nOTT
-----END PGP SIGNATURE-----

-- 
Grupo de usuarios de python ubicados en Madrid
http://groups.google.es/group/python-madrid
http://python-madrid.es
http://twitter.com/#!/python_madrid
Para darte de baja del grupo envía un mensaje a python-madrid+unsubscribe at googlegroups.com



More information about the Madrid mailing list