From atuells en integralab.com Mon May 3 09:06:05 2004 From: atuells en integralab.com (Andres Tuells) Date: Mon, 03 May 2004 09:06:05 +0200 Subject: EXIM In-Reply-To: <000001c42dc7$9babdcd0$0100a8c0@SEVIPC> References: <000001c42dc7$9babdcd0$0100a8c0@SEVIPC> Message-ID: <4095EF5D.7080303@integralab.com> Hay varios proyectos que integran python en exim: http://sourceforge.net/projects/pyeximon/ s un GNOME monitor/manager http://elspy.sourceforge.net/ permite realizar local_scan en python un ejemplo: import exim def local_scan(): exim.log("Hello from Python") return exim.LOCAL_SCAN_ACCEPT local_scan sirve para aceptar o no un mail, pero puedes aprovechar para enviar mails Espero que sirva de ayuda Andres Tuells ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Mon May 3 10:04:20 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Mon, 3 May 2004 10:04:20 +0200 Subject: [OT] BlueBox Message-ID: <200405031004.20259.py@ch3m4.org> Revisando proyectos viejos, quería saber lo qué había sido del BlueBox, una especie de sistema de programación simbólica que tenía por objetivo, más allá de la independencia de plataformas, la "independencia tecnológica" de los lenguajes de programación. Lo último que he visto de este proyecto fue el SpringBox, programado en python, que data del año 2002. En la web oficial www.dloo.com ya no se hace referencia al caracter GNU con el que empezó el proyecto, y sólo se ven comentarios sobre patentes registradas de esta empresa, cosa que no estaría muy conforme con la filosofía GNU. Parece que toda actividad terminó en el año 2003. ¿Álguien sabe dónde fue a parar todo este proyecto y si se continúa como software libre en algún otro lugar? PD: perdón por el offtopic, pero no he encontrado mejor sitio donde preguntar. From erny en sicem.biz Mon May 3 21:23:08 2004 From: erny en sicem.biz (Ernesto Revilla) Date: Mon, 03 May 2004 21:23:08 +0200 Subject: lambda y fijar argumentos y nested_scopes Message-ID: <40969C1C.9060700@sicem.biz> Hola, creo que Chema nos comentó alguna vez cómo se puede fijar argumentos para funciones. Tengo la siguiente metaclase que crea getters y setters para los attributos especificados con _attributes para cualquier clase. class Metaclase(type): def __init__(self, name, bases, dic): type.__init__(self, name, bases, dic) if "_attributes" in dic: for attr in dic['_attributes']: # crear getter y hacerlo accesible como getAtributo f=lambda s, _a=attr: getattr(s,_a) # ??? # crear setter y hacerlo accesible como setAtributo setattr(self, 'get'+attr.capitalize(), f) # hacer accesible como getAtributo f=lambda s, value, _a=attr: setattr(s,_a,value) # ??? setattr(self, 'set'+attr.capitalize(), f) class A(object): __metaclass__=Metaclase _attributes=["nombre","apellidos"] # se crea getNombre/setNombre y getApellidos/setApellidos a=A() a.setNombre("Pepe") a.setApellidos("Molina") print a.getNombre(),a.getApellidos() En las lineas marcadas con ??? se utiliza un lambda para crear la función de acceso al dato. He pasado explícitamente el nombre del atributo como segundo argumento a lambda como en: f = lambda s, a_=.... ya que si no lo hago de esta manera, aunque use los nested_scopes, el argumento no se evalua hasta que se evalúa el cuerpo de lambda, de manera que en: f=lambda s: getattr(s,attr) # ??? attr no se evalúa hasta que de ejecute la función, con lo que siempre apuntará a 'apellidos'. ¿Eso es así, o hay otra manera de preevaluar una expresión para usarlo dentro de lambda? ¿sería poco recomendable usar una cadena de caracteres y eval para crear esas funciones? Erny From erny en sicem.biz Mon May 3 21:54:37 2004 From: erny en sicem.biz (Ernesto Revilla) Date: Mon, 03 May 2004 21:54:37 +0200 Subject: Metaclases, crear funciones a partir de plantillas de texto Message-ID: <4096A37D.7000407@sicem.biz> Hola de nuevo, cómo se crearían nuevas funciones a partir de plantillas de texto desde Metaclases? Sólo he encontrado la siguiente manera: class Metaclase2(type): def __init__(self, name, bases, dic): type.__init__(self, name, bases, dic) if "_attributes" in dic: ns={} # creo un espacio de nombre privado donde se van a crear las funciones for attr in dic['_attributes']: # crear getter y hacerlo accesible como getAtributo capAttr=attr.capitalize() getterName,setterName="get"+capAttr,"set"+capAttr exec("def %s(self): return self._%s" % (getterName,attr),ns,ns) exec("def %s(self, value): self._%s=value" % (setterName,attr),ns,ns) getter,setter=ns[getterName],ns[setterName] # recupero las funciones creadas setattr(self, getterName, getter) # lo hago disponible setattr(self, setterName, setter) class B(object): __metaclass__=Metaclase2 _attributes=["nombre","apellidos"] b=B() b.setNombre("Erny") b.setApellidos("Revilla") print b.getNombre(),b.getApellidos() # hay una manera más breve de hacerlo, es decir, crearlos directamente en el mismo espacio de nombres? al menos, a mi no me funciona, indicando 'dic' como espacio de nombres. Erny From couto.bastos en ig.com.br Tue May 4 02:24:43 2004 From: couto.bastos en ig.com.br (Matheus Couto) Date: Mon, 3 May 2004 21:24:43 -0300 Subject: boa constructor Message-ID: <20040504002450.8137041C19B@dns2.uji.es> Alguém sabe onde posso encontrar um tutorial sobre boa constructor? Grato _________________________________________________________ Voce quer um iGMail protegido contra vírus e spams? Clique aqui: http://www.igmailseguro.ig.com.br Ofertas imperdíveis! Link: http://www.americanas.com.br/ig/ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From visualnex en tutopia.com Tue May 4 03:56:32 2004 From: visualnex en tutopia.com (maram) Date: Mon, 3 May 2004 22:56:32 -0300 Subject: path adecuado para modulos Message-ID: <006901c4317b$21a95360$9900a8c0@pc12> Donde es un buen lugar para colocar modulos .py para que los encuentre python al usar from algo.py import algo1 porque si coloco un modulo algo.py en /usr/lib/python2.3/sitepackages si llama a uno que esta en una sub carpeta de este no lo encuentra? saludos marcelo am debian testing ,python2.3 From pan_python en yahoo.com.ar Tue May 4 08:30:32 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Tue, 04 May 2004 03:30:32 -0300 Subject: Convertir datos desde dbf a mysql con Python Message-ID: <40973888.4000301@yahoo.com.ar> Hola a todos.. Hace algunos meses andube por aca preguntando cosas y tratando de iniciarme en python pero despues por cuestiones personales tube que abandonar :(, ahora por suerte vuelvo y trato de empezar a programar en python.. Como la mejor manera de aprender el lenguaje es usandolo aca empiezo a tratar de dar los primeros pasos y deci hacer un par de conversiones de archivos de dbf (clipper) a mysql :) Mas o menos teoria ando un poco asi que voy por la practica :) Para leer los dbf encontre por alli una rutina que me lee los dbf sin problemas asi que por el lado del dbf ya estaria dentro de todo funcionando... Mi problema se me presenta por el lado de mysql que es donde tengo que grabar los datos que leo de dbf, viendo ejemplos y tratando de adaptarlos a mis necesidades me trabo con errores que son de principiante... Uso debian sid, python2.3 + el modulo que viene con sid para conectarse a mysql. Mi programa es este: import MySQLdb conn = MySQLdb.connect(host="192.168.0.1",user="prueba",passwd="prueba",db="telefonos") cursor = conn.cursor() cursor.execute("select * from movi") result = cursor.fetchall() for fila in result: print fila[1], fila[2], fila[3], fila[4], fila[5], fila[6], fila[7] Como se daran cuenta mi intencion es abrir la db telefonos que esta en la ip 192.168.0.1 y simplemente leer lo que tengo en la base y mostrarlo en pantalla... PERO, al intentar ejectuarlo me dice... Traceback (most recent call last): File "/mnt/python/pasadbf/mysql01.py", line 3, in ? conn = MySQLdb.connect(host="192.168.0.1",user="prueba",passwd="prueba",db="telefonos") File "/usr/lib/python2.3/site-packages/MySQLdb/__init__.py", line 63, in Connect return apply(Connection, args, kwargs) File "/usr/lib/python2.3/site-packages/MySQLdb/connections.py", line 115, in __init__ self._make_connection(args, kwargs2) File "/usr/lib/python2.3/site-packages/MySQLdb/connections.py", line 41, in _make_connection apply(super(ConnectionBase, self).__init__, args, kwargs) _mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on '192.168.0.1' (111)") jeje y ahi quedamos :) Alguien puede decirme que esta pasando (Ademas de darme cuenta que no se puede conectar al mysq) y por que no se conecta?. Esa base de datos esta andando, y la accedo normalmente por el servidor apache que esta en el mismo servidor (yo ejecuto las pruebas en otra maquina). Y.. ya que estamos, alguien puede decirme donde encontrar buenas rutinas para ver como se manejan los datos en mysql? asi voy aprendiendo? Desde ya agradezco cualquier informacion que me den, referencia a tutoriales (en español preferentemente) y cualquier ayuda para ver por que no me puedo conectar ademas de ver cual es el error que cometo... Gracias!! y gracias por ayudarme a aprender... Ariel From py en ch3m4.org Tue May 4 09:21:48 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Tue, 4 May 2004 09:21:48 +0200 Subject: Convertir datos desde dbf a mysql con Python In-Reply-To: <40973888.4000301@yahoo.com.ar> References: <40973888.4000301@yahoo.com.ar> Message-ID: <200405040921.49272.py@ch3m4.org> El Martes, 4 de Mayo de 2004 08:30, Ariel Nardelli escribió: > Alguien puede decirme que esta pasando (Ademas de darme cuenta que no se > puede conectar al mysq) y por que no se conecta?. Esa base de datos esta > andando, y la accedo normalmente por el servidor apache que esta en el > mismo servidor (yo ejecuto las pruebas en otra maquina). El código es correcto. El fallo te indica que no ve el servidor mysql. Comprueba el /etc/my.conf que esté utilizando TCP/IP, y no unix sockets. From py en ch3m4.org Tue May 4 09:25:43 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Tue, 4 May 2004 09:25:43 +0200 Subject: path adecuado para modulos In-Reply-To: <006901c4317b$21a95360$9900a8c0@pc12> References: <006901c4317b$21a95360$9900a8c0@pc12> Message-ID: <200405040925.43128.py@ch3m4.org> El Martes, 4 de Mayo de 2004 03:56, maram escribió: > Donde es un buen lugar para colocar modulos .py para > que los encuentre python al usar from algo.py import algo1 > > porque si coloco un modulo algo.py en /usr/lib/python2.3/sitepackages si > llama a uno que esta en una sub carpeta de este no lo encuentra? Como bien dices, es 'sitepackages' el lugar más adecuado siempre que tengas privilegios para colocar allí ficheros. Léete la documentación donde se cómo instalar módulos y cómo se crean "paquetes" (packages). ¡Y cuidado!, que el modo correcto de importar un módulo es sin poner la extensión .py From falted en pytables.org Tue May 4 10:12:46 2004 From: falted en pytables.org (Francesc Alted) Date: Tue, 4 May 2004 10:12:46 +0200 Subject: Metaclases, crear funciones a partir de plantillas de texto In-Reply-To: <4096A37D.7000407@sicem.biz> References: <4096A37D.7000407@sicem.biz> Message-ID: <200405041012.47393.falted@pytables.org> A Dilluns 03 Maig 2004 21:54, Ernesto Revilla va escriure: > > b=B() > b.setNombre("Erny") > b.setApellidos("Revilla") > print b.getNombre(),b.getApellidos() > > # hay una manera más breve de hacerlo, es decir, crearlos directamente > en el mismo espacio de nombres? al menos, a mi no me funciona, indicando > 'dic' como espacio de nombres. No entiendo muy bien lo que quieres decir, pero yo uso un derivado de la siguiente receta de Martelli y funciona de categoria: http://tinyurl.com/1wq1 HTH, -- Francesc Alted From py en ch3m4.org Tue May 4 11:12:44 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Tue, 4 May 2004 11:12:44 +0200 Subject: lambda y fijar argumentos y nested_scopes In-Reply-To: <40969C1C.9060700@sicem.biz> References: <40969C1C.9060700@sicem.biz> Message-ID: <200405041112.44851.py@ch3m4.org> El Lunes, 3 de Mayo de 2004 21:23, Ernesto Revilla escribió: > creo que Chema nos comentó alguna vez cómo se puede fijar argumentos > para funciones. No recuerdo bien qué dije, pero lo negaré en ausencia de mi abogado :-P > Tengo la siguiente metaclase que crea getters y setters > para los attributos especificados con _attributes para cualquier clase. > > class Metaclase(type): > def __init__(self, name, bases, dic): > type.__init__(self, name, bases, dic) > if "_attributes" in dic: > for attr in dic['_attributes']: > # crear getter y hacerlo accesible como getAtributo > f=lambda s, _a=attr: getattr(s,_a) # ??? > # crear setter y hacerlo accesible como setAtributo > setattr(self, 'get'+attr.capitalize(), f) # hacer > accesible como getAtributo > f=lambda s, value, _a=attr: setattr(s,_a,value) # ??? > setattr(self, 'set'+attr.capitalize(), f) > > class A(object): > __metaclass__=Metaclase > _attributes=["nombre","apellidos"] > # se crea getNombre/setNombre y getApellidos/setApellidos > > > a=A() > a.setNombre("Pepe") > a.setApellidos("Molina") > > print a.getNombre(),a.getApellidos() > > En las lineas marcadas con ??? se utiliza un lambda para crear la > función de acceso al dato. He pasado explícitamente el nombre del > atributo como segundo argumento a lambda como en: > f = lambda s, a_=.... > ya que si no lo hago de esta manera, aunque use los nested_scopes, el > argumento no se evalua hasta que se evalúa el cuerpo de lambda, de > manera que en: > f=lambda s: getattr(s,attr) # ??? > attr no se evalúa hasta que de ejecute la función, con lo que siempre > apuntará a 'apellidos'. > > ¿Eso es así, o hay otra manera de preevaluar una expresión para usarlo > dentro de lambda? Ya sabrás que existe entre los pytonisos una tremenda fobia a los scopes de las funciones lambda. Lo mejor que puedes hacer es utilizar métodos de la metaclase para definir los atributos. Mira qué te parece así el código: class Metaclase(type): def __init__(self, name, bases, dic): type.__init__(self, name, bases, dic) if "_attributes" in dic: for attr in dic['_attributes']: self.mkDescriptor(attr) def mkDescriptor(self,attr): def getAttr(s): return getattr(self,attr) def setAttr(s,v): setattr(self,attr,v) setattr(self,'get'+attr.capitalize(),getAttr) setattr(self,'set'+attr.capitalize(),setAttr) class A(object): __metaclass__=Metaclase _attributes=["nombre","apellidos"] a=A() a.setNombre("Pepe") a.setApellidos("Molina") print a.getNombre(),a.getApellidos() > ¿sería poco recomendable usar una cadena de caracteres y eval para crear > esas funciones? Creo que esto es lo que preguntas en el siguiente mensaje. From py en ch3m4.org Tue May 4 12:11:37 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Tue, 4 May 2004 12:11:37 +0200 Subject: Metaclases, crear funciones a partir de plantillas de texto In-Reply-To: <4096A37D.7000407@sicem.biz> References: <4096A37D.7000407@sicem.biz> Message-ID: <200405041211.37578.py@ch3m4.org> El Lunes, 3 de Mayo de 2004 21:54, Ernesto Revilla escribió: > Hola de nuevo, > > cómo se crearían nuevas funciones a partir de plantillas de texto desde > Metaclases? Sólo he encontrado la siguiente manera: > > class Metaclase2(type): > def __init__(self, name, bases, dic): > type.__init__(self, name, bases, dic) > if "_attributes" in dic: > ns={} # creo un espacio de nombre privado donde se van a > crear las funciones > for attr in dic['_attributes']: > # crear getter y hacerlo accesible como getAtributo > capAttr=attr.capitalize() > getterName,setterName="get"+capAttr,"set"+capAttr > exec("def %s(self): return self._%s" % > (getterName,attr),ns,ns) > exec("def %s(self, value): self._%s=value" % > (setterName,attr),ns,ns) > getter,setter=ns[getterName],ns[setterName] # recupero > las funciones creadas > setattr(self, getterName, getter) # lo hago disponible > setattr(self, setterName, setter) > > class B(object): > __metaclass__=Metaclase2 > _attributes=["nombre","apellidos"] > > b=B() > b.setNombre("Erny") > b.setApellidos("Revilla") > print b.getNombre(),b.getApellidos() > > # hay una manera más breve de hacerlo, es decir, crearlos directamente > en el mismo espacio de nombres? al menos, a mi no me funciona, indicando > 'dic' como espacio de nombres. Empleando __new__ en lugar de __init__ en la metaclase. Una vez que está creada la clase, sus atributos son de sólo lectura. Por eso hay que modificar el diccionario antes de la creación de la clase: class Metaclase2(type): def __new__(self, name, bases, dic): if "_attributes" in dic: for attr in dic['_attributes']: # crear getter y hacerlo accesible como getAtributo capAttr=attr.capitalize() getterName,setterName="get"+capAttr,"set"+capAttr exec("def %s(self): return self._%s" % (getterName,attr),dic) exec("def %s(self, value): self._%s=value" % (setterName,attr),dic) return type.__new__(self, name, bases, dic) class B(object): __metaclass__=Metaclase2 _attributes=["nombre","apellidos"] b=B() b.setNombre("Erny") b.setApellidos("Revilla") print b.getNombre(),b.getApellidos() From o.merchan en bussitel.es Tue May 4 12:44:33 2004 From: o.merchan en bussitel.es (Oscar Merchan) Date: Tue, 4 May 2004 12:44:33 +0200 Subject: wxpython y los hilos Message-ID: <20040504124433.63f0f2ee.o.merchan@bussitel.es> Muy buenas a todos/as. Quiero hacer un programa en wxpython, el cual en la ventana principal y con un wxListCrtl, me vaya apareciendo constantemente informacion obtenida de unos archivos, los cuales son logs que varian cada segundo mas o menos. Mi problema es que no tengo muy claro, como tener el programa de wxpython abierto, que a vaya refrescando automaticamente y que a la vez me permita pinchar en otros botones ( por ejemplo en el caso que quiera para la monitoricacion de los logs, o que quiera salir, o que pueda preparar mas opciones ). Teneis esperiencia en esto, alguien me puede decir como hacerlo, es estos momentos estoy mas perdido que un pez en medio de una perrera. Saludos, Oscar Merchan. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Tue May 4 13:17:11 2004 From: py en ch3m4.org (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Tue, 4 May 2004 13:17:11 +0200 Subject: wxpython y los hilos In-Reply-To: <20040504124433.63f0f2ee.o.merchan@bussitel.es> References: <20040504124433.63f0f2ee.o.merchan@bussitel.es> Message-ID: <200405041317.11830.py@ch3m4.org> El Martes, 4 de Mayo de 2004 12:44, Oscar Merchan escribió: > Quiero hacer un programa en wxpython, el cual en la ventana principal y con > un wxListCrtl, me vaya apareciendo constantemente informacion obtenida de > unos archivos, los cuales son logs que varian cada segundo mas o menos. Mi > problema es que no tengo muy claro, como tener el programa de wxpython > abierto, que a vaya refrescando automaticamente y que a la vez me permita > pinchar en otros botones ( por ejemplo en el caso que quiera para la > monitoricacion de los logs, o que quiera salir, o que pueda preparar mas > opciones ). > > Teneis esperiencia en esto, alguien me puede decir como hacerlo, es estos > momentos estoy mas perdido que un pez en medio de una perrera. Tienes un ejemplo de threads y procesos largos en 'http://wiki.wxpython.org/index.cgi/LongRunningTasks' y un ejemplo completo en 'http://staffa.wi.mit.edu/people/kelley/Process.py' que no usa threads. También de la documentación de pythoncard (basado en wxPython) puedes sacar algo: 'http://pythoncard.sourceforge.net/timers-threads.html', sobre todo observa cómo utilizar los Queues. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From o.merchan en bussitel.es Tue May 4 13:42:41 2004 From: o.merchan en bussitel.es (Oscar Merchan) Date: Tue, 4 May 2004 13:42:41 +0200 Subject: wxpython y los hilos In-Reply-To: <200405041317.11830.py@ch3m4.org> References: <20040504124433.63f0f2ee.o.merchan@bussitel.es> <200405041317.11830.py@ch3m4.org> Message-ID: <20040504134241.0b1f8b54.o.merchan@bussitel.es> On Tue, 4 May 2004 13:17:11 +0200 Chema Cortés wrote: > El Martes, 4 de Mayo de 2004 12:44, Oscar Merchan escribió: > > > Quiero hacer un programa en wxpython, el cual en la ventana principal y con > > un wxListCrtl, me vaya apareciendo constantemente informacion obtenida de > > unos archivos, los cuales son logs que varian cada segundo mas o menos. Mi > > problema es que no tengo muy claro, como tener el programa de wxpython > > abierto, que a vaya refrescando automaticamente y que a la vez me permita > > pinchar en otros botones ( por ejemplo en el caso que quiera para la > > monitoricacion de los logs, o que quiera salir, o que pueda preparar mas > > opciones ). > > > > Teneis esperiencia en esto, alguien me puede decir como hacerlo, es estos > > momentos estoy mas perdido que un pez en medio de una perrera. > > Tienes un ejemplo de threads y procesos largos en > 'http://wiki.wxpython.org/index.cgi/LongRunningTasks' y un ejemplo completo > en 'http://staffa.wi.mit.edu/people/kelley/Process.py' que no usa threads. > > También de la documentación de pythoncard (basado en wxPython) puedes sacar > algo: 'http://pythoncard.sourceforge.net/timers-threads.html', sobre todo > observa cómo utilizar los Queues. > Muchas gracias, ya he conseguido que vaya refrescando la ventana y que a la vez me permita hacer mas cosas mientras refresca, sobre todo me ha venido bien el ultimo enlace, te lo ponen muy claro. Saludos, Oscar Merchan. From erny en sicem.biz Tue May 4 19:48:39 2004 From: erny en sicem.biz (Ernesto Revilla) Date: Tue, 04 May 2004 19:48:39 +0200 Subject: Metaclases, crear funciones a partir de plantillas de texto In-Reply-To: <200405041211.37578.py@ch3m4.org> References: <4096A37D.7000407@sicem.biz> <200405041211.37578.py@ch3m4.org> Message-ID: <4097D777.8000901@sicem.biz> Hola Chema y Francesc, gracias por las clases! curiosamente me funcionaba también con __init__. Lo que no me queda muy claro qué diferencias hay en cambiar el diccionario que me proporciona vía __new__ o modificando self en __init__. ¿Hay documentación sobre cómo programar metaclases en Python? Erny Chema Cortés escribió: ... >Empleando __new__ en lugar de __init__ en la metaclase. Una vez que está >creada la clase, sus atributos son de sólo lectura. Por eso hay que modificar >el diccionario antes de la creación de la clase: > >class Metaclase2(type): > def __new__(self, name, bases, dic): > if "_attributes" in dic: > for attr in dic['_attributes']: > # crear getter y hacerlo accesible como getAtributo > capAttr=attr.capitalize() > getterName,setterName="get"+capAttr,"set"+capAttr > exec("def %s(self): return self._%s" % (getterName,attr),dic) > exec("def %s(self, value): self._%s=value" % >(setterName,attr),dic) > return type.__new__(self, name, bases, dic) > >class B(object): > __metaclass__=Metaclase2 > _attributes=["nombre","apellidos"] > >b=B() >b.setNombre("Erny") >b.setApellidos("Revilla") >print b.getNombre(),b.getApellidos() > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > > From erny en sicem.biz Tue May 4 20:05:06 2004 From: erny en sicem.biz (Ernesto Revilla) Date: Tue, 04 May 2004 20:05:06 +0200 Subject: lambda y fijar argumentos y nested_scopes In-Reply-To: <200405041112.44851.py@ch3m4.org> References: <40969C1C.9060700@sicem.biz> <200405041112.44851.py@ch3m4.org> Message-ID: <4097DB52.8030005@sicem.biz> Hola, básicamente, significa, para 'fijar', es decir, forzar la evaluación del argumento, llamas a una función para crear la función requerida. De esa manera, se liga una nueva variable al valor. Me parece un concepto muy interesante. también lo probaré con pas property que para mi gusto no funcionan de manera adecuada, ya que no son virtuales, como alguna vez comenté. Sigo probando, a ver si sale algo útil. Gracias de nuevo, Erny Chema Cortés escribió: >El Lunes, 3 de Mayo de 2004 21:23, Ernesto Revilla escribió: > > > >>Tengo la siguiente metaclase que crea getters y setters >>para los attributos especificados con _attributes para cualquier clase. >> >>class Metaclase(type): >> def __init__(self, name, bases, dic): >> type.__init__(self, name, bases, dic) >> if "_attributes" in dic: >> for attr in dic['_attributes']: >> # crear getter y hacerlo accesible como getAtributo >> f=lambda s, _a=attr: getattr(s,_a) # ??? >> # crear setter y hacerlo accesible como setAtributo >> setattr(self, 'get'+attr.capitalize(), f) # hacer >>accesible como getAtributo >> f=lambda s, value, _a=attr: setattr(s,_a,value) # ??? >> setattr(self, 'set'+attr.capitalize(), f) >> >>class A(object): >> __metaclass__=Metaclase >> _attributes=["nombre","apellidos"] >># se crea getNombre/setNombre y getApellidos/setApellidos >> >> >>a=A() >>a.setNombre("Pepe") >>a.setApellidos("Molina") >> >>print a.getNombre(),a.getApellidos() >> >>En las lineas marcadas con ??? se utiliza un lambda para crear la >>función de acceso al dato. He pasado explícitamente el nombre del >>atributo como segundo argumento a lambda como en: >> f = lambda s, a_=.... >>ya que si no lo hago de esta manera, aunque use los nested_scopes, el >>argumento no se evalua hasta que se evalúa el cuerpo de lambda, de >>manera que en: >> f=lambda s: getattr(s,attr) # ??? >>attr no se evalúa hasta que de ejecute la función, con lo que siempre >>apuntará a 'apellidos'. >> >>¿Eso es así, o hay otra manera de preevaluar una expresión para usarlo >>dentro de lambda? >> >> > >Ya sabrás que existe entre los pytonisos una tremenda fobia a los scopes de >las funciones lambda. Lo mejor que puedes hacer es utilizar métodos de la >metaclase para definir los atributos. Mira qué te parece así el código: > >class Metaclase(type): > def __init__(self, name, bases, dic): > type.__init__(self, name, bases, dic) > if "_attributes" in dic: > for attr in dic['_attributes']: > self.mkDescriptor(attr) > > def mkDescriptor(self,attr): > def getAttr(s): return getattr(self,attr) > def setAttr(s,v): setattr(self,attr,v) > > setattr(self,'get'+attr.capitalize(),getAttr) > setattr(self,'set'+attr.capitalize(),setAttr) > > >class A(object): > __metaclass__=Metaclase > _attributes=["nombre","apellidos"] > >a=A() >a.setNombre("Pepe") >a.setApellidos("Molina") > >print a.getNombre(),a.getApellidos() > > > > >>¿sería poco recomendable usar una cadena de caracteres y eval para crear >>esas funciones? >> >> > >Creo que esto es lo que preguntas en el siguiente mensaje. >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > > From falted en pytables.org Tue May 4 20:08:23 2004 From: falted en pytables.org (Francesc Alted) Date: Tue, 4 May 2004 20:08:23 +0200 Subject: Metaclases, =?iso-8859-1?q?=09crear_funciones_a_partir_de_plantillas_de?= texto In-Reply-To: <4097D777.8000901@sicem.biz> References: <4096A37D.7000407@sicem.biz> <200405041211.37578.py@ch3m4.org> <4097D777.8000901@sicem.biz> Message-ID: <200405042008.23149.falted@pytables.org> A Dimarts 04 Maig 2004 19:48, Ernesto Revilla va escriure: > curiosamente me funcionaba también con __init__. Lo que no me queda muy > claro qué diferencias hay en cambiar el diccionario que me proporciona > vía __new__ o modificando self en __init__. ¿Hay documentación sobre > cómo programar metaclases en Python? Hay un Wiki (debe ser reciente) bastante completito: http://www.python.org/cgi-bin/moinmoin/MetaClasses -- Francesc Alted From pan_python en yahoo.com.ar Tue May 4 21:07:41 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Tue, 04 May 2004 16:07:41 -0300 Subject: Convertir datos desde dbf a mysql con Python In-Reply-To: <200405040921.49272.py@ch3m4.org> References: <40973888.4000301@yahoo.com.ar> <200405040921.49272.py@ch3m4.org> Message-ID: <4097E9FD.6050605@yahoo.com.ar> Hola Chema: Y era eso nomas!!! ya lo active y ahora parece funcionar. GRACIAS!! Chema Cortés wrote: >El Martes, 4 de Mayo de 2004 08:30, Ariel Nardelli escribió: > > > >>Alguien puede decirme que esta pasando (Ademas de darme cuenta que no se >>puede conectar al mysq) y por que no se conecta?. Esa base de datos esta >>andando, y la accedo normalmente por el servidor apache que esta en el >>mismo servidor (yo ejecuto las pruebas en otra maquina). >> >> > >El código es correcto. El fallo te indica que no ve el servidor mysql. >Comprueba el /etc/my.conf que esté utilizando TCP/IP, y no unix sockets. >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > From erny en sicem.biz Tue May 4 21:27:24 2004 From: erny en sicem.biz (Ernesto Revilla) Date: Tue, 04 May 2004 21:27:24 +0200 Subject: Metaclases In-Reply-To: <4097DB52.8030005@sicem.biz> References: <40969C1C.9060700@sicem.biz> <200405041112.44851.py@ch3m4.org> <4097DB52.8030005@sicem.biz> Message-ID: <4097EE9C.5030400@sicem.biz> Hola, no he podido resistir, mi metaclase que crea getters, setters y properties automáticamente está en: http://www.sicem.biz/personal/erny/python/recetaMetaclaseGetterSetterProp (eso sin ver todavía la Wiki de las Metaclases) Gracias a Chema y Francesc. Erny From fran en imagenes3d.com Wed May 5 00:16:36 2004 From: fran en imagenes3d.com (Fco. Javier =?ISO-8859-1?Q?F=E9lix?=) Date: Wed, 05 May 2004 00:16:36 +0200 Subject: Dudas iniciales Message-ID: <1083708996.6572.16.camel@fran> Soy nuevo en esto del Python, yo hasta ahora usaba el bash y el php par hacer los scripts, pero un amigo me convenció para que lo probase y desde luego no me ha defraudado lo que he visto por el momento. Pero tengo unas dudas como cualquiera que empieza. 1º He visto que existe un compilador, como se usa?, que diferencia hay entre .pyc y .pyo?, existe un descompilador? que mejora la velocidad ofrece? 2º Como se pueden crear scripts que se ejecuten, al estilo de los bash y php cuando les pones al principio #!/bin/bash? , los compilados también se pueden ejecutar directamente? 3º La mejor pagina de documentación y ejemplos en castellano? 4º Existe algun traductor de php a python? Y de momento eso es todo amigos :-) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From miguela.garcia3 en alu.uclm.es Wed May 5 10:06:40 2004 From: miguela.garcia3 en alu.uclm.es (Miguel Angel Garcia) Date: Wed, 05 May 2004 10:06:40 +0200 Subject: Dudas iniciales In-Reply-To: <1083708996.6572.16.camel@fran> References: <1083708996.6572.16.camel@fran> Message-ID: <1083744399.6142.4.camel@localhost> El mié, 05-05-2004 a las 00:16, Fco. Javier Félix escribió: > Soy nuevo en esto del Python, yo hasta ahora usaba el bash y el php par > hacer los scripts, pero un amigo me convenció para que lo probase y > desde luego no me ha defraudado lo que he visto por el momento. Pero > tengo unas dudas como cualquiera que empieza. Bienvenido. > 1º He visto que existe un compilador, como se usa?, que diferencia hay > entre .pyc y .pyo?, existe un descompilador? que mejora la velocidad > ofrece? ¿Descompilador? ¿de un lenguaje interpretado? No sé exactamente cómo funcionan .pyc y .pyo. Sólo sé que se crean automáticamente cuando se ejecuta un programita python. Creo que son optimizaciones para futuras ejecuciones. > 2º Como se pueden crear scripts que se ejecuten, al estilo de los bash y > php cuando les pones al principio #!/bin/bash? , los compilados también > se pueden ejecutar directamente? pues igual: #!/usr/bin/python # -*- coding: iso-8859-1 -*- (la segunda línea es para que no te den problemas los cometarios con tildes y ñ) > 3º La mejor pagina de documentación y ejemplos en castellano? Son dos preguntas: - la mejor página de documentación: http://www.python.org http://zvon.org/other/python/PHP/search.php - en castellano http://es.tldp.org/Tutoriales/Python/Tutorial-Python/ Y no son las mejores: son las que utilizo > 4º Existe algun traductor de php a python? No lo sé. Todo es posible. > Y de momento eso es todo amigos :-) Esperemos que haya más. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Wed May 5 10:26:42 2004 From: py en ch3m4.org (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Wed, 5 May 2004 10:26:42 +0200 Subject: Dudas iniciales In-Reply-To: <1083708996.6572.16.camel@fran> References: <1083708996.6572.16.camel@fran> Message-ID: <200405051026.43295.py@ch3m4.org> El Miércoles, 5 de Mayo de 2004 00:16, Fco. Javier Félix escribió: > Soy nuevo en esto del Python, yo hasta ahora usaba el bash y el php par > hacer los scripts, pero un amigo me convenció para que lo probase y > desde luego no me ha defraudado lo que he visto por el momento. Pero > tengo unas dudas como cualquiera que empieza. > > 1º He visto que existe un compilador, como se usa?, que diferencia hay > entre .pyc y .pyo?, existe un descompilador? que mejora la velocidad > ofrece? Resumidamente, el proceso de interpretación del código python pasa por tres fases: parser, compilador y máquina virtual. En el parser se identifican los objetos que intervienen, el compilador pasa todo a bytecode, y en la máquina virtual se ejecuta el bytecode. Este proceso es "cíclico" que se repite a medida que se avanza en la interpretación del código, y es ésto lo que le diferencia de los llamados lenguajes "compilados" de máquina virtual (eg: java) en los que sólo hay un ciclo y el bytecode es estático. Del compilador sale el bytecode que es lo que se guarda en los ficheros .pyc y .pyo . Esta compilación es muy rápida, y casi insignificante en tiempo comparándolo con el tiempo de ejecución de la máquina virtual. El bytecode podría estar completamente en memoria, pero se descarga a fichero para ir liberando memoria. A veces, por problemas de privilegios, no se puede crear el fichero bytecode, por lo que tiene que gastar más memoria para guardar todo el bytecode generado. Siempre que se pueda, el intérprete leerá el bytecode de los ficheros. No ocurrirá así si el fichero fuente ha sido modificado, o el fichero bytecode es para otra versión de máquina virtual. Es posible ejecutar sólo ficheros bytecode, sin estar disponible el fichero fuente. Dicha esta introducción, respondo a las preguntas: ¿Cómo se usa?: su uso es transparente al usuario, creando fichero bytecode a medida que va importando módulos. A veces se necesita compilar a bytecode durante la instalación de algún módulo, para ello tienes módulos y utilidades como compiler, compileall,... aunque para instalar es mejor automatizar el proceso con el módulo 'distutils'. Diferencias entre .pyc y .pyo : pyo se supone que es un bytecode algo más compacto, pero yo no he encontrado grandes mejoras en tiempos de ejecución. Con la ópción -OO se eliminan las cadenas de documentación, lo que puede ayudar a hacer más "obscuro" tu bytecode si decides distribuir tu aplicación sólo en bytecode. Descompilador: tienes el módulo 'dis' que se puede descompilar el bytecode, pero no retornaría el código python. En el boa-constructor tienes un interface a éste descompilador de bytecode. También existía un decompilador a código python, pero lo han cerrado como servicio comercial: http://www.crazy-compilers.com/decompyle/ ¿Mejora la velocidad?: es inapreciable. Mejor que no te preocupe. Si es por velocidad, utiliza otras técnicas como psyco ó pyrex. > 2º Como se pueden crear scripts que se ejecuten, al estilo de los bash y > php cuando les pones al principio #!/bin/bash? , los compilados también > se pueden ejecutar directamente? #!/usr/bin/python Para los que tenemos el python en otro sitio (yo lo tengo en mi directorio de usuario) no funcionaría bien, ya que el enlace al intérprete de python que hay en /usr/bin puede que no sea el que estás usando normalmente. Podrías poner "explícitamente" la ruta al intérprete, pero lo mejor es usar el comando 'env': #!/usr/bin/env python Si quieres puedes pasar argumentos al python, por ejemplo: #!/usr/bin/env python -OO -i -d Para que se ejecuten como si fueran comandos del sistema, tienes que cambiarle los flags de ejecución con el chmod. En windows bastaría con poner la extensión .pyw Para los compilados hay que hacer alguna configuración extra. Mírate un artículo mío donde explico todo ésto para linux: http://www.zaralinux.org/modules.php?name=News&file=article&sid=153 Se podría incluso ejecutar máquinas virtuales diferentes según la versión del bytecode que se use en el fichero. > 3º La mejor pagina de documentación y ejemplos en castellano? No me gusta comparar, aunque no es porque haya mucho donde elegir. Sin un orden en particular: http://milugar.doesntexist.org http://hispapython.org http://python.freezope.org http://pyspanishdoc.sourceforge.net/ http://marmota.act.uji.es/MTP/teoria.shtml (seguramente me deje alguno) > 4º Existe algun traductor de php a python? Ni idea. Sería posible convertir código php a python, pero casi todo el php viene incrustado en html y eso complicaría más el asunto al requerir alguna de las herramientas para hacer webs en python. > Y de momento eso es todo amigos :-) Uffff!!! ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From Andres.Moya en hispalinux.es Wed May 5 10:51:03 2004 From: Andres.Moya en hispalinux.es (Andres Moya) Date: Wed, 05 May 2004 10:51:03 +0200 Subject: Dudas iniciales In-Reply-To: <1083708996.6572.16.camel@fran> References: <1083708996.6572.16.camel@fran> Message-ID: <1083747063.23740.36.camel@cebollino.micasa.es> El mié, 05-05-2004 a las 00:16, Fco. Javier Félix escribió: > Soy nuevo en esto del Python, yo hasta ahora usaba el bash y el php par > hacer los scripts, pero un amigo me convenció para que lo probase y > desde luego no me ha defraudado lo que he visto por el momento. Pero > tengo unas dudas como cualquiera que empieza. Bienvenido al club, está claro que Python es un lenguaje que gusta a los que lo prueban. Y estás en el sitio más apropiado para resolver tus dudas :) > 1º He visto que existe un compilador, como se usa?, que diferencia hay > entre .pyc y .pyo?, existe un descompilador? que mejora la velocidad > ofrece? Veamos, hay varios conceptos mezclados aquí. Vayamos por partes. 1) Python en realidad no es un lenguaje interpretado (como podía ser el Basic). Lo que es es un lenguaje con máquina virtual, igual que Java. Esto significa que el código fuente se compila, y se genera código máquina, pero en vez de ser el de un procesador real como puede ser el Pentium, lo genera para uno imaginario. Y luego hay un "runtime" que interpreta (ahora sí) ese código máquina sobre cualquier procesador real. 2) Lo anterior es transparente porque el entorno de python compila y ejecuta con un sólo paso. Cuando escribes "python miscript.py", el programa primero lee miscript.py, lo compila y genera miscript.pyc, que es un ejecutable de la máquina virtual. A continuación lo lee y lo ejecuta. Las siguientes veces, si ya está creado el .pyc, no hace falta compilarlo otra vez. 3) Si lo llamas con "python -O miscript.py", en vez del .pyc genera un .pyo, que es lo mismo, pero optimizado para que vaya más rápido y ocupe menos. 4) Hay varios compiladores que generan código máquina real, pero entonces se pierde la independencia de la plataforma. Por ejemplo, creo que hay uno que le pasas miscript.py y te genera miscript.c, que puede ser compilado con un compilador C normal y generar un .exe. 5) Esto mejora el rendimiento, pero no se suele usar mucho, lo más típico es mezclar python con código C para las partes más críticas, o usar un compilador especial como pyco, que optimiza el código máquina virtual para que vaya mucho más rápido (de 2x a 100x, típicamente 4x), a cambio de ocupar más memoria. -- Andres Moya Contra la guerra global permanente. Foro Social Mundial - Otro mundo es posible. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From Andres.Moya en hispalinux.es Wed May 5 10:55:58 2004 From: Andres.Moya en hispalinux.es (Andres Moya) Date: Wed, 05 May 2004 10:55:58 +0200 Subject: Dudas iniciales In-Reply-To: <200405051026.43295.py@ch3m4.org> References: <1083708996.6572.16.camel@fran> <200405051026.43295.py@ch3m4.org> Message-ID: <1083747358.23740.39.camel@cebollino.micasa.es> El mié, 05-05-2004 a las 10:26, Chema Cortés escribió: > Diferencias entre .pyc y .pyo : pyo se supone que es un bytecode algo más > compacto, pero yo no he encontrado grandes mejoras en tiempos de ejecución. > Con la ópción -OO se eliminan las cadenas de documentación, lo que puede > ayudar a hacer más "obscuro" tu bytecode si decides distribuir tu aplicación > sólo en bytecode. Yo lo he notado con el boa, ejecutandolo con -O va significativamente más ligero que sin él. Lo del -OO ahorra mucho espacio si tu código está bien documentado y no necesitas que los usuarios lean los doc comments. -- Andres Moya Contra la guerra global permanente. Foro Social Mundial - Otro mundo es posible. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Wed May 5 10:59:55 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Wed, 5 May 2004 10:59:55 +0200 Subject: Metaclases, =?iso-8859-1?q?=09crear_funciones_a_partir_de_plantillas_de?= texto In-Reply-To: <4097D777.8000901@sicem.biz> References: <4096A37D.7000407@sicem.biz> <200405041211.37578.py@ch3m4.org> <4097D777.8000901@sicem.biz> Message-ID: <200405051059.55391.py@ch3m4.org> El Martes, 4 de Mayo de 2004 19:48, Ernesto Revilla escribió: > Hola Chema y Francesc, > gracias por las clases! De nada :-) > curiosamente me funcionaba también con __init__. Lo que no me queda muy > claro qué diferencias hay en cambiar el diccionario que me proporciona > vía __new__ o modificando self en __init__. ¿Hay documentación sobre > cómo programar metaclases en Python? Según lo veo yo, con la introducción de las nuevas clases parece que se tiende a blindar cada vez más la estructura intrínseca de un objeto. Posiblemente, se llegue a un momento en que ya no se pueda alterar una estructura de un objeto una vez creado. Sobre documentación, he ido recopilando bastante por internet, pero ahora no recuerdo de dónde. Lo que sí me quedó claro es que todo se basa en un libro de metaclases para C++ que ahora es imposible de localizar: "Putting Metaclasses to Work" de Ira R. Forman y Scott Danforth Addison-Wesley Pub Co; (January 1999) ASIN: 0201433052 From hernan en orgmf.com.ar Wed May 5 17:01:17 2004 From: hernan en orgmf.com.ar (Hernan Foffani) Date: Wed, 5 May 2004 17:01:17 +0200 Subject: presentacion animada de psyco Message-ID: podéis encontrar una muy buena presentación de psyco en http://psyco.sourceforge.net/accu2004-psyco.tgz vale la pena dedicarle unos minutos porque no solo explica la arquitectura de psyco (que puede no ser de interés general), sino que el concepto también sirve para entender el funcionamiento de los compiladores JIT. (aclaro que psyco genera directamente código ensamblado, no C.) requiere python y pygame instalado (www.pygame.org). para los afortunados usuarios de windows alcanza con instalar la distribución binaria de pygame. -H. From hernan en orgmf.com.ar Wed May 5 17:31:28 2004 From: hernan en orgmf.com.ar (Hernan Foffani) Date: Wed, 5 May 2004 17:31:28 +0200 Subject: Metaclases, crear funciones a partir de plantillas de texto In-Reply-To: <200405051059.55391.py@ch3m4.org> References: <200405051059.55391.py@ch3m4.org> Message-ID: >> curiosamente me funcionaba también con __init__. Lo que no me queda >> muy claro qué diferencias hay en cambiar el diccionario que me >> proporciona vía __new__ o modificando self en __init__. ¿Hay >> documentación sobre cómo programar metaclases en Python? Hasta hace un tiempo solo había la introduccion de Guido sobre unificación de tipos y clases http://www.python.org/2.2/descrintro.html Por lo que veo de Google ahora hay mucho mas. Destacaría: Una introducción básica de metaclases en comp.lang.python: http://groups.google.com/groups?threadm=ghTS8.58749$mh.1826422 en news1.teluspl anet.net Y una presentación nueva de la PyCon de este año: http://www.python.org/pycon/dc2004/papers/24/metaclasses-pycon.pdf --muy adecuada la reflexión de la primera página. ;-) > ... Lo que sí me quedó claro es que todo se > basa en un libro de metaclases para C++ que ahora es imposible de > localizar: "Putting Metaclasses to Work" Cierto. Lo tenía en mi lista de pendientes. Una pena saber que ya no se consige. Igual, al ritmo que llevo, lo comprararía en el 2010 y leería para el 2015 (con suerte). -H. From fran en imagenes3d.com Wed May 5 23:20:47 2004 From: fran en imagenes3d.com (Fco. Javier =?ISO-8859-1?Q?F=E9lix?=) Date: Wed, 05 May 2004 23:20:47 +0200 Subject: Dudas iniciales In-Reply-To: <1083747063.23740.36.camel@cebollino.micasa.es> References: <1083708996.6572.16.camel@fran> <1083747063.23740.36.camel@cebollino.micasa.es> Message-ID: <1083792047.8737.4.camel@fran> El mié, 05-05-2004 a las 10:51, +0200, Andres Moya escribió: > El mié, 05-05-2004 a las 00:16, Fco. Javier Félix escribió: > > Soy nuevo en esto del Python, yo hasta ahora usaba el bash y el php par > > hacer los scripts, pero un amigo me convenció para que lo probase y > > desde luego no me ha defraudado lo que he visto por el momento. Pero > > tengo unas dudas como cualquiera que empieza. > > Bienvenido al club, está claro que Python es un lenguaje que gusta a los > que lo prueban. Y estás en el sitio más apropiado para resolver tus > dudas :) > Eso me han comentado! > > > 1º He visto que existe un compilador, como se usa?, que diferencia hay > > entre .pyc y .pyo?, existe un descompilador? que mejora la velocidad > > ofrece? > > Veamos, hay varios conceptos mezclados aquí. Vayamos por partes. > > 1) Python en realidad no es un lenguaje interpretado (como podía ser el > Basic). Lo que es es un lenguaje con máquina virtual, igual que Java. > Esto significa que el código fuente se compila, y se genera código > máquina, pero en vez de ser el de un procesador real como puede ser el > Pentium, lo genera para uno imaginario. Y luego hay un "runtime" que > interpreta (ahora sí) ese código máquina sobre cualquier procesador > real. > > 2) Lo anterior es transparente porque el entorno de python compila y > ejecuta con un sólo paso. Cuando escribes "python miscript.py", el > programa primero lee miscript.py, lo compila y genera miscript.pyc, que > es un ejecutable de la máquina virtual. A continuación lo lee y lo > ejecuta. Las siguientes veces, si ya está creado el .pyc, no hace falta > compilarlo otra vez. > Forma original y efectiva de trabajar, como diria un profesor mio , curioso , curioso > 3) Si lo llamas con "python -O miscript.py", en vez del .pyc genera un > .pyo, que es lo mismo, pero optimizado para que vaya más rápido y ocupe > menos. > > 4) Hay varios compiladores que generan código máquina real, pero > entonces se pierde la independencia de la plataforma. Por ejemplo, creo > que hay uno que le pasas miscript.py y te genera miscript.c, que puede > ser compilado con un compilador C normal y generar un .exe. > Todo depende de para que se destine el resultado, puede que necesites que no se vea el source o necesitas un pelin mas de velocidad, siempre estaria la opcion de volverlo a compilar para las diferentes arquitecturas. > 5) Esto mejora el rendimiento, pero no se suele usar mucho, lo más > típico es mezclar python con código C para las partes más críticas, o > usar un compilador especial como pyco, que optimiza el código máquina > virtual para que vaya mucho más rápido (de 2x a 100x, típicamente 4x), a > cambio de ocupar más memoria. > Lo probare, eso de por 100x solia decirlo mucho microsoft, pero siempre es por 2.5 a lo sumo, o 0.1 en algunos casos. > -- > Andres Moya > > Contra la guerra global permanente. > Foro Social Mundial - Otro mundo es posible. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From fran en imagenes3d.com Wed May 5 23:28:04 2004 From: fran en imagenes3d.com (Fco. Javier =?ISO-8859-1?Q?F=E9lix?=) Date: Wed, 05 May 2004 23:28:04 +0200 Subject: Dudas iniciales In-Reply-To: <200405051026.43295.py@ch3m4.org> References: <1083708996.6572.16.camel@fran> <200405051026.43295.py@ch3m4.org> Message-ID: <1083792484.8734.12.camel@fran> El mié, 05-05-2004 a las 10:26, +0200, Chema Cortés escribió: > El Miércoles, 5 de Mayo de 2004 00:16, Fco. Javier Félix escribió: > > Soy nuevo en esto del Python, yo hasta ahora usaba el bash y el php par > > hacer los scripts, pero un amigo me convenció para que lo probase y > > desde luego no me ha defraudado lo que he visto por el momento. Pero > > tengo unas dudas como cualquiera que empieza. > > > > 1º He visto que existe un compilador, como se usa?, que diferencia hay > > entre .pyc y .pyo?, existe un descompilador? que mejora la velocidad > > ofrece? > > Resumidamente, el proceso de interpretación del código python pasa por tres > fases: parser, compilador y máquina virtual. En el parser se identifican los > objetos que intervienen, el compilador pasa todo a bytecode, y en la máquina > virtual se ejecuta el bytecode. Este proceso es "cíclico" que se repite a > medida que se avanza en la interpretación del código, y es ésto lo que le > diferencia de los llamados lenguajes "compilados" de máquina virtual (eg: > java) en los que sólo hay un ciclo y el bytecode es estático. > A que te refieres con que es cíclico, que cada vez que pasa por el source lo va volviendo a generar el .pyc, no se compilaba una vez, y luego se ejecuta el .pyc? > Del compilador sale el bytecode que es lo que se guarda en los ficheros .pyc > y .pyo . Esta compilación es muy rápida, y casi insignificante en tiempo > comparándolo con el tiempo de ejecución de la máquina virtual. El bytecode > podría estar completamente en memoria, pero se descarga a fichero para ir > liberando memoria. A veces, por problemas de privilegios, no se puede crear > el fichero bytecode, por lo que tiene que gastar más memoria para guardar > todo el bytecode generado. Siempre que se pueda, el intérprete leerá el > bytecode de los ficheros. No ocurrirá así si el fichero fuente ha sido > modificado, o el fichero bytecode es para otra versión de máquina virtual. Es > posible ejecutar sólo ficheros bytecode, sin estar disponible el fichero > fuente. > > Dicha esta introducción, respondo a las preguntas: > > ¿Cómo se usa?: su uso es transparente al usuario, creando fichero bytecode a > medida que va importando módulos. A veces se necesita compilar a bytecode > durante la instalación de algún módulo, para ello tienes módulos y utilidades > como compiler, compileall,... aunque para instalar es mejor automatizar el > proceso con el módulo 'distutils'. > > Diferencias entre .pyc y .pyo : pyo se supone que es un bytecode algo más > compacto, pero yo no he encontrado grandes mejoras en tiempos de ejecución. > Con la ópción -OO se eliminan las cadenas de documentación, lo que puede > ayudar a hacer más "obscuro" tu bytecode si decides distribuir tu aplicación > sólo en bytecode. > > Descompilador: tienes el módulo 'dis' que se puede descompilar el bytecode, > pero no retornaría el código python. En el boa-constructor tienes un > interface a éste descompilador de bytecode. También existía un decompilador a > código python, pero lo han cerrado como servicio comercial: > http://www.crazy-compilers.com/decompyle/ > Lo del descompilar lo he comentado por si alguna vez tengo la necesidad de realizar algun programa cerrado, y se descompilaban facilmente. > ¿Mejora la velocidad?: es inapreciable. Mejor que no te preocupe. Si es por > velocidad, utiliza otras técnicas como psyco ó pyrex. > > > 2º Como se pueden crear scripts que se ejecuten, al estilo de los bash y > > php cuando les pones al principio #!/bin/bash? , los compilados también > > se pueden ejecutar directamente? > > #!/usr/bin/python > > Para los que tenemos el python en otro sitio (yo lo tengo en mi directorio de > usuario) no funcionaría bien, ya que el enlace al intérprete de python que > hay en /usr/bin puede que no sea el que estás usando normalmente. Podrías > poner "explícitamente" la ruta al intérprete, pero lo mejor es usar el > comando 'env': > > #!/usr/bin/env python > > Si quieres puedes pasar argumentos al python, por ejemplo: > > #!/usr/bin/env python -OO -i -d > Con esos parametros haces que compile el .pyo, no? > > Para que se ejecuten como si fueran comandos del sistema, tienes que cambiarle > los flags de ejecución con el chmod. En windows bastaría con poner la > extensión .pyw > Bueno , eso ya seria lo normal > Para los compilados hay que hacer alguna configuración extra. Mírate un > artículo mío donde explico todo ésto para linux: > http://www.zaralinux.org/modules.php?name=News&file=article&sid=153 > > Se podría incluso ejecutar máquinas virtuales diferentes según la versión del > bytecode que se use en el fichero. > > > > 3º La mejor pagina de documentación y ejemplos en castellano? > > No me gusta comparar, aunque no es porque haya mucho donde elegir. Sin un > orden en particular: > > http://milugar.doesntexist.org > http://hispapython.org > http://python.freezope.org > http://pyspanishdoc.sourceforge.net/ > http://marmota.act.uji.es/MTP/teoria.shtml > > (seguramente me deje alguno) > > > 4º Existe algun traductor de php a python? > > Ni idea. Sería posible convertir código php a python, pero casi todo el php > viene incrustado en html y eso complicaría más el asunto al requerir alguna > de las herramientas para hacer webs en python. > > > Y de momento eso es todo amigos :-) > Gracias, ya no volvere a ser tan pesado. Cuesta cambiar de lenguaje, :-) > Uffff!!! > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From morillas en posta.unizar.es Thu May 6 00:42:17 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Thu, 6 May 2004 00:42:17 +0200 Subject: Comparativa Python-Java Message-ID: <20040505224217.GB2007@marmota> Para los amantes de las comparativas y para los curiosos, envío el link que ha llegado desde la lista db-sig: http://www.ferg.org/projects/python_java_side-by-side.html -- Luis Miguel No a las patentes de software en Europa EuropeSwPatentFree http://EuropeSwPatentFree.hispalinux.es From py en ch3m4.org Thu May 6 10:22:48 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Thu, 6 May 2004 10:22:48 +0200 Subject: Comparativa Python-Java In-Reply-To: <20040505224217.GB2007@marmota> References: <20040505224217.GB2007@marmota> Message-ID: <200405061022.48796.py@ch3m4.org> El Jueves, 6 de Mayo de 2004 00:42, luis miguel morillas escribió: > Para los amantes de las comparativas y para los curiosos, envío el link > que ha llegado desde la lista db-sig: > > http://www.ferg.org/projects/python_java_side-by-side.html Esta comparativa no es nueva, según parece es una actualización. Si la recuerdo es porque también explica las diferencias entre tipos de datos fuerte-vs-débil y estático-vs-dinámico, por si álguien buscaba algo sobre ello. From py en ch3m4.org Thu May 6 10:54:34 2004 From: py en ch3m4.org (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Thu, 6 May 2004 10:54:34 +0200 Subject: Dudas iniciales In-Reply-To: <1083792484.8734.12.camel@fran> References: <1083708996.6572.16.camel@fran> <200405051026.43295.py@ch3m4.org> <1083792484.8734.12.camel@fran> Message-ID: <200405061054.34808.py@ch3m4.org> El Miércoles, 5 de Mayo de 2004 23:28, Fco. Javier Félix escribió: > A que te refieres con que es cíclico, que cada vez que pasa por el > source lo va volviendo a generar el .pyc, no se compilaba una vez, y > luego se ejecuta el .pyc? No. Hay optimizaciones para evitar tener que repetir ciertas tareas. Con "cíclico" me refería a que el ciclo parser->compiler->cpython se produce varias veces a lo largo de la ejecución de un programa. Si ya tienes el fichero .pyc no hace falta volver a compilarlo (siempre que no haya cambiado el fuente). Aún así, el compilador está disponible por si en ejecución quieres compilar nuevo código (pe: comando 'exec'). > > Si quieres puedes pasar argumentos al python, por ejemplo: > > > > #!/usr/bin/env python -OO -i -d > > Con esos parametros haces que compile el .pyo, no? Exacto. Son los parámetros de ejecución del comando 'python' De todos modos te darás cuenta que, de ser un único fichero fuente no se genera ningún fichero .pyo . Python sólo guarda el bytecode de los módulos que importa el fichero principal (__name__=="__main__"). Si quieres forzar la compilación utiliza la utilidad 'compile_all' > Gracias, ya no volvere a ser tan pesado. Cuesta cambiar de lenguaje, :-) A todos nos ha pasado :-P ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Thu May 6 12:22:51 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Thu, 6 May 2004 12:22:51 +0200 Subject: Metaclases, crear funciones a partir de plantillas de texto In-Reply-To: References: Message-ID: <200405061222.51984.py@ch3m4.org> El Miércoles, 5 de Mayo de 2004 17:31, Hernan Foffani escribió: > Por lo que veo de Google ahora hay mucho mas. Destacaría: > > Una introducción básica de metaclases en comp.lang.python: > > http://groups.google.com/groups?threadm=ghTS8.58749$mh.1826422 en news1.telusplanet.net En esta referencia la tenía por ser donde se habla de la "transversalidad" en la herencia de las metaclases. Otras referencias que tengo guardadas: Una buena introducción: "A Primer on Python Metaclass Programming" http://www.onlamp.com/pub/a/python/2003/04/17/metaclasses.html Un artículo muy completo: "Metaclasses and Reflection in C++" http://www.vollmann.com/en/pubs/meta/meta/meta.html Una utilización en Programación Orientada a Aspecto (AOP): http://www-106.ibm.com/developerworks/linux/library/l-pymeta.html > Y una presentación nueva de la PyCon de este año: > http://www.python.org/pycon/dc2004/papers/24/metaclasses-pycon.pdf > --muy adecuada la reflexión de la primera página. ;-) Parece muy interesante. > > ... Lo que sí me quedó claro es que todo se > > basa en un libro de metaclases para C++ que ahora es imposible de > > localizar: "Putting Metaclasses to Work" > > Cierto. Lo tenía en mi lista de pendientes. Una pena saber que ya no > se consige. Igual, al ritmo que llevo, lo comprararía en el 2010 y > leería para el 2015 (con suerte). En amazon hay quien lo ofrece usado por $100. Ayer aún se vendía uno çnuevo por $169, pero ya no está hoy. Se ve que escasean mucho los libros buenos sobre el tema. From erny en sicem.biz Thu May 6 17:55:36 2004 From: erny en sicem.biz (Ernesto Revilla) Date: Thu, 06 May 2004 17:55:36 +0200 Subject: Metaclases, crear funciones a partir de plantillas de texto In-Reply-To: <200405061222.51984.py@ch3m4.org> References: <200405061222.51984.py@ch3m4.org> Message-ID: <409A5FF8.1020000@sicem.biz> Gracias por los enlaces. Mientras que me estudie el material, aquí va la segunda versión de mi metaclase: esta vez es un poco más consciente de la herencia y usa properties 'virtuales', es decir, en: class Persona(BaseClass): _attributes="nombre" class Cliente(Persona): _attributes="descuento" def setNombre(self,nombre): print "Estableciendo nombre a %s" % nombre Persona.setNombre(self,nombre) cliente.nombre="Pepe" funciona, como es supone ha de funcionar (llamando a Cliente.setNombre, si este ha sido definido). Erny From mghcorreo en hotmail.com Thu May 6 20:03:13 2004 From: mghcorreo en hotmail.com (moises Griott) Date: Thu, 06 May 2004 18:03:13 +0000 Subject: Instalacion de Python Message-ID: hola quiero instalar Python en mi pc es un win2000 profesional, baje de todo pero no consigio empezar a trabajar, tengo nocion de programacion ya que uso visaul b 6.0, asp php etc.. pero realmente quiero usar Python (antes queria usar Perl). soy webmasters. gracias.! si alguien tiene untutorial de instalacion y donde encontrar los paquetes que orreran en mi win2000 por favor contestar ! bye! MoiSES g _________________________________________________________________ MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/ From rosendo.martinez en valdisme.com Thu May 6 20:14:12 2004 From: rosendo.martinez en valdisme.com (rosendo) Date: Thu, 6 May 2004 20:14:12 +0200 Subject: Instalacion de Python In-Reply-To: References: Message-ID: <20040506181148.5C8D63147EE@marti.uji.es> Así para empezar, quizá lo más sencillo sea : http://www.activestate.com/Products/ActivePython/?_x=1 Si usas VisualC, entonces en esta misma web tiene un módulo para añadir python a tu ide. Suerte. Rosendo. -----Mensaje original----- De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org] En nombre de moises Griott Enviado el: jueves, 06 de mayo de 2004 20:03 Para: Python-es en aditel.org Asunto: [Python-es] Instalacion de Python hola quiero instalar Python en mi pc es un win2000 profesional, baje de todo pero no consigio empezar a trabajar, tengo nocion de programacion ya que uso visaul b 6.0, asp php etc.. pero realmente quiero usar Python (antes queria usar Perl). soy webmasters. gracias.! si alguien tiene untutorial de instalacion y donde encontrar los paquetes que orreran en mi win2000 por favor contestar ! bye! MoiSES g _________________________________________________________________ MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From luislopes3142003 en yahoo.com.ar Fri May 7 04:10:58 2004 From: luislopes3142003 en yahoo.com.ar (=?iso-8859-1?q?luis=20lopez?=) Date: Thu, 6 May 2004 23:10:58 -0300 (ART) Subject: Solicitud-orientacion Message-ID: <20040507021058.62694.qmail@web90001.mail.scd.yahoo.com> Quiero aprender el Lenguaje Python deseo alguna recomendacion, ademas de los manuales de instruccion para aprendiz (tengo conocimientos de programacion, en lenguajes como Visual Basic, Visual Fox (se que estos son extructurados) quieromalgo de libre programacion.- Bernardo --------------------------------- ¿Buscás un auto? Encontralo en Yahoo! Autos ¡Más de 4000 clasificados todos los días! Usados - 0 km - Vendé el tuyo From luislopes3142003 en yahoo.com.ar Fri May 7 04:17:22 2004 From: luislopes3142003 en yahoo.com.ar (=?iso-8859-1?q?luis=20lopez?=) Date: Thu, 6 May 2004 23:17:22 -0300 (ART) Subject: Solicitud-orientacion Message-ID: <20040507021722.88680.qmail@web90009.mail.scd.yahoo.com> Quiero aprender el Lenguaje Python deseo alguna recomendacion, ademas de los manuales de instruccion para aprendiz (tengo conocimientos de programacion, en lenguajes como Visual Basic, Visual Fox (se que estos son extructurados) quiero algo de libre programacion.- Bernardo --------------------------------- ¿Buscás un auto? Encontralo en Yahoo! Autos ¡Más de 4000 clasificados todos los días! Usados - 0 km - Vendé el tuyo From attor_sahe en hotmail.com Fri May 7 09:08:50 2004 From: attor_sahe en hotmail.com (Attor Sahe) Date: Fri, 07 May 2004 02:08:50 -0500 Subject: Hablando de algunas cosas de python Message-ID: Recorde que un amigo me comento una noticia de Python de principios de año. Talvez algunos ya la habran visto pero es interesante... _________________________________________________________________ MSN. Más Útil Cada Día http://www.msn.es/intmap/ From attor_sahe en hotmail.com Fri May 7 09:13:13 2004 From: attor_sahe en hotmail.com (Attor Sahe) Date: Fri, 07 May 2004 02:13:13 -0500 Subject: Solicitud-orientacion Message-ID: Que te parece si comienzas con la pagina oficial de Python? :-b.... http://www.python.org/ >From: luis lopez >Reply-To: La lista de python en castellano >To: python-es en aditel.org >Subject: [Python-es] Solicitud-orientacion >Date: Thu, 6 May 2004 23:17:22 -0300 (ART) > > Quiero aprender el Lenguaje Python >deseo alguna recomendacion, ademas de los manuales de instruccion para >aprendiz (tengo conocimientos de programacion, en lenguajes como Visual >Basic, Visual Fox (se que estos son extructurados) >quiero algo de libre programacion.- > >Bernardo > > > > > > >--------------------------------- > ¿Buscás un auto? >Encontralo en Yahoo! Autos >¡Más de 4000 clasificados todos los días! >Usados - 0 km - Vendé el tuyo >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ MSN. Más Útil Cada Día http://www.msn.es/intmap/ From rapto en arrakis.es Fri May 7 10:22:44 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Fri, 07 May 2004 10:22:44 +0200 Subject: Solicitud-orientacion In-Reply-To: <20040507021722.88680.qmail@web90009.mail.scd.yahoo.com> References: <20040507021722.88680.qmail@web90009.mail.scd.yahoo.com> Message-ID: <409B4754.8050401@arrakis.es> Empieza por http://www.hispapython.org/ luis lopez wrote: > Quiero aprender el Lenguaje Python >deseo alguna recomendacion, ademas de los manuales de instruccion para aprendiz (tengo conocimientos de programacion, en lenguajes como Visual Basic, Visual Fox (se que estos son extructurados) >quiero algo de libre programacion.- > >Bernardo > > > > > > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Fri May 7 10:37:50 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Fri, 7 May 2004 10:37:50 +0200 Subject: Instalacion de Python In-Reply-To: References: Message-ID: <200405071037.50861.py@ch3m4.org> El Jueves, 6 de Mayo de 2004 20:03, moises Griott escribió: > hola quiero instalar Python en mi pc es un win2000 profesional, baje de > todo pero no consigio empezar a trabajar, tengo nocion de programacion ya > que uso visaul b 6.0, asp php etc.. > pero realmente quiero usar Python (antes queria usar Perl). > soy webmasters. ¿Cuál es el problema? Para empezar con python sólo necesitas el python y las extensiones para windows. El python lo pillas de www.python.org: http://www.python.org/ftp/python/2.3.3/Python-2.3.3.exe Y las extensiones del proyecto sourceforge pywin32: http://sourceforge.net/project/showfiles.php?group_id=78018 Descarga la versión de pywin para python 2.3 Los instalas y a trabajar. Abre el pythonwin que es el IDE de python para windows y lee la completa documentación que tienes en el menú de ayuda. Una vez cojas soltura, puedes dedicarte a hacer páginas web, según la idea que tengas pensada. Con el cherrypy (http://www.cherrypy.org) es realmente sencillo hacer páginas web para windows, sin necesitar nada más que el python para su ejecución. Si quieres mirar algo más fuerte mira el zope para windows (http://www.zope.org), o mucho mejor, instálate el Plone2 para windows (http://www.plone.org) que viene con zope y un panel de control propio. From py en ch3m4.org Fri May 7 11:57:00 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Fri, 7 May 2004 11:57:00 +0200 Subject: Hablando de algunas cosas de python In-Reply-To: References: Message-ID: <200405071157.00670.py@ch3m4.org> El Viernes, 7 de Mayo de 2004 09:08, Attor Sahe escribió: > Recorde que un amigo me comento una noticia de Python de principios de año. > Talvez algunos ya la habran visto pero es interesante... Creo que esta lista no admite adjuntos. ¿Puedes poner el texto de la noticia a la que te refieres? (o un enlace a donde se pueda leer) From pepe en diselpro.com Fri May 7 20:35:40 2004 From: pepe en diselpro.com (Pepe aracil) Date: Fri, 7 May 2004 18:35:40 +0000 (UTC) Subject: Contador de referencias. Message-ID: <200405082037.26887.pepe@diselpro.com> Hola. ¿Sabe alguien como puedo saber el numero de referencias que apuntan a la misma instancia de una clase? Esque no se me ejecuta el __del__() de una instancia y quero localizar donde está el problema. Gracias. From smonux en telefonica.net Fri May 7 21:52:26 2004 From: smonux en telefonica.net (Samuel) Date: Fri, 7 May 2004 21:52:26 +0200 Subject: Contador de referencias. In-Reply-To: <200405082037.26887.pepe@diselpro.com> References: <200405082037.26887.pepe@diselpro.com> Message-ID: <20040507195226.GA940@tizona.no-ip.org> El sáb, 08 de may de 2004, a las 08:37:26 +0200, Pepe aracil dijo: > Hola. > > ¿Sabe alguien como puedo saber el numero de referencias que apuntan a la misma > instancia de una clase? > > Esque no se me ejecuta el __del__() de una instancia y quero localizar donde > está el problema. > > Gracias. > Échale un vistazo a esta receta: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65333 básicamente, consiste en aprovechar las opciones de debugging del módulo gc. Saludos Samuel /--------------------------------------------------------\ |Samuel Moñux Salvador ----- smonux at telefonica.net| |PGP Key pgp.rediris.es ----- KeyID 0x822583C2 | \--------------------------------------------------------/ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From chema en chema.homelinux.org Sat May 8 09:49:35 2004 From: chema en chema.homelinux.org (=?ISO-8859-1?Q?Jos=E9_Mar=EDa?= Mateos) Date: Sat, 08 May 2004 09:49:35 +0200 Subject: [OT] Adjuntos en la lista (era: Re: Hablando de algunas cosas de python) In-Reply-To: <200405071157.00670.py@ch3m4.org> References: <200405071157.00670.py@ch3m4.org> Message-ID: <1084002574.4716.5.camel@chema.homelinux.org> El vie, 07-05-2004 a las 11:57, Chema Cortés escribió: > Creo que esta lista no admite adjuntos. ¿Puedes poner el texto de la noticia a > la que te refieres? (o un enlace a donde se pueda leer) Escribí hace unos días al administrador de la lista para preguntarle si podía admitir adjuntos PGP (es decir, las firmas que muchos mandamos en nuestros mensajes para verificar nuestra identidad). Al quitar la firma los mensajes quedan realmente mal formateados (como el mensaje de smonux en telefonica.net de ayer a las 21:52, o este mismo cuando lo leáis). ¿Alguien conoce al administrador? No creo que sea demasiado duro permitirlos (Mailman tiene un formulario donde se puede configurar qué tipos MIME se permiten en la lista). Un saludo. -- ** Blog Overflow: http://chema.homelinux.org ** No software patents in Europe http://EuropeSwPatentFree.hispalinux.es - EuropeSwPatentFree ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Sat May 8 11:42:05 2004 From: rapto en arrakis.es (=?ISO-8859-15?Q?Marcos_S=E1nchez_Provencio?=) Date: Sat, 08 May 2004 11:42:05 +0200 Subject: [OT] Adjuntos en la lista (era: Re: Hablando de algunas cosas de python) In-Reply-To: <1084002574.4716.5.camel@chema.homelinux.org> References: <200405071157.00670.py@ch3m4.org> <1084002574.4716.5.camel@chema.homelinux.org> Message-ID: <409CAB6D.3030601@arrakis.es> Esto es lo que pone ahora en la lista. Se admiten sugerencias (por cierto, que el mensaje se ve bien...): filter_content: message/delivery-status application/x-zip-compressed application/octet-stream pass_mime_types: multipart/mixed multipart/alternative text/plain multipart/signed convert_html_to_plaintext: Sí filter_action: Descartar José María Mateos wrote: >El vie, 07-05-2004 a las 11:57, Chema Cortés escribió: > > >>Creo que esta lista no admite adjuntos. ¿Puedes poner el texto de la noticia a >>la que te refieres? (o un enlace a donde se pueda leer) >> >> > > Escribí hace unos días al administrador de la lista para preguntarle si >podía admitir adjuntos PGP (es decir, las firmas que muchos mandamos en >nuestros mensajes para verificar nuestra identidad). Al quitar la firma >los mensajes quedan realmente mal formateados (como el mensaje de >smonux en telefonica.net de ayer a las 21:52, o este mismo cuando lo >leáis). > > ¿Alguien conoce al administrador? No creo que sea demasiado duro >permitirlos (Mailman tiene un formulario donde se puede configurar qué >tipos MIME se permiten en la lista). > > Un saludo. > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From chema en chema.homelinux.org Sat May 8 11:45:22 2004 From: chema en chema.homelinux.org (=?ISO-8859-1?Q?Jos=E9_Mar=EDa?= Mateos) Date: Sat, 08 May 2004 11:45:22 +0200 Subject: [OT] Adjuntos en la lista (era: Re: Hablando de algunas cosas de python) In-Reply-To: <409CAB6D.3030601@arrakis.es> References: <200405071157.00670.py@ch3m4.org> <1084002574.4716.5.camel@chema.homelinux.org> <409CAB6D.3030601@arrakis.es> Message-ID: <1084009521.4712.17.camel@chema.homelinux.org> El sáb, 08-05-2004 a las 11:42, Marcos Sánchez Provencio escribió: > pass_mime_types: > multipart/mixed > multipart/alternative > text/plain > multipart/signed Pues es curioso, porque a mí los mensajes firmados me llegan sin la firma :-? -- ** Blog Overflow: http://chema.homelinux.org ** No software patents in Europe http://EuropeSwPatentFree.hispalinux.es - EuropeSwPatentFree ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From ch3m4 en ch3m4.org Sat May 8 12:12:46 2004 From: ch3m4 en ch3m4.org (Chema =?iso-8859-1?b?Q29ydOlz?=) Date: Sat, 8 May 2004 03:12:46 -0700 Subject: Contador de referencias. In-Reply-To: <200405082037.26887.pepe@diselpro.com> References: <200405082037.26887.pepe@diselpro.com> Message-ID: <1084011166.409cb29e2e64d@ch3m4.org> Mensaje citado por Pepe aracil : > ¿Sabe alguien como puedo saber el numero de referencias que apuntan a la > misma > instancia de una clase? > > Esque no se me ejecuta el __del__() de una instancia y quero localizar donde > está el problema. Por lo general, es mala idea tener control del momento exacto cuando se "destruye" un objeto. Podría ocurrir que ya no haya referencias al objeto y que sin embargo el gc todavía no haya pasado a "recoger la basura" para destruirlo. Para saber el número de referencias a un objeto mira gc.get_referrers . Sólo te dará los contenedores que tienen alguna referencias al objeto (podrían ser más de una referencia por contenedor), pero quizás te sirva para saber dónde tienes las referencias rebeldes. Según lo que quieras hacer, puede que te sirva de algo un mensaje sobre programación orientada a eventos que mandé hace dos meses donde usaba referencias "débiles" para evitar problemas con la destrucción de objetos: http://listas.aditel.org/archivos/python-es/2004-March/004159.html From okktawio en yahoo.com.ar Thu May 6 03:13:05 2004 From: okktawio en yahoo.com.ar (Octavio Bruzzone) Date: Wed, 5 May 2004 22:13:05 -0300 Subject: Sourceforge o algo parecido Message-ID: <200405052213.05495.okktawio@yahoo.com.ar> Hola, tengo una dudilla. Resulta que he creado unos modulos de python para hacer unos calculos estadisticos (analisis de mantel), y he pensado en distribuirlos por alli bajo licencia GNU/Gpl. Estuve pensando en poner un sitio web para eso, pero me tento la idea de meterlo en Sourceforge. El punto es que cuando me puse a buscar como añadir proyectos nuevos, realmente no pude encontrar como hacer. ¿Sabe alguien como hacer eso?. ¿Hay alguna opcion mejor?. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From chema en chema.homelinux.org Sat May 8 12:26:06 2004 From: chema en chema.homelinux.org (=?ISO-8859-1?Q?Jos=E9_Mar=EDa?= Mateos) Date: Sat, 08 May 2004 12:26:06 +0200 Subject: Sourceforge o algo parecido In-Reply-To: <200405052213.05495.okktawio@yahoo.com.ar> References: <200405052213.05495.okktawio@yahoo.com.ar> Message-ID: <1084011966.4720.19.camel@chema.homelinux.org> El jue, 06-05-2004 a las 03:13, Octavio Bruzzone escribió: > ¿Sabe alguien como hacer eso?. ¿Hay alguna opcion mejor?. Si te lías son Sourceforge, Hispalinux comenzó hace poco un proyecto en español con el mismo objetivo: http://www.software-libre.org Un saludo. -- ** Blog Overflow: http://chema.homelinux.org ** No software patents in Europe http://EuropeSwPatentFree.hispalinux.es - EuropeSwPatentFree ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Sat May 8 12:52:50 2004 From: rapto en arrakis.es (=?UTF-8?B?TWFyY29zIFPDoW5jaGV6IFByb3ZlbmNpbw==?=) Date: Sat, 08 May 2004 12:52:50 +0200 Subject: Sourceforge o algo parecido In-Reply-To: <200405052213.05495.okktawio@yahoo.com.ar> References: <200405052213.05495.okktawio@yahoo.com.ar> Message-ID: <409CBC02.4030708@arrakis.es> Octavio Bruzzone wrote: >Hola, tengo una dudilla. Resulta que he creado unos modulos de python para >hacer unos calculos estadisticos (analisis de mantel), y he pensado en >distribuirlos por alli bajo licencia GNU/Gpl. Estuve pensando en poner un >sitio web para eso, pero me tento la idea de meterlo en Sourceforge. El punto >es que cuando me puse a buscar como añadir proyectos nuevos, realmente no >pude encontrar como hacer. > >¿Sabe alguien como hacer eso?. ¿Hay alguna opcion mejor?. > > > Lo usual es darse de alta como usuario. Una vez que eres usuario registrado, das de alta el proyecto. Como dice JMM, mira en http://www.software-libre.org/ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From aldo en gmc.dynip.com Sat May 8 17:38:49 2004 From: aldo en gmc.dynip.com (Aldo Hugo Vargas Rodriguez) Date: Sat, 08 May 2004 10:38:49 -0500 Subject: Optimizacion de recursos. Message-ID: <1084030729.12644.15.camel@sistemas.gmc.dynip.com> Hola buen día tengan. El problema o sugerencia es el siguiente, espero me pueden echar un mano en que es lo mejor. Tengo un sistema que va a estar embedido en un aplicación, para no irme más lejos, es un sistema que va a controlar sistemas de despacho de combustible, bueno el hecho es que el control lo estoy haciendo en python, la versión que estoy utilizando en este momento es la 2.2. Bueno el sistema esta basado en python y algunos programas en C para comunicarme con los puertos de I/O ya que python es muy lento en ese sentido, la idea es optimizar los recursos ya que, el uso del procesador en algunos procesos se los come y tengo algunos problemas luego para leer los puertos de I/O. Estoy utilizando actualmente el os.system y el commands.getstatusoutput para mandar llamar los programas hechos en C, estoy analizando y estos son los que se comen el uso del procesador, se preguntaran por que están hechos en C y no utilize el python, bueno por que estoy controlando una pantalla LCD (pantalla de cristal liquido) y al hacer las pruebas el python era demasiado lento para controlarla, por lo que se decidio en C y esta funciona de maravilla. Bueno en concreto por que ya estoy hablando como perico jejejeje. ¿Puedo optimizar las llamadas de os.system y el commands.getstatusotput para bajar el uso del CPU? ¿Si actualizo el python en su versión más nueva y tendre alguna mejoría? que me recomiendan ustedes si no puedo optimizar el uso de estos recursos???? Les agradeceria cualquier sugerencia, explicación al respecto. Gracias de antemano. From ripolles en aditel.org Sat May 8 18:08:09 2004 From: ripolles en aditel.org (Daniel Ripolles) Date: Sat, 08 May 2004 18:08:09 +0200 Subject: [OT] Adjuntos en la lista (era: Re: Hablando de algunas cosas de python) In-Reply-To: <1084009521.4712.17.camel@chema.homelinux.org> References: <200405071157.00670.py@ch3m4.org> <1084002574.4716.5.camel@chema.homelinux.org> <409CAB6D.3030601@arrakis.es> <1084009521.4712.17.camel@chema.homelinux.org> Message-ID: <1084032489.857.0.camel@pezon> El sáb, 08-05-2004 a las 11:45, José María Mateos escribió: > --=-MI5EiH4Etu85yfxaxUrI > Content-Type: text/plain; charset=iso-8859-15 > Content-Transfer-Encoding: quoted-printable > > El s=E1b, 08-05-2004 a las 11:42, Marcos S=E1nchez Provencio escribi=F3: > > pass_mime_types: > > multipart/mixed > > multipart/alternative > > text/plain > > multipart/signed > > Pues es curioso, porque a m=ED los mensajes firmados me llegan sin la > firma :-? A mí también, y con el encoding hecho un asquito oiga :P > --=20 > ** Blog Overflow: http://chema.homelinux.org ** > No software patents in Europe > http://EuropeSwPatentFree.hispalinux.es - EuropeSwPatentFree > > --=-MI5EiH4Etu85yfxaxUrI-- > > ______________________________________________________________________ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es -- Daniel Ripolles ( Eru ) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From chema en chema.homelinux.org Sat May 8 18:24:35 2004 From: chema en chema.homelinux.org (=?ISO-8859-1?Q?Jos=E9_Mar=EDa?= Mateos) Date: Sat, 08 May 2004 18:24:35 +0200 Subject: [OT] Adjuntos en la lista (era: Re: Hablando de algunas cosas de python) In-Reply-To: <1084032489.857.0.camel@pezon> References: <200405071157.00670.py@ch3m4.org> <1084002574.4716.5.camel@chema.homelinux.org> <409CAB6D.3030601@arrakis.es> <1084009521.4712.17.camel@chema.homelinux.org> <1084032489.857.0.camel@pezon> Message-ID: <1084033475.4715.75.camel@chema.homelinux.org> El sáb, 08-05-2004 a las 18:08, Daniel Ripolles escribió: > > Pues es curioso, porque a m=ED los mensajes firmados me llegan sin la > > firma :-? > > A mí también, y con el encoding hecho un asquito oiga :P A eso me refería :D Es curioso, según la configuración de la lista debería pasar el adjunto sin ningún problema... Saludos. -- ** Blog Overflow: http://chema.homelinux.org ** No software patents in Europe http://EuropeSwPatentFree.hispalinux.es - EuropeSwPatentFree ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From hernan en orgmf.com.ar Sat May 8 19:21:25 2004 From: hernan en orgmf.com.ar (=?iso-8859-1?Q?Hernan_Mart=EDnez_Foffani?=) Date: Sat, 8 May 2004 19:21:25 +0200 Subject: Optimizacion de recursos. In-Reply-To: <1084030729.12644.15.camel@sistemas.gmc.dynip.com> References: <1084030729.12644.15.camel@sistemas.gmc.dynip.com> Message-ID: Aldo Hugo Vargas Rodriguez > ... > Bueno en concreto por que ya estoy hablando como perico jejejeje. > ¿Puedo optimizar las llamadas de os.system y el > commands.getstatusotput para bajar el uso del CPU? ¿Si actualizo el > python en su versión más nueva y tendre alguna mejoría? > > que me recomiendan ustedes si no puedo optimizar el uso de estos > recursos???? Son solo ideas (habría que conocer bien los detalles del problema) podrías pensar en: - enlazar (link) el python y los programas en C en una sola aplicación. te evitas la creación de procesos. - hacer un servidor de aplicación con los servicios en C. usa un protocolo adhoc para que el python y los servicios en C se comuniquen entre si. Pero lo importante es que establezcas sin ninguna duda *exactamente* qué parte de tu sistema es la que consume los recursos. Mi receta para estos problemas suele ser siempre la misma: 1. Establece tu cota de calidad (¿cuánto de lento es lo aceptable?) 2. Mide tiempos. 3. Haz un ranking con los mas lentos primero. 4. De los mas lentos elige los mas *baratos* (en horas/H y en impacto sobre el resto del sistema) para optimizar. 5. Elije el que creas tiene mejor cociente %mejora_T / esfuerzo 5. Optimizalo. 6. Repite desde el 2 si supera la cota establecida en 1. 7. Si llegaste al 7 apaga el ordenador y vete a tomar unas birras. ;-) El "ente" (sea proceso, metodo, algoritmo, objeto, etc.) que optimices tiene que ser *medible*. Usando esta receta podría aventurar que actualizar el python es muy barato pero no deja de ser un tiro a ciegas. (Sin embargo, tiene la ventaja añadida que te pones "a la par" de buena parte de la comunidad lo que no deja de ser una ventaja apreciable en cuanto a soporte.) Saludetes, -H. ... Umpf.... escribi mucho y dije poco... From rapto en arrakis.es Sat May 8 19:20:43 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Sat, 08 May 2004 19:20:43 +0200 Subject: Optimizacion de recursos. In-Reply-To: <1084030729.12644.15.camel@sistemas.gmc.dynip.com> References: <1084030729.12644.15.camel@sistemas.gmc.dynip.com> Message-ID: <409D16EB.1090705@arrakis.es> Podrías intentar hacerte módulos de extensión a Python en C (en la documentación está bastante clarito cómo hacerlos) y tendrías la velocidad de C en donde hace falta y la facilidad de Python en el resto de la aplicación. Además, te ahorrarías todo el trasiego de cambios de entorno de ejecución. http://pyspanishdoc.sourceforge.net/ext/intro.html Aldo Hugo Vargas Rodriguez wrote: >Hola buen día tengan. El problema o sugerencia es el siguiente, espero >me pueden echar un mano en que es lo mejor. > >Tengo un sistema que va a estar embedido en un aplicación, para no irme >más lejos, es un sistema que va a controlar sistemas de despacho de >combustible, bueno el hecho es que el control lo estoy haciendo en >python, la versión que estoy utilizando en este momento es la 2.2. > >Bueno el sistema esta basado en python y algunos programas en C para >comunicarme con los puertos de I/O ya que python es muy lento en ese >sentido, la idea es optimizar los recursos ya que, el uso del procesador >en algunos procesos se los come y tengo algunos problemas luego para >leer los puertos de I/O. > >Estoy utilizando actualmente el os.system y el commands.getstatusoutput >para mandar llamar los programas hechos en C, estoy analizando y estos >son los que se comen el uso del procesador, se preguntaran por que están >hechos en C y no utilize el python, bueno por que estoy controlando una >pantalla LCD (pantalla de cristal liquido) y al hacer las pruebas el >python era demasiado lento para controlarla, por lo que se decidio en C >y esta funciona de maravilla. > >Bueno en concreto por que ya estoy hablando como perico jejejeje. >¿Puedo optimizar las llamadas de os.system y el commands.getstatusotput >para bajar el uso del CPU? >¿Si actualizo el python en su versión más nueva y tendre alguna mejoría? > >que me recomiendan ustedes si no puedo optimizar el uso de estos >recursos???? > >Les agradeceria cualquier sugerencia, explicación al respecto. Gracias >de antemano. > > > > From malotor en telefonica.net Sat May 8 21:35:41 2004 From: malotor en telefonica.net (Manuel =?ISO-8859-1?Q?L=F3pez?= Torrent) Date: Sat, 08 May 2004 21:35:41 +0200 Subject: Tutorial de wxPython Message-ID: <1084044941.6436.11.camel@Zeus> Estoy recopilando enlaces de tutoriales de wxPython ( a ser posible en castellano ). Tengo recopilador estos si alguien tiene alguno mas que envíe un correo - http://wxjs.sourceforge.net/overview.html ( Repaso a las clases ) - http://wiki.wxpython.org/index.cgi/Getting_20Started#head-d6e1fea3b402afb9fa31fab9e8bcaa98477af268 ( Empezando con wxPython ) - http://www.wxwindows.org/manuals/2.4.2/wx500.htm ( Otro overview de clases ) - http://marcobari.altervista.org/wxpython/cap1.html ( Magnífico tutorial pero está en italiano ) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From soulkiller en teleline.es Sat May 8 22:57:47 2004 From: soulkiller en teleline.es (Soul) Date: Sat, 08 May 2004 22:57:47 +0200 Subject: Tutorial de wxPython Message-ID: <1084049867.7034.1.camel@Zeus> Estoy recopilando enlaces de tutoriales de wxPython ( a ser posible en castellano ). Tengo recopilador estos si alguien tiene alguno mas que envíe un correo - http://wxjs.sourceforge.net/overview.html ( Repaso a las clases ) - http://wiki.wxpython.org/index.cgi/Getting_20Started#head-d6e1fea3b402afb9fa31fab9e8bcaa98477af268 ( Empezando con wxPython ) - http://www.wxwindows.org/manuals/2.4.2/wx500.htm ( Otro overview de clases ) - http://marcobari.altervista.org/wxpython/cap1.html ( Magnífico tutorial pero está en italiano ) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From morillas en posta.unizar.es Sun May 9 01:17:27 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Sun, 9 May 2004 01:17:27 +0200 Subject: Tutorial de wxPython In-Reply-To: <1084044941.6436.11.camel@Zeus> References: <1084044941.6436.11.camel@Zeus> Message-ID: <20040508231727.GA1173@marmota> Asunto: [Python-es] Tutorial de wxPython Fecha: sáb, may 08, 2004 at 09:35:41 +0200 Citando a Manuel López Torrent (malotor en telefonica.net): > Estoy recopilando enlaces de tutoriales de wxPython ( a ser posible en > castellano ). Tengo recopilador estos si alguien tiene alguno mas que > envíe un correo En español hay muy poco (por decir algo). Yo estoy empezando a recoger algo de material para las clases (básicamente traducciones de pequeños fragmentos de los materiales que tú citas) Puedes verlo en: http://155.210.19.185:8080/ccia/nodes/2004-05-02/wxPyIni > > - http://wxjs.sourceforge.net/overview.html ( Repaso a las clases ) > - > http://wiki.wxpython.org/index.cgi/Getting_20Started#head-d6e1fea3b402afb9fa31fab9e8bcaa98477af268 ( Empezando con wxPython ) > - http://www.wxwindows.org/manuals/2.4.2/wx500.htm ( Otro overview de > clases ) > - http://marcobari.altervista.org/wxpython/cap1.html ( Magnífico > tutorial pero está en italiano ) -- luis miguel From erny en sicem.biz Sun May 9 15:52:58 2004 From: erny en sicem.biz (Ernesto Revilla) Date: Sun, 09 May 2004 15:52:58 +0200 Subject: Contador de referencias. In-Reply-To: <20040507195226.GA940@tizona.no-ip.org> References: <200405082037.26887.pepe@diselpro.com> <20040507195226.GA940@tizona.no-ip.org> Message-ID: <409E37BA.2020703@sicem.biz> Hola, yo tuve el mismo problema, especialmente con referencias circulares. Para saber cuántas referencias hay, usa: sys.getrefcount(obj)-1 Puedes usar: from gc import get_referrers getreferrers(instancia) de devuelve una lista de todos los objetos que tienen referencias a tu instancia entra las cuales pueden encontrarse otras instancias, módulos, diccionarios, listas, etc. a lo mejor te merece la pena echar un vistazo al módulo weakref. Saludos, Erny Samuel escribió: >El sáb, 08 de may de 2004, a las 08:37:26 +0200, Pepe aracil dijo: > > >>Hola. >> >>¿Sabe alguien como puedo saber el numero de referencias que apuntan a la misma >>instancia de una clase? >> >>Esque no se me ejecuta el __del__() de una instancia y quero localizar donde >>está el problema. >> >>Gracias. >> >> >> > >Échale un vistazo a esta receta: >http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65333 > >básicamente, consiste en aprovechar las opciones de debugging del módulo >gc. > >Saludos > >Samuel > >/--------------------------------------------------------\ >|Samuel Moñux Salvador ----- smonux at telefonica.net| >|PGP Key pgp.rediris.es ----- KeyID 0x822583C2 | >\--------------------------------------------------------/ > > >------------------------------------------------------------------------ > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > From ch3m4 en ch3m4.org Sun May 9 13:12:39 2004 From: ch3m4 en ch3m4.org (Chema =?iso-8859-1?b?Q29ydOlz?=) Date: Sun, 9 May 2004 04:12:39 -0700 Subject: Tutorial de wxPython In-Reply-To: <20040508231727.GA1173@marmota> References: <1084044941.6436.11.camel@Zeus> <20040508231727.GA1173@marmota> Message-ID: <1084101159.409e1227dbbb3@www.ch3m4.org> Mensaje citado por luis miguel morillas : > En español hay muy poco (por decir algo). Yo estoy empezando a recoger algo > de material para las clases (básicamente traducciones de pequeños fragmentos > de > los materiales que tú citas) Puedes verlo en: > > http://155.210.19.185:8080/ccia/nodes/2004-05-02/wxPyIni Para las jornadas de Zaralinux (http://jornadas.zaralinux.org) me habían pedido un taller de wxPython. Como veo demasiado fuerte explicar el wx en un par de horas, al final pensaba hacer un taller de pythoncard; pero si quieres podemos quedar para desarrollar algo más esa documentación de wxPython e incluso hacer a medias el taller. (Contéstame en privado mejor) From tjavier en usuarios.retecal.es Sun May 9 13:54:40 2004 From: tjavier en usuarios.retecal.es (T. Javier Robles Prado) Date: Sun, 9 May 2004 13:54:40 +0200 Subject: Tutorial de wxPython In-Reply-To: <1084049867.7034.1.camel@Zeus> References: <1084049867.7034.1.camel@Zeus> Message-ID: <200405091354.40806.tjavier@usuarios.retecal.es> El Sábado, 8 de Mayo de 2004 22:57, Soul escribió: Si te sirve, escribí hace unos meses un tutorial de wxGlade + wxPython. Creo que puede ser útil ya que xwGlade facilita mucho el trabajo con wxPython. http://milugar.homeip.net:8080/mi_lugar/trabajos/wxglade-tutorial/index_html Está también traducido al inglés por si te es útil -- Un saludo, Tomás Javier Robles Prado http://milugar.doesntexist.org ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From visuallinux en hotmail.com Sun May 9 22:31:55 2004 From: visuallinux en hotmail.com (fernando miguel villarroel noriel) Date: Sun, 09 May 2004 20:31:55 +0000 Subject: Lista Python Message-ID: Hola Chema te quiero consultar por la lista python, se que tu eres activo miembro, lo que ocurre es que no se por que no recibo mensajes de la lista python-es en aditel.org. Bueno saludos. Fernando Villarroel _________________________________________________________________ Consigue aquí las mejores y mas recientes ofertas de trabajo en América Latina y USA: http://latam.msn.com/empleos/ From visuallinux en hotmail.com Sun May 9 22:17:46 2004 From: visuallinux en hotmail.com (fernando miguel villarroel noriel) Date: Sun, 09 May 2004 20:17:46 +0000 Subject: No recibo mensajes. Message-ID: Hola quiero saber que ocurre no recibo mensajes de la Lista. Fernando Villarroel _________________________________________________________________ MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/ From jaime en iaa.es Mon May 10 09:15:23 2004 From: jaime en iaa.es (Jaime Perea) Date: Mon, 10 May 2004 09:15:23 +0200 Subject: Optimizacion de recursos. In-Reply-To: <1084030729.12644.15.camel@sistemas.gmc.dynip.com> References: <1084030729.12644.15.camel@sistemas.gmc.dynip.com> Message-ID: <200405100915.23458.jaime@iaa.es> El Sábado, 8 de Mayo de 2004 17:38, Aldo Hugo Vargas Rodriguez escribió: > Hola buen día tengan. El problema o sugerencia es el siguiente, espero > me pueden echar un mano en que es lo mejor. > > Tengo un sistema que va a estar embedido en un aplicación, para no irme > más lejos, es un sistema que va a controlar sistemas de despacho de >.... Yo también pienso que lo más sencillo sería implementar sobre el propio python esas llamadas a C. Una manera muy fácil es usar swig http://www.swig.org -- Jaime D. Perea Duarte. jaime en iaa.es Linux registered user #10472 Dep. Astrofisica Extragalactica. Instituto de Astrofisica de Andalucia (CSIC) Apdo. 3004, 18080 Granada, Spain. From rapto en arrakis.es Mon May 10 10:46:54 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Mon, 10 May 2004 10:46:54 +0200 Subject: Lista Python In-Reply-To: References: Message-ID: <409F417E.7030303@arrakis.es> Estabas desactivado por rebotes excesivos. Te he activado, pero creo que podrías haberlo hecho tú mismo entrando en tus preferencias, en la página de la lista. fernando miguel villarroel noriel wrote: > Hola Chema te quiero consultar por la lista python, se que tu eres > activo miembro, lo que ocurre es que no se por que no recibo mensajes > de la lista python-es en aditel.org. > > Bueno saludos. > > Fernando Villarroel > > _________________________________________________________________ From py en ch3m4.org Mon May 10 11:15:50 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Mon, 10 May 2004 11:15:50 +0200 Subject: No recibo mensajes. In-Reply-To: References: Message-ID: <200405101115.50167.py@ch3m4.org> El Domingo, 9 de Mayo de 2004 22:17, fernando miguel villarroel noriel escribió: > Hola quiero saber que ocurre no recibo mensajes de la Lista. Creo que la lista ha estado unas horas desconectada. Ahora parece que va bien, y que no ha perdido mensajes. Si sigues sin recibir los mensajes contacta con el administrador: python-es-owner en aditel.org From morillas en posta.unizar.es Mon May 10 11:49:38 2004 From: morillas en posta.unizar.es (Luis Miguel Morillas) Date: Mon, 10 May 2004 11:49:38 +0200 Subject: Tutorial de wxPython In-Reply-To: <1084101159.409e1227dbbb3@www.ch3m4.org> References: <1084044941.6436.11.camel@Zeus> <20040508231727.GA1173@marmota> <1084101159.409e1227dbbb3@www.ch3m4.org> Message-ID: <1084182578.409f503263c1e@webmail.unizar.es> Qué tal el finde, Chema? Te iba a llamar ayer, pero terminé tarde con los _deberes_ de los niños ;-) Respecto a lo de wxPython, mi experiencia es limitada, pero me parece muy interesante. Además quería preparar algo para las jornadas, pero el domingo no estaré (típica comunión de sobrino) y el sábado no lo tengo seguro. Así que mejor prepara algo acompañado :). Así que cuenta conmigo para preparar algo. Si se hace el sábado, a lo mejor puedeo estar. Un saludo, -- Luis Miguel From danielgj en wanadoo.es Mon May 10 12:35:47 2004 From: danielgj en wanadoo.es (Daniel Garcia Jones) Date: Mon, 10 May 2004 12:35:47 +0200 Subject: Secuenciacion correcta de dialogos con PyGTK y GLADE Message-ID: <1084185346.924.23.camel@bajo> Hola! Estoy escribiendo una aplicacion PyGTK y tengo un pequeño problema con el orden en que me muestra un par de dialogos. El flujo es algo parecido a esto: def on_menuGuardar_activate(self,widget): if cambios(): self.ventanaCambios.show() if self.validar_xml(): hacer cosas else: self.ventanaXMLInvalido.show() El caso es, para guardar un documento, primero se mira si ha habido cambios. Si si muestra un dialogo que permite aceptar o descartar los cambios. Despues de esto se valida (es un documento XML) contra un esquema y despues se guarda. Si no hay cambios funciona sin problema, pero cuando si hay cambios, al mismo tiempo que muestra el dialogo de aceptar/descartar cambios, valida, con lo que la validacion se hace antes de aceptar/decsrtar los cambios. La pregunta es, ¿existe una forma de hacer que se espere a que haya aceptado o descartado los cambios antes de validar? No se me ocurre como hacerlo ya que deberia ser capaz de recoger un valor de salida de self.ventanaCambios.show() y no se puede, no? Espero que haya quedado entendible la pregunta que creo que me he liado un poco. Un saludo (y gracias de antemano) -- ------------------------------------------------ Daniel García Jones danielgj en wanadoo.es | dgarcia en it.uc3m.es http://montoya.aig.uc3m.es/~jones ------------------------------------------------ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pepe en diselpro.com Mon May 10 14:49:09 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Mon, 10 May 2004 14:49:09 +0200 Subject: Secuenciacion correcta de dialogos con PyGTK y GLADE In-Reply-To: <1084185346.924.23.camel@bajo> References: <1084185346.924.23.camel@bajo> Message-ID: <200405101449.09986.pepe@diselpro.com> Hola. Me parece que tendras que crear la ventana que te valida los cambios como un dialogo modal. (gtk.Dialog) La forma correcta de llamarlo es con gtk.Dialog.run(). Esta función se espera hasta que el usuario hace click! en una opción (Aceptar,Cancelar,...) Aqui tienes una función mia para generar dialogos modales "al vuelo" del estilo Pregunta/Respuesta. def QuestionDialog(title = None,parent = None,label = None,icon = None , buttons = (gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT)): if title == None and parent != None: title = parent.get_title() dialog = gtk.Dialog(title, parent,gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, buttons) dialog.set_border_width(5) dialog.set_resizable(gtk.FALSE) if icon: image = gtk.Image() image.set_from_stock(icon,gtk.ICON_SIZE_DIALOG) dialog.vbox.pack_start(image,gtk.TRUE,gtk.TRUE,5) image.show() if label: label = gtk.Label(label) dialog.vbox.pack_start(label,gtk.TRUE,gtk.TRUE,5) label.show() result = dialog.run() ----------------------- Y la llamo así. result = QuestionDialog(parent = VentanaPadre, label = U"¿Desea eliminar este contacto?", icon = gtk.STOCK_DIALOG_WARNING, title = U"¡¡ Atención !!") if result != gtk.RESPONSE_ACCEPT: return ....... El Lunes, 10 de Mayo de 2004 12:35, Daniel Garcia Jones escribió: > Hola! > > Estoy escribiendo una aplicacion PyGTK y tengo un pequeño problema con > el orden en que me muestra un par de dialogos. > > El flujo es algo parecido a esto: > > def on_menuGuardar_activate(self,widget): > > if cambios(): > self.ventanaCambios.show() > if self.validar_xml(): > hacer cosas > else: > self.ventanaXMLInvalido.show() > > El caso es, para guardar un documento, primero se mira si ha habido > cambios. Si si muestra un dialogo que permite aceptar o descartar los > cambios. Despues de esto se valida (es un documento XML) contra un > esquema y despues se guarda. > > Si no hay cambios funciona sin problema, pero cuando si hay cambios, al > mismo tiempo que muestra el dialogo de aceptar/descartar cambios, > valida, con lo que la validacion se hace antes de aceptar/decsrtar los > cambios. > > La pregunta es, ¿existe una forma de hacer que se espere a que haya > aceptado o descartado los cambios antes de validar? No se me ocurre como > hacerlo ya que deberia ser capaz de recoger un valor de salida de > self.ventanaCambios.show() y no se puede, no? > > Espero que haya quedado entendible la pregunta que creo que me he liado > un poco. > > Un saludo (y gracias de antemano) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pepe en diselpro.com Mon May 10 15:03:41 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Mon, 10 May 2004 15:03:41 +0200 Subject: Contador de referencias. In-Reply-To: <200405082037.26887.pepe@diselpro.com> References: <200405082037.26887.pepe@diselpro.com> Message-ID: <200405101503.41827.pepe@diselpro.com> Ok. Ya está resuelto. La verdad es que estaba liosa la cosa, pero ya he pillado donde está la referencia circular. Tengo algunas preguntillas para quedarme tranquilo si alguna vez me dejo referencias circulares sin depurar. ¿Se encarga el gc de purgar todos los objetos a los que ya no se puede acceder o tendré que lanzar un proceso "manual"? ¿Habeis tenido problemas de memoria porque el gc no ha actuado como se esperaba? Gracias. El Sábado, 8 de Mayo de 2004 20:37, Pepe aracil escribió: > Hola. > > ¿Sabe alguien como puedo saber el numero de referencias que apuntan a la > misma instancia de una clase? > > Esque no se me ejecuta el __del__() de una instancia y quero localizar > donde está el problema. > > Gracias. > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From danielgj en wanadoo.es Mon May 10 15:14:35 2004 From: danielgj en wanadoo.es (Daniel Garcia Jones) Date: Mon, 10 May 2004 15:14:35 +0200 Subject: Secuenciacion correcta de dialogos con PyGTK y GLADE In-Reply-To: <200405101449.09986.pepe@diselpro.com> References: <1084185346.924.23.camel@bajo> <200405101449.09986.pepe@diselpro.com> Message-ID: <1084194875.924.52.camel@bajo> El lun, 10-05-2004 a las 14:49, Pepe Aracil escribió: > Hola. > > > Me parece que tendras que crear la ventana que te valida los cambios como un dialogo modal. (gtk.Dialog) > > La forma correcta de llamarlo es con gtk.Dialog.run(). Esta función se espera hasta que el usuario hace > click! en una opción (Aceptar,Cancelar,...) > > > Aqui tienes una función mia para generar dialogos modales "al vuelo" del estilo Pregunta/Respuesta. > > > > def QuestionDialog(title = None,parent = None,label = None,icon = None , > buttons = (gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT)): > > if title == None and parent != None: > title = parent.get_title() > > > dialog = gtk.Dialog(title, parent,gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, > buttons) > > dialog.set_border_width(5) > dialog.set_resizable(gtk.FALSE) > > > if icon: > image = gtk.Image() > image.set_from_stock(icon,gtk.ICON_SIZE_DIALOG) > dialog.vbox.pack_start(image,gtk.TRUE,gtk.TRUE,5) > image.show() > > if label: > label = gtk.Label(label) > dialog.vbox.pack_start(label,gtk.TRUE,gtk.TRUE,5) > label.show() > > result = dialog.run() > > > ----------------------- > > Y la llamo así. > > result = QuestionDialog(parent = VentanaPadre, > label = U"¿Desea eliminar este contacto?", > icon = gtk.STOCK_DIALOG_WARNING, > title = U"¡¡ Atención !!") > > if result != gtk.RESPONSE_ACCEPT: return > > ....... > > > > > El Lunes, 10 de Mayo de 2004 12:35, Daniel Garcia Jones escribió: > > Hola! > > > > Estoy escribiendo una aplicacion PyGTK y tengo un pequeño problema con > > el orden en que me muestra un par de dialogos. > > > > El flujo es algo parecido a esto: > > > > def on_menuGuardar_activate(self,widget): > > > > if cambios(): > > self.ventanaCambios.show() > > if self.validar_xml(): > > hacer cosas > > else: > > self.ventanaXMLInvalido.show() > > > > El caso es, para guardar un documento, primero se mira si ha habido > > cambios. Si si muestra un dialogo que permite aceptar o descartar los > > cambios. Despues de esto se valida (es un documento XML) contra un > > esquema y despues se guarda. > > > > Si no hay cambios funciona sin problema, pero cuando si hay cambios, al > > mismo tiempo que muestra el dialogo de aceptar/descartar cambios, > > valida, con lo que la validacion se hace antes de aceptar/decsrtar los > > cambios. > > > > La pregunta es, ¿existe una forma de hacer que se espere a que haya > > aceptado o descartado los cambios antes de validar? No se me ocurre como > > hacerlo ya que deberia ser capaz de recoger un valor de salida de > > self.ventanaCambios.show() y no se puede, no? > > > > Espero que haya quedado entendible la pregunta que creo que me he liado > > un poco. > > > > Un saludo (y gracias de antemano) Vaya! Es justo lo que necesito. Muchas gracias :) -- ------------------------------------------------ Daniel García Jones danielgj en wanadoo.es | dgarcia en it.uc3m.es http://montoya.aig.uc3m.es/~jones ------------------------------------------------ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Mon May 10 19:01:14 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Mon, 10 May 2004 19:01:14 +0200 Subject: Contador de referencias. In-Reply-To: <200405101503.41827.pepe@diselpro.com> References: <200405082037.26887.pepe@diselpro.com> <200405101503.41827.pepe@diselpro.com> Message-ID: <200405101901.15225.py@ch3m4.org> El Lunes, 10 de Mayo de 2004 15:03, Pepe Aracil escribió: > Tengo algunas preguntillas para quedarme tranquilo si alguna vez me dejo > referencias circulares sin depurar. > > ¿Se encarga el gc de purgar todos los objetos a los que ya no se puede > acceder o tendré que lanzar un proceso "manual"? Si te refieres a si hay diferencia alguna entre automático o manual, ninguna diferencia, a no ser que configures el gc para que no recolecte (con fines de depuración, claro está) > ¿Habeis tenido problemas de memoria porque el gc no ha actuado como se > esperaba? Pues sí, y es un problema grave de los recolectores de basura, no sólo de python. Por ejemplo, es un error común cuando usas varias ventanas, donde los controles de una ventana están enlazados con los controles de otra, lo que impide la destrucción de la ventana que enlaza y de todos los controles que la componen. A medida que se ejecuta la aplicación, la memoria se va llenando de ventanas y controles que no hay quien los elimine. Los recolectores de basura están provistos de algoritmos que manejan lo mejor que pueden las referencias circulares, por lo que casi se puede decir que cuando surgen problemas hay que buscar primero en el diseño de la aplicación que se esté haciendo. Aún así, hay una situación irresoluble que ocurre cuando las referencias circulares se establecen entre objetos que tienen su propio destructor (método __del__) ya que no se puede saber el orden en que hay que proceder a destruirlos. El gc simplemente los va acumulando en un contenedor llamado 'gc.garbage' Un ejemplo: >>> class P: ... def __del__(self): print "BORRAR" ... >>> p=P() >>> q=P() >>> p.x=q >>> q.x=p >>> del p,q >>> No hay mensaje, luego no ha destruído ningún objeto. Veamos dónde paran: >>> import gc >>> gc.collect () 4 >>> gc.garbage [<__main__.P instance at 0x402f8cac>, <__main__.P instance at 0x402f8ecc>] >>> A pesar de que hemos forzado la recolección de basura y que se han obtenido 4 referencias a destruir, seguimos sin ver los mensajes del destructor; las referencias están guardadas en gc.garbage y los objetos no han sido destruídos. Si esto fuera una aplicación más o menos compleja (eg: zope) al final tendríamos un objeto gc.garbage gigantesco malgastando memoria, y lo peor es que no hay forma de liberar esta memoria de ninguna manera sin salir de la aplicación. En la documentación habla de hacer 'del gc.garbage[:]' pero no funciona, y con cualquier cosa que haya probado como 'gc.garbage=[]'. Por eso, si no queda más remedio y hay que usar el método __del__ en una clase, la forma de evitarse problemas es emplear referencias débiles: >>> import weakref >>> class P: ... def __del__(self):print "BORRAR" ... def wref(self): return weakref.proxy(self) ... >>> p=P() >>> q=P() >>> p.x=q.wref() >>> q.x=p.wref() >>> >>> del p,q BORRAR BORRAR Y mucho cuidado a partir de aquí, ya que las referencias débiles quedan invalidadas en el momento que se destruyan las referencias fuertes, como ocurrirá sin darnos cuenta cuando se trabaja con variables locales. Lectura aconsejable: "PythonFAQ: ¿Cómo maneja python la memoria?": http://www.python.org/doc/faq/es/general.html#id43 From pepe en diselpro.com Mon May 10 19:15:55 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Mon, 10 May 2004 19:15:55 +0200 Subject: Contador de referencias. In-Reply-To: <200405101901.15225.py@ch3m4.org> References: <200405082037.26887.pepe@diselpro.com> <200405101503.41827.pepe@diselpro.com> <200405101901.15225.py@ch3m4.org> Message-ID: <200405101915.55503.pepe@diselpro.com> Gracias Chema.. Me ha quedado requeteclaro ;-) Saludos. El Lunes, 10 de Mayo de 2004 19:01, Chema Cortés escribió: > El Lunes, 10 de Mayo de 2004 15:03, Pepe Aracil escribió: > > Tengo algunas preguntillas para quedarme tranquilo si alguna vez me dejo > > referencias circulares sin depurar. > > > > ¿Se encarga el gc de purgar todos los objetos a los que ya no se puede > > acceder o tendré que lanzar un proceso "manual"? > > Si te refieres a si hay diferencia alguna entre automático o manual, > ninguna diferencia, a no ser que configures el gc para que no recolecte > (con fines de depuración, claro está) > > > ¿Habeis tenido problemas de memoria porque el gc no ha actuado como se > > esperaba? > > Pues sí, y es un problema grave de los recolectores de basura, no sólo de > python. > > Por ejemplo, es un error común cuando usas varias ventanas, donde los > controles de una ventana están enlazados con los controles de otra, lo que > impide la destrucción de la ventana que enlaza y de todos los controles que > la componen. A medida que se ejecuta la aplicación, la memoria se va > llenando de ventanas y controles que no hay quien los elimine. > > Los recolectores de basura están provistos de algoritmos que manejan lo > mejor que pueden las referencias circulares, por lo que casi se puede decir > que cuando surgen problemas hay que buscar primero en el diseño de la > aplicación que se esté haciendo. Aún así, hay una situación irresoluble que > ocurre cuando las referencias circulares se establecen entre objetos que > tienen su propio destructor (método __del__) ya que no se puede saber el > orden en que hay que proceder a destruirlos. El gc simplemente los va > acumulando en un contenedor llamado 'gc.garbage' > > Un ejemplo: > >>> class P: > > ... def __del__(self): print "BORRAR" > ... > > >>> p=P() > >>> q=P() > >>> p.x=q > >>> q.x=p > >>> del p,q > > No hay mensaje, luego no ha destruído ningún objeto. Veamos dónde paran: > >>> import gc > >>> gc.collect () > > 4 > > >>> gc.garbage > > [<__main__.P instance at 0x402f8cac>, <__main__.P instance at 0x402f8ecc>] > > > A pesar de que hemos forzado la recolección de basura y que se han obtenido > 4 referencias a destruir, seguimos sin ver los mensajes del destructor; las > referencias están guardadas en gc.garbage y los objetos no han sido > destruídos. Si esto fuera una aplicación más o menos compleja (eg: zope) al > final tendríamos un objeto gc.garbage gigantesco malgastando memoria, y lo > peor es que no hay forma de liberar esta memoria de ninguna manera sin > salir de la aplicación. En la documentación habla de hacer 'del > gc.garbage[:]' pero no funciona, y con cualquier cosa que haya probado como > 'gc.garbage=[]'. > > Por eso, si no queda más remedio y hay que usar el método __del__ en una > > clase, la forma de evitarse problemas es emplear referencias débiles: > >>> import weakref > >>> class P: > > ... def __del__(self):print "BORRAR" > ... def wref(self): return weakref.proxy(self) > ... > > >>> p=P() > >>> q=P() > >>> p.x=q.wref() > >>> q.x=p.wref() > >>> > >>> del p,q > > BORRAR > BORRAR > > > Y mucho cuidado a partir de aquí, ya que las referencias débiles quedan > invalidadas en el momento que se destruyan las referencias fuertes, como > ocurrirá sin darnos cuenta cuando se trabaja con variables locales. > > > > Lectura aconsejable: > "PythonFAQ: ¿Cómo maneja python la memoria?": > http://www.python.org/doc/faq/es/general.html#id43 > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From attor_sahe en hotmail.com Tue May 11 08:17:58 2004 From: attor_sahe en hotmail.com (Attor Sahe) Date: Tue, 11 May 2004 01:17:58 -0500 Subject: Sobre Python Message-ID: Perdon, pero pense que lo habia hecho correctamente: http://www.mobilewhack.com/programming/python/python_on_nokia_screenshots.html Espero que esta vez sea lo correcto _________________________________________________________________ Charla con tus amigos en línea mediante MSN Messenger: http://messenger.microsoft.com/es From svazquez en sadiel.es Tue May 11 11:33:44 2004 From: svazquez en sadiel.es (=?iso-8859-1?Q?=22V=E1zquez_Cascales=2C_Sebasti=E1n=22?=) Date: Tue, 11 May 2004 11:33:44 +0200 Subject: problema con HTTP_ACCEPT_LANGUAGE Message-ID: <618FF4C21278E44BB35BD24B86C2779603673551@CORREO.sadiel.es> Hola a todos. Soy relativamente nuevo en python, y he llegado a él a través de zope/plone. La raíz de mi asunto es que el servicio plone no trata por igual a todos los navegadores, esto es, con IE6 y mozilla firefox aparecen los mensajes traducidos al castellano. No ocurre lo mismo con mozilla, a pesar de tenerlo configurado en castellano. He tratado de poner en práctica las indicaciones de http://plone.org/documentation/howto/HowToSetTheDefaultLanguageForASite. Primero creo un script access_rule.py from Products.PythonScripts.standard import html_quote request = container.REQUEST RESPONSE = request.RESPONSE request.set(HTTP_ACCEPT_LANGUAGE, es) response.setCookie(LOCALIZER_LANGUAGE, es) después defino una regla de acceso en base a este script, pero sólo obtengo un error fatídico. Site Error An error was encountered while publishing this resource. Error Type: NameError Error Value: global name 'HTTP_ACCEPT_LANGUAGE' is not defined y el portal queda inutilizado!! He estado buscando por la documentación de python en python.org pero no he encontrado nada que me ayude. Supongo que tendría que importar una clase, pero no sé cuáles los las que soportan la sesión. Ni siquiera sé si es un asunto relacionado más con zope o si es púramente de python. Agradezco de antemano cualquier ayuda. Un saludo a todos. Sebastián Vázquez Cascales SADIEL, S.A. Pabellón de Portugal Isaac Newton s/n Isla de la Cartuja 41092 SEVILLA Tel. 955 04 36 00 Fax: 955 04 36 01 http://www.sadiel.es/ e-mail: svazquez en sadiel.es From py en ch3m4.org Tue May 11 12:08:28 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Tue, 11 May 2004 12:08:28 +0200 Subject: problema con HTTP_ACCEPT_LANGUAGE In-Reply-To: <618FF4C21278E44BB35BD24B86C2779603673551@CORREO.sadiel.es> References: <618FF4C21278E44BB35BD24B86C2779603673551@CORREO.sadiel.es> Message-ID: <200405111208.28425.py@ch3m4.org> El Martes, 11 de Mayo de 2004 11:33, "Vázquez Cascales, Sebastián" escribió: > Hola a todos. > Te respondo en la lista de zope, que es el lugar adecuado From soulkiller en teleline.es Tue May 11 20:44:21 2004 From: soulkiller en teleline.es (Soul) Date: Tue, 11 May 2004 20:44:21 +0200 Subject: pyton y acces Message-ID: <000a01c43787$f9475210$06001aac@pan> Necesito acceder a ficheros de acces desde python.He estado investigando un poco y he visto que con el win32com se puede pero me da el siguiente error al ejecutar estas instrucciones: IDLE 1.0.2 >>> import win32com.client >>> e=win32com.client.Dispatch("DAO.DBEngine.35") Traceback (most recent call last): File "", line 1, in -toplevel- e=win32com.client.Dispatch("DAO.DBEngine.35") File "C:\ARCHIV~1\PYTHON23\Lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx) File "C:\ARCHIV~1\PYTHON23\Lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatchAndUserName return (_GetGoodDispatch(IDispatch, clsctx), userName) File "C:\ARCHIV~1\PYTHON23\Lib\site-packages\win32com\client\dynamic.py", line 79, in _GetGoodDispatch IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch) com_error: (-2147221005, 'Cadena clase no v\xe1lida', None, None) >>> Si alguien tiene alguna idea le estaria muy agradecido Soul From tjavier en usuarios.retecal.es Tue May 11 21:41:43 2004 From: tjavier en usuarios.retecal.es (T. Javier Robles Prado) Date: Tue, 11 May 2004 21:41:43 +0200 Subject: pyton y acces In-Reply-To: <000a01c43787$f9475210$06001aac@pan> References: <000a01c43787$f9475210$06001aac@pan> Message-ID: <200405112141.43949.tjavier@usuarios.retecal.es> El Martes, 11 de Mayo de 2004 20:44, Soul escribió: > Necesito acceder a ficheros de acces desde python.He estado investigando un > poco y he visto que con el win32com se puede pero me da el siguiente error > al ejecutar estas instrucciones: Quizá esto te ayude: http://milugar.homeip.net:8080/mi_lugar/python/python-access/ -- Un saludo, Tomás Javier Robles Prado http://milugar.doesntexist.org From oziko en fusiondementes.com Wed May 12 01:07:37 2004 From: oziko en fusiondementes.com (oziko) Date: Tue, 11 May 2004 18:07:37 -0500 Subject: Proceso a segundo plano mientras la aplicacion corre normalmente Message-ID: <40A15CB9.9050703@fusiondementes.com> Que tal, estoy haciendo una reproductor de ogg utlizando pygame, esta aplicacion lanza una ventana que muestra las portadas y la lista de canciones disponibles, tiene una ventana de input donde intriduzco el numero de cancion que quiero reproducir, pro ejemplo el 5, entonces el programa reproduce la cancion 5.ogg utilizand ogg123, pero la pantalla de las portadas se queda congelada hasta que el repoductor termina, entonces se refresca y puedo volver a introducir numeros. La idea es que mientras se reproduce la cancion puedo yo navegar por las portadas y seguir introduciendo numeros que se añadiran a la cola de reproduccion. Como una rockola: Ahora un poco de codigo para explicarme mejor: while 1: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() screen.blit(uicover1, coverrect1) screen.blit(uicover2, coverrect2) screen.blit(uicover3, coverrect3) screen.blit(uicover4, coverrect4) numero = ask(screen, "->") try: queue.append(int(numero)) except ValueError: pass rep_ogg() print queue pygame.display.flip() este cacho es la que refrezca la pantalla, ls funcion ask(screen,"->") es la ventana de input que recoge el valor y lo mete a la cola, luego el ciclo manda a reproducir. def rep_ogg(): idtrack = queue.pop(0) ogg=ogg_path+str(idtrack)+'.ogg' pid = os.fork() if pid == 0: #os.popen3(ogg) os.execv('/usr/bin/ogg123', ('ogg123', ogg,)) nop, status = os.waitpid(pid, 0) return status esta funcion es la que reproduce, no se como mandar la reproduccion del ogg en segundo plano y salir de la funcion para poder refrezcar la pantalla y agregar mas numeros a la lista. Ojala me puedan orientar un poco, gracias. From py en ch3m4.org Wed May 12 09:51:15 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Wed, 12 May 2004 09:51:15 +0200 Subject: pyton y acces In-Reply-To: <000a01c43787$f9475210$06001aac@pan> References: <000a01c43787$f9475210$06001aac@pan> Message-ID: <200405120951.16028.py@ch3m4.org> El Martes, 11 de Mayo de 2004 20:44, Soul escribió: > Necesito acceder a ficheros de acces desde python.He estado investigando un > poco y he visto que con el win32com se puede pero me da el siguiente error > al ejecutar estas instrucciones: > > IDLE 1.0.2 > > >>> import win32com.client > >>> e=win32com.client.Dispatch("DAO.DBEngine.35") Posiblemente no sea ésta la cadena para acceder al motor jet. Comprueba la versión del motor, prueba con cadenas como r'DAO.DBEngine.36' ó r'DAO.DBEngine.40' Por cierto, te irá mejor con ADO en lugar de DAO (En la web que te dice Tomás Javier tienes información). From acastro en ciberdroide.com Wed May 12 11:06:02 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Wed, 12 May 2004 11:06:02 +0200 (CEST) Subject: Proceso a segundo plano mientras la aplicacion corre normalmente In-Reply-To: <40A15CB9.9050703@fusiondementes.com> References: <40A15CB9.9050703@fusiondementes.com> Message-ID: On Tue, 11 May 2004, oziko wrote: > Que tal, estoy haciendo una reproductor de ogg utlizando pygame, esta > aplicacion lanza una ventana que muestra las portadas y la lista de > canciones disponibles, tiene una ventana de input donde intriduzco el > numero de cancion que quiero reproducir, pro ejemplo el 5, entonces el > programa reproduce la cancion 5.ogg utilizand ogg123, pero la pantalla > de las portadas se queda congelada hasta que el repoductor termina, Hay un programita de demo realizado con pygame que es un juego con efectos de sonido y melodia de fondo. Se llama aliens.py. La melodia de fondo es 'house_lo.wav'. Ninguno de los efectos de sonido paraliza la acción del juego como es natural. La porción de código que te interesa supongo que es esta. =================================================== class dummysound: def play(self): pass def load_sound(file): if not pygame.mixer: return dummysound() file = os.path.join('data', file) try: sound = pygame.mixer.Sound(file) return sound except pygame.error: print 'Warning, unable to load,', file return dummysound() ...... ...... ...... ...... #load the sound effects boom_sound = load_sound('boom.wav') shoot_sound = load_sound('car_door.wav') if pygame.mixer: music = os.path.join('data', 'house_lo.wav') pygame.mixer.music.load(music) pygame.mixer.music.play(-1) =================================================== -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From lcatalin en siadv.com Wed May 12 18:01:51 2004 From: lcatalin en siadv.com (Catalin Lungu) Date: Wed, 12 May 2004 18:01:51 +0200 Subject: Conversion tipos de datos Message-ID: <000e01c4383a$7323ef50$c800a8c0@catalin> Hola, Un problemilla que tengo. Quiero convertir una tupla (100,150,255) en una cadena "(100,150,255)". Esto muy sencillo. Luego quiero hacer el proceso inverso "(100,150,255)" ---------> (100,150,255), pero no se como. Pido perdón si es una pregunta tonta. Un saludo, Catalin From lgs en sicem.biz Wed May 12 15:46:15 2004 From: lgs en sicem.biz (Lorenzo Gil Sanchez) Date: Wed, 12 May 2004 15:46:15 +0200 Subject: Conversion tipos de datos In-Reply-To: <000e01c4383a$7323ef50$c800a8c0@catalin> References: <000e01c4383a$7323ef50$c800a8c0@catalin> Message-ID: <1084369575.23496.17.camel@localhost.localdomain> Esta es una de las muchas formas de hacerlo: >>> cadena = '(100,150,255)' >>> lista = [int(numero) for numero in cadena[1:-1].split (',')] >>> lista [100, 150, 255] >>> tupla = tuple(lista) >>> tupla (100, 150, 255) El mié, 12-05-2004 a las 18:01, Catalin Lungu escribió: > Hola, > Un problemilla que tengo. > Quiero convertir una tupla (100,150,255) en una cadena "(100,150,255)". Esto muy sencillo. Luego quiero hacer el proceso inverso "(100,150,255)" ---------> (100,150,255), pero no se como. Pido perdón si es una pregunta tonta. > > Un saludo, > Catalin > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From jazpillaga en codesyntax.com Wed May 12 18:30:07 2004 From: jazpillaga en codesyntax.com (Josu Azpillaga) Date: Wed, 12 May 2004 18:30:07 +0200 Subject: Conversion tipos de datos In-Reply-To: <000e01c4383a$7323ef50$c800a8c0@catalin> References: <000e01c4383a$7323ef50$c800a8c0@catalin> Message-ID: <40A2510F.7010900@codesyntax.com> Catalin Lungu wrote: > Hola, > Un problemilla que tengo. > Quiero convertir una tupla (100,150,255) en una cadena "(100,150,255)". Esto muy sencillo. Luego quiero hacer el proceso inverso "(100,150,255)" ---------> (100,150,255), pero no se como. Pido perdón si es una pregunta tonta. > No se si es la forma más acertada, pero hay va una posibilidad: primero pasarlo a una lista y luego a un tupla. str = '(100,150,255)' lista = [] for item in str[1:-1].split(','): lista.append(item) print tuple(lista) Y todo esto en una línea: print tuple([int(item) for item in str[1:-1].split(',')]) Un saludo, Josu From pepe en diselpro.com Wed May 12 18:34:52 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Wed, 12 May 2004 18:34:52 +0200 Subject: Conversion tipos de datos In-Reply-To: <000e01c4383a$7323ef50$c800a8c0@catalin> References: <000e01c4383a$7323ef50$c800a8c0@catalin> Message-ID: <200405121834.52724.pepe@diselpro.com> No sé si la funcion eval estará mal vista en python o no (Llevo poco tiempo con este lenguaje) >>> x=eval('(1,2,3,4)') >>> x (1, 2, 3, 4) Saludos. El Miércoles, 12 de Mayo de 2004 18:01, Catalin Lungu escribió: > Hola, > Un problemilla que tengo. > Quiero convertir una tupla (100,150,255) en una cadena "(100,150,255)". > Esto muy sencillo. Luego quiero hacer el proceso inverso "(100,150,255)" > ---------> (100,150,255), pero no se como. Pido perdón si es una pregunta > tonta. > > Un saludo, > Catalin > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From FBatista en uniFON.com.ar Wed May 12 18:49:41 2004 From: FBatista en uniFON.com.ar (Batista, Facundo) Date: Wed, 12 May 2004 13:49:41 -0300 Subject: Conversion tipos de datos Message-ID: [Pepe Aracil] #- No sé si la funcion eval estará mal vista en python o no #- (Llevo poco tiempo #- con este lenguaje) #- #- >>> x=eval('(1,2,3,4)') #- >>> x #- (1, 2, 3, 4) No hay problema alguno con eval (y es la más recomendada en este caso). La única precaución que se debe tener es el string que se le pasa para que evalúe: debe confiarse en la fuente. Ojo con esto porque no es lo mismo pasarle a eval "(1,2,3)" que pasarle "os.remove('/')", por ejemplo... . Facundo From slezica en fibertel.com.ar Wed May 12 20:54:18 2004 From: slezica en fibertel.com.ar (=?iso-8859-1?Q?Sebasti=E1n_Lezica?=) Date: Wed, 12 May 2004 15:54:18 -0300 Subject: Conversion tipos de datos Message-ID: Asi también va, sin pasar los datos a una lista en el proceso, aunque no se si es lo mejor... str = '(100,150,255)' tupla =() for item in str[1:-1].split(','): tupla = tupla + (int(item),) Saludos!, Sebastian Lezica -----Mensaje original----- De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org]En nombre de Catalin Lungu Enviado el: Miércoles, 12 de Mayo del 2004 13:02 Para: La lista de python en castellano Asunto: [Python-es] Conversion tipos de datos Hola, Un problemilla que tengo. Quiero convertir una tupla (100,150,255) en una cadena "(100,150,255)". Esto muy sencillo. Luego quiero hacer el proceso inverso "(100,150,255)" ---------> (100,150,255), pero no se como. Pido perdón si es una pregunta tonta. Un saludo, Catalin _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rlezcano en mca.gov.py Wed May 12 23:18:33 2004 From: rlezcano en mca.gov.py (Roberto Lezcano) Date: Wed, 12 May 2004 17:18:33 -0400 Subject: Python & DB Ingres 6.4 Message-ID: <006601c43866$afb71f10$1a05058c@underworld> Hola a todos, hace un tiempo que soy un lector de esta lista, (soy paraguayo hay alguno por aqui ?), necesito acceder a una DB Ingres Ver 6.4, no lo puedo hacer vía ODBC por que el fabricante no provee un Driver para 32 Bits :-( . En algun lugar leí que python puede acceder a Ingres 6.4, alguien tiene alguna idéa de cómo hacerlo o donde encontrar alguna documentación al respecto ? Desde ya muchas gracias a todos, por que muchas veces me han dado respuestas sin que lo hayan advertido ;-) ... From morillas en posta.unizar.es Wed May 12 23:52:34 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Wed, 12 May 2004 23:52:34 +0200 Subject: Python & DB Ingres 6.4 In-Reply-To: <006601c43866$afb71f10$1a05058c@underworld> References: <006601c43866$afb71f10$1a05058c@underworld> Message-ID: <20040512215234.GA2560@marmota> Asunto: [Python-es] Python & DB Ingres 6.4 Fecha: mié, may 12, 2004 at 05:18:33 -0400 Citando a Roberto Lezcano (rlezcano en mca.gov.py): > Hola a todos, hace un tiempo que soy un lector de esta lista, (soy paraguayo hay alguno por aqui ?), necesito acceder a una DB Ingres Ver 6.4, no lo puedo hacer vía ODBC por que el fabricante no provee un Driver para 32 Bits :-( . En algun lugar leí que python puede acceder a Ingres 6.4, alguien tiene alguna idéa de cómo hacerlo o donde encontrar alguna documentación al respecto ? > No he usado nunca Ingres, pero según lo que leo en el db-sig [1], hay una interfaz db-apì para acceder a ingres [2]. Ya nos contarás :) [1] http://python.org/topics/database/modules.html [2] http://www.informatik.uni-rostock.de/~hme/software/ > Desde ya muchas gracias a todos, por que muchas veces me han dado respuestas sin que lo hayan advertido ;-) ... Un saludo, -- Luis Miguel No a las patentes de software en Europa EuropeSwPatentFree http://EuropeSwPatentFree.hispalinux.es From lcatalin en siadv.com Thu May 13 08:19:25 2004 From: lcatalin en siadv.com (Catalin Lungu) Date: Thu, 13 May 2004 08:19:25 +0200 Subject: Conversion tipos de datos References: <000e01c4383a$7323ef50$c800a8c0@catalin> <200405121834.52724.pepe@diselpro.com> Message-ID: <001601c438b2$3df1d6d0$c800a8c0@catalin> Muchas gracias a todos. Esto es lo que queria lo del eval. Necesitaba usarlo en una asignación y no podia meter varias lineas y tampoco llamar a una funcion. From oziko en fusiondementes.com Thu May 13 17:02:39 2004 From: oziko en fusiondementes.com (oziko) Date: Thu, 13 May 2004 10:02:39 -0500 Subject: Proceso a segundo plano mientras la aplicacion corre normalmente In-Reply-To: References: Message-ID: <40A38E0F.90102@fusiondementes.com> hola, estaba revisando la doc de pygame, pero solo he visto reproduccion de archivos wav,, han visto reproduccion de oggs con pygame? Antonio Castro wrote: > On Tue, 11 May 2004, oziko wrote: > > >>Que tal, estoy haciendo una reproductor de ogg utlizando pygame, esta >>aplicacion lanza una ventana que muestra las portadas y la lista de >>canciones disponibles, tiene una ventana de input donde intriduzco el >>numero de cancion que quiero reproducir, pro ejemplo el 5, entonces el >>programa reproduce la cancion 5.ogg utilizand ogg123, pero la pantalla >>de las portadas se queda congelada hasta que el repoductor termina, > > > > Hay un programita de demo realizado con pygame que es un juego con > efectos de sonido y melodia de fondo. Se llama aliens.py. La melodia > de fondo es 'house_lo.wav'. Ninguno de los efectos de sonido paraliza > la acción del juego como es natural. La porción de código que te > interesa supongo que es esta. > > =================================================== > > class dummysound: > def play(self): pass > > def load_sound(file): > if not pygame.mixer: return dummysound() > file = os.path.join('data', file) > try: > sound = pygame.mixer.Sound(file) > return sound > except pygame.error: > print 'Warning, unable to load,', file > return dummysound() > > ...... > ...... > ...... > ...... > > #load the sound effects > boom_sound = load_sound('boom.wav') > shoot_sound = load_sound('car_door.wav') > if pygame.mixer: > music = os.path.join('data', 'house_lo.wav') > pygame.mixer.music.load(music) > pygame.mixer.music.play(-1) > =================================================== > > From visuallinux en hotmail.com Thu May 13 18:39:45 2004 From: visuallinux en hotmail.com (fernando miguel villarroel noriel) Date: Thu, 13 May 2004 16:39:45 +0000 Subject: Python Qt Message-ID: Hola quise probar kdevelop y crear una aplicacion Python Qt, pero al compilar me da el siguiente error: from qt import * Traceback (most recent call last): File "", line 1, in ? ImportError: No module named qt Alguna idea. Fernando villarroel _________________________________________________________________ Las mejores tiendas, los precios mas bajos, entregas en todo el mundo, YupiMSN Compras: http://latam.msn.com/compras/ From zoso en demiurgo.org Thu May 13 18:21:09 2004 From: zoso en demiurgo.org (Esteban Manchado =?iso-8859-1?Q?Vel=E1zquez?=) Date: Thu, 13 May 2004 17:21:09 +0100 Subject: Python Qt In-Reply-To: References: Message-ID: <20040513162108.GN961@demiurgo.org> On Thu, May 13, 2004 at 04:39:45PM +0000, fernando miguel villarroel noriel wrote: > Hola quise probar kdevelop y crear una aplicacion Python Qt, pero al > compilar me da el siguiente error: > > from qt import * > Traceback (most recent call last): > File "", line 1, in ? > ImportError: No module named qt ¿Tienes instalado el módulo de Python-Qt? ¿? El error que te da es que no encuentra el módulo. En Debian se llama python-qt3, en otras distribuciones, ni idea. -- EuropeSwPatentFree - http://EuropeSwPatentFree.hispalinux.es ¡Ayuda a extenderlo por la red en firmas, web o lo que sea! Help spread it through the Net in signatures, webpages, whatever! ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jhacu1 en puj.edu.co Thu May 13 22:19:58 2004 From: jhacu1 en puj.edu.co (Jhon Alexander Camacho Urdinola) Date: Thu, 13 May 2004 15:19:58 -0500 Subject: =?iso-8859-1?q?Ejecuci=F3n_de_aplicaciones_Python?= Message-ID: Hola: Me gustaría saber si hay algo como el JRE de java que sea para Python, la situacion es que necesito desarrollar una aplicación en python para un computador que no tiene el interprete y la verdad creo que es un desperdicio de espacio instalarlo solo para ejecutar dicha aplicación. Gracias From danilistas en micorreo.cai.es Thu May 13 23:20:06 2004 From: danilistas en micorreo.cai.es (dani) Date: Thu, 13 May 2004 23:20:06 +0200 Subject: =?ISO-8859-1?Q?Re:__Ejecuci=F3n_de_aplicaciones_?= Python In-Reply-To: References: Message-ID: <200405132320060843.02F573F5@smtp.micorreo.cai.es> Si usas windows, puedes probar el py2exe. Convierte a exe los programas. http://starship.python.net/crew/theller/py2exe/ *********** REPLY SEPARATOR *********** On 13/05/2004 at 15:19 Jhon Alexander Camacho Urdinola wrote: >Hola: > >Me gustaría saber si hay algo como el JRE de java que sea para Python, la >situacion es que necesito desarrollar una aplicación en python para un >computador que no tiene el interprete y la verdad creo que es un >desperdicio de espacio instalarlo solo para ejecutar dicha aplicación. > >Gracias >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es From morillas en posta.unizar.es Thu May 13 23:47:19 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Thu, 13 May 2004 23:47:19 +0200 Subject: =?iso-8859-1?Q?Ejecuci=F3?= =?iso-8859-1?Q?n?= de aplicaciones Python In-Reply-To: References: Message-ID: <20040513214719.GA2198@marmota> Asunto: [Python-es] Ejecución de aplicaciones Python Fecha: jue, may 13, 2004 at 03:19:58 -0500 Citando a Jhon Alexander Camacho Urdinola (jhacu1 en puj.edu.co): > Hola: > > Me gustaría saber si hay algo como el JRE de java que sea para Python, la situacion es que necesito desarrollar una aplicación en python para un computador que no tiene el interprete y la verdad creo que es un desperdicio de espacio instalarlo solo para ejecutar dicha aplicación. > Creo que cualquiera de estas utilidades puede servirte: http://computronix.com/utilities.shtml#freeze http://www.mcmillan-inc.com/install1.html http://starship.python.net/crew/theller/py2exe/ Un saludo, -- Luis Miguel No a las patentes de software en Europa EuropeSwPatentFree http://EuropeSwPatentFree.hispalinux.es From lopez en esrf.fr Fri May 14 09:13:25 2004 From: lopez en esrf.fr (Angel Lopez =?iso-8859-1?Q?Mu=F1oz?=) Date: Fri, 14 May 2004 09:13:25 +0200 Subject: Python Qt In-Reply-To: <20040513162108.GN961@demiurgo.org> References: <20040513162108.GN961@demiurgo.org> Message-ID: <5.1.0.14.0.20040514091016.00ad19f0@mailserv.esrf.fr> At 17:21 13/05/2004 +0100, you wrote: >On Thu, May 13, 2004 at 04:39:45PM +0000, fernando miguel villarroel >noriel wrote: > > Hola quise probar kdevelop y crear una aplicacion Python Qt, pero al > > compilar me da el siguiente error: > > > > from qt import * > > Traceback (most recent call last): > > File "", line 1, in ? > > ImportError: No module named qt Problablemente no tengas instalado pyqt. puedes conseguirlo en esta página: http://www.riverbankcomputing.co.uk/pyqt/ Requisitos previos son tener instalado qt y SIP (este úlyimo tambien en la página de arriba). Buena suerte y si tienes algun problemilla, pues intentaremos ayudarte. From jaime en iaa.es Fri May 14 10:11:35 2004 From: jaime en iaa.es (Jaime Perea) Date: Fri, 14 May 2004 10:11:35 +0200 Subject: =?iso-8859-1?q?Ejecuci=F3n=20de=20aplicaciones?= Python In-Reply-To: References: Message-ID: <200405141011.35847.jaime@iaa.es> El Jueves 13 Mayo 2004 22:19, Jhon Alexander Camacho Urdinola escribió: > Hola: > > Me gustaría saber si hay algo como el JRE de java que sea para Python, la > situacion es que necesito desarrollar una aplicación en python para un > computador que no tiene el interprete y la verdad creo que es un > desperdicio de espacio instalarlo solo para ejecutar dicha aplicación. > > Gracias En mi Mandrake: rpm -qi python .... Name : python Relocations: (not relocateable) Version : 2.3 Vendor: MandrakeSoft Release : 3mdk Size : 15478650 rpm -qi j2re ... Name : j2re Relocations: (not relocateable) Version : 1.4.2_03 Vendor: Sun Microsystems Release : fcs Size : 37683009 Verdaderamente, ¿es que si merece tener la jre y no python?. :-) -- Jaime D. Perea Duarte. Linux registered user #10472 Dep. Astrofisica Extragalactica. Instituto de Astrofisica de Andalucia (CSIC) Apdo. 3004, 18080 Granada, Spain. From C.H.PROY en terra.es Fri May 14 12:27:07 2004 From: C.H.PROY en terra.es (C.H.PROY) Date: Fri, 14 May 2004 12:27:07 +0200 Subject: Lanzar un programa como Excel.exe Message-ID: <1a41971a5194.1a51941a4197@terra.es> Buenos dias En honor a la verdad soy un principiante de la programacion en Python, y tengo un problema: Utilizo el entorno de programacion que utiliza Poser5 y quisiera abrir una hoja excel (winxp) Un cordial saludo Carlos ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jcanto en hispasec.com Fri May 14 12:32:19 2004 From: jcanto en hispasec.com (Julio Canto) Date: Fri, 14 May 2004 12:32:19 +0200 Subject: Lanzar un programa como Excel.exe In-Reply-To: <1a41971a5194.1a51941a4197@terra.es> References: <1a41971a5194.1a51941a4197@terra.es> Message-ID: <40A4A033.9010908@hispasec.com> C.H.PROY wrote: >Buenos dias > >En honor a la verdad soy un principiante de la programacion en Python, >y tengo un problema: >Utilizo el entorno de programacion que utiliza Poser5 y quisiera abrir >una hoja excel (winxp) > >Un cordial saludo >Carlos > > Prueba con esto (instala primero el paquete de win32 de python): # clase para manejo basico de excel class clsExcel: # constructor def __init__(self, archivo=None): import win32com.client self.CARGA = 0 try: self.xlApp = win32com.client.Dispatch('Excel.Application') self.xlBook = self.xlApp.Workbooks.Add() self.filename = '' self.CARGA = 1 except: self.CARGA = 0 # para salvar el archivo def Salva(self, archivo): import os os.remove(archivo) self.xlBook.SaveAs(archivo) # mete un valor def Pon(self,x,y,valor): self.xlApp.ActiveSheet.Cells(y,x).Value = valor # lee un valor def Lee(self,x,y): return self.xlApp.Cells(y,x).Value # cierra el excel y libera el objeto def Cierra(self): self.xlBook.Close(SaveChanges=1) del self.xlApp x = clsExcel() print "introduciendo" x.Pon(1,1,"CD") x.Pon(2,1,"SESION") x.Pon(3,1,"TOTAL") x.Pon(1,2,"20.04.2004") x.Pon(2,2,"MAÑANA") x.Pon(3,2,200.54) x.Pon(2,3,"NOCHE") x.Pon(3,3,100.23) x.Pon(4,3,"DIARIO") x.Pon(5,3,"=SUM(C2:C3)") x.Pon(1,4,"21.04.2004") x.Pon(2,4,"MAÑANA") x.Pon(3,4,123.23) x.Pon(2,5,"NOCHE") x.Pon(3,5,230.23) x.Pon(4,5,"DIARIO") x.Pon(5,5,"=SUM(C4:C5)") x.Pon(2,7,"TOTAL") x.Pon(3,7,"=SUM(C2:C5)") print "salvando" x.Salva("c:\\uno.xls") print "cerrando" x.Cierra() Es una cutrez, pero es un acercamiento sencillito que estoy haciendo para hacer estas cosas :) Un saludo, JC From niobezion en yahoo.com.mx Fri May 14 22:06:42 2004 From: niobezion en yahoo.com.mx (=?iso-8859-1?q?Niobe=20Zion?=) Date: Fri, 14 May 2004 15:06:42 -0500 (CDT) Subject: GNUEnterprise Message-ID: <20040514200642.42286.qmail@web61003.mail.yahoo.com> Hola Lista, Alguien me podria ayudar a reolver este pequeña problema con GNUEnterprise, me envia este mensaje de error cuande trato de ejecutar el Designer. Saludo. [root en localhost etc]# gnue-designer Traceback (most recent call last): File "/usr/local/bin/gnue-designer", line 33, in ? designer = Designer.Designer () File "/usr/local/gnue/lib/python/gnue/designer/Designer.py", line 95, in __init__ GClientApp.__init__(self, application="forms",defaults=ConfigOptions) File "/usr/local/gnue/lib/python/gnue/common/apps/GBaseApp.py", line 92, in __init__ help=_('Displays the version information for this program.') ), File "/usr/local/gnue/lib/python/gnue/common/apps/i18n.py", line 132, in translate return (catalog.ugettext (message)).encode (encoding, enc_policy) LookupError: unknown encoding: es [root en localhost etc]# gnue-designer Traceback (most recent call last): File "/usr/local/bin/gnue-designer", line 33, in ? designer = Designer.Designer () File "/usr/local/gnue/lib/python/gnue/designer/Designer.py", line 95, in __init__ GClientApp.__init__(self, application="forms",defaults=ConfigOptions) File "/usr/local/gnue/lib/python/gnue/common/apps/GBaseApp.py", line 92, in __init__ help=_('Displays the version information for this program.') ), File "/usr/local/gnue/lib/python/gnue/common/apps/i18n.py", line 132, in translate return (catalog.ugettext (message)).encode (encoding, enc_policy) LookupError: unknown encoding: es _________________________________________________________ Do You Yahoo!? La mejor conexión a internet y 25MB extra a tu correo por $100 al mes. http://net.yahoo.com.mx From ch3m4 en ch3m4.org Sat May 15 02:48:23 2004 From: ch3m4 en ch3m4.org (Chema =?iso-8859-1?b?Q29ydOlz?=) Date: Fri, 14 May 2004 17:48:23 -0700 Subject: GNUEnterprise In-Reply-To: <20040514200642.42286.qmail@web61003.mail.yahoo.com> References: <20040514200642.42286.qmail@web61003.mail.yahoo.com> Message-ID: <1084582103.40a568d73d0a5@ch3m4.org> Mensaje citado por Niobe Zion : > Hola Lista, Alguien me podria ayudar a reolver este > pequeña problema con GNUEnterprise, me envia este > mensaje de error cuande trato de ejecutar el Designer. > > [root en localhost etc]# gnue-designer > Traceback (most recent call last): > File "/usr/local/bin/gnue-designer", line 33, in ? > designer = Designer.Designer () > File > "/usr/local/gnue/lib/python/gnue/designer/Designer.py", > line 95, in __init__ > GClientApp.__init__(self, > application="forms",defaults=ConfigOptions) > File > "/usr/local/gnue/lib/python/gnue/common/apps/GBaseApp.py", > line 92, in __init__ > help=_('Displays the version information for this > program.') ), > File > "/usr/local/gnue/lib/python/gnue/common/apps/i18n.py", > line 132, in translate > return (catalog.ugettext (message)).encode > (encoding, enc_policy) > LookupError: unknown encoding: es Es un problema con la traducción, que no existe para el Español (es). Para español mexicano está sin acabar. Lo mejor que puedes hacer es cambiar el "locale" para que utilice la codificación en inglés, algo así: $ LC_ALL=en gnue-designer PD: utiliza el usuario 'root' solo para lo necesario From carlosmarin en grupocsm.com Sat May 15 12:39:31 2004 From: carlosmarin en grupocsm.com (Carlos Marin) Date: Sat, 15 May 2004 12:39:31 +0200 Subject: etiquetas Message-ID: <001a01c43a68$e8bf08a0$77adca51@portatilcmi> necesito saber como parametrizar el tamaño de la hoja con el reportlabs para conseguir una impresion en una impresora de tickets, o en su defecto, imprimir etiquetes en hija normal ¿alquien me puede decir como? From visuallinux en hotmail.com Mon May 17 04:56:10 2004 From: visuallinux en hotmail.com (fernando miguel villarroel noriel) Date: Mon, 17 May 2004 02:56:10 +0000 Subject: Python Qt DOCUMENTDETAILS Message-ID: Hola ahora al ejecutar la aplicacion Python Qt desarrollada en Kdevelop me reclama que no existe el modulo llamamdo documendetails import documentdetails De todas forma correji error el error comentando dichas lineas, pero en lo sucesivo como agrego esa libreria o modulo python. >From: Esteban Manchado Velázquez >Reply-To: La lista de python en castellano >To: python-es en aditel.org >Subject: Re: [Python-es] Python Qt >Date: Thu, 13 May 2004 17:21:09 +0100 > >On Thu, May 13, 2004 at 04:39:45PM +0000, fernando miguel villarroel noriel >wrote: > > Hola quise probar kdevelop y crear una aplicacion Python Qt, pero al > > compilar me da el siguiente error: > > > > from qt import * > > Traceback (most recent call last): > > File "", line 1, in ? > > ImportError: No module named qt > > ¿Tienes instalado el módulo de Python-Qt? ¿? El error que te da es que >no >encuentra el módulo. En Debian se llama python-qt3, en otras >distribuciones, >ni idea. > >-- >EuropeSwPatentFree - http://EuropeSwPatentFree.hispalinux.es >¡Ayuda a extenderlo por la red en firmas, web o lo que sea! >Help spread it through the Net in signatures, webpages, whatever! >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Charla con tus amigos en línea mediante MSN Messenger: http://messenger.latam.msn.com/ From YourpadreMB en netscape.net Sun May 16 01:39:21 2004 From: YourpadreMB en netscape.net (Miguel B) Date: Sat, 15 May 2004 19:39:21 -0400 Subject: wxpython: cambiar un codigo en event Message-ID: <6DAF5628.352D7C29.441BE8AE@netscape.net> como no encontre una lista de wxpython español espero que aqui me puedan ayudar en un evento char quiero cambiar que cuando presionen una letra minuscula se cambie a mayuscula __________________________________________________________________ Introducing the New Netscape Internet Service. Only $9.95 a month -- Sign up today at http://isp.netscape.com/register Netscape. Just the Net You Need. New! Netscape Toolbar for Internet Explorer Search from anywhere on the Web and block those annoying pop-ups. Download now at http://channels.netscape.com/ns/search/install.jsp From rarok en iespana.es Mon May 17 18:51:12 2004 From: rarok en iespana.es (Rarok) Date: Mon, 17 May 2004 18:51:12 +0200 Subject: problema con mi primer programa tonto Message-ID: <40A8ED80.5030508@iespana.es> Hola, estoy interesado en aprender programación y de entrada me he decantado por el python pero no consigo que funcione código de lo mas sencillo (creo que puede ser por la sintaxis), creo que no hace falta explicar cuál es la idea (solo para probar como funciona el programa) #Esta es mi primera práctica de python del cuál no tengo ni idea edad= input("Dime tus años " ) while edad<1000000: if edad==0: print "No has nacido" elif 0 References: <6DAF5628.352D7C29.441BE8AE@netscape.net> Message-ID: <1084815975.5466.121.camel@IMAGINE> import wx import string class Prueba: def __init__(self): self.txt = wx.TextCtrl(self, -1) wx.EVT_CHAR(self.txtCtrl, self.onChar) def onChar(self, event): key = event.GetKeyCode() ch = chr(key) if ch not in string.ascii_lowercase: # la letra no está en minúscula return self.txt.AppendText(ch.upper()) # se pasa a mayúsculas y se añade al text-control event.Skip() # se evita el proceso del evento return El dom, 16-05-2004 a las 00:39, Miguel B escribió: > como no encontre una lista de wxpython español espero que aqui me puedan ayudar > > en un evento char quiero cambiar que cuando presionen una letra minuscula se cambie a mayuscula > > __________________________________________________________________ > Introducing the New Netscape Internet Service. > Only $9.95 a month -- Sign up today at http://isp.netscape.com/register > > Netscape. Just the Net You Need. > > New! Netscape Toolbar for Internet Explorer > Search from anywhere on the Web and block those annoying pop-ups. > Download now at http://channels.netscape.com/ns/search/install.jsp > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pepe en diselpro.com Mon May 17 19:47:47 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Mon, 17 May 2004 19:47:47 +0200 Subject: problema con mi primer programa tonto In-Reply-To: <40A8ED80.5030508@iespana.es> References: <40A8ED80.5030508@iespana.es> Message-ID: <200405171947.47412.pepe@diselpro.com> Para empezar, siempre que introduzcas una edad menor que 1000000 te quedas en un bucle sin fin. Prueba así: --- edad = 0 while edad < 1000000: edad = input("Dime tus años: " ) if edad==0: print "No has nacido" elif 0 Hola, estoy interesado en aprender programación y de entrada me he > decantado por el python pero no consigo que funcione código de lo mas > sencillo (creo que puede ser por la sintaxis), creo que no hace falta > explicar cuál es la idea (solo para probar como funciona el programa) > #Esta es mi primera práctica de python del cuál no tengo ni idea > > edad= input("Dime tus años " ) > > while edad<1000000: > > if edad==0: > > print "No has nacido" > > elif 0 > print "Eres muy joven" > > elif 10 > print "Eres joven" > > elif 40 > print "Eres viejo" > > elif 100 > print "Estás pasado" > > else: > > print "El número no es válido" > > Espero que alguién me pueda decir cuál es mi error. > MUCHAS GRACIAS POR ANTICIPADO > > > ---Publicidad-------------------------------------------------------- > Juega con Ventura24.es, lotería inteligente y multiplica tus > posibilidades!! http://www.iespana.es/_reloc/email.ventura > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From dvilla en gmx.net Mon May 17 19:23:43 2004 From: dvilla en gmx.net (dvilla) Date: Mon, 17 May 2004 19:23:43 +0200 Subject: problema con mi primer programa tonto In-Reply-To: <40A8ED80.5030508@iespana.es> References: <40A8ED80.5030508@iespana.es> Message-ID: <1084814622.9192.15.camel@amy> Hola: Tu programa es sintácticamente correcto (eso creo) pero me da que lo que has escrito no es lo que quieres hacer. ¿Para qué es el bucle? ¿Cómo esperas que termine el bucle si nunca cambias el valor de 'edad' en su interior? En resumen, tu problema no es el lenguaje. Aprender a programar no es aprender un lenguaje (a pesar de lo que creen muchos 'javeros'). Mi consejo: cómprate un buen libro de programación, como por ejemplo [1]. No conozco ninguno electrónico digno de mención, porque de nuevo, se preocupan de enseñar sintaxis en lugar de enseñar programación. Los que hay que merecen la pena no creo que sirvan para empezar (al menos los que yo conozco). Y no te desanimes!, la programación es todo un mundo, pero merece la pena, si te gusta. Saludos [1] B. Kernghan, R. Pike. La práctica de la programación. Pearson Educación, 2000. El lun, 17-05-2004 a las 18:51, Rarok escribió: > Hola, estoy interesado en aprender programación y de entrada me he > decantado por el python pero no consigo que funcione código de lo mas > sencillo (creo que puede ser por la sintaxis), creo que no hace falta > explicar cuál es la idea (solo para probar como funciona el programa) > #Esta es mi primera práctica de python del cuál no tengo ni idea > > edad= input("Dime tus años " ) > > while edad<1000000: > > if edad==0: > > print "No has nacido" > > elif 0 > print "Eres muy joven" > > elif 10 > print "Eres joven" > > elif 40 > print "Eres viejo" > > elif 100 > print "Estás pasado" > > else: > > print "El número no es válido" > > Espero que alguién me pueda decir cuál es mi error. > MUCHAS GRACIAS POR ANTICIPADO > > > ---Publicidad-------------------------------------------------------- > Juega con Ventura24.es, lotería inteligente y multiplica tus > posibilidades!! http://www.iespana.es/_reloc/email.ventura > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From visuallinux en hotmail.com Tue May 18 04:44:49 2004 From: visuallinux en hotmail.com (fernando miguel villarroel noriel) Date: Tue, 18 May 2004 02:44:49 +0000 Subject: Python Qt Message-ID: Hola instale Kdevelop3, con el que se pueden desarrollar aplicaciones Python Qt, tambien instale Designer-Qt3, pero este ultimo trae solo soporte para C++, existe alguna manera de instalarle alguna libreria a Qt-Designer para que me de soporte Python y asi luego importar los fromularios desarrollados en Qt al proyecto Python Qt desarrollado con Kdevelop?. Fernando Villarroel N. _________________________________________________________________ Charla con tus amigos en línea mediante MSN Messenger: http://messenger.latam.msn.com/ From marcosgarrido en tie.cl Tue May 18 05:33:55 2004 From: marcosgarrido en tie.cl (Marcos Garridop) Date: Mon, 17 May 2004 23:33:55 -0400 Subject: Manual para Principiantes PYTHON Message-ID: <20040517233355.439af6f3@spitfire> Bueno, de este manual se pueden sacar varias cosas provechosas.. especialmente para el iniciado que no ha tocado incluso otro lenguaje.. http://marmota.act.uji.es/MTP/pdf/python.pdf ENJOY... ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From acastro en ciberdroide.com Tue May 18 08:28:35 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Tue, 18 May 2004 08:28:35 +0200 (CEST) Subject: Manual para Principiantes PYTHON In-Reply-To: <20040517233355.439af6f3@spitfire> References: <20040517233355.439af6f3@spitfire> Message-ID: On Mon, 17 May 2004, Marcos Garridop wrote: > Bueno, de este manual se pueden sacar varias cosas provechosas.. especialmente para el iniciado que no ha tocado incluso otro lenguaje.. > > http://marmota.act.uji.es/MTP/pdf/python.pdf > > ENJOY... Me ha gustado. Pretende enseñar entreteniendo. Muy adecuado para iniciarse en la programación. Tiene una batería de ejemplitos que parecen diseñados para contestar a la pregunta ¿ Que cosas se pueden hacer con unas pocas lineas de programación ? -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From py en ch3m4.org Tue May 18 10:58:06 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Tue, 18 May 2004 10:58:06 +0200 Subject: Python Qt In-Reply-To: References: Message-ID: <200405181058.06885.py@ch3m4.org> El Martes, 18 de Mayo de 2004 04:44, fernando miguel villarroel noriel escribió: > Hola instale Kdevelop3, con el que se pueden desarrollar aplicaciones > Python Qt, tambien instale Designer-Qt3, pero este ultimo trae solo soporte > para C++, existe alguna manera de instalarle alguna libreria a Qt-Designer > para que me de soporte Python y asi luego importar los fromularios > desarrollados en Qt al proyecto Python Qt desarrollado con Kdevelop?. El PyQt incluye un compilador llamado 'pyuic' que convierte los proyectos del qt-designer en código python. From segalop en yahoo.es Tue May 18 13:49:42 2004 From: segalop en yahoo.es (=?iso-8859-1?q?segalop?=) Date: Tue, 18 May 2004 13:49:42 +0200 (CEST) Subject: =?iso-8859-1?q?Petici=F3n_POST_con_autentificaci=F3n?= Message-ID: <20040518114942.46552.qmail@web50502.mail.yahoo.com> Hola, estoy intentando hacer una petición HTTP POST con autentificación mediante python pero no consigo que funcione. El código es este: >>> import httplib, urllib, string, base64 >>> params = urllib.urlencode({'IdPersona': '25', 'Lang': 'pt1'}) >>> h = httplib.HTTP("maquina/proyecto:80") >>> h.putrequest("POST", "/SelectPersona.asp") >>> h.putheader("Content-length", "%d" % len(params)) >>> h.putheader('Content-type', 'application/x-www-form-urlencoded') >>> userid = "user" >>> passwd = "passwd" >>> auth = "Basic " + string.strip(base64.encodestring(userid + ":" + passwd)) >>> h.putheader("Authorization", auth ) >>> h.putheader("AUTHORIZATION", "Basic %s" % string.replace(encodestring("%s:%s" % (userid, passwd)),"\012", "")) >>> h.putheader("Host", "maquina") >>> h.endheaders() Traceback (most recent call last): File "", line 1, in ? File "C:\Apl\Python23\lib\httplib.py", line 712, in endheaders self._send_output() File "C:\Apl\Python23\lib\httplib.py", line 597, in _send_output self.send(msg) File "C:\Apl\Python23\lib\httplib.py", line 564, in send self.connect() File "C:\Apl\Python23\lib\httplib.py", line 532, in connect socket.SOCK_STREAM): gaierror: (7, 'getaddrinfo failed') He mirado un google pero no encuentro información sobre este error. Agradeceré cualquier sugerencia. Gracias ______________________________________________________________________ Correo Yahoo! - 6MB, más protección contra el spam ¡Gratis! http://correo.yahoo.es From jcanto en hispasec.com Tue May 18 14:17:41 2004 From: jcanto en hispasec.com (Julio Canto) Date: Tue, 18 May 2004 14:17:41 +0200 Subject: =?ISO-8859-1?Q?Petici=F3n_POST_con_autenti?= =?ISO-8859-1?Q?ficaci=F3n?= In-Reply-To: <20040518114942.46552.qmail@web50502.mail.yahoo.com> References: <20040518114942.46552.qmail@web50502.mail.yahoo.com> Message-ID: <40A9FEE5.5080809@hispasec.com> segalop wrote: >Hola, > >estoy intentando hacer una petición HTTP POST con >autentificación mediante python pero no consigo que >funcione. El código es este: > > Hombre... no me hagas mucho caso... pero asi de primeras parece un problema de conexion TCP propiamente (por lo del mensaje gaierror mas que nada) :? Estas seguro de que estas poniendo la direccion correcta a la que conectarte? JC From segalop en yahoo.es Tue May 18 14:20:46 2004 From: segalop en yahoo.es (=?iso-8859-1?q?segalop?=) Date: Tue, 18 May 2004 14:20:46 +0200 (CEST) Subject: Petición_POST_con_autentificación In-Reply-To: <40A9FEE5.5080809@hispasec.com> References: <40A9FEE5.5080809@hispasec.com> Message-ID: <20040518122046.83389.qmail@web50506.mail.yahoo.com> No es problema de conexión porque si lo intento con el navegador ésta funciona perfectamente. Además he probado peticiones de páginas web (por ejemplo a www.google.com) mediante python y las descarga correctamente. Lo único que se me ocurre es que la autentificación no la estoy haciendo bien. > segalop wrote: > > >Hola, > > > >estoy intentando hacer una petición HTTP POST con > >autentificación mediante python pero no consigo que > >funcione. El código es este: > > > > > Hombre... no me hagas mucho caso... pero asi de > primeras parece un > problema de conexion TCP propiamente (por lo del > mensaje gaierror mas > que nada) :? > Estas seguro de que estas poniendo la direccion > correcta a la que > conectarte? > JC > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ______________________________________________________________________ Correo Yahoo! - 6MB, más protección contra el spam ¡Gratis! http://correo.yahoo.es From jcanto en hispasec.com Tue May 18 14:45:23 2004 From: jcanto en hispasec.com (Julio Canto) Date: Tue, 18 May 2004 14:45:23 +0200 Subject: =?ISO-8859-1?Q?Petici=F3n=5FPOST=5Fcon=5Fautenti?= =?ISO-8859-1?Q?ficaci=F3n?= In-Reply-To: <20040518122046.83389.qmail@web50506.mail.yahoo.com> References: <20040518122046.83389.qmail@web50506.mail.yahoo.com> Message-ID: <40AA0563.9030407@hispasec.com> segalop wrote: >No es problema de conexión porque si lo intento con el >navegador ésta funciona perfectamente. Además he >probado peticiones de páginas web (por ejemplo a >www.google.com) mediante python y las descarga >correctamente. Lo único que se me ocurre es que la >autentificación no la estoy haciendo bien. > > Pues mira que me resulta extraño :? En fin, si lo has comprobado entonces sera otra cosa :) En fin, ahi te va una funcion que utilizo para estos menesteres: def PutDatos(host, camino, datos, usuclave): import httplib, base64, sys COD = base64.encodestring(usuclave) cabs = {"Authorization": "Basic "+COD[0:-1],"User-Agent":"Arrikitaun"} try: conn = httplib.HTTPConnection(host) conn.request("PUT", camino, datos, headers = cabs) r1 = conn.getresponse() if r1.status<>204: print "! error PUT "+camino return 0 conn.close() return 1 except: print "! error: "+str(sys.exc_info()[0]) return 0 Un saludo, JC From segalop en yahoo.es Tue May 18 15:06:48 2004 From: segalop en yahoo.es (=?iso-8859-1?q?segalop?=) Date: Tue, 18 May 2004 15:06:48 +0200 (CEST) Subject: Petición_POST_con_autentificación In-Reply-To: <40AA0563.9030407@hispasec.com> References: <40AA0563.9030407@hispasec.com> Message-ID: <20040518130648.10867.qmail@web50504.mail.yahoo.com> Esto parece un Expediente X. Hago lo siguiente (siguiendo como guía el código que me has mandado) en el intérprete: >>> import httplib, base64, sys >>> cabs = {"Authorization": "Basic "+COD[0:-1],"User-Agent":"Arrikitaun", "login": "prueba", "passwd": "pwd", "Lang": "pt1"} >>> conn = httplib.HTTPConnection("tux") >>> conn.request("PUT", "prueba/prueba.asp", "", headers = cabs) >>> r1 = conn.getresponse() >>> r1.read() 'ErrorEl par\xe1metro no es correcto. ' ¿Hay que poner algo en el tercer parámetro de conn.request? ¿Qué hago mal? Gracias > segalop wrote: > > >No es problema de conexión porque si lo intento con > el > >navegador ésta funciona perfectamente. Además he > >probado peticiones de páginas web (por ejemplo a > >www.google.com) mediante python y las descarga > >correctamente. Lo único que se me ocurre es que la > >autentificación no la estoy haciendo bien. > > > > > Pues mira que me resulta extraño :? En fin, si lo > has comprobado > entonces sera otra cosa :) > En fin, ahi te va una funcion que utilizo para estos > menesteres: > > def PutDatos(host, camino, datos, usuclave): > import httplib, base64, sys > COD = base64.encodestring(usuclave) > cabs = {"Authorization": "Basic > "+COD[0:-1],"User-Agent":"Arrikitaun"} > try: > conn = httplib.HTTPConnection(host) > conn.request("PUT", camino, datos, headers = > cabs) > r1 = conn.getresponse() > if r1.status<>204: > print "! error PUT "+camino > return 0 > conn.close() > return 1 > except: > print "! error: "+str(sys.exc_info()[0]) > return 0 > > Un saludo, > JC > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es __________________________________________ Correo Yahoo! - 6MB de espacio ¡Gratis! http://correo.yahoo.es From jcanto en hispasec.com Tue May 18 15:13:36 2004 From: jcanto en hispasec.com (Julio Canto) Date: Tue, 18 May 2004 15:13:36 +0200 Subject: =?ISO-8859-1?Q?Petici=F3n_POST_con_autenti?= =?ISO-8859-1?Q?ficaci=F3n?= In-Reply-To: <20040518114942.46552.qmail@web50502.mail.yahoo.com> References: <20040518114942.46552.qmail@web50502.mail.yahoo.com> Message-ID: <40AA0C00.2050907@hispasec.com> segalop wrote: >Hola, > >estoy intentando hacer una petición HTTP POST con >autentificación mediante python pero no consigo que >funcione. El código es este: > > > > Ni caso, no habia leido bien el mensaje XD Un saludooo JC From danielgj en wanadoo.es Tue May 18 15:07:25 2004 From: danielgj en wanadoo.es (Daniel Garcia Jones) Date: Tue, 18 May 2004 15:07:25 +0200 Subject: [PyGTK] Argumentos de la =?iso-8859-1?q?se=F1al?= move_cursor en un TextView! Message-ID: <1084885645.910.14.camel@bajo> Hola! Esto debe ser un problema bastante sencillo, pero que no consigo resolver. Tengo una rutina que me escribe en pantalla linea y columna del cursor en un TextView. El caso es que quiero llamar a esa rutina cada vez que el cursor se mueva empleando la señal on_textviewXML_move_cursor. Los argmentos que deberia pasarle son: move-cursor (GtkMovementStep, gint, gboolean) GtkMovementStep es de tipo GtkMovementStep (para mi caso GTK_MOVEMENT_LOGICAL_POSITIONS) ¿Los otros dos parametros? A que corresponden? No consigo encontrar eso en la documentacion. Si alguien me puede echar una mano le estare agradecido. -- ------------------------------------------------ Daniel García Jones danielgj en wanadoo.es | dgarcia en it.uc3m.es http://montoya.aig.uc3m.es/~jones ------------------------------------------------ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From lgs en sicem.biz Tue May 18 13:40:39 2004 From: lgs en sicem.biz (Lorenzo Gil Sanchez) Date: Tue, 18 May 2004 13:40:39 +0200 Subject: [PyGTK] Argumentos de la =?ISO-8859-1?Q?se=F1al?= move_cursor en un TextView! In-Reply-To: <1084885645.910.14.camel@bajo> References: <1084885645.910.14.camel@bajo> Message-ID: <1084880438.5483.6.camel@localhost.localdomain> El mar, 18-05-2004 a las 15:07, Daniel Garcia Jones escribió: > Hola! > > Esto debe ser un problema bastante sencillo, pero que no consigo > resolver. Tengo una rutina que me escribe en pantalla linea y columna > del cursor en un TextView. > > El caso es que quiero llamar a esa rutina cada vez que el cursor se > mueva empleando la señal on_textviewXML_move_cursor. Los argmentos que > deberia pasarle son: > > move-cursor (GtkMovementStep, gint, gboolean) > > GtkMovementStep es de tipo GtkMovementStep (para mi caso > GTK_MOVEMENT_LOGICAL_POSITIONS) > > ¿Los otros dos parametros? A que corresponden? No consigo encontrar eso > en la documentacion. Si alguien me puede echar una mano le estare > agradecido. > Pues efectivamente, no estan en la documentacion. Afortunadamente esto no es Microsoft, y tenemos las fuentes[1]. Buceando un poco he descubierto que los parametros son: GtkMovementStep-> el tipo de paso a mover gint-> la cantidad que vamos a movernos gboolean-> si la seleccion debe extenderse con el movimiento Un saludo Lorenzo [1] http://cvs.gnome.org/viewcvs/gtk%2B/gtk/gtktextview.c?rev=1.251&view=auto From javierm en aditel.org Tue May 18 18:12:03 2004 From: javierm en aditel.org (Javier Munoz Ferrara) Date: Tue, 18 May 2004 18:12:03 +0200 Subject: problema con mi primer programa tonto In-Reply-To: <1084814622.9192.15.camel@amy> References: <40A8ED80.5030508@iespana.es> <1084814622.9192.15.camel@amy> Message-ID: <1084896723.1266.1.camel@terminus> El lun, 17-05-2004 a las 19:23, dvilla escribió: > Hola: > Mi consejo: cómprate un buen libro de programación, como por ejemplo > [1]. No conozco ninguno electrónico digno de mención, porque de nuevo, > se preocupan de enseñar sintaxis en lugar de enseñar programación. Los > que hay que merecen la pena no creo que sirvan para empezar (al menos > los que yo conozco). http://marmota.act.uji.es/MTP/pdf/python.pdf Enseña a programa utilizando como lenguaje python. Desde 0. Ha sido escrito en la Universidad Jaume I de Castellón y se utiliza en las carreras de informática. Saludos! ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From segalop en yahoo.es Wed May 19 09:53:24 2004 From: segalop en yahoo.es (=?iso-8859-1?q?segalop?=) Date: Wed, 19 May 2004 09:53:24 +0200 (CEST) Subject: Petición_POST_con_autentificación In-Reply-To: <40AA0563.9030407@hispasec.com> References: <40AA0563.9030407@hispasec.com> Message-ID: <20040519075324.55117.qmail@web50501.mail.yahoo.com> Sigo sin que me funcione. Voy a describir los pasos que he hecho por si alguien ve algo que se me pasa por alto: 1) Probar una petición POST sin autorización: He encontrado la página http://www.cs.unc.edu/~jbs/resources/perl/perl-cgi/programs/form1-POST.html donde hay un pequeño formulario que acepta POST. El siguiente script funciona. >>> import urllib >>> params = urllib.urlencode({'name': 'nombre', 'textarea': 'area de texto', 'radiobutton': 'youngun', 'checkedbox': 'pizza', 'checkedbox': 'hamburgers', 'selectitem': 'spinich', 'submitbutton':'Do it!'}) >>> f = urllib.urlopen("http://wwwx.cs.unc.edu/~jbs/aw-wwwp/docs/resources/perl/perl-cgi/programs/cgi_stdin.cgi", params) >>> print f.read() stdin vars.

Print CGI STDIN Variables


STDIN Variables

  • checkedbox = hamburgers
  • selectitem = spinich
  • submitbutton = Do it!
  • textarea = area de texto
  • radiobutton = youngun
  • name = nombre
2) Pruebo una petición a la máquina donde tengo que hacer la autorización pero sin dar el login y password: Falla por falta de autorización. Correcto. >>> params = urllib.urlencode({'Lang': 'pt1'}) >>> f = urllib.urlopen("http://maquina/directorio/SelectOf.asp", params) Traceback (most recent call last): File "", line 1, in ? File "C:\Apl\Python23\lib\urllib.py", line 78, in urlopen return opener.open(url, data) File "C:\Apl\Python23\lib\urllib.py", line 183, in open return getattr(self, name)(url, data) File "C:\Apl\Python23\lib\urllib.py", line 308, in open_http return self.http_error(url, fp, errcode, errmsg, headers, data) File "C:\Apl\Python23\lib\urllib.py", line 321, in http_error result = method(url, fp, errcode, errmsg, headers, data) File "C:\Apl\Python23\lib\urllib.py", line 609, in http_error_401 errcode, errmsg, headers) File "C:\Apl\Python23\lib\urllib.py", line 329, in http_error_default raise IOError, ('http error', errcode, errmsg, headers) IOError: ('http error', 401, 'Unauthorized', ) 3) Pruebo otra petición a la misma página pero ahora con login y password en la URL: >>> f = urllib.urlopen("http://prueba:prueba en maquina/directorio/Select.asp", params) >>> f.read() 'Se ha movido el objeto\n

Se ha movido el objeto

Este objeto se puede encontrar en aqu\xed.\n' Ohh! Sorpresa! ¿Qué error es éste? ¿Alguna alma samaritana puede echarme una mano? Gracias de antemano PD: Estoy desesperado ;-) --- Julio Canto escribió: > segalop wrote: > > >No es problema de conexión porque si lo intento con > el > >navegador ésta funciona perfectamente. Además he > >probado peticiones de páginas web (por ejemplo a > >www.google.com) mediante python y las descarga > >correctamente. Lo único que se me ocurre es que la > >autentificación no la estoy haciendo bien. > > > > > Pues mira que me resulta extraño :? En fin, si lo > has comprobado > entonces sera otra cosa :) > En fin, ahi te va una funcion que utilizo para estos > menesteres: > > def PutDatos(host, camino, datos, usuclave): > import httplib, base64, sys > COD = base64.encodestring(usuclave) > cabs = {"Authorization": "Basic > "+COD[0:-1],"User-Agent":"Arrikitaun"} > try: > conn = httplib.HTTPConnection(host) > conn.request("PUT", camino, datos, headers = > cabs) > r1 = conn.getresponse() > if r1.status<>204: > print "! error PUT "+camino > return 0 > conn.close() > return 1 > except: > print "! error: "+str(sys.exc_info()[0]) > return 0 > > Un saludo, > JC > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ______________________________________________________________________ Correo Yahoo! - 6MB, más protección contra el spam ¡Gratis! http://correo.yahoo.es From hernan en orgmf.com.ar Wed May 19 10:25:50 2004 From: hernan en orgmf.com.ar (Hernan Foffani) Date: Wed, 19 May 2004 10:25:50 +0200 Subject: =?iso-8859-1?Q?RE:_=5BPython-es=5D_Petici=F3n=5FPOST=5Fcon=5Fautentific?= =?iso-8859-1?Q?aci=F3n?= In-Reply-To: <20040519075324.55117.qmail@web50501.mail.yahoo.com> References: <20040519075324.55117.qmail@web50501.mail.yahoo.com> Message-ID: > ... resto cortado ... > 3) Pruebo otra petición a la misma página pero ahora > con login y password en la URL: > >>>> f = > urllib.urlopen("http://prueba:prueba en maquina/directorio/Select.asp", > params) >>>> f.read() > 'Se ha movido el > objeto\n

Se ha movido el > objeto

Este objeto se puede encontrar en HREF="SelectOficina.asp">aqu\xed.\n' > > Ohh! Sorpresa! ¿Qué error es éste? ¿Alguna alma > samaritana puede echarme una mano? es evidente que el error te lo devuelve el servidor asp. no es de python. decías que con un navegador no tienes problemas. pero, - ¿tu sitio web tiene un form en html para pedir login y password? es posible que en ese caso la autenticacion *no* sea HTTP, sino simplemente un mecanismo "hecho en casa". - ¿has deshabilitado los cookies en tu navegador? ¿no será que el asp te está mandando algun cookie y no lo estás considerando? si tu sitio asp hace uso de variables de sesión seguro que hay cookies dando vueltas. - otra posibilidad es que el asp use autenticacion de Windows. tienes que haber hecho un login en una cuenta del dominio de la red local para entrar y con esa cuenta el Internet Explorer se identifica en el servidor asp. -H. From C.H.PROY en terra.es Wed May 19 10:24:41 2004 From: C.H.PROY en terra.es (C.H.PROY) Date: Wed, 19 May 2004 10:24:41 +0200 Subject: Lanzar un programa como Excel.exe Message-ID: Muchisimas grcias julio por tu respuesta la verdad es que he avanzado muchisimo en mi proyecto. ----- Mensaje Original ----- De: Julio Canto Fecha: Viernes, Mayo 14, 2004 12:32 pm Asunto: Re: [Python-es] Lanzar un programa como Excel.exe > C.H.PROY wrote: > > >Buenos dias > > > >En honor a la verdad soy un principiante de la programacion en > Python,>y tengo un problema: > >Utilizo el entorno de programacion que utiliza Poser5 y quisiera > abrir > >una hoja excel (winxp) > > > >Un cordial saludo > >Carlos > > > > > Prueba con esto (instala primero el paquete de win32 de python): > > > # clase para manejo basico de excel > class clsExcel: > > # constructor > def __init__(self, archivo=None): > import win32com.client > self.CARGA = 0 > try: > self.xlApp = win32com.client.Dispatch('Excel.Application') > self.xlBook = self.xlApp.Workbooks.Add() > self.filename = '' > self.CARGA = 1 > except: > self.CARGA = 0 > > # para salvar el archivo > def Salva(self, archivo): > import os > os.remove(archivo) > self.xlBook.SaveAs(archivo) > > # mete un valor > def Pon(self,x,y,valor): > self.xlApp.ActiveSheet.Cells(y,x).Value = valor > > # lee un valor > def Lee(self,x,y): > return self.xlApp.Cells(y,x).Value > > # cierra el excel y libera el objeto > def Cierra(self): > self.xlBook.Close(SaveChanges=1) > del self.xlApp > > x = clsExcel() > print "introduciendo" > x.Pon(1,1,"CD") > x.Pon(2,1,"SESION") > x.Pon(3,1,"TOTAL") > > x.Pon(1,2,"20.04.2004") > x.Pon(2,2,"MAÑANA") > x.Pon(3,2,200.54) > x.Pon(2,3,"NOCHE") > x.Pon(3,3,100.23) > x.Pon(4,3,"DIARIO") > x.Pon(5,3,"=SUM(C2:C3)") > > x.Pon(1,4,"21.04.2004") > x.Pon(2,4,"MAÑANA") > x.Pon(3,4,123.23) > x.Pon(2,5,"NOCHE") > x.Pon(3,5,230.23) > x.Pon(4,5,"DIARIO") > x.Pon(5,5,"=SUM(C4:C5)") > > x.Pon(2,7,"TOTAL") > x.Pon(3,7,"=SUM(C2:C5)") > > print "salvando" > x.Salva("c:\\uno.xls") > print "cerrando" > x.Cierra() > > > Es una cutrez, pero es un acercamiento sencillito que estoy > haciendo > para hacer estas cosas :) > Un saludo, > JC > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From rapto en arrakis.es Wed May 19 10:44:45 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Wed, 19 May 2004 10:44:45 +0200 Subject: =?ISO-8859-1?Q?Petici=F3n=5FPOST=5Fcon=5Fautenti?= =?ISO-8859-1?Q?ficaci=F3n?= In-Reply-To: References: Message-ID: <40AB1E7D.9090300@arrakis.es> Me ha dado una idea Hernán, puedes probar el módulo mechanize, que te gestiona estas cosillas de cookies y tal. Mira el guioncillo que tenemos en Cielito Lindo para tener contento al casero: http://cielito.sindominio.net/cgi-bin/cvsweb/varios/pelas Hernan Foffani wrote: >>... resto cortado ... >>3) Pruebo otra petición a la misma página pero ahora >>con login y password en la URL: >> >> >> >>>>>f = >>>>> >>>>> >>urllib.urlopen("http://prueba:prueba en maquina/directorio/Select.asp", >>params) >> >> >>>>>f.read() >>>>> >>>>> >>'Se ha movido el >>objeto\n

Se ha movido el >>objeto

Este objeto se puede encontrar en >HREF="SelectOficina.asp">aqu\xed.\n' >> >>Ohh! Sorpresa! ¿Qué error es éste? ¿Alguna alma >>samaritana puede echarme una mano? >> >> > >es evidente que el error te lo devuelve el servidor asp. >no es de python. decías que con un navegador no tienes >problemas. pero, > - ¿tu sitio web tiene un form en html para pedir login y >password? es posible que en ese caso la autenticacion *no* >sea HTTP, sino simplemente un mecanismo "hecho en casa". > - ¿has deshabilitado los cookies en tu navegador? ¿no >será que el asp te está mandando algun cookie y no lo >estás considerando? si tu sitio asp hace uso de variables >de sesión seguro que hay cookies dando vueltas. > - otra posibilidad es que el asp use autenticacion de Windows. >tienes que haber hecho un login en una cuenta del dominio >de la red local para entrar y con esa cuenta el Internet >Explorer se identifica en el servidor asp. > >-H. > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > From visuallinux en hotmail.com Wed May 19 16:48:21 2004 From: visuallinux en hotmail.com (fernando miguel villarroel noriel) Date: Wed, 19 May 2004 14:48:21 +0000 Subject: Python Qt Error Message-ID: Gracias Chema segui tu consejo sobre el uso de pyuic, fantastico, pero sabes luego seguir un ejemplo del tipico Hola Mundo, desarrollado en Qt , luego importe el codigo a Python usando pyuic, enseguida desarrolle el script de ejemplo que hace uso de la clase recien creada con pyuic, pero me da un error de sintaxis, te adjunto el ejemplo: Programa interface.py # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'interface.ui' # # Created: Wed May 19 00:33:29 2004 # by: The PyQt User Interface Compiler (pyuic) 3.8 # # WARNING! All changes made in this file will be lost! from qt import * class Hola_Mundo(QWidget): def __init__(self,parent = None,name = None,fl = 0): QWidget.__init__(self,parent,name,fl) if not name: self.setName("Hola_Mundo") self.botonHola = QPushButton(self,"botonHola") self.botonHola.setGeometry(QRect(60,110,107,27)) self.botonSalir = QPushButton(self,"botonSalir") self.botonSalir.setGeometry(QRect(200,110,107,27)) self.textEdit1 = QTextEdit(self,"textEdit1") self.textEdit1.setGeometry(QRect(100,190,168,112)) self.languageChange() self.resize(QSize(600,484).expandedTo(self.minimumSizeHint())) self.clearWState(Qt.WState_Polished) def languageChange(self): self.setCaption(self.__tr("Hola Mundo")) self.botonHola.setText(self.__tr("Hola")) self.botonSalir.setText(self.__tr("Salir")) def __tr(self,s,c = None): return qApp.translate("Hola_Mundo",s,c) *********************************************** Aqui va el script que hace uso de la clase Hola_Mundo, hola.py #/usr/bin/python2.3 import qt import sys from interface import * def botonHola_clicked(): widget_principal.TextEdit1.setText('Hola Pinguino') app=QApplicatin(sys.argv) QObject.connect(app,SIGNAL('lastWindowClosed()',app,SLOT('quit()') Widget_principal=Hola_Mundo() Widget_principal.show() Widget_principal.connect(widget_principal.botonHola,SIGNAL('clicked()'),botonHola_clicked) Widget_principal.connect(Widget_principal.botonSalir,SIGNAL('clicked()'),app,SLOT('quit()')) app.exec_loop() Esto me lanza el siguiente error: fvillarroel en pc01:~$ emacs interface.py fvillarroel en pc01:~$ python hola.py File "hola.py", line 14 Widget_principal=Hola_Mundo() ^ SyntaxError: invalid syntax fvillarroel en pc01:~$ No entiendo pues en esa linea se trata de crear una instancia de la clase Hola_Mundo Fernando Villarroel >From: Chema Cortés >Reply-To: La lista de python en castellano >To: La lista de python en castellano >Subject: Re: [Python-es] Python Qt >Date: Tue, 18 May 2004 10:58:06 +0200 > >El Martes, 18 de Mayo de 2004 04:44, fernando miguel villarroel noriel >escribió: > > Hola instale Kdevelop3, con el que se pueden desarrollar aplicaciones > > Python Qt, tambien instale Designer-Qt3, pero este ultimo trae solo >soporte > > para C++, existe alguna manera de instalarle alguna libreria a >Qt-Designer > > para que me de soporte Python y asi luego importar los fromularios > > desarrollados en Qt al proyecto Python Qt desarrollado con Kdevelop?. > >El PyQt incluye un compilador llamado 'pyuic' que convierte los proyectos >del >qt-designer en código python. >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Charla con tus amigos en línea mediante MSN Messenger: http://messenger.latam.msn.com/ From lopez en esrf.fr Wed May 19 18:03:01 2004 From: lopez en esrf.fr (Angel Lopez =?iso-8859-1?Q?Mu=F1oz?=) Date: Wed, 19 May 2004 18:03:01 +0200 Subject: Python Qt Error In-Reply-To: References: Message-ID: <5.1.0.14.0.20040519175925.00b3bda8@mailserv.esrf.fr> At 14:48 19/05/2004 +0000, you wrote: > Gracias Chema segui tu consejo sobre el uso de pyuic, fantastico, pero > sabes luego seguir un ejemplo del tipico Hola Mundo, desarrollado en Qt , > luego importe el codigo a Python usando pyuic, enseguida desarrolle el > script de ejemplo que hace uso de la clase recien creada con pyuic, pero > me da un error de sintaxis, te adjunto el ejemplo: > >Programa interface.py > ># -*- coding: utf-8 -*- > ># Form implementation generated from reading ui file 'interface.ui' ># ># Created: Wed May 19 00:33:29 2004 ># by: The PyQt User Interface Compiler (pyuic) 3.8 ># ># WARNING! All changes made in this file will be lost! > > >from qt import * > > >class Hola_Mundo(QWidget): > def __init__(self,parent = None,name = None,fl = 0): > QWidget.__init__(self,parent,name,fl) > > if not name: > self.setName("Hola_Mundo") > > > > self.botonHola = QPushButton(self,"botonHola") > self.botonHola.setGeometry(QRect(60,110,107,27)) > > self.botonSalir = QPushButton(self,"botonSalir") > self.botonSalir.setGeometry(QRect(200,110,107,27)) > > self.textEdit1 = QTextEdit(self,"textEdit1") > self.textEdit1.setGeometry(QRect(100,190,168,112)) > > self.languageChange() > > self.resize(QSize(600,484).expandedTo(self.minimumSizeHint())) > self.clearWState(Qt.WState_Polished) > > > def languageChange(self): > self.setCaption(self.__tr("Hola Mundo")) > self.botonHola.setText(self.__tr("Hola")) > self.botonSalir.setText(self.__tr("Salir")) > > > def __tr(self,s,c = None): > return qApp.translate("Hola_Mundo",s,c) > > >*********************************************** > >Aqui va el script que hace uso de la clase Hola_Mundo, hola.py > >#/usr/bin/python2.3 >import qt >import sys > >from interface import * > >def botonHola_clicked(): > widget_principal.TextEdit1.setText('Hola Pinguino') > > >app=QApplicatin(sys.argv) >QObject.connect(app,SIGNAL('lastWindowClosed()',app,SLOT('quit()') > >Widget_principal=Hola_Mundo() > >Widget_principal.show() > >Widget_principal.connect(widget_principal.botonHola,SIGNAL('clicked()'),botonHola_clicked) > >Widget_principal.connect(Widget_principal.botonSalir,SIGNAL('clicked()'),app,SLOT('quit()')) > >app.exec_loop() > > > > Esto me lanza el siguiente error: > >fvillarroel en pc01:~$ emacs interface.py >fvillarroel en pc01:~$ python hola.py > File "hola.py", line 14 > Widget_principal=Hola_Mundo() > ^ >SyntaxError: invalid syntax >fvillarroel en pc01:~$ > > >No entiendo pues en esa linea se trata de crear una instancia de la clase >Hola_Mundo Ten cuidado con las Mayusculas y minusculas (Widget_principal lo has escrito con minusculas en la línea 8) En la línea 11 app=QApplicatin(sys.argv) debe ser app=QApplication(sys.argv). tienes mas cosillas erroneas, por hay... tengo un tutorial muy muy majo de pyqt que intentaré enviarte más tarde. Un saludo y ánimo. ____________________________________ Angel Lopez Muñoz Spanish CRG BeamLine at the European Synchrotron Radiation Facility 6, Rue Jules Horowitz ESRF-B. P. 220 F-38043 Grenoble Cedex 09 France Tel. +33-(0)476 88 24 49 Fax +33-(0)476 88 28 16 From o.merchan en bussitel.es Wed May 19 18:21:17 2004 From: o.merchan en bussitel.es (Oscar Merchan) Date: Wed, 19 May 2004 18:21:17 +0200 Subject: Python Qt Error para Angel In-Reply-To: <5.1.0.14.0.20040519175925.00b3bda8@mailserv.esrf.fr> References: <5.1.0.14.0.20040519175925.00b3bda8@mailserv.esrf.fr> Message-ID: <20040519182117.6e27099d.o.merchan@bussitel.es> On Wed, 19 May 2004 18:03:01 +0200 Angel Lopez Muñoz wrote: Hola a todos. Angel me puedes enviar a mi tambien el manual, por favor, si no te es mucha molestia claro. Gracias. > At 14:48 19/05/2004 +0000, you wrote: > > Gracias Chema segui tu consejo sobre el uso de pyuic, fantastico, pero > > sabes luego seguir un ejemplo del tipico Hola Mundo, desarrollado en Qt , > > luego importe el codigo a Python usando pyuic, enseguida desarrolle el > > script de ejemplo que hace uso de la clase recien creada con pyuic, pero > > me da un error de sintaxis, te adjunto el ejemplo: > > > >Programa interface.py > > > ># -*- coding: utf-8 -*- > > > ># Form implementation generated from reading ui file 'interface.ui' > ># > ># Created: Wed May 19 00:33:29 2004 > ># by: The PyQt User Interface Compiler (pyuic) 3.8 > ># > ># WARNING! All changes made in this file will be lost! > > > > > >from qt import * > > > > > >class Hola_Mundo(QWidget): > > def __init__(self,parent = None,name = None,fl = 0): > > QWidget.__init__(self,parent,name,fl) > > > > if not name: > > self.setName("Hola_Mundo") > > > > > > > > self.botonHola = QPushButton(self,"botonHola") > > self.botonHola.setGeometry(QRect(60,110,107,27)) > > > > self.botonSalir = QPushButton(self,"botonSalir") > > self.botonSalir.setGeometry(QRect(200,110,107,27)) > > > > self.textEdit1 = QTextEdit(self,"textEdit1") > > self.textEdit1.setGeometry(QRect(100,190,168,112)) > > > > self.languageChange() > > > > self.resize(QSize(600,484).expandedTo(self.minimumSizeHint())) > > self.clearWState(Qt.WState_Polished) > > > > > > def languageChange(self): > > self.setCaption(self.__tr("Hola Mundo")) > > self.botonHola.setText(self.__tr("Hola")) > > self.botonSalir.setText(self.__tr("Salir")) > > > > > > def __tr(self,s,c = None): > > return qApp.translate("Hola_Mundo",s,c) > > > > > >*********************************************** > > > >Aqui va el script que hace uso de la clase Hola_Mundo, hola.py > > > >#/usr/bin/python2.3 > >import qt > >import sys > > > >from interface import * > > > >def botonHola_clicked(): > > widget_principal.TextEdit1.setText('Hola Pinguino') > > > > > >app=QApplicatin(sys.argv) > >QObject.connect(app,SIGNAL('lastWindowClosed()',app,SLOT('quit()') > > > >Widget_principal=Hola_Mundo() > > > >Widget_principal.show() > > > >Widget_principal.connect(widget_principal.botonHola,SIGNAL('clicked()'),botonHola_clicked) > > > >Widget_principal.connect(Widget_principal.botonSalir,SIGNAL('clicked()'),app,SLOT('quit()')) > > > >app.exec_loop() > > > > > > > > Esto me lanza el siguiente error: > > > >fvillarroel en pc01:~$ emacs interface.py > >fvillarroel en pc01:~$ python hola.py > > File "hola.py", line 14 > > Widget_principal=Hola_Mundo() > > ^ > >SyntaxError: invalid syntax > >fvillarroel en pc01:~$ > > > > > >No entiendo pues en esa linea se trata de crear una instancia de la clase > >Hola_Mundo > > Ten cuidado con las Mayusculas y minusculas (Widget_principal lo has > escrito con minusculas en la línea 8) > En la línea 11 app=QApplicatin(sys.argv) debe ser app=QApplication(sys.argv). > > tienes mas cosillas erroneas, por hay... tengo un tutorial muy muy majo de > pyqt que intentaré enviarte más tarde. > > Un saludo y ánimo. > > > > ____________________________________ > Angel Lopez Muñoz > Spanish CRG BeamLine > at the European Synchrotron Radiation Facility > > 6, Rue Jules Horowitz > ESRF-B. P. 220 > F-38043 Grenoble Cedex 09 > France > > Tel. +33-(0)476 88 24 49 > Fax +33-(0)476 88 28 16 > > > > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From zoso en demiurgo.org Wed May 19 18:32:28 2004 From: zoso en demiurgo.org (Esteban Manchado =?iso-8859-1?Q?Vel=E1zquez?=) Date: Wed, 19 May 2004 17:32:28 +0100 Subject: Python Qt Error In-Reply-To: References: Message-ID: <20040519163227.GG924@demiurgo.org> On Wed, May 19, 2004 at 02:48:21PM +0000, fernando miguel villarroel noriel wrote: > [...] > Aqui va el script que hace uso de la clase Hola_Mundo, hola.py > > #/usr/bin/python2.3 > import qt > import sys > > from interface import * > > def botonHola_clicked(): > widget_principal.TextEdit1.setText('Hola Pinguino') > > > app=QApplicatin(sys.argv) > QObject.connect(app,SIGNAL('lastWindowClosed()',app,SLOT('quit()') ^^^ ^^^ Tienes estos dos paréntesis sin cerrar. > [...] > Esto me lanza el siguiente error: > > fvillarroel en pc01:~$ emacs interface.py > fvillarroel en pc01:~$ python hola.py > File "hola.py", line 14 > Widget_principal=Hola_Mundo() > ^ > SyntaxError: invalid syntax > fvillarroel en pc01:~$ > [...] Cuando un intérprete/compilador te da un error, normalmente es en la línea que te dice.... o en la anterior. Saludos, -- EuropeSwPatentFree - http://EuropeSwPatentFree.hispalinux.es ¡Ayuda a extenderlo por la red en firmas, web o lo que sea! Help spread it through the Net in signatures, webpages, whatever! ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From C.H.PROY en terra.es Thu May 20 23:27:26 2004 From: C.H.PROY en terra.es (C.H.PROY) Date: Thu, 20 May 2004 23:27:26 +0200 Subject: A LA LISTA PYTHON Message-ID: <298652ea45.2ea4529865@terra.es> TITULO Controlar aplicaciones abiertas en win xp Gracias a la ayudada de los mienbros de esta lista, he conseguido abrir aplicaciones en win xp por ejemplo la excel, ahora me surge otro ploblema: Necesito saber como detectar si una aplicacion esta abierta ,como activarla y minimizarla. ¿ Me podriais recomendar algun libro o manual electronico sobre la extension win32 ? Un cordial saludo Carlos From jcanto en hispasec.com Fri May 21 08:52:27 2004 From: jcanto en hispasec.com (Julio Canto) Date: Fri, 21 May 2004 08:52:27 +0200 Subject: A LA LISTA PYTHON In-Reply-To: <298652ea45.2ea4529865@terra.es> References: <298652ea45.2ea4529865@terra.es> Message-ID: <40ADA72B.80207@hispasec.com> C.H.PROY wrote: >TITULO > >Controlar aplicaciones abiertas en win xp > >Gracias a la ayudada de los mienbros de esta lista, he conseguido >abrir aplicaciones en win xp por ejemplo la excel, >ahora me surge otro ploblema: > >Necesito saber como detectar si una aplicacion esta abierta ,como >activarla y minimizarla. > >¿ Me podriais recomendar algun libro o manual electronico sobre la >extension win32 ? > >Un cordial saludo > >Carlos > > Creo que eso es mas bien un problema de Win32 propiamente. Me refiero, que las funciones para ese tipo de cosas estan en las librerias, ahora solo tienes que consultar las referencias de Win32 (en MSDN por ejemplo) y aplicarlas. Quiza lo que necesites sea WMI: http://tgolden.sc.sabren.com/python/wmi.html Pero vamos... no sabria decirte con detalle pq no se que es lo que quieres controlar exactamente, y en que plataforma. Un saludo, JC From C.H.PROY en terra.es Fri May 21 09:35:31 2004 From: C.H.PROY en terra.es (C.H.PROY) Date: Fri, 21 May 2004 09:35:31 +0200 Subject: A LA LISTA PYTHON Message-ID: <44cef3e757.3e75744cef@terra.es> Julio me estas salvando de todos mis apuros muchisimas gracias,la pagina que me recomiendas trae unos ejemplos muy buenos un saludo Carlos ----- Mensaje Original ----- De: Julio Canto Fecha: Viernes, Mayo 21, 2004 8:52 am Asunto: Re: [Python-es] A LA LISTA PYTHON > C.H.PROY wrote: > > >TITULO > > > >Controlar aplicaciones abiertas en win xp > > > >Gracias a la ayudada de los mienbros de esta lista, he > conseguido > >abrir aplicaciones en win xp por ejemplo la excel, > >ahora me surge otro ploblema: > > > >Necesito saber como detectar si una aplicacion esta abierta ,como > >activarla y minimizarla. > > > >¿ Me podriais recomendar algun libro o manual electronico sobre > la > >extension win32 ? > > > >Un cordial saludo > > > >Carlos > > > > > Creo que eso es mas bien un problema de Win32 propiamente. Me > refiero, > que las funciones para ese tipo de cosas estan en las librerias, > ahora > solo tienes que consultar las referencias de Win32 (en MSDN por > ejemplo) > y aplicarlas. > Quiza lo que necesites sea WMI: > http://tgolden.sc.sabren.com/python/wmi.html > Pero vamos... no sabria decirte con detalle pq no se que es lo que > quieres controlar exactamente, y en que plataforma. > Un saludo, > JC > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From danielgj en wanadoo.es Fri May 21 13:07:42 2004 From: danielgj en wanadoo.es (Daniel Garcia Jones) Date: Fri, 21 May 2004 13:07:42 +0200 Subject: Redirigir salida estandar a un buffer de texto gtk Message-ID: <1085137662.965.9.camel@bajo> Hola! Estoy intentando redirigir la salida estandar a un buffer de texto gtk. He visto un hilo de discusion en la lista al respecto de redirigir a fichero, pero esto es un poco distinto y no me va. En la documentacion de Python dice que 'sys.stdout = objeto' redirige la salida a objeto, sea del tipo que sea siempre y cuando tenga un metodo llamado write(). Siguiendo esto he definido una clase escritor con un metodo write de la siguiente forma: class escritorBuffer: def __init__(self,buffer): self.buffer = buffer def write(arg): gtk.TextBuffer.insert_interactive_at_cursor(self.buffer,arg) Luego en el programa principal creo una nueva clase escritorBuffer con el buffer en el que quiero escribir pero no funciona... el codigo es: ... escritor = escritorBuffer(self.bufferConsola) sys.stdout = escritor ... aqui el codigo que escribe en salida estandar sys.stdout = sys.__stdout__ El caso es que no va, sigue sacandolo por pantalla y no en el buffer. Alguien puede echarme una mano, que no lo veo... Gracias! -- ------------------------------------------------ Daniel García Jones danielgj en wanadoo.es | dgarcia en it.uc3m.es http://montoya.aig.uc3m.es/~jones ------------------------------------------------ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From frjanibo en teleline.es Fri May 21 13:20:41 2004 From: frjanibo en teleline.es (Francisco Javier Nieto) Date: Fri, 21 May 2004 13:20:41 +0200 Subject: ctypes y los 16bits Message-ID: <200405211320.41041.frjanibo@teleline.es> Hola a todos, Estoy intentando controlar una impresora Olivetti PR50 a través de una dll (que no es mia y de la cual no tengo el código) que implementa funciones que permiten mover el carro y demás. El caso es que me gustaría hacerlo desde python, y para ello he probado el modulo ctypes, pero al parecer, la dll es de 16bits, y el ctypes se la pega al cargarla. Mi pregunta es: ¿Se puede llamar a las funciones de una dll de 16 bits desde ctypes? Y si la respuesta es no, ¿hay alguna alternativa? Muchas gracias a todos. -- Francisco Javier Nieto Borrallo JID: frjanibo en jabber.org FingerPrint: 8636 1BA6 14BD 1F12 F0AC 0E1E C1CA 610B 263A 1E0D From jcanto en hispasec.com Fri May 21 13:28:40 2004 From: jcanto en hispasec.com (Julio Canto) Date: Fri, 21 May 2004 13:28:40 +0200 Subject: ctypes y los 16bits In-Reply-To: <200405211320.41041.frjanibo@teleline.es> References: <200405211320.41041.frjanibo@teleline.es> Message-ID: <40ADE7E8.2090001@hispasec.com> Francisco Javier Nieto wrote: >Hola a todos, > Estoy intentando controlar una impresora Olivetti PR50 a través de una dll >(que no es mia y de la cual no tengo el código) que implementa funciones que >permiten mover el carro y demás. > > El caso es que me gustaría hacerlo desde python, y para ello he probado el >modulo ctypes, pero al parecer, la dll es de 16bits, y el ctypes se la pega >al cargarla. > Mi pregunta es: ¿Se puede llamar a las funciones de una dll de 16 bits desde >ctypes? Y si la respuesta es no, ¿hay alguna alternativa? > >Muchas gracias a todos. > > > ¿Por que usas la DLL para controlar la impresora? No te iria mejor probar con las extensiones de win32? No se, algo en plan win32print :? Un saludo, JC From danielgj en wanadoo.es Fri May 21 15:54:04 2004 From: danielgj en wanadoo.es (Daniel Garcia Jones) Date: Fri, 21 May 2004 15:54:04 +0200 Subject: Redirigir salida estandar a un buffer de texto gtk In-Reply-To: <1085137662.965.9.camel@bajo> References: <1085137662.965.9.camel@bajo> Message-ID: <1085147644.965.18.camel@bajo> El vie, 21-05-2004 a las 13:07, Daniel Garcia Jones escribió: > Hola! > > Estoy intentando redirigir la salida estandar a un buffer de texto gtk. > He visto un hilo de discusion en la lista al respecto de redirigir a > fichero, pero esto es un poco distinto y no me va. > > En la documentacion de Python dice que 'sys.stdout = objeto' redirige la > salida a objeto, sea del tipo que sea siempre y cuando tenga un metodo > llamado write(). > > Siguiendo esto he definido una clase escritor con un metodo write de la > siguiente forma: > > class escritorBuffer: > > def __init__(self,buffer): > self.buffer = buffer > > def write(arg): > gtk.TextBuffer.insert_interactive_at_cursor(self.buffer,arg) > > Luego en el programa principal creo una nueva clase escritorBuffer con > el buffer en el que quiero escribir pero no funciona... el codigo es: > > ... > escritor = escritorBuffer(self.bufferConsola) > sys.stdout = escritor > ... aqui el codigo que escribe en salida estandar > sys.stdout = sys.__stdout__ > > El caso es que no va, sigue sacandolo por pantalla y no en el buffer. > Alguien puede echarme una mano, que no lo veo... > > Gracias! Error mio! Como bien dice la documentacion, esta redireccion no afecta a las funciones del modulo OS, que son las que utilizo... Seguire investigando entonces la manera de hacerlo... Gracias! -- ------------------------------------------------ Daniel García Jones danielgj en wanadoo.es | dgarcia en it.uc3m.es http://montoya.aig.uc3m.es/~jones ------------------------------------------------ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From oziko en fusiondementes.com Fri May 21 16:19:31 2004 From: oziko en fusiondementes.com (oziko) Date: Fri, 21 May 2004 09:19:31 -0500 Subject: Sourceforge o algo parecido In-Reply-To: <200405052213.05495.okktawio@yahoo.com.ar> References: <200405052213.05495.okktawio@yahoo.com.ar> Message-ID: <40AE0FF3.2080904@fusiondementes.com> porque no intentas colgar tu proyecto en vault of parnassus? Este es un repositiorio muy grande de modulos para python y demas cosillas para python exclusivamente. http://www.vex.net/parnassus/ Octavio Bruzzone wrote: > Hola, tengo una dudilla. Resulta que he creado unos modulos de python para > hacer unos calculos estadisticos (analisis de mantel), y he pensado en > distribuirlos por alli bajo licencia GNU/Gpl. Estuve pensando en poner un > sitio web para eso, pero me tento la idea de meterlo en Sourceforge. El punto > es que cuando me puse a buscar como añadir proyectos nuevos, realmente no > pude encontrar como hacer. > > ¿Sabe alguien como hacer eso?. ¿Hay alguna opcion mejor?. > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rastreador en gmx.net Sun May 23 12:45:37 2004 From: rastreador en gmx.net (Manuel Angel Fernandez) Date: Sun, 23 May 2004 12:45:37 +0200 Subject: Sourceforge o algo parecido In-Reply-To: <40AE0FF3.2080904@fusiondementes.com> References: <200405052213.05495.okktawio@yahoo.com.ar> Message-ID: <40B09CF1.17820.4750FE@localhost> > porque no intentas colgar tu proyecto en vault of parnassus? Este es un > repositiorio muy grande de modulos para python y demas cosillas para > python exclusivamente. > > http://www.vex.net/parnassus/ Otra alternativa puede ser www.software-libre.org que viene a ser el sourceforge de habla hispana (o eso se pretende). Yo ya colge un projecto en el. Chao. -- Nombre: Manuel Angel Fernández E-Mail: rastreador at gmx.net Jabber: rastreador en jabber.org ICQ: 6284430 Yahoo: rastreador en yahoo.es Msn: rastreador71 en hotmail.com From linux13 en iespana.es Sun May 23 20:21:44 2004 From: linux13 en iespana.es (Hector Miuler Malpica Gallegos) Date: Sun, 23 May 2004 13:21:44 -0500 Subject: Escuchando el puerto serial Message-ID: <1085336504.11440.9.camel@debi.debian> Amigos, quisiera saber cual es la mejor forma de hacer un programa tipo servidor el cual este muy atento a la entrada del puerto serial, por lo que e visto siempre es preferible dejar el trabajo pesado al kernel (loop), ya que el es el que controla toda la pc y sabe cuando pasa algo. Encontré algo con glib, ya que el tiene un mega loop (bueno eso me dio a enterder) gmainloop, segun se este puede saber de cualquier evente que ocurra y se lo puede pasar al programa, esto es lo que hace gnome. Quisiera saber sus opiniones/comentarios/etc sobre esto, o derrepente ir mas profundo y ver como glib implementa este gmainloop. (el programa que que manejara los datos recibidos por el puerto serial estara echo en python) Gracias. _\|/_ (O-O) --oOO-(_)-OOo---------------------------------------- .--. Hector Miuler Malpica G. |o_o | Universidad Nacional del Callao - Peru |¡_/ | Escuela de Ingenieria Electronica // \ \ (| | ) /'\_ _/`\ \__)=(___/ .''`. Powered by: ,__, : :' : Debian GNU/Linux(SID) (2.4.21,Ext3) (oo)____ `. `' usuario registrado #308608 (__) mu )\ `- ||--|| * Jabber miuler en jabber.org ICQ 179326439 MSN miuler13 en iespana.es Yahoo miuler13 en yahoo.es IRC irc.freenode.net #apesol ----------------------------------------------------- ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Esta parte del mensaje está firmada digitalmente URL: From pan_python en yahoo.com.ar Sun May 23 23:36:09 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Sun, 23 May 2004 18:36:09 -0300 Subject: correccion de un programa!!! Message-ID: <40B11949.5040407@yahoo.com.ar> Hola gente... Bueno hice ya mi primer programa en python que es algo mas o menos usable :) y me gustaria que lo miren y me corrigan y me marquen errores o me cuenten alguna otra manera de hacer lo que hice... O sea, sean mis profesores :) Basicamente el programa lo que hace es abrir una dbf y grabar cada registro en una base postgresql, es sencillo, me falta poner rutinas para detectar errores (cosa que todavia no se hacer) y si alguno me quiere explicar sera bienvenido :) aca va... #!/usr/bin/python # Convierte dbf a pgsql # # Convierte Destinos. import dbf import pg blanco = ' ' comilla = "\'" coma = ',' def abrepg(): # Conecta a la base pgsql try: db = pg.DB('nar','192.168.0.1') return db except: print "Error en la coneccion" return -1 def abredbf(): # Conecto a la base dbf try: ori = dbf.dbf('dbases/NAR_DEST.DBF') return ori except: print "No se puede abrir dbf" return -1 def muestradbf(ori): print ori.status() print ori.nrecs def borrapg(db): sql = "DELETE FROM destinos; " db.query(sql) def cierro(ori,db): db.close() ori.close() def proceso(ori,db): for k in ori: print k[0],k[1],k[2],k[3],k[4] nrotel = str(k[2]) + " " + str(k[3]) + " " + str(k[4]) sql = "insert into destinos values ( '"+k[0]+"','"+k[1]+"','"+nrotel+"', '3560' );" db.query(sql) print sql def run(): db=abrepg() borrapg(db) ori=abredbf() muestradbf(ori) proceso(ori,db) cierro(ori,db) if __name__=='__main__': run() y las salidas de los datos son: Header length : 193 Record length : 43 Number of records : 7 Field Type Length Decimal ----- ---- ------ ------- DES_CODI N 2 0 DES_NOMB C 25 0 DES_TEL1 N 5 0 DES_TEL2 N 5 0 DES_TEL3 N 5 0 None 7 1 Sanatorio Reconquista 29020 21620 20022 insert into destinos values ( ' 1','Sanatorio Reconquista ','29020 21620 20022', '3560' ); 2 Sanatorio Luduena 20195 29233 0 insert into destinos values ( ' 2','Sanatorio Luduena ','20195 29233 0', '3560' ); 3 Hospital 29881 0 0 insert into destinos values ( ' 3','Hospital ','29881 0 0', '3560' ); 4 Sanatorio Avellaneda 81166 0 0 insert into destinos values ( ' 4','Sanatorio Avellaneda ','81166 0 0', '3560' ); 5 Sanatorio Norte 81042 81185 0 insert into destinos values ( ' 5','Sanatorio Norte ','81042 81185 0', '3560' ); 6 Hospital Malabrigo 0 0 0 insert into destinos values ( ' 6','Hospital Malabrigo ',' 0 0 0', '3560' ); 99 Sin Destino Elegido 0 0 0 insert into destinos values ( '99','Sin Destino Elegido ',' 0 0 0', '3560' ); Repito el programa funciona bien me faltaria nomas que cuando el nro de telefono viene con 0 ponga un espacio nomas por que es un nro que no existe pero no logre todavia poder hacer eso... Cualquier critica, correccion y todo lo demas sera MUY agradecido. Ariel From pepe en diselpro.com Mon May 24 00:04:52 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Mon, 24 May 2004 00:04:52 +0200 Subject: Escuchando el puerto serial In-Reply-To: <1085336504.11440.9.camel@debi.debian> References: <1085336504.11440.9.camel@debi.debian> Message-ID: <200405240004.52509.pepe@diselpro.com> Hola Yo utilizo pyserial http://sourceforge.net/projects/pyserial/ Lo utilizo en un programa hecho con pygtk y hago el poll del puerto serie en los tiempos muertos del gtk.mainloop(). Hasta la fecha no he tenido ningún problema en cuanto a tiempo de respuesta. Supongo que también se podrá utilizar un hilo de tarea para hacer el trabajo rutinario de extraer la información pendiente en el buffer de entrada. Saludos. El Domingo, 23 de Mayo de 2004 20:21, Hector Miuler Malpica Gallegos escribió: > Amigos, quisiera saber cual es la mejor forma de hacer un programa tipo > servidor el cual este muy atento a la entrada del puerto serial, por lo > que e visto siempre es preferible dejar el trabajo pesado al kernel > (loop), ya que el es el que controla toda la pc y sabe cuando pasa algo. > Encontré algo con glib, ya que el tiene un mega loop (bueno eso me dio a > enterder) gmainloop, segun se este puede saber de cualquier evente que > ocurra y se lo puede pasar al programa, esto es lo que hace gnome. > Quisiera saber sus opiniones/comentarios/etc sobre esto, o derrepente ir > mas profundo y ver como glib implementa este gmainloop. > > (el programa que que manejara los datos recibidos por el puerto serial > estara echo en python) > > Gracias. > > _\|/_ > (O-O) > --oOO-(_)-OOo---------------------------------------- > .--. > Hector Miuler Malpica G. |o_o | > Universidad Nacional del Callao - Peru |¡_/ | > Escuela de Ingenieria Electronica // \ \ > (| | ) > /'\_ _/`\ > \__)=(___/ > > .''`. Powered by: ,__, > > : :' : Debian GNU/Linux(SID) (2.4.21,Ext3) (oo)____ > > `. `' usuario registrado #308608 (__) mu )\ > `- ||--|| * > > > Jabber miuler en jabber.org > ICQ 179326439 > MSN miuler13 en iespana.es > Yahoo miuler13 en yahoo.es > IRC irc.freenode.net #apesol > ----------------------------------------------------- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pepe en diselpro.com Mon May 24 00:12:26 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Mon, 24 May 2004 00:12:26 +0200 Subject: Escuchando el puerto serial In-Reply-To: <200405240004.52509.pepe@diselpro.com> References: <1085336504.11440.9.camel@debi.debian> <200405240004.52509.pepe@diselpro.com> Message-ID: <200405240012.26903.pepe@diselpro.com> Opss!! parece ser que esto ya lo has probado. Sorry no había leído tu post del 29-04 Saludos. El Lunes, 24 de Mayo de 2004 00:04, Pepe Aracil escribió: > Hola > > Yo utilizo pyserial http://sourceforge.net/projects/pyserial/ > > Lo utilizo en un programa hecho con pygtk y hago el poll del puerto serie > en los tiempos muertos del gtk.mainloop(). > > Hasta la fecha no he tenido ningún problema en cuanto a tiempo de > respuesta. > > Supongo que también se podrá utilizar un hilo de tarea para hacer el > trabajo rutinario de extraer la información pendiente en el buffer de > entrada. > > Saludos. > > El Domingo, 23 de Mayo de 2004 20:21, Hector Miuler Malpica Gallegos escribió: > > Amigos, quisiera saber cual es la mejor forma de hacer un programa tipo > > servidor el cual este muy atento a la entrada del puerto serial, por lo > > que e visto siempre es preferible dejar el trabajo pesado al kernel > > (loop), ya que el es el que controla toda la pc y sabe cuando pasa algo. > > Encontré algo con glib, ya que el tiene un mega loop (bueno eso me dio a > > enterder) gmainloop, segun se este puede saber de cualquier evente que > > ocurra y se lo puede pasar al programa, esto es lo que hace gnome. > > Quisiera saber sus opiniones/comentarios/etc sobre esto, o derrepente ir > > mas profundo y ver como glib implementa este gmainloop. > > > > (el programa que que manejara los datos recibidos por el puerto serial > > estara echo en python) > > > > Gracias. > > > > _\|/_ > > (O-O) > > --oOO-(_)-OOo---------------------------------------- > > .--. > > Hector Miuler Malpica G. |o_o | > > Universidad Nacional del Callao - Peru |¡_/ | > > Escuela de Ingenieria Electronica // \ \ > > (| | ) > > /'\_ _/`\ > > \__)=(___/ > > > > .''`. Powered by: ,__, > > > > : :' : Debian GNU/Linux(SID) (2.4.21,Ext3) (oo)____ > > > > `. `' usuario registrado #308608 (__) mu )\ > > `- ||--|| * > > > > > > Jabber miuler en jabber.org > > ICQ 179326439 > > MSN miuler13 en iespana.es > > Yahoo miuler13 en yahoo.es > > IRC irc.freenode.net #apesol > > ----------------------------------------------------- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From raster en rastersoft.com Mon May 24 00:58:29 2004 From: raster en rastersoft.com (Sergio Costas) Date: Mon, 24 May 2004 00:58:29 +0200 Subject: [Gnu-c] Escuchando el puerto serial In-Reply-To: <1085336504.11440.9.camel@debi.debian> References: <1085336504.11440.9.camel@debi.debian> Message-ID: <40B12C95.7020206@rastersoft.com> Hector Miuler Malpica Gallegos wrote: Hola Hector! > Amigos, quisiera saber cual es la mejor forma de hacer un programa tipo > servidor el cual este muy atento a la entrada del puerto serial, por lo > que e visto siempre es preferible dejar el trabajo pesado al kernel > (loop), ya que el es el que controla toda la pc y sabe cuando pasa algo. Efectivamente, hacer una operación que se limite a ver todo el rato si hay algun dato disponible es bastante ineficiente. La mejor forma de hacerlo es: -Si sólo tienes que estar atento a si llega un caracter, y sólo entonces hacer una serie de operaciones y luego volver a dormir hasta que llegue otro, la manera más simple es hacer un fid=open("/dev/ttySn",O_READ) y luego leer con read(fid,&buffer,tamano_buffer). La llamada a read se quedará congelada hasta que llegue un caracter (o hasta que se reciba una señal cualquiera). -Si tienes que hacer otras cosas en paralelo, como leer de varios puertos serie, o de otros dispositivos, puedes abrir cada uno con un open() y usar select() para dormir al programa hasta que alguno de los dispositivos tenga datos para entregar, o esté listo para enviar más datos. Como de costumbre, "man 2 open", "man select", "man 2 write" y "man 2 read" son de gran ayuda. Espero que esto te haya servido de ayuda. -- Nos leemos RASTER (Linux user #228804) raster en rastersoft.com http://www.rastersoft.com -- To UNSUBSCRIBE, email to debian-user-spanish-REQUEST en lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster en lists.debian.org From py en ch3m4.org Mon May 24 02:03:57 2004 From: py en ch3m4.org (Chema =?iso-8859-1?b?Q29ydOlz?=) Date: Sun, 23 May 2004 17:03:57 -0700 Subject: [ANUNCIO]python 2.3.4 con TiX Message-ID: <1085357037.40b13bed2e64b@ch3m4.org> Está a punto de salir (si no lo ha hecho ya) la versión 2.3.4 de python. Se trata de una revisión menor para arreglar algunos fallos, pero lo más significativo es que incluye el TiX para windows, una extensión del Tkinter que lo hace más atractivo visualmente y más rápido. Hasta ahora, una de las razones que me impedía utilizar TiX era justamente su penosa instalación para python en windows (para linux no hay problemas). Con esta decisión de incluír el TiX en la distribución de python vuelve a ser interesante volver a echarle un vistazo a este toolkit: http://tix.sourceforge.net http://www.python.org/doc/current/lib/module-Tix.html From ch3m4 en ch3m4.org Mon May 24 04:01:03 2004 From: ch3m4 en ch3m4.org (Chema =?iso-8859-1?b?Q29ydOlz?=) Date: Sun, 23 May 2004 19:01:03 -0700 Subject: correccion de un programa!!! In-Reply-To: <40B11949.5040407@yahoo.com.ar> References: <40B11949.5040407@yahoo.com.ar> Message-ID: <1085364063.40b1575f04ec3@ch3m4.org> Mensaje citado por Ariel Nardelli : > Bueno hice ya mi primer programa en python que es algo mas o menos > usable :) y me gustaria que lo miren y me corrigan y me marquen errores > o me cuenten alguna otra manera de hacer lo que hice... > O sea, sean mis profesores :) Yo te voy a dar algunas SUGERENCIAS, pero en absolutos deben ser consideradas como "errores" de tu programa ("si funciona, no lo arregles"). Lo primero de todo, lo más visible de tú código, es que utilizas demasiado indiscriminadamente la encapsulación en funciones. El separar código de la secuencia principal para llavarlo a una función debería ser o porque es un código que se repite mucho, o porque permite estructurar el programa en partes "funcionales" que lo clarifiquen. Las funciones de tu código no cumplen con estos criterios y sería mejor tener menos funciones y que el código fuera más lineal (reconozco que es una cuestión de gusto personal). Otra cosa, las excepciones deben utilizarse para recuperarse de un error, y no tan sólo para informar. Si no se va a controlar el error, es más aconsejable propagar el error "hacia arriba" en la pila de llamadas por si otro manejador de excepciones lo quiere controlar. En tu código, enmascaras enmascaras el error dando valores ficticios, lo que haría, de ser el código más largo, que no supieras exactamente dónde se estaba produciendo el error. Mi recomendación es que saques el bloque try..except de las funciones y lo pongas donde se pueda controlar los errores, o sea, en el flujo principal. Por ejemplo: def abrepg(): # Conecta a la base pgsql db = pg.DB('nar','192.168.0.1') return db try: db=abrepg() except: print "ERROR: no tengo conexión" ori.close() sys.exit(1) Otra cosa más estética (solemos hablar de ello como más "pytónico") son los tratamiento de las cadenas que haces. Por ejemplo: nrotel = str(k[2]) + " " + str(k[3]) + " " + str(k[4]) lo vemos más elegante hacerlo así (de menos a más "pytónico"): " ".join(str(k[2]),str(k[3]),str(k[4])) " ".join([str(s) for s in k[2:5]]) " ".join([str(s) for s in k[2:5] if s>0]) Éste último evitaría el problema de que salgan ceros cuando no hay teléfonos. Otra variante, con control de formateo: "%5d %5d %5d" % (k[2],k[3],k[4]) "%5d %5d %5d" % k[2:5] Hay algunas mejoras posibles. Se podría ser más explícito poniendo nombres a los campos: for codigo,nombre,tel1,tel2,tel3 in ori: print codigo,nombre,tel1,tel2,tel3 nrotel = str(tel1) + " " + str(tel2]) + " " + str(tel3]) Ó se podría construir la sentencia de una atacada: sql = "insert into destinos values ('%02d','%s','%5d %5d %5d','3560');" db.query(sql%k) Pero es más bien una regla de estilo que una recomendación. No sabría decirte cuál es mejor. Deberás ser tú el que elija su propio estilo. Saludos, Chema From frjanibo en teleline.es Mon May 24 11:59:06 2004 From: frjanibo en teleline.es (Francisco Javier Nieto) Date: Mon, 24 May 2004 11:59:06 +0200 Subject: ctypes y los 16bits In-Reply-To: <40ADE7E8.2090001@hispasec.com> References: <200405211320.41041.frjanibo@teleline.es> <40ADE7E8.2090001@hispasec.com> Message-ID: <200405241159.07091.frjanibo@teleline.es> Hola, > ¿Por que usas la DLL para controlar la impresora? > No te iria mejor probar con las extensiones de win32? No se, algo en > plan win32print :? Pues no, te cuento: la PR50 es una impresora financiera, es decir, tiene más funciones que una impresora normal (pasar página de la libreta, leer codigo de la libreta, etc) y todas esas funciones están implementadas en la libreria DLL mencionada. El problema es que al ser para 16bits, ctypes no traga con ella. Por eso preguntaba si alguien conoce alguna alternativa para usar esa dll. Gracias. -- Francisco Javier Nieto Borrallo JID: frjanibo en jabber.org FingerPrint: 8636 1BA6 14BD 1F12 F0AC 0E1E C1CA 610B 263A 1E0D From jcanto en hispasec.com Mon May 24 12:06:38 2004 From: jcanto en hispasec.com (Julio Canto) Date: Mon, 24 May 2004 12:06:38 +0200 Subject: ctypes y los 16bits In-Reply-To: <200405241159.07091.frjanibo@teleline.es> References: <200405211320.41041.frjanibo@teleline.es> <40ADE7E8.2090001@hispasec.com> <200405241159.07091.frjanibo@teleline.es> Message-ID: <40B1C92E.5010006@hispasec.com> > Pues no, te cuento: la PR50 es una impresora financiera, es decir, tiene más > funciones que una impresora normal (pasar página de la libreta, leer codigo [...] > Por eso preguntaba si alguien conoce alguna alternativa para usar esa > dll. Pos no se.. yo probaria a hacer un 'wrapper' para poder acceder a ello. No se, un pequeño modulo en C (o algo) que de un interfaz viable para python :? From pan_python en yahoo.com.ar Mon May 24 20:38:06 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Mon, 24 May 2004 15:38:06 -0300 Subject: correccion de un programa!!! In-Reply-To: <1085364063.40b1575f04ec3@ch3m4.org> References: <40B11949.5040407@yahoo.com.ar> <1085364063.40b1575f04ec3@ch3m4.org> Message-ID: <40B2410E.9050706@yahoo.com.ar> Chema Cortés wrote: >Mensaje citado por Ariel Nardelli : > > > >>Bueno hice ya mi primer programa en python que es algo mas o menos >>usable :) y me gustaria que lo miren y me corrigan y me marquen errores >>o me cuenten alguna otra manera de hacer lo que hice... >>O sea, sean mis profesores :) >> >> > >Yo te voy a dar algunas SUGERENCIAS, pero en absolutos deben ser consideradas >como "errores" de tu programa ("si funciona, no lo arregles"). > > :) Chema justamente esa era la idea que gente que habitialmente usa python me ayuden a pulir mi pobre logica pythonera, tranquilo lo que me pusiste me ayuda muchisimo en desarrollar mi propia logica y en armar mis propios programas. Mil gracias por tu respuesta y te lo juro que lei atentamente lo que me enviaste y ya estoy poniendo en practica varias cosas que pusiste en el mensaje. Soy programador de hace años, y mis logicas vienen del basic, cobol, clipper y algunas cosas en php y tengo un lio con python por la mezcla de cosas que tengo en la cabeza, pero el lenguaje me gusta y me gusta mucho y quiero aprender a usarlo por que lo quiero usar y quiero desarrollar cosas en python. Y no te preocupes son las sugerencias de todo lo que estoy buscando para que me ayuden a entender y poder usar python. De nuevo, MIL GRACIAS no te das una idea lo que me ayudo las cosas que pusiste. Gracias! Ariel From dvilla en gmx.net Mon May 24 20:58:48 2004 From: dvilla en gmx.net (dvilla) Date: Mon, 24 May 2004 20:58:48 +0200 Subject: Escuchando el puerto serial In-Reply-To: <1085336504.11440.9.camel@debi.debian> References: <1085336504.11440.9.camel@debi.debian> Message-ID: <1085425127.9784.41.camel@amy> Hola: El 'loop' al que te refieres es una implementación del patrón "reactor"[1]. Lo utilizan todos los toolkits de ventanas (al menos los que yo conozco), es típico en la programación dirigida por eventos y es una forma de conseguir entrada/salida asíncrona. Para este tipo de cosas, glib utiliza g_io_channels. No sé si GTK los tiene, pero en python puedes utilizar o bien "select" o bien un hilo específico haciendo una lectura bloqueante al puerto serie. Cualquiera de esas dos cosas es mucho mejor que hacer un polling al puerto. Saludos [1] http://trevinca.ei.uvigo.es/~formella/doc/cd03/node94.html El dom, 23-05-2004 a las 20:21, Hector Miuler Malpica Gallegos escribió: > --=-9Axk3AXTAytC80qov7Xd > Content-Type: text/plain; charset=iso-8859-1 > Content-Transfer-Encoding: quoted-printable > > Amigos, quisiera saber cual es la mejor forma de hacer un programa tipo > servidor el cual este muy atento a la entrada del puerto serial, por lo > que e visto siempre es preferible dejar el trabajo pesado al kernel > (loop), ya que el es el que controla toda la pc y sabe cuando pasa algo. > Encontr=E9 algo con glib, ya que el tiene un mega loop (bueno eso me dio a > enterder) gmainloop, segun se este puede saber de cualquier evente que > ocurra y se lo puede pasar al programa, esto es lo que hace gnome. > Quisiera saber sus opiniones/comentarios/etc sobre esto, o derrepente ir > mas profundo y ver como glib implementa este gmainloop. > > (el programa que que manejara los datos recibidos por el puerto serial > estara echo en python) > > Gracias. > > _\|/_ > (O-O) > --oOO-(_)-OOo---------------------------------------- > .--. > Hector Miuler Malpica G. |o_o | > Universidad Nacional del Callao - Peru |=A1_/ | > Escuela de Ingenieria Electronica // \ \ > (| | ) > /'\_ _/`\ > \__)=3D(___/ > > .''`. Powered by: ,__, > : :' : Debian GNU/Linux(SID) (2.4.21,Ext3) (oo)____ > `. `' usuario registrado #308608 (__) mu )\ > `- ||--|| * > =20 > > Jabber miuler en jabber.org > ICQ 179326439 > MSN miuler13 en iespana.es > Yahoo miuler13 en yahoo.es > IRC irc.freenode.net #apesol > ----------------------------------------------------- > > > --=-9Axk3AXTAytC80qov7Xd-- > > > ---Publicidad-------------------------------------------------------- > Juega con Ventura24.es, lotería inteligente y multiplica tus > posibilidades!! http://www.iespana.es/_reloc/email.ventura > > > > ______________________________________________________________________ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From dlopez en aditel.org Tue May 25 01:19:14 2004 From: dlopez en aditel.org (Darío López Llueca) Date: Tue, 25 May 2004 01:19:14 +0200 Subject: Detectar SO Message-ID: <20040524231914.GA20587@aditel.org> Hola a todos. Quisiera saber si hay alguna forma de saber en que SO está corriendo Python. Es decir, si existe alguna función, método, ... lo que sea que me diga por ejemplo si el Python está funcionando bajo un Windows 98, una Debian, un FreeBSD... He estado buscando en la doc, pero hasta la fehca no he encontrado nada :( Gracias por la ayuda de antemano. From morillas en posta.unizar.es Tue May 25 01:53:10 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Tue, 25 May 2004 01:53:10 +0200 Subject: Detectar SO In-Reply-To: <20040524231914.GA20587@aditel.org> References: <20040524231914.GA20587@aditel.org> Message-ID: <20040524235310.GA2891@marmota> Asunto: [Python-es] Detectar SO Fecha: mar, may 25, 2004 at 01:19:14 +0200 Citando a Darío López Llueca (dlopez en aditel.org): > Hola a todos. > > Quisiera saber si hay alguna forma de saber en que SO está corriendo > Python. Es decir, si existe alguna función, método, ... lo que sea que > me diga por ejemplo si el Python está funcionando bajo un Windows 98, > una Debian, un FreeBSD... He estado buscando en la doc, pero hasta la > fehca no he encontrado nada :( > python -c "import sys; print sys.platform" -- Luis Miguel No a las patentes de software en Europa EuropeSwPatentFree http://EuropeSwPatentFree.hispalinux.es From dlopez en aditel.org Tue May 25 01:36:00 2004 From: dlopez en aditel.org (Darío López Llueca) Date: Tue, 25 May 2004 01:36:00 +0200 Subject: Detectar SO In-Reply-To: <20040524235310.GA2891@marmota> References: <20040524231914.GA20587@aditel.org> <20040524235310.GA2891@marmota> Message-ID: <20040524233600.GA23121@aditel.org> On Tue, May 25, 2004 at 01:53:10AM +0200, luis miguel morillas wrote: > > Asunto: [Python-es] Detectar SO > Fecha: mar, may 25, 2004 at 01:19:14 +0200 > > > Citando a Darío López Llueca (dlopez en aditel.org): > > Hola a todos. > > > > Quisiera saber si hay alguna forma de saber en que SO está corriendo > > Python. Es decir, si existe alguna función, método, ... lo que sea que > > me diga por ejemplo si el Python está funcionando bajo un Windows 98, > > una Debian, un FreeBSD... He estado buscando en la doc, pero hasta la > > fehca no he encontrado nada :( > > > python -c "import sys; print sys.platform" Ya sé que supongo que va a ser pedir demasiado, pero es que ese comando sólo me dá una "ligera pista". Porque, por ejemplo, en un Windows me dice win32, pero no sabé decirme si es un Windows '98 o un Millenium, y me interesa bastante que me conteste a eso con mucha precisión. De todas formas te agradezco mucho tú intento Luis Miguel, de verás. ¿Alguna idea más? > > > -- > > Luis Miguel > > No a las patentes de software en Europa > EuropeSwPatentFree > http://EuropeSwPatentFree.hispalinux.es > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From morillas en posta.unizar.es Tue May 25 02:16:43 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Tue, 25 May 2004 02:16:43 +0200 Subject: Detectar SO In-Reply-To: <20040524233600.GA23121@aditel.org> References: <20040524231914.GA20587@aditel.org> <20040524235310.GA2891@marmota> <20040524233600.GA23121@aditel.org> Message-ID: <20040525001642.GA3019@marmota> Asunto: Re: [Python-es] Detectar SO Fecha: mar, may 25, 2004 at 01:36:00 +0200 Citando a Darío López Llueca (dlopez en aditel.org): > On Tue, May 25, 2004 at 01:53:10AM +0200, luis miguel morillas wrote: > > > > Asunto: [Python-es] Detectar SO > > Fecha: mar, may 25, 2004 at 01:19:14 +0200 > > > > > > Citando a Darío López Llueca (dlopez en aditel.org): > > > Hola a todos. > > > > > > Quisiera saber si hay alguna forma de saber en que SO está corriendo > > > Python. Es decir, si existe alguna función, método, ... lo que sea que > > > me diga por ejemplo si el Python está funcionando bajo un Windows 98, > > > una Debian, un FreeBSD... He estado buscando en la doc, pero hasta la > > > fehca no he encontrado nada :( > > > > > python -c "import sys; print sys.platform" > > Ya sé que supongo que va a ser pedir demasiado, pero es que ese comando > sólo me dá una "ligera pista". Porque, por ejemplo, en un Windows me > dice win32, pero no sabé decirme si es un Windows '98 o un Millenium, y > me interesa bastante que me conteste a eso con mucha precisión. > Bueno. También tiene solución. No uso windows de forma habitual, pero puedes averiguarlo usando las extensiones de M. Hammond. Mira esto [1]. Usa el paquete win32all. > De todas formas te agradezco mucho tú intento Luis Miguel, de verás. > :) > ¿Alguna idea más? > [1] http://www.python.org/dev/doc/devel/lib/node308.html -- Luis Miguel No a las patentes de software en Europa EuropeSwPatentFree http://EuropeSwPatentFree.hispalinux.es From morillas en posta.unizar.es Tue May 25 02:23:39 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Tue, 25 May 2004 02:23:39 +0200 Subject: Detectar SO In-Reply-To: <20040525001642.GA3019@marmota> References: <20040524231914.GA20587@aditel.org> <20040524235310.GA2891@marmota> <20040524233600.GA23121@aditel.org> <20040525001642.GA3019@marmota> Message-ID: <20040525002339.GA3072@marmota> Asunto: Re: [Python-es] Detectar SO Fecha: mar, may 25, 2004 at 02:16:43 +0200 Citando a luis miguel morillas (morillas en posta.unizar.es): > > Asunto: Re: [Python-es] Detectar SO > Fecha: mar, may 25, 2004 at 01:36:00 +0200 > > > Citando a Darío López Llueca (dlopez en aditel.org): > > On Tue, May 25, 2004 at 01:53:10AM +0200, luis miguel morillas wrote: > > > > > > Asunto: [Python-es] Detectar SO > > > Fecha: mar, may 25, 2004 at 01:19:14 +0200 > > > > > > > > > Citando a Darío López Llueca (dlopez en aditel.org): > > > > Hola a todos. > > > > > > > > Quisiera saber si hay alguna forma de saber en que SO está corriendo > > > > Python. Es decir, si existe alguna función, método, ... lo que sea que > > > > me diga por ejemplo si el Python está funcionando bajo un Windows 98, > > > > una Debian, un FreeBSD... He estado buscando en la doc, pero hasta la > > > > fehca no he encontrado nada :( > > > > > > > python -c "import sys; print sys.platform" > > > > Ya sé que supongo que va a ser pedir demasiado, pero es que ese comando > > sólo me dá una "ligera pista". Porque, por ejemplo, en un Windows me > > dice win32, pero no sabé decirme si es un Windows '98 o un Millenium, y > > me interesa bastante que me conteste a eso con mucha precisión. > > > Bueno. También tiene solución. No uso windows de forma habitual, pero puedes > averiguarlo usando las extensiones de M. Hammond. Mira esto [1]. Usa el paquete > win32all. > Me comento a mi mismo. Puedes usar el módulo platform (nuevo en la versión 2.3) Lo más sencillo, import platform print platform.platform() Tienes un montón de métodos (dependientes de la plataforma muchos de ellos) -- Luis Miguel No a las patentes de software en Europa EuropeSwPatentFree http://EuropeSwPatentFree.hispalinux.es From notfound en notfound.org Tue May 25 13:19:07 2004 From: notfound en notfound.org (=?iso-8859-1?Q?C=E9sar?= Duque) Date: Tue, 25 May 2004 13:19:07 +0200 Subject: Re-escribiendo la misma linea Message-ID: <6.0.1.1.2.20040525131446.037df688@mail.puntocero.es> Hola, intento hacer un sencillo script para consola que parsea un archivo, es mi primer script para consola y me asalta una duda que no puedo disipar, quizás podais echarme un cable. Pretendo mostrar un porcentaje o una barra de progreso... estas cosas para dejarlo un poco bonito, la cosa es que no se hacer una cosa elemental en python y no encuentro documentación de como hacerla, esto es reescribir el % en la misma linea en la que esta el cursor a medida que vaya avanzando y no una nueva linea por cada vez que aumenten las iteraciones del bucle. Lo he intentado con curses, ignorante de mi, hasta que me he dado cuenta de que al reemplazar toda la "ventana" actual cuando intento obtener la posicion es siempre 0,0. Me interesaría que fuese en la propia linea de comandos despues de escupir el resultado sin tener que borrar la pantalla cada vez etc. A ver si me podeis orientar con esta laguna conceptual o donde puedo leer sobre esto. Gracias _________________________ # César Duque - error404 # notfound [always at] notfound.org From jcanto en hispasec.com Tue May 25 13:23:15 2004 From: jcanto en hispasec.com (Julio Canto) Date: Tue, 25 May 2004 13:23:15 +0200 Subject: Re-escribiendo la misma linea In-Reply-To: <6.0.1.1.2.20040525131446.037df688@mail.puntocero.es> References: <6.0.1.1.2.20040525131446.037df688@mail.puntocero.es> Message-ID: <40B32CA3.3020400@hispasec.com> César Duque wrote: > Hola, intento hacer un sencillo script para consola que parsea un > archivo, es mi primer script para consola y me asalta una duda que no > puedo disipar, quizás podais echarme un cable. > Pretendo mostrar un porcentaje o una barra de progreso... estas cosas > para dejarlo un poco bonito, la cosa es que no se hacer una cosa > elemental en python y no encuentro documentación de como hacerla, esto > es reescribir el % en la misma linea en la que esta el cursor a medida > que vaya avanzando y no una nueva linea por cada vez que aumenten las > iteraciones del bucle. > > Lo he intentado con curses, ignorante de mi, hasta que me he dado > cuenta de que al reemplazar toda la "ventana" actual cuando intento > obtener la posicion es siempre 0,0. > Me interesaría que fuese en la propia linea de comandos despues de > escupir el resultado sin tener que borrar la pantalla cada vez etc. > > A ver si me podeis orientar con esta laguna conceptual o donde puedo > leer sobre esto. Gracias > > > has probado con "\r"? p.e. >>> print "\rhola\rjo" jola From notfound en notfound.org Tue May 25 13:28:31 2004 From: notfound en notfound.org (=?iso-8859-1?Q?C=E9sar?= Duque) Date: Tue, 25 May 2004 13:28:31 +0200 Subject: Re-escribiendo la misma linea In-Reply-To: <40B32CA3.3020400@hispasec.com> References: <6.0.1.1.2.20040525131446.037df688@mail.puntocero.es> <40B32CA3.3020400@hispasec.com> Message-ID: <6.0.1.1.2.20040525132641.0386b4f0@mail.notfound.org> Emm... gracias ahora me siento un poco retrasado mental o algo... pero era lo que buscaba :) At 13:23 25/05/2004, you wrote: >César Duque wrote: > >>Hola, intento hacer un sencillo script para consola que parsea un >>archivo, es mi primer script para consola y me asalta una duda que no >>puedo disipar, quizás podais echarme un cable. >>Pretendo mostrar un porcentaje o una barra de progreso... estas cosas >>para dejarlo un poco bonito, la cosa es que no se hacer una cosa >>elemental en python y no encuentro documentación de como hacerla, esto es >>reescribir el % en la misma linea en la que esta el cursor a medida que >>vaya avanzando y no una nueva linea por cada vez que aumenten las >>iteraciones del bucle. >> >>Lo he intentado con curses, ignorante de mi, hasta que me he dado cuenta >>de que al reemplazar toda la "ventana" actual cuando intento obtener la >>posicion es siempre 0,0. >>Me interesaría que fuese en la propia linea de comandos despues de >>escupir el resultado sin tener que borrar la pantalla cada vez etc. >> >>A ver si me podeis orientar con esta laguna conceptual o donde puedo leer >>sobre esto. Gracias >> >> >has probado con "\r"? >p.e. > >>> print "\rhola\rjo" >jola _________________________ # César Duque - error404 # notfound [always at] notfound.org From jcanto en hispasec.com Tue May 25 13:32:07 2004 From: jcanto en hispasec.com (Julio Canto) Date: Tue, 25 May 2004 13:32:07 +0200 Subject: Re-escribiendo la misma linea In-Reply-To: <6.0.1.1.2.20040525132641.0386b4f0@mail.notfound.org> References: <6.0.1.1.2.20040525131446.037df688@mail.puntocero.es> <40B32CA3.3020400@hispasec.com> <6.0.1.1.2.20040525132641.0386b4f0@mail.notfound.org> Message-ID: <40B32EB7.50700@hispasec.com> César Duque wrote: > era lo que buscaba :) A mi tambien me paso algo parecido y estuve enredando con una libreria de windows... hasta que un dia mirando una tabla ascii para no recuerdo que, se me ilumino la neurona :) Un saluding JC From rodrigo en gnome-db.org Tue May 25 13:48:10 2004 From: rodrigo en gnome-db.org (Rodrigo Moya) Date: Tue, 25 May 2004 13:48:10 +0200 Subject: [Gnome-desarrollo] Escuchando el puerto serial In-Reply-To: <1085336504.11440.9.camel@debi.debian> References: <1085336504.11440.9.camel@debi.debian> Message-ID: <1085485690.1487.56.camel@cerler.home> On Sun, 2004-05-23 at 13:21 -0500, Hector Miuler Malpica Gallegos wrote: > Amigos, quisiera saber cual es la mejor forma de hacer un programa tipo > servidor el cual este muy atento a la entrada del puerto serial, por lo > que e visto siempre es preferible dejar el trabajo pesado al kernel > (loop), ya que el es el que controla toda la pc y sabe cuando pasa algo. > Encontré algo con glib, ya que el tiene un mega loop (bueno eso me dio a > enterder) gmainloop, segun se este puede saber de cualquier evente que > ocurra y se lo puede pasar al programa, esto es lo que hace gnome. > Quisiera saber sus opiniones/comentarios/etc sobre esto, o derrepente ir > mas profundo y ver como glib implementa este gmainloop. > puedes usar GIOChannel's, que te permiten, a partir de un descriptor de fichero (open ("/dev/ttyS0")), escuchar los eventos que se produzcan. saludos From o.merchan en bussitel.es Tue May 25 16:23:46 2004 From: o.merchan en bussitel.es (Oscar Merchan) Date: Tue, 25 May 2004 16:23:46 +0200 Subject: Re-escribiendo la misma linea In-Reply-To: <6.0.1.1.2.20040525132641.0386b4f0@mail.notfound.org> References: <6.0.1.1.2.20040525131446.037df688@mail.puntocero.es> <40B32CA3.3020400@hispasec.com> <6.0.1.1.2.20040525132641.0386b4f0@mail.notfound.org> Message-ID: <20040525162346.6ff59b4f.o.merchan@bussitel.es> On Tue, 25 May 2004 13:28:31 +0200 César Duque wrote: Buenas. Yo para lo que quieres, utilizo algo mas complicado pero queda la mar de bonito y es muy funcional, no me acuerdo donde lo encontre, solo se, que desde aquel dio lo tengo puesto en unos cuantos scripts de consola, te pongo aqui el codigo .- import sys,os #Definiendo los colores y la funcion de color que se van a usar en todo el programa enable_color = 1 hotkeycol = "red" colors = { "black" : "30", "red" : "31", "green" : "32", "brown" : "33", "blue" : "34", "purple" : "35", "cyan" : "36", "lgray" : "37", "gray" : "1;30", "lred" : "1;31", "lgreen" : "1;32", "yellow" : "1;33", "lblue" : "1;34", "pink" : "1;35", "lcyan" : "1;36", "white" : "1;37", "lyellow" : "43" } def color(text, fg, bg=None, raw=0): if not enable_color: return text if type(fg) in (TupleType, ListType): fg, bg = fg if not fg: return text opencol = "\033[" closecol = "m" if raw: opencol = r"\[\033[" closecol = r"m\]" clear = opencol + "0" + closecol xterm = 0 if os.environ["TERM"] == "xterm": xterm = 1 b = '' # In xterm, brown comes out as yellow.. if xterm and fg == "yellow": fg = "brown" f = opencol + colors[fg] + closecol if bg: if bg == "yellow" and xterm: bg = "brown" try: b = colors[bg].replace('3', '4', 1) b = opencol + b + closecol except KeyError: pass return "%s%s%s%s" % (b, f, text, clear) #Definimos la funcion que utilizaremos para la barra de progreso def progress(ratio, length=60, col=1, cols=("lgreen", "red", "blue"), nocol="=."): if ratio > 1: ratio = 1 elchar, leftchar = nocol elapsed = int(round(ratio*length)) left = length - elapsed bar = elchar*elapsed + leftchar*left bar = bar[:length] if col: c_elapsed, c_left, perc = cols bar = color(' '*elapsed, "gray", c_elapsed) bar = bar + color(' '*left, "gray", c_left) else: bar = elchar*elapsed + leftchar*left return bar Y una utilizacion simple de todo ello seria .- print "\033[20;2H"+color("0%","white") print "\033[20;66H"+color("100%","white") print "\033[20;5H"+(progress(total)) Yo para poner el cursor donde desee lo que hago es utilizar el codigo ansi, que es estandar y no te obliga a utilizar modulos estaños, de esa forma conseguimos un mayor compatibilidad, el codigo en el print que controla las coordenadas del cursosr es el "\033[20;2H". > Emm... gracias ahora me siento un poco retrasado mental o algo... pero era > lo que buscaba :) > > At 13:23 25/05/2004, you wrote: > >César Duque wrote: > > > >>Hola, intento hacer un sencillo script para consola que parsea un > >>archivo, es mi primer script para consola y me asalta una duda que no > >>puedo disipar, quizás podais echarme un cable. > >>Pretendo mostrar un porcentaje o una barra de progreso... estas cosas > >>para dejarlo un poco bonito, la cosa es que no se hacer una cosa > >>elemental en python y no encuentro documentación de como hacerla, esto es > >>reescribir el % en la misma linea en la que esta el cursor a medida que > >>vaya avanzando y no una nueva linea por cada vez que aumenten las > >>iteraciones del bucle. > >> > >>Lo he intentado con curses, ignorante de mi, hasta que me he dado cuenta > >>de que al reemplazar toda la "ventana" actual cuando intento obtener la > >>posicion es siempre 0,0. > >>Me interesaría que fuese en la propia linea de comandos despues de > >>escupir el resultado sin tener que borrar la pantalla cada vez etc. > >> > >>A ver si me podeis orientar con esta laguna conceptual o donde puedo leer > >>sobre esto. Gracias > >> > >> > >has probado con "\r"? > >p.e. > > >>> print "\rhola\rjo" > >jola > > _________________________ > # César Duque - error404 > # notfound [always at] notfound.org > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From notfound en notfound.org Tue May 25 17:27:11 2004 From: notfound en notfound.org (=?iso-8859-1?Q?C=E9sar?= Duque) Date: Tue, 25 May 2004 17:27:11 +0200 Subject: Re-escribiendo la misma linea In-Reply-To: <20040525162346.6ff59b4f.o.merchan@bussitel.es> References: <6.0.1.1.2.20040525131446.037df688@mail.puntocero.es> <40B32CA3.3020400@hispasec.com> <6.0.1.1.2.20040525132641.0386b4f0@mail.notfound.org> <20040525162346.6ff59b4f.o.merchan@bussitel.es> Message-ID: <6.0.1.1.2.20040525171645.01e70e48@mail.notfound.org> Hola Oscar, muy interesante me voy a guardar este mensaje. Al final solucione con el \r y ocultando el molesto parpadeo del cursor con \x1b[?25l Gracias At 16:23 25/05/2004, you wrote: >On Tue, 25 May 2004 13:28:31 +0200 >César Duque wrote: > >Buenas. > >Yo para lo que quieres, utilizo algo mas complicado pero queda la mar de >bonito y es muy funcional, no me acuerdo donde lo encontre, >solo se, que desde aquel dio lo tengo puesto en unos cuantos scripts de >consola, te pongo aqui el codigo .- > > >import sys,os >#Definiendo los colores y la funcion de color que se van a usar en todo el >programa >enable_color = 1 >hotkeycol = "red" >colors = { > "black" : "30", > "red" : "31", > "green" : "32", > "brown" : "33", > "blue" : "34", > "purple" : "35", > "cyan" : "36", > "lgray" : "37", > "gray" : "1;30", > "lred" : "1;31", > "lgreen" : "1;32", > "yellow" : "1;33", > "lblue" : "1;34", > "pink" : "1;35", > "lcyan" : "1;36", > "white" : "1;37", > "lyellow" : "43" > } >def color(text, fg, bg=None, raw=0): > > if not enable_color: > return text > if type(fg) in (TupleType, ListType): > fg, bg = fg > if not fg: > return text > opencol = "\033[" > closecol = "m" > if raw: > opencol = r"\[\033[" > closecol = r"m\]" > clear = opencol + "0" + closecol > xterm = 0 > if os.environ["TERM"] == "xterm": > xterm = 1 > b = '' > # In xterm, brown comes out as yellow.. > if xterm and fg == "yellow": > fg = "brown" > f = opencol + colors[fg] + closecol > if bg: > if bg == "yellow" and xterm: > bg = "brown" > try: > b = colors[bg].replace('3', '4', 1) > b = opencol + b + closecol > except KeyError: > pass > return "%s%s%s%s" % (b, f, text, clear) > > > >#Definimos la funcion que utilizaremos para la barra de progreso >def progress(ratio, length=60, col=1, cols=("lgreen", "red", "blue"), > nocol="=."): > if ratio > 1: > ratio = 1 > elchar, leftchar = nocol > elapsed = int(round(ratio*length)) > left = length - elapsed > bar = elchar*elapsed + leftchar*left > bar = bar[:length] > if col: > c_elapsed, c_left, perc = cols > bar = color(' '*elapsed, "gray", c_elapsed) > bar = bar + color(' '*left, "gray", c_left) > else: > bar = elchar*elapsed + leftchar*left > return bar > >Y una utilizacion simple de todo ello seria .- > >print "\033[20;2H"+color("0%","white") >print "\033[20;66H"+color("100%","white") > >print "\033[20;5H"+(progress(total)) > >Yo para poner el cursor donde desee lo que hago es utilizar el codigo >ansi, que es estandar y no te obliga a utilizar modulos estaños, de esa >forma conseguimos un mayor compatibilidad, el codigo en el print que >controla las coordenadas del cursosr es el "\033[20;2H". > > > Emm... gracias ahora me siento un poco retrasado mental o algo... pero era > > lo que buscaba :) > > > > At 13:23 25/05/2004, you wrote: > > >César Duque wrote: > > > > > >>Hola, intento hacer un sencillo script para consola que parsea un > > >>archivo, es mi primer script para consola y me asalta una duda que no > > >>puedo disipar, quizás podais echarme un cable. > > >>Pretendo mostrar un porcentaje o una barra de progreso... estas cosas > > >>para dejarlo un poco bonito, la cosa es que no se hacer una cosa > > >>elemental en python y no encuentro documentación de como hacerla, > esto es > > >>reescribir el % en la misma linea en la que esta el cursor a medida que > > >>vaya avanzando y no una nueva linea por cada vez que aumenten las > > >>iteraciones del bucle. > > >> > > >>Lo he intentado con curses, ignorante de mi, hasta que me he dado cuenta > > >>de que al reemplazar toda la "ventana" actual cuando intento obtener la > > >>posicion es siempre 0,0. > > >>Me interesaría que fuese en la propia linea de comandos despues de > > >>escupir el resultado sin tener que borrar la pantalla cada vez etc. > > >> > > >>A ver si me podeis orientar con esta laguna conceptual o donde puedo > leer > > >>sobre esto. Gracias > > >> > > >> > > >has probado con "\r"? > > >p.e. > > > >>> print "\rhola\rjo" > > >jola > > > > _________________________ > > # César Duque - error404 > > # notfound [always at] notfound.org > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________ # César Duque - error404 # notfound [always at] notfound.org From jcea en argo.es Wed May 26 06:39:51 2004 From: jcea en argo.es (Jesus Cea Avion) Date: Wed, 26 May 2004 06:39:51 +0200 Subject: ctypes y los 16bits References: <200405211320.41041.frjanibo@teleline.es> <40ADE7E8.2090001@hispasec.com> <200405241159.07091.frjanibo@teleline.es> Message-ID: <40B41F97.95F39395@argo.es> > Por eso preguntaba si alguien conoce alguna alternativa para usar esa > dll. Me pregunto si sería accesible acceder a esa DLL vía el sistema COM de Windows. -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/_/_/_/ PGP Key Available at KeyServ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz From pan_python en yahoo.com.ar Wed May 26 08:30:34 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Wed, 26 May 2004 03:30:34 -0300 Subject: convertir campos string en numericos. Message-ID: <40B4398A.6020705@yahoo.com.ar> Hola a todos... Sigo en mi cruzada de crear el primer programa en python :) Estoy convirtiendo datos desde una base de clipper (dbf) y pasarlo a pgsql o mysql (estoy probando con las dos bases) y se me esta presentando un problema. El scrip que lee los dbf me envia los datos todos en formatos string aunque esten en la base dbf como numericos, asi por ejemplo el campo codigo me viene ' 5' o sea 4 espacios y el 5 al final, yo los quiero convertir a numericos para poder grabarlos en la db como numericos aunque observe que cuando mando a grabar a una db un campo que contiene numeros lo trata como mumericos, asi que hasta aca todo bien. Para convertirlos utilizo la funcion int y me los pasa a numericos y los grabo perfectamente. PERO, cuando el campo origen me viene vacio o sea no viene con numeros o sea viene ' ' el int me da error y me para el programa... Lo solucione "a lo bestia" haciendo una if antes y preguntando si el campo es 5 espacios pero creo que python ha de tener una funcion que me convierta a numericos y en el caso que sea una cadena de espacios me de un null o un 0, cosa que ahora estoy haciendo a mano :) Existe esta funcion? que nombre tiene? Gracias... From jcanto en hispasec.com Wed May 26 08:44:57 2004 From: jcanto en hispasec.com (Julio Canto) Date: Wed, 26 May 2004 08:44:57 +0200 Subject: convertir campos string en numericos. In-Reply-To: <40B4398A.6020705@yahoo.com.ar> References: <40B4398A.6020705@yahoo.com.ar> Message-ID: <40B43CE9.8070409@hispasec.com> Ariel Nardelli wrote: > Para convertirlos utilizo la funcion int y me los pasa a numericos y > los grabo perfectamente. > PERO, cuando el campo origen me viene vacio o sea no viene con numeros > o sea viene ' ' el int me da error y me para el programa... > > Lo solucione "a lo bestia" haciendo una if antes y preguntando si el > campo es 5 espacios pero creo que python ha de tener una funcion que > me convierta a numericos y en el caso que sea una cadena de espacios > me de un null o un 0, cosa que ahora estoy haciendo a mano :) > > Existe esta funcion? que nombre tiene? yo probaria con algo asi (que ademas te cura en salud): try: valor = int(cadena) except: valor = 0 Un saluo mañanero, JC From gari en eibar.org Wed May 26 08:48:40 2004 From: gari en eibar.org (Gari Araolaza) Date: Wed, 26 May 2004 08:48:40 +0200 Subject: convertir campos string en numericos. In-Reply-To: <40B4398A.6020705@yahoo.com.ar> References: <40B4398A.6020705@yahoo.com.ar> Message-ID: <40B43DC8.4070206@eibar.org> Ariel Nardelli(e)k dio: > Lo solucione "a lo bestia" haciendo una if antes y preguntando si el > campo es 5 espacios pero creo que python ha de tener una funcion que > me convierta a numericos y en el caso que sea una cadena de espacios > me de un null o un 0, cosa que ahora estoy haciendo a mano :) > > Existe esta funcion? que nombre tiene? Has probado con try ? Yo lo haría así: mis_datos = [' 1',' 45',' '] # Aquí tienes tus datos for dato_string in mis_datos: try: dato_num = int(dato_string.strip()) except: dato_num = 0 print dato_num strip() es una función para limpiar un string de caracteres vacíos (espacios, saltos de línea etc) por delante y por detrás. Saludos Gari From pan_python en yahoo.com.ar Wed May 26 08:50:28 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Wed, 26 May 2004 03:50:28 -0300 Subject: convertir campos string en numericos. In-Reply-To: <40B43CE9.8070409@hispasec.com> References: <40B4398A.6020705@yahoo.com.ar> <40B43CE9.8070409@hispasec.com> Message-ID: <40B43E34.4060207@yahoo.com.ar> Muchas Gracias!!!! Ya lo estoy probando, sinceramente pense hacer algo asi pero despues se me ocurrio que podria llegar a existir otro metodo que no salir por try. Gracias Julio y gracias por la velocidad de la respuesta!! :) Ariel Julio Canto wrote: > Ariel Nardelli wrote: > >> Para convertirlos utilizo la funcion int y me los pasa a numericos y >> los grabo perfectamente. >> PERO, cuando el campo origen me viene vacio o sea no viene con >> numeros o sea viene ' ' el int me da error y me para el programa... >> >> Lo solucione "a lo bestia" haciendo una if antes y preguntando si el >> campo es 5 espacios pero creo que python ha de tener una funcion que >> me convierta a numericos y en el caso que sea una cadena de espacios >> me de un null o un 0, cosa que ahora estoy haciendo a mano :) >> >> Existe esta funcion? que nombre tiene? > > > yo probaria con algo asi (que ademas te cura en salud): > > try: > valor = int(cadena) > except: > valor = 0 > > Un saluo mañanero, > JC > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-e > s From clp en opencanarias.com Wed May 26 10:19:17 2004 From: clp en opencanarias.com (Carlos Lopez Perez) Date: Wed, 26 May 2004 09:19:17 +0100 Subject: FC2 & wxPythonGTK2 Message-ID: <1085559556.2820.17.camel@IMAGINE> Hola chicos[as] Acabo de instalar la fedora core 2, y quiero instalar el wxPythonGTK2 en el sistema. Por supuesto no encuentro los correspondientes rpm binarios (alguna sugerencia?) He encontrado una página con software (rpm para fedora core 2) interesante, en su formato binario y en fuente para su compilación (wxpython, boa, drpython, ...). binarios: http://newrpms.sunsite.dk/apt/redhat/en/i386/fc2/RPMS.newrpms/ fuentes: http://newrpms.sunsite.dk/apt/redhat/en/i386/fc2/SRPMS.newrpms/ En binario he encontrado wxpythongtk-2.4.2.4-1.rhfc2.nr.i386.rpm Y en los fuentes he encontrado wxPythonGTK2-py2.3-2.5.1.5-1.src.rpm Inicialmente me instalé la versión GKT2, la compilé y la instalé sin problemas, pero al importar wx falla por errores de librerías. Posteriormente me instalé la versión binaria en gtk y funciona perfectamente. También he intentado instalar las versiones 2.5.1 en su versión binaria y sus fuentes (para compilarlas). Ninguna de las dos ha funcionado. ¿Alguna sugerencia? Muchas gracias anticipadas por su colaboración Salu2 de clp ;) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Wed May 26 12:06:15 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Wed, 26 May 2004 12:06:15 +0200 Subject: convertir campos string en numericos. In-Reply-To: <40B4398A.6020705@yahoo.com.ar> References: <40B4398A.6020705@yahoo.com.ar> Message-ID: <200405261206.15465.py@ch3m4.org> El Miércoles, 26 de Mayo de 2004 08:30, Ariel Nardelli escribió: > Para convertirlos utilizo la funcion int y me los pasa a numericos y los > grabo perfectamente. > PERO, cuando el campo origen me viene vacio o sea no viene con numeros o > sea viene ' ' el int me da error y me para el programa... Ya te han respondido que puedes usar el try..except para lo que quieres, pero si luego vas a construir una sentencia SQL no deberías preocuparte tanto por ello y dejar al motor de la base de datos que trabaje con el dato: create temporary table prueba (dato integer NULL); insert into prueba values (0), ('2'),(' '),('asdfasd'), (NULL); select * from prueba; +------+ | dato | +------+ | 0 | | 2 | | 0 | | 0 | | NULL | +------+ Se ve que el mysql interpreta por defecto las strings que no entiende como ceros, incluso la string ' ' que te daba problemas. Pero siendo estrictos, cuando un campo numérico en dbase está vacío lo correcto sería interpretarlo como 'Sin valor', lo que en SQL se entiende como NULL. La DB-API de python identifica NULL con el singleton '(None,)': NULL=(None,) sql="insert into dato values (%s)" if not dato.strip(): dato=NULL cur.execute(sql, dato) From py en ch3m4.org Wed May 26 13:14:39 2004 From: py en ch3m4.org (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Wed, 26 May 2004 13:14:39 +0200 Subject: FC2 & wxPythonGTK2 In-Reply-To: <1085559556.2820.17.camel@IMAGINE> References: <1085559556.2820.17.camel@IMAGINE> Message-ID: <200405261314.39378.py@ch3m4.org> El Miércoles, 26 de Mayo de 2004 10:19, Carlos Lopez Perez escribió: > Hola chicos[as] > > Acabo de instalar la fedora core 2, y quiero instalar el wxPythonGTK2 en > el sistema. Por supuesto no encuentro los correspondientes rpm binarios > (alguna sugerencia?) > >... > Inicialmente me instalé la versión GKT2, la compilé y la instalé sin > problemas, pero al importar wx falla por errores de librerías. Creo que los binarios de wxPython están compilados sólo para gtk+ 1.2 . Si quieres utilizar gtk2 tendrás que recompilar los fuentes. > También he intentado instalar las versiones 2.5.1 en su versión binaria > y sus fuentes (para compilarlas). Ninguna de las dos ha funcionado. ¿Qué te falla de la instalación de los fuentes? Seguramente tendrás que actualizar algunos paquetes como el binutils, o puede que no tengas más opción que utilizar el fichero .tar.gz (no utilizo fedora para decirte más). ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From linux13 en iespana.es Wed May 26 14:05:07 2004 From: linux13 en iespana.es (Hector Miuler Malpica Gallegos) Date: Wed, 26 May 2004 07:05:07 -0500 Subject: array o Numeric? Message-ID: <1085508694.20967.3.camel@debi.debian> Hola amigos, encontre dos modulos: uno es array y el otro Numeric, array biene con el python2.3, pero queria saber cual es mas recomendable usar para arrrays, ¿array se creo despues que aparesca Numeric? _\|/_ (O-O) --oOO-(_)-OOo---------------------------------------- .--. Hector Miuler Malpica G. |o_o | Universidad Nacional del Callao - Peru |¡_/ | Escuela de Ingenieria Electronica // \ \ (| | ) /'\_ _/`\ \__)=(___/ .''`. Powered by: ,__, : :' : Debian GNU/Linux(SID) (2.4.21,Ext3) (oo)____ `. `' usuario registrado #308608 (__) mu )\ `- ||--|| * Jabber miuler en jabber.org ICQ 179326439 MSN miuler13 en iespana.es Yahoo miuler13 en yahoo.es IRC irc.freenode.net #apesol ----------------------------------------------------- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From clp en opencanarias.com Wed May 26 14:12:20 2004 From: clp en opencanarias.com (Carlos Lopez Perez) Date: Wed, 26 May 2004 13:12:20 +0100 Subject: FC2 & wxPythonGTK2 In-Reply-To: <200405261314.39378.py@ch3m4.org> References: <1085559556.2820.17.camel@IMAGINE> <200405261314.39378.py@ch3m4.org> Message-ID: <1085573539.2820.68.camel@IMAGINE> Muchas gracias Chema por tu interés ;) El mié, 26-05-2004 a las 12:14, Chema Cortés escribió: > El Miércoles, 26 de Mayo de 2004 10:19, Carlos Lopez Perez escribió: > > Hola chicos[as] > > > > Acabo de instalar la fedora core 2, y quiero instalar el wxPythonGTK2 en > > el sistema. Por supuesto no encuentro los correspondientes rpm binarios > > (alguna sugerencia?) > > > >... > > Inicialmente me instalé la versión GKT2, la compilé y la instalé sin > > problemas, pero al importar wx falla por errores de librerías. > > Creo que los binarios de wxPython están compilados sólo para gtk+ 1.2 . Si > quieres utilizar gtk2 tendrás que recompilar los fuentes. > > > También he intentado instalar las versiones 2.5.1 en su versión binaria > > y sus fuentes (para compilarlas). Ninguna de las dos ha funcionado. > > ¿Qué te falla de la instalación de los fuentes? La instalación binaria funciona correctamente, pero cuando ejecuto lo siguiente, me casca... >>> import wx Traceback (most recent call last): File "", line 1, in ? File "/usr/lib/python2.3/site-packages/wx/__init__.py", line 19, in ? from wx.core import * File "/usr/lib/python2.3/site-packages/wx/core.py", line 4, in ? import _core ImportError: /usr/lib/wxPython-2.5.1.5/lib/libwx_gtk2ud_core-2.5.so.1: undefined symbol: XineramaIsActive La instalación de los fuentes (wxPythonGTK2-py2.3-2.5.1.5-1.src.rpm) funciona: * Realizo el configure * Luego el make y finalmente el make install. Todo correcto y sin problemas. Finalmente cuando realizo el: "python setup.py install" dentro de wxPython me da el siguiente error: Preparing CORE... Preparing GLCANVAS... Preparing OGL... Preparing STC... Preparing XRC... Preparing GIZMOS... running install running build running build_py copying wx/__version__.py -> build/lib.linux-i686-2.3/wx running build_ext building '_core' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -march=i386 -mcpu=i686 -D_GNU_SOURCE -fPIC -fPIC -DSWIG_GLOBAL -DHAVE_CONFIG_H -DWXP_USE_THREAD=1 -UNDEBUG -D__WXDEBUG__ -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -Iinclude -Isrc -I/opt/wx/2.5/lib/wx/include/gtk2ud-2.5 -I/opt/wx/2.5/include -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -I/usr/include/python2.3 -c src/helpers.cpp -o build/temp.linux-i686-2.3/src/helpers.o -O3 In file included from /usr/include/gtk-1.2/gdk/gdk.h:31, from /usr/include/gtk-1.2/gtk/gtk.h:31, from src/helpers.cpp:26: /usr/include/gtk-1.2/gdk/gdktypes.h:52: error: conflicting types for `typedef gulong GdkAtom' /opt/wx/2.5/include/wx/defs.h:2372: error: previous declaration as `typedef struct _GdkAtom*GdkAtom' /usr/include/gtk-1.2/gdk/gdktypes.h:57: error: conflicting types for `typedef struct _GdkWindow GdkWindow' /opt/wx/2.5/include/wx/defs.h:2373: error: previous declaration as `typedef struct _GdkDrawable GdkWindow' /usr/include/gtk-1.2/gdk/gdktypes.h:58: error: conflicting types for `typedef struct _GdkWindow GdkPixmap' /opt/wx/2.5/include/wx/defs.h:2375: error: previous declaration as `typedef struct _GdkDrawable GdkPixmap' /usr/include/gtk-1.2/gdk/gdktypes.h:59: error: conflicting types for `typedef struct _GdkWindow GdkBitmap' /opt/wx/2.5/include/wx/defs.h:2374: error: previous declaration as `typedef struct _GdkDrawable GdkBitmap' error: command 'gcc' failed with exit status 1 > Seguramente tendrás que actualizar algunos paquetes como el binutils, o puede > que no tengas más opción que utilizar el fichero .tar.gz (no utilizo fedora > para decirte más). > > ______________________________________________________________________ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Wed May 26 15:21:06 2004 From: py en ch3m4.org (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Wed, 26 May 2004 15:21:06 +0200 Subject: FC2 & wxPythonGTK2 In-Reply-To: <1085573539.2820.68.camel@IMAGINE> References: <1085559556.2820.17.camel@IMAGINE> <200405261314.39378.py@ch3m4.org> <1085573539.2820.68.camel@IMAGINE> Message-ID: <200405261521.07001.py@ch3m4.org> El Miércoles, 26 de Mayo de 2004 14:12, Carlos Lopez Perez escribió: > La instalación binaria funciona correctamente, pero cuando ejecuto lo > siguiente, me casca... > > undefined symbol: XineramaIsActive Ni idea de qué pasa, pero me suena a XLib. Puede que necesites actualizarte algún paquete :-? > La instalación de los fuentes (wxPythonGTK2-py2.3-2.5.1.5-1.src.rpm) > funciona: > * Realizo el configure > * Luego el make y finalmente el make install. > > Todo correcto y sin problemas. Finalmente cuando realizo el: > "python setup.py install" dentro de wxPython me da el siguiente error: > > Preparing CORE... > Preparing GLCANVAS... > Preparing OGL... > Preparing STC... > Preparing XRC... > Preparing GIZMOS... > running install > running build > running build_py > copying wx/__version__.py -> build/lib.linux-i686-2.3/wx > running build_ext > building '_core' extension > gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -march=i386 > -mcpu=i686 -D_GNU_SOURCE -fPIC -fPIC -DSWIG_GLOBAL -DHAVE_CONFIG_H > -DWXP_USE_THREAD=1 -UNDEBUG -D__WXDEBUG__ -D__WXGTK__ > -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -Iinclude -Isrc > -I/opt/wx/2.5/lib/wx/include/gtk2ud-2.5 -I/opt/wx/2.5/include > -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include ^^^^^^^^^^^^^^^^^^^^ ->=/ ¡¡¡Yepa!!! Aquí te está incluyendo el gtk 1.2, no el gtk2 :-? Si el .configure no te ha detectado el gtk2 tendrás que forzarlo con --enable-gtk2, y configurar luego la variable de entorno WXPORT=gtk2 ... y algo parecido si vas a usar unicode en gtk2. Léete las instrucciones de construcción de los binarios: http://wxpython.org/BUILD.html ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Wed May 26 15:32:08 2004 From: py en ch3m4.org (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Wed, 26 May 2004 15:32:08 +0200 Subject: array o Numeric? In-Reply-To: <1085508694.20967.3.camel@debi.debian> References: <1085508694.20967.3.camel@debi.debian> Message-ID: <200405261532.08544.py@ch3m4.org> El Miércoles, 26 de Mayo de 2004 14:05, Hector Miuler Malpica Gallegos escribió: > Hola amigos, encontre dos modulos: uno es array y el otro Numeric, array > biene con el python2.3, pero queria saber cual es mas recomendable usar > para arrrays, ¿array se creo despues que aparesca Numeric? Numeric es algo más que para crear matrices, ya que incluye rutinas de cálculo numérico para su procesado. El módulo array es posterior y se creó para dar un soporte eficiente a este tipo de estructuras, pero no incluye ningún tipo de procesado numérico. Para complicar más el asunto, el módulo Numeric está siendo reconvertido en un nuevo módulo llamado Numarray, que es el que hay que usar ahora para cálculo numérico. Si quieres usar arrays, usa el módulo array, pero lo más simple para empezar sería probar con listas normales. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From falted en pytables.org Wed May 26 16:11:09 2004 From: falted en pytables.org (Francesc Alted) Date: Wed, 26 May 2004 16:11:09 +0200 Subject: array o Numeric? In-Reply-To: <200405261532.08544.py@ch3m4.org> References: <1085508694.20967.3.camel@debi.debian> <200405261532.08544.py@ch3m4.org> Message-ID: <200405261611.09463.falted@pytables.org> Como siempre, Chema siempre presto y claro en las explicaciones ;-). Unas precisiones al respecto... A Dimecres 26 Maig 2004 15:32, Chema Cortés va escriure: > Numeric es algo más que para crear matrices, ya que incluye rutinas de cálculo > numérico para su procesado. El módulo array es posterior y se creó para dar > un soporte eficiente a este tipo de estructuras, pero no incluye ningún tipo > de procesado numérico. Una ventaja adicional de Numeric/numarray respecto a array es el soporte de matrices multidimensionales y un conjunto de tipos base mucho más rico (como enteros de 8, 16, 32 y 64 bits o reales de 32 y 64 bits). > Para complicar más el asunto, el módulo Numeric está siendo reconvertido en un > nuevo módulo llamado Numarray, que es el que hay que usar ahora para cálculo > numérico. Bueno, respecto a que hay que dar prioridad a numarray sobre Numeric, esto es un poco polémico, ya que hace unos meses se discutió en la lista de Numeric/numarray sobre la relativa lentitud de numarray bajo ciertas condiciones (sobretodo derivadas del uso muy frecuente de arrays de dimensiones relativamente pequeñas). De hecho, la gente que desarrolla SciPy [1] ya ha declarado que, o se mejora este aspecto, o la transición a numarray desde Numeric en SciPy se va a demorar mucho. La verdad es que no esta nada claro que numarray pueda subsanar este problema de prestaciones para arrays pequeños, ya que, por construcción, crear un array de sabor numarray cuesta mucho más que un array con sabor Numeric. Sin embargo, creo (o quiero creer) que la mayoria de gente ya está migrando a numarray, y que lo de la gente de SciPy ha sido como meter un poco de miedo, a ver si les optimizan numarray para su uso efectivo en el entorno SciPy. [1] www.scipy.org Un saludo, -- Francesc Alted ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From polito1 en montevideo.com.uy Wed May 26 16:08:44 2004 From: polito1 en montevideo.com.uy (polito1 en montevideo.com.uy) Date: Wed, 26 May 2004 11:08:44 -0300 Subject: Dilema que elejir Thread o asyncore ?? Message-ID: <1085580524.40b4a4eca5c39@webmail.montevideo.com.uy> Hola a todos soy realmente novato en python y en la programación , estoy un poco perdido. Mi sistema tiene que manejar I/O basicamente es un sistema de monitoreo que interroga equipos via telnet o http. La interrogación es periódica pero con distinta frecuencia por equipo.Por lo tanto pensé en usar el Timer Object del modulo threading y usar un Timer Object por equipo. El problema parece ser con la escalabilidad de mi sistema , el manejo de persistencia de objetos, etc (según leo en los web sites) estos problemas se evitan con el modulo asyncore????pero esto es para recibir eventos de manera asyncronica....??? Como verán estoy perdido alguna ayuda??Algún lugar donde leer?? Es un simple "poleo" a varios equipos y antes de decidirme o usar thread o asyncore me gustaría saber por ejemplo cuantos equipo puede manejar mi sistema si uso thread. Gracias,P. ------------------------------------------------------------ Ahora el ADSL de Montevideo COMM es hasta 4 veces mas rapido ADSL 256K / 64K -- $ 1039 + I.V.A. http://www.montevideo.net.uy/hnnoticiaj1.cgi?22 From falted en pytables.org Wed May 26 16:28:54 2004 From: falted en pytables.org (Francesc Alted) Date: Wed, 26 May 2004 16:28:54 +0200 Subject: array o Numeric? In-Reply-To: <200405261611.09463.falted@pytables.org> References: <1085508694.20967.3.camel@debi.debian> <200405261532.08544.py@ch3m4.org> <200405261611.09463.falted@pytables.org> Message-ID: <200405261628.54231.falted@pytables.org> A Dimecres 26 Maig 2004 16:11, Francesc Alted va escriure: > Una ventaja adicional de Numeric/numarray respecto a array es el soporte de > matrices multidimensionales y un conjunto de tipos base mucho más rico (como > enteros de 8, 16, 32 y 64 bits o reales de 32 y 64 bits). Uf, borra lo de los tipos. array viene con todo ese soporte de tipos también. Es lo que tiene cuando uno habla de memoria aun a sabiendas de lo mala que es :( -- Francesc Alted ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From falted en pytables.org Wed May 26 16:41:51 2004 From: falted en pytables.org (Francesc Alted) Date: Wed, 26 May 2004 16:41:51 +0200 Subject: Dilema que elejir Thread o asyncore ?? In-Reply-To: <1085580524.40b4a4eca5c39@webmail.montevideo.com.uy> References: <1085580524.40b4a4eca5c39@webmail.montevideo.com.uy> Message-ID: <200405261641.51607.falted@pytables.org> Para los problemas de I/O, y si tienes problemas de escalabilidad, me da en la nariz que el manejo asícrono es mucho más eficiente que el de threads, así que te aconsejo que uses asyncore. Yo he llegado ha hacer pruebas con programas que lanzaban hasta 1000 threads para temas de I/O, pero a partir de ahi, mejor pasarse a métodos asícronos. Si asyncore te parece un poco farragoso, échale una mirada a Twisted (http://twistedmatrix.com/). Los que lo prueban dicen que es muy bueno. Otra posibilidad es echarle una mirada a stackless python, y mirar como hacer generadores con "continuaciones": http://www.stackless.com/spcpaper.htm#_Toc470444058 Suerte, A Dimecres 26 Maig 2004 16:08, polito1 en montevideo.com.uy va escriure: > Hola a todos soy realmente novato en python y en la programación , estoy un > poco perdido. > Mi sistema tiene que manejar I/O basicamente es un sistema de monitoreo que > interroga equipos via telnet o http. > La interrogación es periódica pero con distinta frecuencia por equipo.Por lo > tanto pensé en usar el Timer Object del modulo threading y usar un Timer > Object por equipo. > > El problema parece ser con la escalabilidad de mi sistema , el manejo de > persistencia de objetos, etc (según leo en los web sites) > estos problemas se evitan con el modulo asyncore????pero esto es para recibir > eventos de manera asyncronica....??? > Como verán estoy perdido alguna ayuda??Algún lugar donde leer?? > Es un simple "poleo" a varios equipos y antes de decidirme o usar thread o > asyncore me gustaría saber por ejemplo cuantos equipo puede manejar mi sistema > si uso thread. > > Gracias,P. > > > > ------------------------------------------------------------ > Ahora el ADSL de Montevideo COMM es hasta 4 veces mas rapido > ADSL 256K / 64K -- $ 1039 + I.V.A. > http://www.montevideo.net.uy/hnnoticiaj1.cgi?22 > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- Francesc Alted From pan_python en yahoo.com.ar Wed May 26 19:04:57 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Wed, 26 May 2004 14:04:57 -0300 Subject: convertir campos string en numericos. In-Reply-To: <200405261206.15465.py@ch3m4.org> References: <40B4398A.6020705@yahoo.com.ar> <200405261206.15465.py@ch3m4.org> Message-ID: <40B4CE39.5060407@yahoo.com.ar> Hola Chema Si por lo que veo puedo hacerlo por try y tambien con strip. Yo estube haciendo pruebas y por el momento con mysql me reacciona como vos pusiste. Ahora (y cambiando de tema) veo que puedo usar tambien el try para comprobar que lo que envie por sql se halla hecho o si hay error que me reporte para poder despues hacer un manejo del error.. Usando mysql como puedo saber que error se produjo al hacer un select o insert o update? para teniendo el nro de error o la descripcion hacer lo que corresponda? Hasta el momento cuando mando a grabar algo "confio" en el motor y no hago ningun tipo de control sobre eso.. Como se hace? Como siempre, MIL GRACIAS!! Ariel Chema Cortés wrote: >El Miércoles, 26 de Mayo de 2004 08:30, Ariel Nardelli escribió: > > > >>Para convertirlos utilizo la funcion int y me los pasa a numericos y los >>grabo perfectamente. >>PERO, cuando el campo origen me viene vacio o sea no viene con numeros o >>sea viene ' ' el int me da error y me para el programa... >> >> > >Ya te han respondido que puedes usar el try..except para lo que quieres, pero >si luego vas a construir una sentencia SQL no deberías preocuparte tanto por >ello y dejar al motor de la base de datos que trabaje con el dato: > >create temporary table prueba (dato integer NULL); >insert into prueba values (0), ('2'),(' '),('asdfasd'), (NULL); >select * from prueba; > >+------+ >| dato | >+------+ >| 0 | >| 2 | >| 0 | >| 0 | >| NULL | >+------+ > >Se ve que el mysql interpreta por defecto las strings que no entiende como >ceros, incluso la string ' ' que te daba problemas. > >Pero siendo estrictos, cuando un campo numérico en dbase está vacío lo >correcto sería interpretarlo como 'Sin valor', lo que en SQL se entiende como >NULL. La DB-API de python identifica NULL con el singleton '(None,)': > >NULL=(None,) >sql="insert into dato values (%s)" >if not dato.strip(): > dato=NULL >cur.execute(sql, dato) > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > From santi en zetadb.com Wed May 26 21:34:30 2004 From: santi en zetadb.com (Santi Camps) Date: Wed, 26 May 2004 19:34:30 +0000 Subject: =?iso-8859-15?q?M=F3duls_importados_con_=5F=5Fimport?= =?iso-8859-15?q?=5F=5F?= Message-ID: <40B4F146.3090002@zetadb.com> Hola a todos, Tengo un trocito de código algo rebuscadillo, en el que aplico un sistema de adaptadores. La intención es que si un mètodo está definido en el adaptor, se use ese y, si no lo está, lo vaya a buscar en el objecto adaptado. Es algo así: adapter_path = self._get_adapter_path(request) if (adapter_path is None): return self if self.__class__._v_loaded_adapters.has_key(adapter_path): adapter = self.__class__._v_loaded_adapters[adapter_path] else: module = __import__(adapter_path[0], globals(), locals(), [adapter_path[1]]) adapter = getattr(module, adapter_path[1]) self.__class__._v_loaded_adapters[adapter_path] = adapter return adapter().__of__(self) El __of__ es una acquisition de Zope. El código funciona, pero me encuentro con el caso que, si intento acceder a un método del adaptador la ejecución es muchísimo más lenta que si accedo a un método del objeto adaptado. Lo he estado probando con un medidor de benchmarks, el ab. Puesto que el adaptador se aplica en todos los casos, supongo que mi problema puede venir por alguna razon pythoniana que desconozco, el modo de hacer el __import__ o bién el modo de guardar la clase importada. ¿ A alguien se le ocurre una razón ? Gracias Santi Camps ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Thu May 27 10:16:59 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Thu, 27 May 2004 10:16:59 +0200 Subject: Dilema que elejir Thread o asyncore ?? In-Reply-To: <1085580524.40b4a4eca5c39@webmail.montevideo.com.uy> References: <1085580524.40b4a4eca5c39@webmail.montevideo.com.uy> Message-ID: <200405271016.59608.py@ch3m4.org> El Miércoles, 26 de Mayo de 2004 16:08, polito1 en montevideo.com.uy escribió: > El problema parece ser con la escalabilidad de mi sistema , el manejo de > persistencia de objetos, etc (según leo en los web sites) > estos problemas se evitan con el modulo asyncore????pero esto es para > recibir eventos de manera asyncronica....??? Muchas veces se ve el multihilo como una especie de multiproceso, pero la realidad es que no lo es y que se trata de un proceso lineal en el que se van repartiendo turnos de ejecución entre las hebras. Si buscas comunicaciones síncronas no te van a servir ni multihilo ni el asyncore. Probablemente tendrías que evolucionar hacia un sistema de tiempo real, algo como RT-linux ó similar. El multihilo está bien para un número pequeño de hebras simultáneas que generalmente está definido por defecto en cada sistema. Pasar de ahí puede dar resultados bastante ineficientes. En cuanto a los continuadores de stackless que comentaba Francesc, es algo demasiado sofisticado que bien se podría hacer con simples generadores. Hay una receta donde se cuenta cómo simular multihilos con generadores: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/162764 Ésta receta tienes una colección de hilos simulados con tiempos diferentes de activación. Seguro que lo puedes adaptar a tu problema. From falted en pytables.org Thu May 27 10:57:11 2004 From: falted en pytables.org (Francesc Alted) Date: Thu, 27 May 2004 10:57:11 +0200 Subject: Dilema que elejir Thread o asyncore ?? In-Reply-To: <200405271016.59608.py@ch3m4.org> References: <1085580524.40b4a4eca5c39@webmail.montevideo.com.uy> <200405271016.59608.py@ch3m4.org> Message-ID: <200405271057.11722.falted@pytables.org> A Dijous 27 Maig 2004 10:16, Chema Cortés va escriure: > Muchas veces se ve el multihilo como una especie de multiproceso, pero la > realidad es que no lo es y que se trata de un proceso lineal en el que se van > repartiendo turnos de ejecución entre las hebras. Si buscas comunicaciones > síncronas no te van a servir ni multihilo ni el asyncore. Probablemente > tendrías que evolucionar hacia un sistema de tiempo real, algo como RT-linux > ó similar. Como que no te sirven? Si que sirven, el tema es la escalabilidad (y la complejidad, en el caso de asyncore, pero para eso esta Medusa http://www.nightmare.com/medusa/medusa.html, o mejor, Twisted). > En cuanto a los continuadores de stackless que comentaba Francesc, es algo > demasiado sofisticado que bien se podría hacer con simples generadores. Hay Hombre, no es exactamente sofisticado, simplemente incómodo pues hay que parchear el intérprete de Python. Otra posibilidad son los microthreads, (http://willware.net:8080/uthread.html) basados en stackless. Segun mis pruebas, usando microthreads+stackless se pueden alcanzar escalabilidades de 100.000 o más threads en una sola CPU (!). > una receta donde se cuenta cómo simular multihilos con generadores: > > http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/162764 > > Ésta receta tienes una colección de hilos simulados con tiempos diferentes de > activación. Seguro que lo puedes adaptar a tu problema. Está bien, pero que diferencia existe respecto a una solución con Threads? carga menos la máquina? -- Francesc Alted From se05216 en salleURL.edu Thu May 27 11:27:57 2004 From: se05216 en salleURL.edu (Christal Berengena Moreno) Date: Thu, 27 May 2004 11:27:57 +0200 (CEST) Subject: Dilema que elejir Thread o asyncore ?? In-Reply-To: <200405271057.11722.falted@pytables.org> References: <1085580524.40b4a4eca5c39@webmail.montevideo.com.uy> <200405271016.59608.py@ch3m4.org> <200405271057.11722.falted@pytables.org> Message-ID: Hola a todos, Este tema lo encuentro realmente interesante y espero que porfavor leais mi mensaje y me comenteis hacia que camino deberia ir para solucionar mi "problema". Os cuento; He realizado una aplicacion que hace de INTERFAZ GRAFICA donde hay varias imagenes de SEMAFOROS. Esta aplicacion cada X tiempo va mirando una BASE DE DATOS para ver si ha habido modificaciones (si las hay.., las lee y las carga en la interfaz -> de esta manera los semaforos van cambiando de color segun la informacion leida) Hasta aqui todo correcto. Estos semaforos, por ejemplo, decimos que tenemos 4 cambian su informacion segun lo que le llega del puerto serie correspondiente (COM1,2,3 y 4). Por tanto tengo, EN LA ACTUALIDAD, 4 programas identicos que van cogiendo los datos del puerto que le corresponde. Es en esto ultimo donde viene mi consulta. Lo ideal seria que estos 4 programas se generaran a partir de threads o algo similar. Ya que actualmente.., al encender los 4 programas el PC va lento. Se entiende mi problema? Y mi consulta? Que es lo mas conveniente? Alguien puede orientarme un poco. Perdonad por lo extenso de mi mensaje. Solo queria hacerme entender lo mejor posible. Os envio un cordial saludo, Att., Sergio Alcantara Segura ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From falted en pytables.org Thu May 27 11:50:26 2004 From: falted en pytables.org (Francesc Alted) Date: Thu, 27 May 2004 11:50:26 +0200 Subject: Dilema que elejir Thread o asyncore ?? In-Reply-To: References: <1085580524.40b4a4eca5c39@webmail.montevideo.com.uy> <200405271057.11722.falted@pytables.org> Message-ID: <200405271150.26319.falted@pytables.org> A Dijous 27 Maig 2004 11:27, Christal Berengena Moreno va escriure: > > Se entiende mi problema? Y mi consulta? Que es lo mas conveniente? Alguien > puede orientarme un poco. Hombre, para 4 procesos lo mejor (léase más fácil) entiendo que son los threads. Los problemas con los threads llegan cuando superas cantidades de entre 100 y 10000 (dependiendo de la máquina) hilos. -- Francesc Alted ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Thu May 27 12:27:27 2004 From: py en ch3m4.org (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Thu, 27 May 2004 12:27:27 +0200 Subject: Dilema que elejir Thread o asyncore ?? In-Reply-To: <200405271057.11722.falted@pytables.org> References: <1085580524.40b4a4eca5c39@webmail.montevideo.com.uy> <200405271016.59608.py@ch3m4.org> <200405271057.11722.falted@pytables.org> Message-ID: <200405271227.27465.py@ch3m4.org> El Jueves, 27 de Mayo de 2004 10:57, Francesc Alted escribió: > A Dijous 27 Maig 2004 10:16, Chema Cortés va escriure: > > Muchas veces se ve el multihilo como una especie de multiproceso, pero la > > realidad es que no lo es y que se trata de un proceso lineal en el que se > > van repartiendo turnos de ejecución entre las hebras. Si buscas > > comunicaciones síncronas no te van a servir ni multihilo ni el asyncore. > > Probablemente tendrías que evolucionar hacia un sistema de tiempo real, > > algo como RT-linux ó similar. > > Como que no te sirven? Si que sirven, el tema es la escalabilidad (y la > complejidad, en el caso de asyncore, pero para eso esta Medusa > http://www.nightmare.com/medusa/medusa.html, o mejor, Twisted). El problema tal como yo lo veo es lo que tú denominas problemas de escalabilidad. El multihilo pierde sincronismo cuando se carga el sistema, tanto por un número elevado de hilos como por uso intensivo de CPU. El número exacto de hebras concurrentes depende de lo que aguante cada sistema. Si tu carga va a ser moderada, posiblemente el multihilo será la mejor opción. > > Ésta receta tienes una colección de hilos simulados con tiempos > > diferentes de activación. Seguro que lo puedes adaptar a tu problema. > > Está bien, pero que diferencia existe respecto a una solución con Threads? > carga menos la máquina? Pues no he hecho pruebas, posiblemente no mejore mucho el rendimiento, pero al menos te ahorras crear el stack de ejecución para cada hebra y no entrar en competencia con otras hebras del sistema. Una ventaja única es que puedes simular una estructura jerárquica de hilos de ejecución, o lo que es lo mismo, un sistema multihilo reentrante. From py en ch3m4.org Thu May 27 13:11:23 2004 From: py en ch3m4.org (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Thu, 27 May 2004 13:11:23 +0200 Subject: =?iso-8859-15?q?M=F3duls_importados_con?= __import__ In-Reply-To: <40B4F146.3090002@zetadb.com> References: <40B4F146.3090002@zetadb.com> Message-ID: <200405271311.23261.py@ch3m4.org> El Miércoles, 26 de Mayo de 2004 21:34, Santi Camps escribió: > ¿ A alguien se le ocurre una razón ? Ummm! Sólo se me ocurre que sea por causa de la resolución de métodos. Me faltaría ver la jerarquía de clases y algo más del código. Cuando se accede al método del objeto adaptado no necesita realizar una búsqueda por la jerarquía de clases, por lo que es lógico que pueda ser algo más rápido, pero tampoco como para que destaque tanto. No creo que sea un problema específico del __import__. ¿Qué versión de python estás utilizando? En el python 2.3 se mejoró el algoritmo de búsqueda de métodos (algoritmo C3). ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From santi en zetadb.com Thu May 27 15:46:41 2004 From: santi en zetadb.com (Santi Camps) Date: Thu, 27 May 2004 13:46:41 +0000 Subject: =?ISO-8859-15?Q?M=F3duls_importados_con_=5F?= =?ISO-8859-15?Q?=5Fimport=5F=5F?= In-Reply-To: <200405271311.23261.py@ch3m4.org> References: <40B4F146.3090002@zetadb.com> <200405271311.23261.py@ch3m4.org> Message-ID: <40B5F141.7030107@zetadb.com> En/na Chema Cortés ha escrit: >El Miércoles, 26 de Mayo de 2004 21:34, Santi Camps escribió: > > > >>¿ A alguien se le ocurre una razón ? >> >> > >Ummm! Sólo se me ocurre que sea por causa de la resolución de métodos. Me >faltaría ver la jerarquía de clases y algo más del código. > >Cuando se accede al método del objeto adaptado no necesita realizar una >búsqueda por la jerarquía de clases, por lo que es lógico que pueda ser algo >más rápido, pero tampoco como para que destaque tanto. No creo que sea un >problema específico del __import__. ¿Qué versión de python estás utilizando? >En el python 2.3 se mejoró el algoritmo de búsqueda de métodos (algoritmo >C3). > > Estoy usando python 2.3.3 y Zope 2.7.0 He ganado algo definiendo una función my_import al estilo del manual de python y haciendo caché de objetos instanciados en lugar de hacer caché de la clase. Entre esto y un par de problemillas típicamente zoperos que he solucionado, la cosa responde a un nivel que permite trabajar. Aunque todavía tengo algunos puntos que van demasiado lentos para mi gusto, seguramente ya no sean temas de python sinó de mi programa. ######################################################################## def my_import(adapter_path): mod = __import__(adapter_path[0]) components = adapter_path[0].split('.') for comp in components[1:]: mod = getattr(mod, comp) return getattr(mod, adapter_path[1]) Gracias Santi Camps ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pan_python en yahoo.com.ar Thu May 27 21:31:01 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Thu, 27 May 2004 16:31:01 -0300 Subject: mas preguntas :) ahora sacar ' y " :) Message-ID: <40B641F5.7010707@yahoo.com.ar> Hola. Estoy haciendo el programa para convertir las bases de datos dbf a mysql y se me presenta un problema, y es que la variable que me trae los datos ya tiene una comilla simple (a veces comillas dobles) y al armar la sentencia sql me da error.. En ejemplos.. De la base dbf viene algo asi (esto esta impreso con print) 20 ExpoChacra 99' 9.00 3.00 3.00 0.00 insert delayed into extras_importes values ( '20','ExpoChacra 99'','9.00','3.00','3.00','0.00' ); y al armar la sentencia me quedan dos comillas ('') despues de la palabra Expochacra 99 por que en la dbf esta ExpoChacra 99' y al pasar me toma esa ' como fin de la sentencia sql cuando en realidad es parte de lo que viene y que debe quedar dentro de la base sql. La pregunta es, como hacer para que esa ' se grabe como parte de la palabra y no como final de la sentencia sql? por que por ejemplo me pasa en otros lados que tengo un campo que tiene dentro ' me las corta a la mitad de la frace... Si alguien tiene la respuesta... aca la espero!!!! :) GRACIAS!! Ariel ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pachi en mmn-arquitectos.com Thu May 27 21:36:44 2004 From: pachi en mmn-arquitectos.com (Rafael Villar Burke) Date: Thu, 27 May 2004 21:36:44 +0200 Subject: mas preguntas :) ahora sacar ' y " :) In-Reply-To: <40B641F5.7010707@yahoo.com.ar> References: <40B641F5.7010707@yahoo.com.ar> Message-ID: <40B6434C.4020805@mmn-arquitectos.com> Ariel Nardelli wrote: > insert delayed into extras_importes values ( '20','ExpoChacra > 99'','9.00','3.00','3.00','0.00' ); > > y al armar la sentencia me quedan dos comillas ('') despues de la > palabra Expochacra 99 por que en la dbf esta ExpoChacra 99' y al pasar > me toma esa ' como fin de la sentencia sql cuando en realidad es parte > de lo que viene y que debe quedar dentro de la base sql. > > La pregunta es, como hacer para que esa ' se grabe como parte de la > palabra y no como final de la sentencia sql? por que por ejemplo me > pasa en otros lados que tengo un campo que tiene dentro ' me las corta > a la mitad de la frace... > > Si alguien tiene la respuesta... aca la espero!!!! :) IDLE 1.0 >>> print 'ExporChacra 99'' SyntaxError: EOL while scanning single-quoted string >>> print """ExporChacra 99'""" ExporChacra 99' >>> En python puedes usar las triples dobles comillas para tener una cadena con lo que quieras dentro sin tener que escapar los caracteres "problemáticos". Un saludo, Pachi From se05216 en salleURL.edu Thu May 27 23:42:21 2004 From: se05216 en salleURL.edu (Christal Berengena Moreno) Date: Thu, 27 May 2004 23:42:21 +0200 (CEST) Subject: mas preguntas :) ahora sacar ' y " :) In-Reply-To: <40B641F5.7010707@yahoo.com.ar> References: <40B641F5.7010707@yahoo.com.ar> Message-ID: > De la base dbf viene algo asi (esto esta impreso con print) > > 20 ExpoChacra 99' 9.00 3.00 3.00 0.00 > > insert delayed into extras_importes values ( '20','ExpoChacra > 99'','9.00','3.00','3.00','0.00' ); > A mi cuando me pasa eso genero un string con toda la query, aprobechando que puedo utilizar tanto comillas simples como dobles para indicar un string y cuando la tenga completa la ejecuto. Por ejemplo, en tu caso pondria: query="insert delayed into extras_importes values ('20',"+'"ExpoChacra 99'+"'"+'"'+",'9.00','3.00','3.00','0.00'" Yo uso este metodo (aunque quizas es algo "trabajoso") porque se exactamente que es lo que voy a introducir como string. Pero siempre puedes hacer una comparacion y si solo tubieras comillas simples o dobles dentro de un string (que no las pudieras tener mezcladas) podrias hacer... if "'" in valor: #valor es el string que quieres introducir... query='"ExpoChacra '+"'"+'99"' else: query="'Expochacra "+'"'+"99'" Y lo concatenaria con el resto de la query... Por ejemplo... Espero haberte ayudado! :) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From drg_alvaro en yahoo.com Fri May 28 01:43:12 2004 From: drg_alvaro en yahoo.com (=?iso-8859-1?q?Alvaro=20Abraham=20Colunga=20Rodriguez?=) Date: Thu, 27 May 2004 18:43:12 -0500 (CDT) Subject: control de usuarios Message-ID: <20040527234312.89171.qmail@web51102.mail.yahoo.com> Alguien tiene algun codigo o alguna idea de como implementar un control de usuarios. Tengo un programa al que quiero ponerle restricciones en cuanto a las operecaciones que pueden realizar los usuarios. La autentificacion ya la tengo, pero como mantener una variable que tenga el nombre o clave del usuario y asi en cada modulo del sistema poder consultarla y no tener que pedir a cada rato que se vuelva a auntenticar. Ademas el programa consta de varios modulos en archivos separados, es decir tengo: prog1.py prog2.py y dentro de prog.py hago: import prog1 import prog2 Entonces el valor de esa variable debe conocerse dentro de esos modulos o programas para que funcione correctamente. Saludos. _________________________________________________________ Do You Yahoo!? Información de Estados Unidos y América Latina, en Yahoo! Noticias. Visítanos en http://noticias.espanol.yahoo.com From py en ch3m4.org Fri May 28 09:23:10 2004 From: py en ch3m4.org (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Fri, 28 May 2004 09:23:10 +0200 Subject: mas preguntas :) ahora sacar ' y " :) In-Reply-To: <40B641F5.7010707@yahoo.com.ar> References: <40B641F5.7010707@yahoo.com.ar> Message-ID: <200405280923.10151.py@ch3m4.org> El Jueves, 27 de Mayo de 2004 21:31, Ariel Nardelli escribió: > Estoy haciendo el programa para convertir las bases de datos dbf a mysql > y se me presenta un problema, y es que la variable que me trae los datos > ya tiene una comilla simple (a veces comillas dobles) y al armar la > sentencia sql me da error.. > > En ejemplos.. > > De la base dbf viene algo asi (esto esta impreso con print) > > 20 ExpoChacra 99' 9.00 3.00 3.00 0.00 > > insert delayed into extras_importes values ( '20','ExpoChacra > 99'','9.00','3.00','3.00','0.00' ); No construyas la sentencia sql con los datos "en línea". Emplea parámetros sql tal como se indica en la DB-API. Además de evitar éstos y otros problemas como el sql-injecting, le evitarás mucho trabajo al caché de sentencias del intérprete sql. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From fheredero en topmusic.ch Fri May 28 09:37:52 2004 From: fheredero en topmusic.ch (=?Windows-1252?Q?Fran=E7ois_Heredero_-_Top_Music_SA?=) Date: Fri, 28 May 2004 09:37:52 +0200 Subject: mas preguntas :) ahora sacar ' y " :) In-Reply-To: <40B641F5.7010707@yahoo.com.ar> References: <40B641F5.7010707@yahoo.com.ar> Message-ID: > haciendo el programa para convertir las bases de datos dbf a mysql (...) No se si te interesa, pero existe dbf2mysql [1] (Linux) que utilizo y que va muy bien. François [1] http://sourceforge.net/projects/dbf2mysql/ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pepe en diselpro.com Fri May 28 10:09:05 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Fri, 28 May 2004 10:09:05 +0200 Subject: control de usuarios In-Reply-To: <20040527234312.89171.qmail@web51102.mail.yahoo.com> References: <20040527234312.89171.qmail@web51102.mail.yahoo.com> Message-ID: <200405281009.06071.pepe@diselpro.com> Puedes crearte un módulo que contenga in formación comun paraa toda la aplicación, el cual será importado por todos los módulos que la necesiten. P. Ej. ----- auth.py ----- #! /usr/bin/env python user = "Nobody" password = "Nothing" ------- ----- module.py ----- #! /usr/bin/env python import auth def print_auth(): print auth.user print auth.password ----- ----- prog.py ----- #! /usr/bin/env python import auth import module module.print_auth() auth.user = "Pepe" auth.password = "asdf" module.print_auth() ----- Salida: Nobody Nothing Pepe asdf ----- Saludos. El Viernes, 28 de Mayo de 2004 01:43, Alvaro Abraham Colunga Rodriguez escribió: > Alguien tiene algun codigo o alguna idea de como > implementar un control de usuarios. Tengo un programa > al que quiero ponerle restricciones en cuanto a las > operecaciones que pueden realizar los usuarios. > > La autentificacion ya la tengo, pero como mantener una > variable que tenga el nombre o clave del usuario y asi > en cada modulo del sistema poder consultarla y no > tener que pedir a cada rato que se vuelva a > auntenticar. > > Ademas el programa consta de varios modulos en > archivos separados, es decir tengo: > > prog1.py > prog2.py > > y dentro de prog.py hago: > > import prog1 > import prog2 > > Entonces el valor de esa variable debe conocerse > dentro de esos modulos o programas para que funcione > correctamente. > > Saludos. > > _________________________________________________________ > Do You Yahoo!? > Información de Estados Unidos y América Latina, en Yahoo! Noticias. > Visítanos en http://noticias.espanol.yahoo.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Fri May 28 12:48:39 2004 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: Fri, 28 May 2004 12:48:39 +0200 Subject: A LA LISTA PYTHON In-Reply-To: <298652ea45.2ea4529865@terra.es> References: <298652ea45.2ea4529865@terra.es> Message-ID: <1085741319.2308.18.camel@renata.macondo.pri> En mi ofi nos compramos http://www.cocodrilolibros.com/details.php3?isbn=1-56592-621-8 PYTHON PROGRAMMING ON WIN32 Y no está nada mal El jue, 20-05-2004 a las 23:27, C.H.PROY escribió: > TITULO > > Controlar aplicaciones abiertas en win xp > > > > Gracias a la ayudada de los mienbros de esta lista, he conseguido > abrir aplicaciones en win xp por ejemplo la excel, > ahora me surge otro ploblema: > > Necesito saber como detectar si una aplicacion esta abierta ,como > activarla y minimizarla. > > > ¿ Me podriais recomendar algun libro o manual electronico sobre la > extension win32 ? > > > > Un cordial saludo > > Carlos > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es -- Marcos Sánchez Provencio ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pan_python en yahoo.com.ar Fri May 28 19:07:53 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Fri, 28 May 2004 14:07:53 -0300 Subject: mas preguntas :) ahora sacar ' y " :) In-Reply-To: <40B6434C.4020805@mmn-arquitectos.com> References: <40B641F5.7010707@yahoo.com.ar> <40B6434C.4020805@mmn-arquitectos.com> Message-ID: <40B771E9.2040709@yahoo.com.ar> Rafael Villar Burke wrote: > Ariel Nardelli wrote: > >> insert delayed into extras_importes values ( '20','ExpoChacra >> 99'','9.00','3.00','3.00','0.00' ); >> >> y al armar la sentencia me quedan dos comillas ('') despues de la >> palabra Expochacra 99 por que en la dbf esta ExpoChacra 99' y al >> pasar me toma esa ' como fin de la sentencia sql cuando en realidad >> es parte de lo que viene y que debe quedar dentro de la base sql. >> >> La pregunta es, como hacer para que esa ' se grabe como parte de la >> palabra y no como final de la sentencia sql? por que por ejemplo me >> pasa en otros lados que tengo un campo que tiene dentro ' me las >> corta a la mitad de la frace... >> >> Si alguien tiene la respuesta... aca la espero!!!! :) > > > IDLE 1.0 >>> print 'ExporChacra 99'' > SyntaxError: EOL while scanning single-quoted string > >>> print """ExporChacra 99'""" > ExporChacra 99' > >>> > > En python puedes usar las triples dobles comillas para tener una > cadena con lo que quieras dentro sin tener que escapar los caracteres > "problemáticos". Si eso estaba viendo........ Pero entonces el tema es que cada vez que yo quiera procesar algun campo alfabetico que podria llegar a tener estos caracteres raros tengo que usar siempre triple comillas? sea en inputs y en todos los demas lugares? Ariel From pan_python en yahoo.com.ar Fri May 28 19:15:22 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Fri, 28 May 2004 14:15:22 -0300 Subject: mas preguntas :) ahora sacar ' y " :) In-Reply-To: References: <40B641F5.7010707@yahoo.com.ar> Message-ID: <40B773AA.40506@yahoo.com.ar> Christal Berengena Moreno wrote: >>De la base dbf viene algo asi (esto esta impreso con print) >> >>20 ExpoChacra 99' 9.00 3.00 3.00 0.00 >> >>insert delayed into extras_importes values ( '20','ExpoChacra >>99'','9.00','3.00','3.00','0.00' ); >> >> >> > A mi cuando me pasa eso genero un string con toda la query, aprobechando >que puedo utilizar tanto comillas simples como dobles para indicar un >string y cuando la tenga completa la ejecuto. Por ejemplo, en tu caso >pondria: > >query="insert delayed into extras_importes values ('20',"+'"ExpoChacra >99'+"'"+'"'+",'9.00','3.00','3.00','0.00'" > > Claro este es el metodo que yo uso ahora o sea, armo en una variable la sentencia sql y despues la ejecuto asi es como lo hago exactamente. >Yo uso este metodo (aunque quizas es algo "trabajoso") porque se >exactamente que es lo que voy a introducir como string. Pero siempre >puedes hacer una comparacion y si solo tubieras comillas simples o dobles >dentro de un string (que no las pudieras tener mezcladas) podrias hacer... > >if "'" in valor: #valor es el string que quieres introducir... > query='"ExpoChacra '+"'"+'99"' >else: > query="'Expochacra "+'"'+"99'" > >Y lo concatenaria con el resto de la query... >Por ejemplo... > > Si, es mas trabajoso y mas problematico para usarlo, y tambien te pregunto lo que pregunte recien en otro mensaje, tengo que usar este tipo de metodos siempre que tenga variables de caracteres? por que si en un input ponen una comilla en el campo alfabetico a usar tambien tendria este problema, o sea siempre que haga tratamiento de cadenas puedo tener este problema dependiendo de que datos me hallan cargado en los imputs correspondientes. Mas alla del metodo que usemos cada uno es algo que me queda dando vueltas en la cabeza. >Espero haberte ayudado! :) > > CLARO que me ayudas!!! estoy dando mis primeros pasos y como comente en otros mensajes estoy aprendiendo asi que toda ayuda es muuuyyy bienvenida asi que te agradezco que me contestes por que ademas me ayudas a acomodarme dentro del lenguaje, asi que si me ayudas tranqui que me ayudas y GRACIAS!. Ariel ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pan_python en yahoo.com.ar Fri May 28 19:23:04 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Fri, 28 May 2004 14:23:04 -0300 Subject: mas preguntas :) ahora sacar ' y " :) In-Reply-To: <200405280923.10151.py@ch3m4.org> References: <40B641F5.7010707@yahoo.com.ar> <200405280923.10151.py@ch3m4.org> Message-ID: <40B77578.4010604@yahoo.com.ar> Hola Chema! Chema Cortés wrote: >El Jueves, 27 de Mayo de 2004 21:31, Ariel Nardelli escribió: > > > >>Estoy haciendo el programa para convertir las bases de datos dbf a mysql >>y se me presenta un problema, y es que la variable que me trae los datos >>ya tiene una comilla simple (a veces comillas dobles) y al armar la >>sentencia sql me da error.. >> >>En ejemplos.. >> >>De la base dbf viene algo asi (esto esta impreso con print) >> >>20 ExpoChacra 99' 9.00 3.00 3.00 0.00 >> >>insert delayed into extras_importes values ( '20','ExpoChacra >>99'','9.00','3.00','3.00','0.00' ); >> >> > >No construyas la sentencia sql con los datos "en línea". Emplea parámetros sql >tal como se indica en la DB-API. Además de evitar éstos y otros problemas >como el sql-injecting, le evitarás mucho trabajo al caché de sentencias del >intérprete sql. > > Si yo los armo en linea en una variable..., yo vengo viendo en varios ejemplos que me pusiste que usas otro metodo para armar las sentencias pero no los entiendo muy bien... Por ejemplo en otro mail que mandaste pusiste... sql = "insert into destinos values ('%02d','%s','%5d %5d %5d','3560');" db.query(sql%k) Es as esto lo que te referis? si es asi veo que los % que estan dentro de las variables son "mascaras", donde puedo tener informacion de como son esas mascaras para poder usarlas? si es posible en español :) Si te referis a esto mas alla de no saber que usar en las mascaras voy entendiendo por donde esta la solucion y solo tengo que buscar documentacion para aprender, pero si no es esto ya no se por donde correr :) Si me podes decir donde encuentro info de los parametros sql asi veo el tema. Gracias, Ariel >------------------------------------------------------------------------ > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > From pan_python en yahoo.com.ar Fri May 28 19:29:55 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Fri, 28 May 2004 14:29:55 -0300 Subject: mas preguntas :) ahora sacar ' y " :) In-Reply-To: References: Message-ID: <40B77713.9070208@yahoo.com.ar> Hola Francois François Heredero - Top Music SA wrote: >>haciendo el programa para convertir las bases de datos dbf a mysql (...) >> >> > >No se si te interesa, pero existe dbf2mysql [1] (Linux) que utilizo y que va >muy bien. > >François > >[1] http://sourceforge.net/projects/dbf2mysql/ > > Si lo conozco y lo use, pero mi problema es que no copio las bases sino que cambia las estructuras de las bases de datos entonces mas alla de pasarlos de un dbf a mysq tengo que ir convirtiendo las tablas y ir agragando y sacando campos e incluso de una dbf saco 4 tablas mysq y este programa copia el dbf a mysql manteniendo datos y estructura... En algun momento pensé en usarlo para pasar todo a mysql y despues partiendo de esas mysql llegar a las tablas que necesito tener pero es doble trabajo asi que preferi directamente leerlas desde dbf y procesarlas. Gracias igualmente por la info. Ariel > > >------------------------------------------------------------------------ > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jcea en argo.es Fri May 28 19:48:28 2004 From: jcea en argo.es (Jesus Cea Avion) Date: Fri, 28 May 2004 19:48:28 +0200 Subject: =?iso-8859-1?q?=BFCanal?= de chat internacional de python? Message-ID: <40B77B6C.3878B49F@argo.es> Aunque existe ya un canal en irc-hispano, esta red está teniendo muchos problemas últimamente y, además, el canal "limita" su público a miembros de la comunidad hispana de python, amén de tener muy poquito movimiento :-(. ¿Os parece interesante tener un canal de chat para resolver dudas "en caliente" en una red neutral y con cobertura mundial?. Yo había pensado usar jabber/XMPP. Una d elas ventajas de esta red es que cualquier, desde su casa, puede proporcionar servicios nuevos (desarrollados en "python" :-) y que sean accesibles al planeta entero, no a una red de chat determinada. Asimismo, cualquiera puede instalar un nuevo servidos XMPP y se integra automáticamente en la red mundial, sin pedir permiso a nadie, exactamente igual que ocurre con el correo electrónico, por ejemplo. He creado la sala "python en conference.jabber.org". Mi jid es "jcea en jabber.org", aunque estaré "offline" todo el fin de semana. Más detalles sobre la tecnología en http://www.jabber.org y http://www.jabberes.org/ ¿Comentarios?. ¿Sugerencias?. ¿Os animáis?. -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/_/_/_/ PGP Key Available at KeyServ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz From FBatista en uniFON.com.ar Fri May 28 19:54:18 2004 From: FBatista en uniFON.com.ar (Batista, Facundo) Date: Fri, 28 May 2004 14:54:18 -0300 Subject: =?iso-8859-1?Q?RE=3A_=5BPython-es=5D_=BFCanal_de_chat_internac?= =?iso-8859-1?Q?ional_de_python=3F?= Message-ID: Yo entro cuando puedo a irc.freenode.net donde están los canales #python (en inglés) y #python-es. Creo que es lo suficientemente mundial. Slds. . Facundo #- -----Mensaje original----- #- De: Jesus Cea Avion [mailto:jcea en argo.es] #- Enviado el: Viernes 28 de Mayo de 2004 2:48 PM #- Para: python-es en aditel.org #- Asunto: [Python-es] ¿Canal de chat internacional de python? #- #- #- Aunque existe ya un canal en irc-hispano, esta red está #- teniendo muchos #- problemas últimamente y, además, el canal "limita" su #- público a miembros #- de la comunidad hispana de python, amén de tener muy poquito #- movimiento #- :-(. #- #- ¿Os parece interesante tener un canal de chat para resolver dudas "en #- caliente" en una red neutral y con cobertura mundial?. Yo #- había pensado #- usar jabber/XMPP. Una d elas ventajas de esta red es que cualquier, #- desde su casa, puede proporcionar servicios nuevos (desarrollados en #- "python" :-) y que sean accesibles al planeta entero, no a una red de #- chat determinada. Asimismo, cualquiera puede instalar un #- nuevo servidos #- XMPP y se integra automáticamente en la red mundial, sin #- pedir permiso a #- nadie, exactamente igual que ocurre con el correo electrónico, por #- ejemplo. #- #- He creado la sala "python en conference.jabber.org". Mi jid es #- "jcea en jabber.org", aunque estaré "offline" todo el fin de semana. #- #- Más detalles sobre la tecnología en http://www.jabber.org y #- http://www.jabberes.org/ #- #- ¿Comentarios?. ¿Sugerencias?. ¿Os animáis?. #- #- -- #- Jesus Cea Avion _/_/ _/_/_/ #- _/_/_/ #- jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ #- _/_/ _/_/ #- _/_/ _/_/ #- _/_/_/_/_/ #- PGP Key Available at KeyServ _/_/ _/_/ _/_/ _/_/ _/_/ #- "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ #- "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ #- "El amor es poner tu felicidad en la felicidad de otro" - Leibniz #- _______________________________________________ #- Python-es mailing list #- Python-es en aditel.org #- http://listas.aditel.org/listinfo/python-es #- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ADVERTENCIA La información contenida en este mensaje y cualquier archivo anexo al mismo, son para uso exclusivo del destinatario y pueden contener información confidencial o propietaria, cuya divulgación es sancionada por la ley. Si Ud. No es uno de los destinatarios consignados o la persona responsable de hacer llegar este mensaje a los destinatarios consignados, no está autorizado a divulgar, copiar, distribuir o retener información (o parte de ella) contenida en este mensaje. Por favor notifíquenos respondiendo al remitente, borre el mensaje original y borre las copias (impresas o grabadas en cualquier medio magnético) que pueda haber realizado del mismo. Todas las opiniones contenidas en este mail son propias del autor del mensaje y no necesariamente coinciden con las de Telefónica Comunicaciones Personales S.A. o alguna empresa asociada. Los mensajes electrónicos pueden ser alterados, motivo por el cual Telefónica Comunicaciones Personales S.A. no aceptará ninguna obligación cualquiera sea el resultante de este mensaje. Muchas Gracias. From morillas en posta.unizar.es Fri May 28 20:47:59 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Fri, 28 May 2004 20:47:59 +0200 Subject: mas preguntas :) ahora sacar ' y " :) In-Reply-To: <40B77578.4010604@yahoo.com.ar> References: <40B641F5.7010707@yahoo.com.ar> <200405280923.10151.py@ch3m4.org> <40B77578.4010604@yahoo.com.ar> Message-ID: <20040528184759.GA1221@marmota> Asunto: Re: [Python-es] mas preguntas :) ahora sacar ' y " :) Fecha: vie, may 28, 2004 at 02:23:04 -0300 Citando a Ariel Nardelli (pan_python en yahoo.com.ar): > Hola Chema! > > Chema Cortés wrote: > > >El Jueves, 27 de Mayo de 2004 21:31, Ariel Nardelli escribió: > > > > > > > >>Estoy haciendo el programa para convertir las bases de datos dbf a mysql > >>y se me presenta un problema, y es que la variable que me trae los datos > >>ya tiene una comilla simple (a veces comillas dobles) y al armar la > >>sentencia sql me da error.. > >> > >>En ejemplos.. > >> > >>De la base dbf viene algo asi (esto esta impreso con print) > >> > >>20 ExpoChacra 99' 9.00 3.00 3.00 0.00 > >> > >>insert delayed into extras_importes values ( '20','ExpoChacra > >>99'','9.00','3.00','3.00','0.00' ); > >> > >> > > > >No construyas la sentencia sql con los datos "en línea". Emplea parámetros > >sql tal como se indica en la DB-API. Además de evitar éstos y otros > >problemas como el sql-injecting, le evitarás mucho trabajo al caché de > >sentencias del intérprete sql. > > > > > Si yo los armo en linea en una variable..., yo vengo viendo en varios > ejemplos que me pusiste que usas otro metodo para armar las sentencias > pero no los entiendo muy bien... > Por ejemplo en otro mail que mandaste pusiste... > > sql = "insert into destinos values ('%02d','%s','%5d %5d %5d','3560');" > db.query(sql%k) > > Es as esto lo que te referis? si es asi veo que los % que estan dentro de > las variables son "mascaras", donde puedo tener informacion de como son > esas mascaras para poder usarlas? si es posible en español :) > > Si te referis a esto mas alla de no saber que usar en las mascaras voy > entendiendo por donde esta la solucion y solo tengo que buscar > documentacion para aprender, pero si no es esto ya no se por donde correr :) > > Si me podes decir donde encuentro info de los parametros sql asi veo el > tema. > El módulo que tú usas (si es dp-api) tendrá un parámetro .paramstyle, que indica las formas que soporta el cursor para pasarle parámetros a las sentencias SQL Documentación en español no conozco. Yo di una conferencia el año pasado. La colgué aquí http://platea.cnice.mecd.es/~jmorilla/presentaciones/dbapi/frames.html He revisado algunas cosas, pero todavía no las he incluido en esas presentaciones. Busca las entradas parámetros y estilos de parámetros. Espero que te sirvan, porque eran demasiado esquemáticas. La documentación general (en inglés) está aquí http://python.org/sigs/db-sig/ Un saludo, -- Luis Miguel No a las patentes de software en Europa EuropeSwPatentFree http://EuropeSwPatentFree.hispalinux.es From mario-p en iname.com Mon May 24 11:43:31 2004 From: mario-p en iname.com (Mario Palomo) Date: Mon, 24 May 2004 11:43:31 +0200 Subject: Escuchando el puerto serial In-Reply-To: <1085336504.11440.9.camel@debi.debian> References: <1085336504.11440.9.camel@debi.debian> Message-ID: Hector Miuler Malpica Gallegos escribió: > > (el programa que que manejara los datos recibidos por el puerto serial > estara echo en python) > Existe una librería en python llamada pyserial (mira en sourceforge) que maneja el puerto serie y hace todo el trabajo a bajo nivel sin tener que preocuparte de las llamadas a open y select. Un saludo, Mario -- To UNSUBSCRIBE, email to debian-user-spanish-REQUEST en lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster en lists.debian.org From javier.quintana en telsur.net Fri May 28 21:23:21 2004 From: javier.quintana en telsur.net (javier.quintana en telsur.net) Date: Fri, 28 May 2004 15:23:21 -0400 Subject: Editor Python Message-ID: Me pueden recomendar un Editor para la programación en Python sobre windows y linux Gracias From ch3m4 en ch3m4.org Sat May 29 02:24:20 2004 From: ch3m4 en ch3m4.org (Chema =?iso-8859-1?b?Q29ydOlz?=) Date: Fri, 28 May 2004 17:24:20 -0700 Subject: Editor Python In-Reply-To: References: Message-ID: <1085790260.40b7d8345cd8a@ch3m4.org> Mensaje citado por javier.quintana en telsur.net: > Me pueden recomendar un Editor para la programación en Python sobre windows > y linux Si tuviera que escoger uno y sólo uno, ese sería el Scite, tanto para windows como para linux. En plan más profesional, el xemacs (y con esto no quisiera abrir guerras santas emacs vs vim). Y no hay que olvidar al idle, editor que siempre viene con la instalación de python. En linux uso bastante kate, editor del KDE, que lleva algunos plugins y scripts para código python, pero también uso IDEs como eric3 ó el kdevelop. Según tus intenciones, hay editores apropiados según el interface gráfico que esté utilizando: win32 -> pythonwin tkinter -> idle, tixapp wxpython -> pyalacarte, SPE jython -> eclipse, jedit, jed programación literaria -> leo En fin, que creo que no te va a servir para nada esta respuesta. Tal vez, si buscas algo simple y potente, quizás te puede interesar el SPE. From ch3m4 en ch3m4.org Sat May 29 03:33:31 2004 From: ch3m4 en ch3m4.org (Chema =?iso-8859-1?b?Q29ydOlz?=) Date: Fri, 28 May 2004 18:33:31 -0700 Subject: mas preguntas :) ahora sacar ' y " :) In-Reply-To: <40B77578.4010604@yahoo.com.ar> References: <40B641F5.7010707@yahoo.com.ar> <200405280923.10151.py@ch3m4.org> <40B77578.4010604@yahoo.com.ar> Message-ID: <1085794411.40b7e86ba39b5@ch3m4.org> Mensaje citado por Ariel Nardelli : > >No construyas la sentencia sql con los datos "en línea". Emplea parámetros > sql > >tal como se indica en la DB-API. Además de evitar éstos y otros problemas > >como el sql-injecting, le evitarás mucho trabajo al caché de sentencias del > >intérprete sql. > > > > > Si yo los armo en linea en una variable..., yo vengo viendo en varios > ejemplos que me pusiste que usas otro metodo para armar las sentencias > pero no los entiendo muy bien... > Por ejemplo en otro mail que mandaste pusiste... > > sql = "insert into destinos values ('%02d','%s','%5d %5d %5d','3560');" > db.query(sql%k) > > Es as esto lo que te referis? si es asi veo que los % que estan dentro de las > variables son "mascaras", donde puedo tener informacion de como son esas > mascaras para poder usarlas? si es posible en español :) Vayamos por partes: El operador de formato '%' de python sirve para construir una cadena a partir de una tupla de elementos, y es similar al que usa el printf de C (busca en cualquier libro de C). Si quieres información en español: http://pyspanishdoc.sourceforge.net/lib/typesseq-strings.html ó en el libro de python de la UJI. > Si me podes decir donde encuentro info de los parametros sql asi veo el tema. Luis Miguel te ha puesto una referencia de una conferencia que dio el año pasado, y que puede serte suficiente para iniciarte en el tema, pero la documentación de referencia sólo está en inglés. Segunda Parte Con la DB-API de python se puede indicar la posición de parámetros sql tanto por posición como por nombre. Te explicaré los dos casos para MySQLdb, pero antes déjame explicarte algo más el otro mensajes mío que comentas: sql = "insert into destinos values ('%02d','%s','%5d %5d %5d','3560');" db.query(sql%k) La sentencia sql es una cadena con formatos que indica dónde van a ir cada uno de los elementos con los que se va a combinar. Al hacer sql%k se sustituyen los formatos por los valores correspondientes, resultando una cadena que luego se ejecutará SIN PARÁMETROS, ya que los valores entran a formar parte intrínseca de la sentencia sql (a mysql sólo se le pasa una cadena, sin parámetros). Una ejecución con parámetros tendría que haber sido de ésta manera: sql = "insert into destinos values (%s,%s,%s,'3560');" db.query(sql,k[0],k[1],k[2]) %s indica la posición de los parámetros dentro de la sentencia sql. MySQL se encargará de convertir éstos parámetros, escapando los apóstrofes y comillas que podían dar problemas en la ejecución. También se podría haber dado los parámetros directamente como una lista: db.query(sql,k) Otra posibilidad es dar los parámetros por nombres, para lo que se usa un diccionario: valores={"id":100,"nombre":"Fulano","telefonos":"34234 234 234"} sql="insert into destinos values (%(id)s,%(nombre)s,%(telefonos)s,'3560');" db.query(sql,valores) Creo que el MySQLdb no tiene implementados el resto de modos de pasar parámetros. Con esto que te he contado creo que ya es suficiente para que sigas con tu programa. Te aconsejo que hagas pruebas para ver el funcionamiento. From pan_python en yahoo.com.ar Sat May 29 07:26:17 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Sat, 29 May 2004 02:26:17 -0300 Subject: Editor Python In-Reply-To: <1085790260.40b7d8345cd8a@ch3m4.org> References: <1085790260.40b7d8345cd8a@ch3m4.org> Message-ID: <40B81EF9.7070507@yahoo.com.ar> >>Me pueden recomendar un Editor para la programación en Python sobre windows >>y linux >> >> Te puedo recomendar el que estoy usando yo, el DrPython que esta en linux (no se en windows) y que esta en debian gracias al apt. Lo que mas me gusta de este editor es que tiene la opcion para dar Run o sea correr el programa y se te abre una ventana y te corre el programa que estas modificando, personalmente a mi me gusta. Tampoco te puedo aconsejar otros este es el que uso yo desde que empece en Python (hace muy poco tiempo) y a mi me gusta... Ariel From hdegiorgi en ciudad.com.ar Sat May 29 14:59:35 2004 From: hdegiorgi en ciudad.com.ar (hdegiorgi) Date: Sat, 29 May 2004 08:59:35 -0400 Subject: mas preguntas :) ahora sacar ' y " :) In-Reply-To: References: Message-ID: <40B88937.6070905@ciudad.com.ar> he probado alguno de perl pero ninguno tiene conversion de character sets , mis tablas en dbf están en cp850 y necesito guardarlas en iso8859-1. Este producto las tiene ? gracias Horacio François Heredero - Top Music SA wrote: >>haciendo el programa para convertir las bases de datos dbf a mysql (...) >> >> > >No se si te interesa, pero existe dbf2mysql [1] (Linux) que utilizo y que va >muy bien. > >François > >[1] http://sourceforge.net/projects/dbf2mysql/ > > > >------------------------------------------------------------------------ > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From fheredero en topmusic.ch Sat May 29 16:33:13 2004 From: fheredero en topmusic.ch (=?Windows-1252?Q?Fran=E7ois_Heredero_-_Top_Music_SA?=) Date: Sat, 29 May 2004 16:33:13 +0200 Subject: [OT] dbf2msql (ant: mas preguntas :) ahora sacar ' y " :)) In-Reply-To: <40B88937.6070905@ciudad.com.ar> References: <40B88937.6070905@ciudad.com.ar> Message-ID: > he probado alguno de perl pero ninguno tiene conversion de character > sets , mis tablas en dbf están en cp850 y necesito guardarlas en > iso8859-1. Este producto las tiene ? Me parece que lo puedes hacer utilizance la option -e pero nunca lo he usado François ------------ próxima parte ------------ An embedded and charset-unspecified text was scrubbed... Name: dbf2msql.README.txt URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From oziko en fusiondementes.com Sat May 29 17:53:24 2004 From: oziko en fusiondementes.com (oziko) Date: Sat, 29 May 2004 10:53:24 -0500 Subject: Editor Python In-Reply-To: <40B81EF9.7070507@yahoo.com.ar> References: <1085790260.40b7d8345cd8a@ch3m4.org> <40B81EF9.7070507@yahoo.com.ar> Message-ID: <40B8B1F4.2080400@fusiondementes.com> yo he probado varios, desde vim, emacs, idle, scite, hasta Komodo que es comercial y los que mas me han gutado es emacs y scite. el que suo actualmente es scite, liguero y potente ahora emacs es un monstruo pero es superpotente, solo hay que tener alguno dedos de mas pero es una maravilla. Ariel Nardelli wrote: > >>> Me pueden recomendar un Editor para la programación en Python sobre >>> windows >>> y linux >>> > > Te puedo recomendar el que estoy usando yo, el DrPython que esta en > linux (no se en windows) y que esta en debian gracias al apt. > Lo que mas me gusta de este editor es que tiene la opcion para dar Run o > sea correr el programa y se te abre una ventana y te corre el programa > que estas modificando, personalmente a mi me gusta. > > Tampoco te puedo aconsejar otros este es el que uso yo desde que empece > en Python (hace muy poco tiempo) y a mi me gusta... > > Ariel > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From pepe en diselpro.com Sat May 29 18:08:07 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Sat, 29 May 2004 18:08:07 +0200 Subject: Editor Python In-Reply-To: References: Message-ID: <200405291808.07184.pepe@diselpro.com> Hola. Pues Yo empecé con el Boa-constructor y lo utilizo solo como editor, ya que también tiene herramientas para componer pantallas en wxWidgets. Tiene auto-completar, depurador, breakpoints, chequea la sintaxis en tiempo real, ... , y un mogollon de funciones que voy descubriendo día a día. Eso si, prepara una ordenador decentillo (1Ghz ó +), porque es un devorador de recursos. Cuando sepa un poco mas de python le extirparé el editor de WX y lo dejaré solo como editor de código. Saludos. El Viernes, 28 de Mayo de 2004 21:23, javier.quintana en telsur.net escribió: > Me pueden recomendar un Editor para la programación en Python sobre windows > y linux > > Gracias > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From erny en sicem.biz Sat May 29 19:09:39 2004 From: erny en sicem.biz (Ernesto Revilla) Date: Sat, 29 May 2004 19:09:39 +0200 Subject: =?ISO-8859-1?Q?=BFCanal_de_chat_internacio?= =?ISO-8859-1?Q?nal_de_python=3F?= In-Reply-To: <40B77B6C.3878B49F@argo.es> References: <40B77B6C.3878B49F@argo.es> Message-ID: <40B8C3D3.6000108@sicem.biz> Hola, yo también entro a ratos a #python-es en irc.freenode.org Erny Jesus Cea Avion escribió: >Aunque existe ya un canal en irc-hispano, esta red está teniendo muchos >problemas últimamente y, además, el canal "limita" su público a miembros >de la comunidad hispana de python, amén de tener muy poquito movimiento >:-(. > >¿Os parece interesante tener un canal de chat para resolver dudas "en >caliente" en una red neutral y con cobertura mundial?. Yo había pensado >usar jabber/XMPP. Una d elas ventajas de esta red es que cualquier, >desde su casa, puede proporcionar servicios nuevos (desarrollados en >"python" :-) y que sean accesibles al planeta entero, no a una red de >chat determinada. Asimismo, cualquiera puede instalar un nuevo servidos >XMPP y se integra automáticamente en la red mundial, sin pedir permiso a >nadie, exactamente igual que ocurre con el correo electrónico, por >ejemplo. > >He creado la sala "python en conference.jabber.org". Mi jid es >"jcea en jabber.org", aunque estaré "offline" todo el fin de semana. > >Más detalles sobre la tecnología en http://www.jabber.org y >http://www.jabberes.org/ > >¿Comentarios?. ¿Sugerencias?. ¿Os animáis?. > > > From dvilla en gmx.net Sat May 29 19:38:16 2004 From: dvilla en gmx.net (dvilla) Date: Sat, 29 May 2004 19:38:16 +0200 Subject: Editor Python In-Reply-To: <40B8B1F4.2080400@fusiondementes.com> References: <1085790260.40b7d8345cd8a@ch3m4.org> <40B81EF9.7070507@yahoo.com.ar> <40B8B1F4.2080400@fusiondementes.com> Message-ID: <1085852295.6034.5.camel@amy> Hola: Yo soy un entusiasta de Emacs, lo uso para casi todo, aunque estoy convencido que no le saco ni el 5% del jugo. Pero es cierto que es bastante pesado, si sólo tienes que hacer un pequeño arreglo, a veces da pereza tener que arrancarlo. Lo que más echo de menos con diferencia cuando uso otros editores (como Anjuta o Scite) es la indentación automática (sobre todo en Python). ¿Qué otros editores conocéis que tengan intentación automática? Saludos El sáb, 29-05-2004 a las 17:53, oziko escribió: > yo he probado varios, desde vim, emacs, idle, scite, hasta Komodo que es > comercial y los que mas me han gutado es emacs y scite. el que suo > actualmente es scite, liguero y potente ahora emacs es un monstruo pero > es superpotente, solo hay que tener alguno dedos de mas pero es una > maravilla. > > Ariel Nardelli wrote: > > > >>> Me pueden recomendar un Editor para la programación en Python sobre > >>> windows > >>> y linux > >>> > > > > Te puedo recomendar el que estoy usando yo, el DrPython que esta en > > linux (no se en windows) y que esta en debian gracias al apt. > > Lo que mas me gusta de este editor es que tiene la opcion para dar Run o > > sea correr el programa y se te abre una ventana y te corre el programa > > que estas modificando, personalmente a mi me gusta. > > > > Tampoco te puedo aconsejar otros este es el que uso yo desde que empece > > en Python (hace muy poco tiempo) y a mi me gusta... > > > > Ariel > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From pan_python en yahoo.com.ar Sat May 29 23:21:14 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Sat, 29 May 2004 18:21:14 -0300 Subject: Editor Python In-Reply-To: <1085852295.6034.5.camel@amy> References: <1085790260.40b7d8345cd8a@ch3m4.org> <40B81EF9.7070507@yahoo.com.ar> <40B8B1F4.2080400@fusiondementes.com> <1085852295.6034.5.camel@amy> Message-ID: <40B8FECA.3040303@yahoo.com.ar> Hola!. El DrPython la tiene te pone los espacios (por asi decirlo) automanticamente... Yo pienso que los editores es todo cuestion de gustos :) hay que probar varios y quedarte con el que mas te gusta o el que mejor te acomodes. Ariel dvilla wrote: >Hola: > >Yo soy un entusiasta de Emacs, lo uso para casi todo, aunque estoy >convencido que no le saco ni el 5% del jugo. Pero es cierto que es >bastante pesado, si sólo tienes que hacer un pequeño arreglo, a veces da >pereza tener que arrancarlo. Lo que más echo de menos con diferencia >cuando uso otros editores (como Anjuta o Scite) es la indentación >automática (sobre todo en Python). ¿Qué otros editores conocéis que >tengan intentación automática? > >Saludos > >El sáb, 29-05-2004 a las 17:53, oziko escribió: > > >>yo he probado varios, desde vim, emacs, idle, scite, hasta Komodo que es >>comercial y los que mas me han gutado es emacs y scite. el que suo >>actualmente es scite, liguero y potente ahora emacs es un monstruo pero >>es superpotente, solo hay que tener alguno dedos de mas pero es una >>maravilla. >> >>Ariel Nardelli wrote: >> >> >>>>>Me pueden recomendar un Editor para la programación en Python sobre >>>>>windows >>>>>y linux >>>>> >>>>> >>>>> >>>Te puedo recomendar el que estoy usando yo, el DrPython que esta en >>>linux (no se en windows) y que esta en debian gracias al apt. >>>Lo que mas me gusta de este editor es que tiene la opcion para dar Run o >>>sea correr el programa y se te abre una ventana y te corre el programa >>>que estas modificando, personalmente a mi me gusta. >>> >>>Tampoco te puedo aconsejar otros este es el que uso yo desde que empece >>>en Python (hace muy poco tiempo) y a mi me gusta... >>> >>>Ariel >>> >>>_______________________________________________ >>>Python-es mailing list >>>Python-es en aditel.org >>>http://listas.aditel.org/listinfo/python-es >>> >>> >>> >>_______________________________________________ >>Python-es mailing list >>Python-es en aditel.org >>http://listas.aditel.org/listinfo/python-es >> >> > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > From pan_python en yahoo.com.ar Sat May 29 23:48:06 2004 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Sat, 29 May 2004 18:48:06 -0300 Subject: [OT] dbf2msql (ant: mas preguntas :) ahora sacar ' y " :)) In-Reply-To: References: Message-ID: <40B90516.1020705@yahoo.com.ar> Hola Francois Este mismo problema me esta surgiendo en este momento, me transfiere mal las ñ... Alguna idea para decirle a python que el dbf esta en formato cp850 y que al pasar lo lleve a iso? Ariel François Heredero - Top Music SA wrote: >>he probado alguno de perl pero ninguno tiene conversion de character >>sets , mis tablas en dbf están en cp850 y necesito guardarlas en >>iso8859-1. Este producto las tiene ? >> >> > >Me parece que lo puedes hacer utilizance la option -e pero nunca lo he usado > >François > > >------------------------------------------------------------------------ > >dbf2mysql v1.05 >Patched and enchanted to mysql by Michael Widenius > >OVERVIEW: > >This package now consists of two programs: the old dbf2msql, and the new, >alpha-code msql2dbf, which makes it possible to dump an mSQL-table to a >dbf-file. > >dbf2msql: > >This program takes an xBase-file and sends queries to an mSQL-server to >insert it into an msql-table. It takes a number of arguments to set its >behaviour: > >-v verbose: > Produce some status-output > >-vv more verbose: > Also produce progres-report. > >-f field-lowercase: > translate all field-names in the xbase-file to lowercase > >-u uppercase: > Translate all text in the xbase-file to uppercase > >-l lowercase: > Translate all text in the xbase-file to lowercase > >-n allow NULL fields: > 'NOT NULL' will be not added in table creation statement. > >-o list fields to insert into mySQL database. Primary use is to make > easier import of complex dbf files into mySQL where we want only few > fields. > NOTE: -o is processed before substitution (-s). So you have to use > dbf field names here. > >-e conversion file: > Specify file for char fields conversion. File format is: > 1st line: number of characters to convert (number of lines). > Further lines: . > >-s substitute: > Takes a list of fieldname/newfieldname pairs. Primary use is to avoid > conflicts between fieldnames and mySQL reserved keywords. When the new > fieldname is empty, the field is skipped in both the CREATE-clause and > the INSERT-clauses, in common words: it will not be present in the > mySQL-table > > example: > -s ORDER=HORDER,REMARKS=,STAT1=STATUS1 > >-i list fields to be indexed. mySQL field names should be listed here. > >-d database: > Select the database to insert into. Default is 'test' > >-t table: > Select the table to insert into. Default is 'test' > >-c create: > Create table if it not exists. If the table already exists, drop it and > build a new one. The default is to insert all data into the named table. > If -cc is specified then no records will be inserted. > >-p primary: > Select the primary key. You have to give the exact > field-name. > >-h host: > Select the host where to insert into. Untested. > >-F Fixed length records (Else chars is saved as varchar) > >-n Allow NULL values in fields > >-P Ask the password for the user trying to connect. > >-U Specify the user trying to get access to the database. > >-q "quick" mode. Inserts data via temporary file using 'LOAD DATA INFILE' > mySQL statement. This increased insertion speed on my PC 2-2.5 times. > Also note that during whole 'LOAD DATA' affected table is locked. > >-r Trim trailing and leading whitspaces from CHAR type fields data > >It does not handle memo-files, because you would need something like the >varchar type (planned for mSQL 2.0), and is maybe not as well tested as it >should have been, but it works for me (and others as I have been told). > >mysql2dbf: > >This takes basically the same arguments as dbf2mysql, only [-p] has changed. > >-v verbose >-vv more verbose >-u translate all field-contents to uppercase >-l translate all field-contents to lowercase >-d select database from where to read >-t select table from where to read >-q specifies custom-query to use >-p specify precision to use in case of REAL-fields > >THIS IS ALPHA-CODE!!!!!!!!!! > >INSTALL: > >To build it, take a look at the Makefile. You might have to change a >few things. > >First of all, there's the compiler you use. Then you have to tell where >your 'install' program is. I use the syntax as in Solaris /usr/sbin/install, >and I don't know if this is the one with the most standard arguments, so >please bare with me if you have to fiddle with it. > >Then, tell what compiler-options you want (probably optimizing :). The next >step is important: tell where your Minerva/mSQL is installed, since this >needs include-files and libraries from there. > >Next, tell where you want the binary to be installed (directory-name). > >Some operating-systems require extra libraries to be linked against, Solaris >for example needs -lsocket and -lnsl to compile this cleanly. Specify this >in EXTRALIBS. > >Then you're probably set to go. There are 3 more options you can change, but >you only need them if you want to do a 'make dist'. These are 'RM', 'GZIP' and >'TAR'. Of these, probably the only one that _could_ give trouble is gzip, >but you probably already have this, else you wouldn't have succeeded in >reading this document :). > >COPYRIGHT: > >Use this piece of software as you want, modify it to suit your needs, >but please leave my name in place ok? :) > >DISCLAIMER: > >I do not accept any responsibility for possible damage you get as result >of using this program. > >KNOWN BUGS: > >- It doesn't handle memo-files. If somebody has specifications of these, > please let me know and I'll see if I can add support for them. > >OTHER BUGS: > >Possibly incorrect field-lengths for REAL-numbers. > >CHANGES > >dbf2mysql-1.10d: (1997.10.30) > >- Fixed insertion of characters from 2nd part of ASCII table (char > codes >127). Don't know if that's correct. Will try to find > correct solution. > >dbf2mysql-1.10c: (1997.10.20) > >- Corrected README about available command line options. >- Expanded -c behavior. If more than one c is specified ( -cc ) then > no data will be inserted. Only table will be created. > >dbf2mysql-1.10b: (1997.06.18) > >- Still fixing bugs left after porting dbf2sql to mySQL. This time > bug which could screw program's execution after create-clause. >- Fixed quite fatal bug in check_table which could prevent existing > table name detection. > Mindaugas Riauba > >dbf2mysql-1.10: (1997.06.13) > >- Added -q flag to use "quick" insertion mode via temporary file and > 'LOAD DATA INFILE' statement. This increased speed 2-2.5 times on > my PC running Linux 2.0.29. > Mindaugas Riauba > >dbf2mysql-1.06: (1997.05.02) > >- Added -e flag to specify file for char fields conversion. I'm using > this to convert strings from one code page to other one. >- Found, enabled and documented -n flag, which allows NULL fields. >- Fixed bug which prevented data insertion without table creation. You > reviewed and tested this code or not Michael? ;) > Mindaugas Riauba > >dbf2mysql-1.05: (1997.04.23) > >- Added -o flag to list fields to be processed. That was made to ease > import of complex .dbf files where we want only few fields. Read note > about relationship with -s. >- Someone forgot to include F command line option to getopt ;). >- Adjusted Makefile to Linux and new mySQL libraries (libmysqlclient > instead of libmysql, etc.). >- Added -i flag to specify fields to index. >- Added -r flag t trim leading spaces from strings. > Mindaugas Riauba > >dbf2msql-1.04: > >- Fixed bug introduced in version 1.03 that calculated the header-length > (it was only correct by incident, when I added a pointer to a struct > this broke). >- Added a check when reading in the field-descriptions for end-of-header. > Could fix some problems. Patch from Aaron Kardell . >- Made numeric fields 10 long (4^32 has 10 chars....) > >dbf2msql-1.03 (never publically released): > >- Changed dbf.c to use a standard buffer to read the record in, > as opposed to allocating one everytime we call dbf_get_record(). > This will save time in reading and writing records. With dbf2msql and > msql2dbf you won't notice much difference, cos the most time-consuming > action is the communication with msqld, however, when you use these > routines for something else it should make a difference. > >dbf2msql-1.02b: > >- Fixed a typo in msql2dbf.c >- Forgot to mention in the README of 1.02 that I also fixed a memory- > leak, and I mean a major one..... (in dbf_get_record()) >- set *query = NULL in main() in msql2dbf.c. OSF on Alpha's chokes if you > don't do this >- changed strtoupper() and strtolower(), explicitly make it clear to > the compiler *when* to increase the pointer. > >dbf2msql-1.02: > >- Added a patch from Jeffrey Y. Sue to 'rename' fieldnames. > This also makes it possible to skip fields altogether >- Added some patches from Frank Koormann > to initialize the different data-area's to their correct values, > to set the dbf-time correctly and to use the correct format > for real-values in dbf_put_record() > >dbf2msql-1.01: > >- Changed every occurence of FILE to file_no. FILE reportedly caused > trouble on some systems. >- Changed dbf2msql.c so that when inserting an empty INT-field, an NULL > text is inserted in the INSERT-clause instead of nothing. Suggestion > by Jeffrey Y. Sue (jysue en aloha.net). >- Same for REAL-fields (comes automagically with the change above). >- When an error occurs during an INSERT-query, the values of that query > are displayed when -vv is set. > Suggestion by Jeffrey Y. Sue (jysue en aloha.net). >- Added alpha-support for writing dbf-files from msql-tables by means > of the program msql2dbf > >dbf2msql-0.5: > >- Added the -f flag to translate fieldnames to lowercase. > Suggestion by David Perry (deperry en nerosworld.com). > >dbf2msql-0.4: > >- fixed a little offset-bug. I came across a file that had an extra char > inserted after the header. However, the headerlength-field was correct, > so I changed the program to use this instead of calculating the > headerlength ourself. Should have done this in the first place. > Bugreport from David Perry (deperry en nerosworld.com). > >dbf2msql-0.3: > >- moved call to do_create() to inside the check if to create the table > or import it into an existing one > >dbf2msql-0.2: > >- Reorganized the code, cleaned up main(), moved building and sending > of 'create-clause' to do_create() and moved building and sending > of 'insert-clauses' to do_inserts. >- Changed allocation of (char *)query in do_create() from static > to dynamic, thus avoiding overruns. >- Changed allocation of (char *)query, (char *)keys and (char *)vals > in do_inserts() from static to dynamic, thus preventing overruns. >- Fixed a nasty little bug in freeing allocated memory in > dbf_free_record(). This was stupid, and only showed up *after* > the code-reorganization. Don't know why I didn't notice it before. > If you had *very* large dbases (with large fields), this could fill > up your memory completely. >- Added the -l option on suggestion from David Perry > (deperry en zeus.nerosworld.com) >- Added the -c option (dito) >- Added the -vv option >- Enhanced documentation (this little doc) > >dbf2msql-0.1: > >- Initial release > >Maarten Boekhold (boekhold en cindy.et.tudelft.nl) > > >------------------------------------------------------------------------ > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From vitojph en gmx.net Sun May 30 00:52:55 2004 From: vitojph en gmx.net (=?iso-8859-1?q?V=EDctor_Peinado?=) Date: Sun, 30 May 2004 00:52:55 +0200 Subject: Editor Python In-Reply-To: <1085852295.6034.5.camel@amy> References: <40B8B1F4.2080400@fusiondementes.com> <1085852295.6034.5.camel@amy> Message-ID: <200405300053.09608.vitojph@gmx.net> ¡Hola! Ante todo, un saludo: soy nuevo en la lista. Llevo viendo cosillas de Python apenas unos días y me encanta, a pesar de ser perlero convencido. | Yo soy un entusiasta de Emacs, Yo también. Es el "editor". Ahora es cuando los acólitos de la iglesia de vim me apalean XD A pesar de usar Emacs para casi todo, para Python me he acostumbrado a Kate, el editor de KDE y me resulta mucho más cómodo. Quizá porque los modos de edición de Python para Emacs no me parecen tan útiles como los de Perl. | ¿Qué otros editores conocéis que tengan intentación automática? Kate lo tiene, además tiene un fantástico navegador de objetos y clases Python en forma de plugin. Además, como apuntaban antes, tienes tu konsola para poder tirar del intérprete siempre que lo necesites. Muy chulo. Saludos. -- Res publica non dominetur. Víctor Peinado || vitojph gmx net || http://vitojph.yoll.net Fingerprint: C0D5 22EA 607C 47F9 28D7 3FFB 1CE0 342F 1285 66CA JID: vitojph jabber dk || ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From ch3m4 en ch3m4.org Sun May 30 06:36:24 2004 From: ch3m4 en ch3m4.org (Chema =?iso-8859-1?b?Q29ydOlz?=) Date: Sat, 29 May 2004 21:36:24 -0700 Subject: Editor Python In-Reply-To: <1085852295.6034.5.camel@amy> References: <1085790260.40b7d8345cd8a@ch3m4.org> <40B81EF9.7070507@yahoo.com.ar> <40B8B1F4.2080400@fusiondementes.com> <1085852295.6034.5.camel@amy> Message-ID: <1085891784.40b964c838285@ch3m4.org> Mensaje citado por dvilla : > ¿Qué otros editores conocéis que > tengan intentación automática? Aquí hay que distinguir entre la identación automática (que es muy común entre los editores de texto), y la identación que aconseja la guía de estilo python que, hoy en día, sólo está respetada por el python-mode de (X)emacs y el idle. (http://www.python.org/doc/essays/styleguide.html) Por poner una ejemplo claro, podéis probar con una definición de una función con los argumentos en varias líneas. Según la guía de estilo python los argumentos deben estar alineados con el paréntesis de apertura: def f(n,m, o,p): pass From Pyrator en irc-euro.org Sun May 30 18:34:32 2004 From: Pyrator en irc-euro.org (Pyrator) Date: Sun, 30 May 2004 18:34:32 +0200 Subject: Editor Python In-Reply-To: References: Message-ID: <20040530183432.49be5788@privadas> On Fri, 28 May 2004 15:23:21 -0400 javier.quintana en telsur.net wrote: > Me pueden recomendar un Editor para la programación en Python sobre windows > y linux > > Gracias > Hola, Te recomiendo el que usamos en la universidad de Castellón, programado uno de los profesores: http://www3.uji.es/~dllorens/PythonG/ Entre otras muchas utilidades de interés, incluye una consola, y una ventana gráfica. Saludos. -- ____ __ / __ \__ ___________ _/ /_____ _____ / /_/ / / / / ___/ __ `/ __/ __ \/ ___/ / ____/ /_/ / / / /_/ / /_/ /_/ / / /_/ \__, /_/ \__,_/\__/\____/_/ /____/ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From erny en sicem.biz Mon May 31 10:25:42 2004 From: erny en sicem.biz (Ernesto Revilla) Date: Mon, 31 May 2004 10:25:42 +0200 Subject: [OT] dbf2msql (ant: mas preguntas :) ahora sacar ' y " :)) In-Reply-To: References: Message-ID: <40BAEC06.1060707@sicem.biz> Hola, ¿ qué tipo de dato te devuelve el adaptador de base de datos? si te devuelve str, lo puedes hacer tu mismo: cadenaUnicode=unicode(cadena,'cp850') cadenaAEscribir=cadenaUnicode.encode('UTF-8') por ejemplo. François Heredero - Top Music SA escribió: >>he probado alguno de perl pero ninguno tiene conversion de character >>sets , mis tablas en dbf están en cp850 y necesito guardarlas en >>iso8859-1. Este producto las tiene ? >> >> > >Me parece que lo puedes hacer utilizance la option -e pero nunca lo he usado > >François > > >------------------------------------------------------------------------ > >dbf2mysql v1.05 >Patched and enchanted to mysql by Michael Widenius > >OVERVIEW: > >This package now consists of two programs: the old dbf2msql, and the new, >alpha-code msql2dbf, which makes it possible to dump an mSQL-table to a >dbf-file. > >dbf2msql: > >This program takes an xBase-file and sends queries to an mSQL-server to >insert it into an msql-table. It takes a number of arguments to set its >behaviour: > >-v verbose: > Produce some status-output > >-vv more verbose: > Also produce progres-report. > >-f field-lowercase: > translate all field-names in the xbase-file to lowercase > >-u uppercase: > Translate all text in the xbase-file to uppercase > >-l lowercase: > Translate all text in the xbase-file to lowercase > >-n allow NULL fields: > 'NOT NULL' will be not added in table creation statement. > >-o list fields to insert into mySQL database. Primary use is to make > easier import of complex dbf files into mySQL where we want only few > fields. > NOTE: -o is processed before substitution (-s). So you have to use > dbf field names here. > >-e conversion file: > Specify file for char fields conversion. File format is: > 1st line: number of characters to convert (number of lines). > Further lines: . > >-s substitute: > Takes a list of fieldname/newfieldname pairs. Primary use is to avoid > conflicts between fieldnames and mySQL reserved keywords. When the new > fieldname is empty, the field is skipped in both the CREATE-clause and > the INSERT-clauses, in common words: it will not be present in the > mySQL-table > > example: > -s ORDER=HORDER,REMARKS=,STAT1=STATUS1 > >-i list fields to be indexed. mySQL field names should be listed here. > >-d database: > Select the database to insert into. Default is 'test' > >-t table: > Select the table to insert into. Default is 'test' > >-c create: > Create table if it not exists. If the table already exists, drop it and > build a new one. The default is to insert all data into the named table. > If -cc is specified then no records will be inserted. > >-p primary: > Select the primary key. You have to give the exact > field-name. > >-h host: > Select the host where to insert into. Untested. > >-F Fixed length records (Else chars is saved as varchar) > >-n Allow NULL values in fields > >-P Ask the password for the user trying to connect. > >-U Specify the user trying to get access to the database. > >-q "quick" mode. Inserts data via temporary file using 'LOAD DATA INFILE' > mySQL statement. This increased insertion speed on my PC 2-2.5 times. > Also note that during whole 'LOAD DATA' affected table is locked. > >-r Trim trailing and leading whitspaces from CHAR type fields data > >It does not handle memo-files, because you would need something like the >varchar type (planned for mSQL 2.0), and is maybe not as well tested as it >should have been, but it works for me (and others as I have been told). > >mysql2dbf: > >This takes basically the same arguments as dbf2mysql, only [-p] has changed. > >-v verbose >-vv more verbose >-u translate all field-contents to uppercase >-l translate all field-contents to lowercase >-d select database from where to read >-t select table from where to read >-q specifies custom-query to use >-p specify precision to use in case of REAL-fields > >THIS IS ALPHA-CODE!!!!!!!!!! > >INSTALL: > >To build it, take a look at the Makefile. You might have to change a >few things. > >First of all, there's the compiler you use. Then you have to tell where >your 'install' program is. I use the syntax as in Solaris /usr/sbin/install, >and I don't know if this is the one with the most standard arguments, so >please bare with me if you have to fiddle with it. > >Then, tell what compiler-options you want (probably optimizing :). The next >step is important: tell where your Minerva/mSQL is installed, since this >needs include-files and libraries from there. > >Next, tell where you want the binary to be installed (directory-name). > >Some operating-systems require extra libraries to be linked against, Solaris >for example needs -lsocket and -lnsl to compile this cleanly. Specify this >in EXTRALIBS. > >Then you're probably set to go. There are 3 more options you can change, but >you only need them if you want to do a 'make dist'. These are 'RM', 'GZIP' and >'TAR'. Of these, probably the only one that _could_ give trouble is gzip, >but you probably already have this, else you wouldn't have succeeded in >reading this document :). > >COPYRIGHT: > >Use this piece of software as you want, modify it to suit your needs, >but please leave my name in place ok? :) > >DISCLAIMER: > >I do not accept any responsibility for possible damage you get as result >of using this program. > >KNOWN BUGS: > >- It doesn't handle memo-files. If somebody has specifications of these, > please let me know and I'll see if I can add support for them. > >OTHER BUGS: > >Possibly incorrect field-lengths for REAL-numbers. > >CHANGES > >dbf2mysql-1.10d: (1997.10.30) > >- Fixed insertion of characters from 2nd part of ASCII table (char > codes >127). Don't know if that's correct. Will try to find > correct solution. > >dbf2mysql-1.10c: (1997.10.20) > >- Corrected README about available command line options. >- Expanded -c behavior. If more than one c is specified ( -cc ) then > no data will be inserted. Only table will be created. > >dbf2mysql-1.10b: (1997.06.18) > >- Still fixing bugs left after porting dbf2sql to mySQL. This time > bug which could screw program's execution after create-clause. >- Fixed quite fatal bug in check_table which could prevent existing > table name detection. > Mindaugas Riauba > >dbf2mysql-1.10: (1997.06.13) > >- Added -q flag to use "quick" insertion mode via temporary file and > 'LOAD DATA INFILE' statement. This increased speed 2-2.5 times on > my PC running Linux 2.0.29. > Mindaugas Riauba > >dbf2mysql-1.06: (1997.05.02) > >- Added -e flag to specify file for char fields conversion. I'm using > this to convert strings from one code page to other one. >- Found, enabled and documented -n flag, which allows NULL fields. >- Fixed bug which prevented data insertion without table creation. You > reviewed and tested this code or not Michael? ;) > Mindaugas Riauba > >dbf2mysql-1.05: (1997.04.23) > >- Added -o flag to list fields to be processed. That was made to ease > import of complex .dbf files where we want only few fields. Read note > about relationship with -s. >- Someone forgot to include F command line option to getopt ;). >- Adjusted Makefile to Linux and new mySQL libraries (libmysqlclient > instead of libmysql, etc.). >- Added -i flag to specify fields to index. >- Added -r flag t trim leading spaces from strings. > Mindaugas Riauba > >dbf2msql-1.04: > >- Fixed bug introduced in version 1.03 that calculated the header-length > (it was only correct by incident, when I added a pointer to a struct > this broke). >- Added a check when reading in the field-descriptions for end-of-header. > Could fix some problems. Patch from Aaron Kardell . >- Made numeric fields 10 long (4^32 has 10 chars....) > >dbf2msql-1.03 (never publically released): > >- Changed dbf.c to use a standard buffer to read the record in, > as opposed to allocating one everytime we call dbf_get_record(). > This will save time in reading and writing records. With dbf2msql and > msql2dbf you won't notice much difference, cos the most time-consuming > action is the communication with msqld, however, when you use these > routines for something else it should make a difference. > >dbf2msql-1.02b: > >- Fixed a typo in msql2dbf.c >- Forgot to mention in the README of 1.02 that I also fixed a memory- > leak, and I mean a major one..... (in dbf_get_record()) >- set *query = NULL in main() in msql2dbf.c. OSF on Alpha's chokes if you > don't do this >- changed strtoupper() and strtolower(), explicitly make it clear to > the compiler *when* to increase the pointer. > >dbf2msql-1.02: > >- Added a patch from Jeffrey Y. Sue to 'rename' fieldnames. > This also makes it possible to skip fields altogether >- Added some patches from Frank Koormann > to initialize the different data-area's to their correct values, > to set the dbf-time correctly and to use the correct format > for real-values in dbf_put_record() > >dbf2msql-1.01: > >- Changed every occurence of FILE to file_no. FILE reportedly caused > trouble on some systems. >- Changed dbf2msql.c so that when inserting an empty INT-field, an NULL > text is inserted in the INSERT-clause instead of nothing. Suggestion > by Jeffrey Y. Sue (jysue en aloha.net). >- Same for REAL-fields (comes automagically with the change above). >- When an error occurs during an INSERT-query, the values of that query > are displayed when -vv is set. > Suggestion by Jeffrey Y. Sue (jysue en aloha.net). >- Added alpha-support for writing dbf-files from msql-tables by means > of the program msql2dbf > >dbf2msql-0.5: > >- Added the -f flag to translate fieldnames to lowercase. > Suggestion by David Perry (deperry en nerosworld.com). > >dbf2msql-0.4: > >- fixed a little offset-bug. I came across a file that had an extra char > inserted after the header. However, the headerlength-field was correct, > so I changed the program to use this instead of calculating the > headerlength ourself. Should have done this in the first place. > Bugreport from David Perry (deperry en nerosworld.com). > >dbf2msql-0.3: > >- moved call to do_create() to inside the check if to create the table > or import it into an existing one > >dbf2msql-0.2: > >- Reorganized the code, cleaned up main(), moved building and sending > of 'create-clause' to do_create() and moved building and sending > of 'insert-clauses' to do_inserts. >- Changed allocation of (char *)query in do_create() from static > to dynamic, thus avoiding overruns. >- Changed allocation of (char *)query, (char *)keys and (char *)vals > in do_inserts() from static to dynamic, thus preventing overruns. >- Fixed a nasty little bug in freeing allocated memory in > dbf_free_record(). This was stupid, and only showed up *after* > the code-reorganization. Don't know why I didn't notice it before. > If you had *very* large dbases (with large fields), this could fill > up your memory completely. >- Added the -l option on suggestion from David Perry > (deperry en zeus.nerosworld.com) >- Added the -c option (dito) >- Added the -vv option >- Enhanced documentation (this little doc) > >dbf2msql-0.1: > >- Initial release > >Maarten Boekhold (boekhold en cindy.et.tudelft.nl) > > >------------------------------------------------------------------------ > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es