From iferca en gmail.com Sun Jul 1 00:39:08 2007 From: iferca en gmail.com (=?ISO-8859-1?Q?Israel_Fern=E1ndez_Cabrera?=) Date: Sat, 30 Jun 2007 18:39:08 -0400 Subject: [Pytho-es] metaclases y operaciones con clases In-Reply-To: <1183196934.8851.10.camel@skynet> References: <20070628202820.6b720e61@bender> <2c9fb0dd0706290233g19750130p8a69097fb996d1c0@mail.gmail.com> <20070629123348.75cdd964@bender> <1183196934.8851.10.camel@skynet> Message-ID: Hola, aquí te va un ejemplo que quizá debas depurar un poco, se asumen algunas cosas: 1. Si alguien está a la izquierda entonces tiene la metaclase que suma métodos. 2. El "callable" de la derecha no recibe argumentos Pero igual por ahí te vas guiando: class MetaClass(type): def __add__(cls, another): def __call__deco(func): def wrapper(*arg, **kwarg): anotherInstance = another() anotherInstance() return func(*arg, **kwarg) return wrapper if hasattr(another, "__call__") and hasattr(cls, "__call__"): cls.__call__ = __call__deco(cls.__call__) return cls class A(object): __metaclass__ = MetaClass def __call__(self, a, b): print a * b class B(object): def __call__(self): print "Hola" NewA = A + B nA = NewA() nA(8, 2) No obstante no poder ni imaginarme que quieres hacer con esto, creo que las metaclases van bien simplemente dónde son la solución más limpia y la más "entendible" la que exprese mejor la intención, igual si lo que tienes son dos instancias y lo puedes hacer como lo hiciste abajo... creo que está perfecto. Otro criterio es que el código quede bien KISS, creo que las metaclases no ayudan mucho a esto último :P S en lu2 On 6/30/07, tny wrote: > > > Cuando uno sabe todo lo que necesita saber para programar, viene david > > con su pequeña gran introducción a las metaclases a complicarnos la vida > > XD > > > > Pues tenía un proyectín en mente que iba a hacer, cómo no, sin > > metaclases. Pues casualidades de la vida, que me he dado cuenta de que > > las meta clases me vienen de perlas. > > > > Sólo hay un único problema, que ahora me encuentro en medio del desierto > > porque no quiero hacerlo sin y no sé hacerlo con... > > > > La duda y cuestión: ¿con metaclases se podría hacer lo siguiente?¹ > > > > > > >>>class producto: > > ... def __call__(self,a,b): > > ... return a*b > > > > >>>class hola: > > ... def __call__(self): > > ... print "hola" > > > > >>>suma=hola+producto # he aquí el quid de la cuestión > > > > >>>s=suma() > > > > >>>s(5,6) > > hola > > 30 > > > > > > ________________________________________________________ > > ¹ paste-copy de ficcion, no intente esto en su ordenador > > > > > > sin metaclases yo lo haría así más o menos. > > class Comando: > def __init__(self,funciones=[]): > self.funciones=funciones > def __call__(self,*parametros): > return [funcion(*parametros) for funcion in self.funciones] > def __add__(self,other): > return Comando(self.funciones+other.funciones) > > > > >>> def producto(a,b,*resto): > return a*b > > >>> def hola(*resto): > print "hola" > > > >>> Producto=Comando([producto]) > >>> Hola=Comando([hola]) > >>> Suma=Producto+Hola > >>> Suma(5,6) > hola > [30, None] > > Pero ni Producto, ni Hola son clases. > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- ____________________ Israel Fdez. Cabrera iferca en gmail.com . 0 . . . 0 0 0 0 From gnomeusr en gmail.com Sun Jul 1 09:08:27 2007 From: gnomeusr en gmail.com (gfcs) Date: Sun, 01 Jul 2007 03:08:27 -0400 Subject: IDE con autocompletamiento In-Reply-To: References: <466E9EF2.5040002@ispvillena.rimed.cu> <85f8c5780706120800y1e796v51b14a9d9f84d38c@mail.gmail.com> <2c9fb0dd0706220457w4b2f98eaveb76312c6b94120b@mail.gmail.com> <467BCDBD.6020306@gmail.com> <6a39a1d0706230524s3becdc28j92c00a4c55c2e1cf@mail.gmail.com> <1183215395.7129.0.camel@rafael-desktop> Message-ID: <1183273707.6103.2.camel@GnomeHack> Hola, me interesa poder colaborar en el proyecto como desarrollador. De que parte lo puedo descargar ? Saludos El sáb, 30-06-2007 a las 17:40 -0400, Israel Fernández Cabrera escribió: > mi ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From sergio en wikier.org Sun Jul 1 11:59:56 2007 From: sergio en wikier.org (Sergio =?ISO-8859-1?Q?Fern=E1ndez?=) Date: Sun, 01 Jul 2007 11:59:56 +0200 Subject: FAQ de Python-es In-Reply-To: <46819816.9000500@k-rolus.net> References: <4680EA57.3000903@rvburke.com> <46819168.8070707@ehas.org> <46819816.9000500@k-rolus.net> Message-ID: <1183283996.10837.2.camel@localhost.localdomain> Hola, > Si quereis puedo levantar temporalmente en mi servidor doméstico (100% > free en ambos sentidos) un wiki basado en subversion. Así vamos teniendo > algo controlado y facilmente exportable mientras se busca la ubicación > definitiva. Yo ofrezco una de mis máquinas para alojar el wiki, MoinMoin o mediaWiki por ejemplo. No me constaría nada de esfuerzo echarlo a andar. Un saludo, -- __ ___ _ _ \ \ / (_) |_(_)___ _ _ \ \/\/ /| | / / / -_) '_| Sergio Fernández \_/\_/ |_|_\_\_\___|_| http://www.wikier.org/ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Sun Jul 1 12:50:46 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sun, 01 Jul 2007 12:50:46 +0200 Subject: FAQ de Python-es In-Reply-To: <1183283996.10837.2.camel@localhost.localdomain> References: <4680EA57.3000903@rvburke.com> <46819168.8070707@ehas.org> <46819816.9000500@k-rolus.net> <1183283996.10837.2.camel@localhost.localdomain> Message-ID: <46878706.7080707@ehas.org> Sergio Fernández escribió: >> Si quereis puedo levantar temporalmente en mi servidor doméstico (100% >> free en ambos sentidos) un wiki basado en subversion. Así vamos teniendo >> algo controlado y facilmente exportable mientras se busca la ubicación >> definitiva. > > Yo ofrezco una de mis máquinas para alojar el wiki, MoinMoin o mediaWiki > por ejemplo. No me constaría nada de esfuerzo echarlo a andar. Muchas gracias, Sergio. De momento estamos trabajando en el servidor de Carlos. Ha instalado ikiwiki, un wiki que trabaja con subversion, lo que permitirá acceder con y sin interfaz web. Como servidor temporal seguramente valdrá. Calculo que la semana que viene lo tendremos operativo, ya avisaremos en la lista. Por cierto, ¿alguien de la lista tiene contacto directo con Aditel para ver si podemos instalar ahí el wiki? de momento les escribo un mensaje en el formulario de contacto, a ver qué dicen. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From francisco.palm en gmail.com Sun Jul 1 13:27:46 2007 From: francisco.palm en gmail.com (Francisco Palm) Date: Sun, 1 Jul 2007 07:27:46 -0400 Subject: FAQ de Python-es In-Reply-To: <4680E069.5050402@ehas.org> References: <4680E069.5050402@ehas.org> Message-ID: Ya tengo un wiki listo para usar en: www.python.net.ve/pyve es un espacio en dreamhost que casi no utilizo Puedo instalar otro wiki (moinmoin) exclusivo para el faq de python-es a pedido del público. Saludos F. Palm -- -------------------------------------- fpalm en ula.ve francisco.palm en gmail.com cel: 0414 5109177 tel: 0274 2712106 "Cuando uno es joven, debe ser revolucionario, no sólo rebelarse... ser psicológicamente revolucionario significa no aceptar ningún modelo." K From nelfihs en gmail.com Sun Jul 1 16:15:22 2007 From: nelfihs en gmail.com (nelfi hernandez) Date: Sun, 1 Jul 2007 16:15:22 +0200 Subject: manual wxpython In-Reply-To: <1183139011.3461.3.camel@debian.tocalinijoerg.com.ar> References: <1e54ea540706290910t607bd260l46e7dd06e1cd0465@mail.gmail.com> <1183139011.3461.3.camel@debian.tocalinijoerg.com.ar> Message-ID: <1e54ea540707010715g2d78cc2k7e131b82443c7ad3@mail.gmail.com> gracias por sus respuestas, he mirado los dos link y me los estoy leyendo a ver que saco de ellos. gracias. From iferca en gmail.com Sun Jul 1 17:16:35 2007 From: iferca en gmail.com (=?ISO-8859-1?Q?Israel_Fern=E1ndez_Cabrera?=) Date: Sun, 1 Jul 2007 11:16:35 -0400 Subject: =?iso-8859-1?q?OT=3A_Perd=F3n_a_los_moderadores_por_?= =?iso-8859-1?q?el_adjunto?= Message-ID: Hola, quiero disculparme porque sin darme cuenta envié un adjunto a la lista, a los moderadores por favor, cancelar ese mensaje y confiar que no sucederá más de mi parte algo así :( S en lu2 y disculpen las molestias por el off-topic y el incidente -- ____________________ Israel Fdez. Cabrera iferca en gmail.com . 0 . . . 0 0 0 0 From inf200468 en ucf.edu.cu Sun Jul 1 18:18:30 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Sun, 1 Jul 2007 12:18:30 -0400 (CDT) Subject: sobre modulo pg Message-ID: <52971.200.55.186.42.1183306710.squirrel@correo.ucf.edu.cu> Hola: estoy trabajando con una base de datos postgre y con scripts de python, pero necesito manipular los resultados de las consulas, por ejemplo en una tabla que contiene un campo con los nombres de personas , hago una consulta que me devuelva todos los nombres, y quiero escribirlos para un fichero , pero con el modulo pg lo que obtengo son objetos del tipo query , resumiendo....necesito en este caso obtener especificamente los nombres , no una lista de tuplas como lo que me brinda el modulo pg....alguien puede sugerirme otro modulo similar a pg , pero que sea mejor en ese sentido????? gracias ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From pych3m4 en gmail.com Sun Jul 1 19:17:11 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Sun, 1 Jul 2007 19:17:11 +0200 Subject: sobre modulo pg In-Reply-To: <52971.200.55.186.42.1183306710.squirrel@correo.ucf.edu.cu> References: <52971.200.55.186.42.1183306710.squirrel@correo.ucf.edu.cu> Message-ID: <2c9fb0dd0707011017h59e44da7qb6a1e9e863b5cff4@mail.gmail.com> El 1/07/07, inf200468 en ucf.edu.cu escribió: > Hola: > estoy trabajando con una base de datos postgre y con scripts de > python, pero necesito manipular los resultados de las consulas, por > ejemplo en una tabla que contiene un campo con los nombres de > personas , hago una consulta que me devuelva todos los nombres, y > quiero escribirlos para un fichero , pero con el modulo pg lo que > obtengo son objetos del tipo query , resumiendo....necesito en este > caso obtener especificamente los nombres , no una lista de tuplas > como lo que me brinda el modulo pg....alguien puede sugerirme otro > modulo similar a pg , pero que sea mejor en ese sentido????? No entiendo bien el problema. Las consultas siempre devuelven una tupla por cada fila. Sólo tienes que recuperar el primer elemento de la tupla de la manera más normal e, incluso, puedes usar iteradores que te lo hagan más fácil. Si pones algo de código y dónde ves el problema, te podríamos orientar mejor. From franciscojseva en gmail.com Sun Jul 1 19:29:25 2007 From: franciscojseva en gmail.com (=?ISO-8859-1?Q?Francisco_Jos=E9_Seva_Mora?=) Date: Sun, 1 Jul 2007 19:29:25 +0200 Subject: JPEG 2000 y pyhon Message-ID: <85f8c5780707011029p45e812a8ge5bd1a4f883f4571@mail.gmail.com> Hola a todos!! Estoy intentando abrir archivos JPEG2000 con python usando PIL pero me dice que no puede identificar el tipo de imagen. ¿Alguien sabe alguna librería que me permita abir jpeg2000? Saludos Fran -- www.franciscojseva.com From pych3m4 en gmail.com Sun Jul 1 19:51:31 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Sun, 1 Jul 2007 19:51:31 +0200 Subject: IDE con autocompletamiento In-Reply-To: References: <466E9EF2.5040002@ispvillena.rimed.cu> <85f8c5780706120800y1e796v51b14a9d9f84d38c@mail.gmail.com> <2c9fb0dd0706220457w4b2f98eaveb76312c6b94120b@mail.gmail.com> <467BCDBD.6020306@gmail.com> <6a39a1d0706230524s3becdc28j92c00a4c55c2e1cf@mail.gmail.com> <1183215395.7129.0.camel@rafael-desktop> Message-ID: <2c9fb0dd0707011051y190f775bn429048754cc4576e@mail.gmail.com> El 30/06/07, Israel Fernández Cabrera escribió: > Hola a todos, soy nuevo por esta lista así que me presento y luego voy > a lo que tiene que ver con este hilo. > Me llamo Israel Fernández Cabrera, soy de Cuba y vivo en Cuba ;), en > la Ciudad La Habana y soy programador de profesión y ocupación hace ya > como 10 años. > > Incluyo mi mensaje en este hilo porque estoy haciendo un trabajo > relacionado con este tema, resulta que necesitaba un IDE que fuera > ligero, preferiblemente desarrollado en Python, que tuviera ciertas > comodidades, como autocompletado, soporte para automatizar corrida de > unit test de forma fácil, gráfica e intuitiva, navegador de código y > así todo lo que se espera de un IDE, pero sobre todas las cosas > necesitaba que fuera libre: free() y no encontré uno a mi medida, > Eclipse fue lo mejor pero no cumplió con ser ligero. > Así que estoy desarrollando un IDE, ya tiene un espacio en sourceforge > aunque aún no subo el código para el repositorio de allá ni he hecho > un release. Está en la versión 0.8.8 si mal no recuerdo y llevo solo > un mes de trabajo y aunque aún no tiene autocompletado, lo tendrá > pronto, pensé que a lo mejor alguno quería echar un ojo en lo que hago > un tiempo (y encuentro una conexión adecuada) para subirlo a > sourceforge. > Se llama YaPe (Yet Another Python Editor) y ya se está usando en > producción en varios proyectos aquí en la habana incluidos claro está > la producción del mismo YaPe, algunos sitios hechos con Python etc. > > Si a alguno les interesa, por favor envíen un mensaje en privado que > yo gustoso se los envío, repito es completamente free() lo liberaré > bajo GPL 2 o superior. Toda ayuda es bienvenida, código, sugerencias, > documentación, traducciones, errores encontrados, en fin... > > Gracias y disculpen si me extendí un poco para ser un mensaje a una > lista, no intento ser muy denso ;) Me parece interesante el proyecto, aunque creo que ya hay bastantes proyectos similares. Por ejemplo, tienes el Stani's Python Editor que creo deberías probar también. Stani tiene un proyecto para que todos los IDEs de python combinen esfuerzos y mejoras, por lo que podrías echarle un vistazo (http://pythonide.blogspot.com/). En otro orden de cosa, advertirte que tengas cuidado con las condiciones de uso de sourceforge, ya que no permite "explícitamente" cualquier uso desde países de la lista de paises sacionados por EEUU, entre los que se incluye Cuba. Te recomiendo que pases el proyecto a otro sistema si no quieres correr el riesgo de perder su control. Por ejemplo, puedes usar el servidor savane de la FSF Francesa: https://gna.org/ que funciona bastante bien. From kernel.no.found en gmail.com Sun Jul 1 20:59:24 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Sun, 1 Jul 2007 20:59:24 +0200 Subject: FAQ de Python-es Message-ID: <117d6e170707011159x32590323ycdaa3c5aa25e91ba@mail.gmail.com> Dotpy ha vuelto, y estoy trabajando en el moinmoin y en el planet. paciencia y todo lo tendre listo en una semana. -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com From astralrod en gmail.com Sun Jul 1 22:19:24 2007 From: astralrod en gmail.com (astralrod) Date: Sun, 1 Jul 2007 15:19:24 -0500 Subject: sobre modulo pg In-Reply-To: <2c9fb0dd0707011017h59e44da7qb6a1e9e863b5cff4@mail.gmail.com> References: <52971.200.55.186.42.1183306710.squirrel@correo.ucf.edu.cu> <2c9fb0dd0707011017h59e44da7qb6a1e9e863b5cff4@mail.gmail.com> Message-ID: lo que puedes hacer es primero crear una lista donde agregas el resultado del query, despues solamente haces un for y eliges la columna de nombre. con = pg.connection(parametros necesarios) query_sql = ... lista = con1.query(query_sql).getresult() nombres = [] #suponiendo que la segunda columna sea el nombre for i in lista: nombres.append(i[1]) #y ahora la lista nombres tendra los nombres que buscas ######################## otra opcion, es hacer solamente un query para obtener los nombres y trabajar directamente sobre esa lista query_nombres = #query para obtener los nombres lista2 = con1.query(sql_query).getresult() for i in lista2: print i[0] #aqui imprimimos solamente el nombre tal vez esto nosea la opcion optima o lo que puedes estar buscando, pero es lo que me ha funcionado cuando lo he necesitado Suerte! From pych3m4 en gmail.com Mon Jul 2 04:26:52 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 2 Jul 2007 04:26:52 +0200 Subject: JPEG 2000 y pyhon In-Reply-To: <85f8c5780707011029p45e812a8ge5bd1a4f883f4571@mail.gmail.com> References: <85f8c5780707011029p45e812a8ge5bd1a4f883f4571@mail.gmail.com> Message-ID: <2c9fb0dd0707011926o4a1f1cb8tc8addee19281e3d4@mail.gmail.com> El 1/07/07, Francisco José Seva Mora escribió: > Hola a todos!! > > Estoy intentando abrir archivos JPEG2000 con python usando PIL pero me dice > que no puede identificar el tipo de imagen. > ¿Alguien sabe alguna librería que me permita abir jpeg2000? El formato jpeg2000 está todavía un poco "crudo" para ser usado todavía. Prueba con PythonMagick (los "bindings" de ImageMagick): http://www.imagemagick.org/download/python/ PythonMagick depende de las librerías boost. Si no buscas muchas virguerías, puede que te resulte más sencillo utilizar jasper en línea de comandos para convertir el formato jpeg2000 a otro más manejable. From libargutxi en codesyntax.com Mon Jul 2 09:10:36 2007 From: libargutxi en codesyntax.com (lur ibargutxi) Date: Mon, 2 Jul 2007 09:10:36 +0200 Subject: devolver un fichero Message-ID: <31a05fb20707020010o27993ad0s91ba568e8674187c@mail.gmail.com> Hola! He creado un script que me genera un fichero .odt en mi sistema de fichero. Alguien sabe la manera de poder devolver en el navegador la opcion de poder descargar el fichero? lo he intentado con: f = open("/home/lur/instances/7080/bin/proba.odt", "rb") REQUEST.RESPONSE.setHeader('Content-type','application/odt') REQUEST.RESPONSE.setHeader('Content-disposition','inline; filename="%s.odt"' % (context.title_or_id())) return f pero con esto no me devuelve el fichero sino que me devuelve escrito en un fichero .odt. Muchas gracias -- Lur Ibargutxi libargutxi en codesyntax.com From pych3m4 en gmail.com Mon Jul 2 09:47:20 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 2 Jul 2007 09:47:20 +0200 Subject: devolver un fichero In-Reply-To: <31a05fb20707020010o27993ad0s91ba568e8674187c@mail.gmail.com> References: <31a05fb20707020010o27993ad0s91ba568e8674187c@mail.gmail.com> Message-ID: <2c9fb0dd0707020047w54c1b17cs3f1f0bb94ee3a060@mail.gmail.com> El 2/07/07, lur ibargutxi escribió: > Hola! > He creado un script que me genera un fichero .odt en mi sistema de fichero. > Alguien sabe la manera de poder devolver en el navegador la opcion de poder > descargar el fichero? lo he intentado con: > f = open("/home/lur/instances/7080/bin/proba.odt", "rb") > REQUEST.RESPONSE.setHeader('Content-type','application/odt') > REQUEST.RESPONSE.setHeader('Content-disposition','inline; filename="%s.odt"' > % (context.title_or_id())) > return f return f.read() Si el fichero es demasiado grande, habría que utilizar sockets. > pero con esto no me devuelve el fichero sino que me devuelve '/home/lur/instances/7080/bin/proba.odt', mode 'rb' at 0xb32ebd58> escrito > en un fichero .odt. From libargutxi en codesyntax.com Mon Jul 2 09:57:55 2007 From: libargutxi en codesyntax.com (lur ibargutxi) Date: Mon, 2 Jul 2007 09:57:55 +0200 Subject: devolver un fichero In-Reply-To: <2c9fb0dd0707020047w54c1b17cs3f1f0bb94ee3a060@mail.gmail.com> References: <31a05fb20707020010o27993ad0s91ba568e8674187c@mail.gmail.com> <2c9fb0dd0707020047w54c1b17cs3f1f0bb94ee3a060@mail.gmail.com> Message-ID: <31a05fb20707020057u58229d0dyaa74f27cd0298aef@mail.gmail.com> eso es. Lo habia probado asi y funciona. Gracias El día 2/07/07, Chema Cortes escribió: > > El 2/07/07, lur ibargutxi escribió: > > Hola! > > He creado un script que me genera un fichero .odt en mi sistema de > fichero. > > Alguien sabe la manera de poder devolver en el navegador la opcion de > poder > > descargar el fichero? lo he intentado con: > > f = open("/home/lur/instances/7080/bin/proba.odt", "rb") > > REQUEST.RESPONSE.setHeader('Content-type','application/odt') > > REQUEST.RESPONSE.setHeader('Content-disposition','inline; > filename="%s.odt"' > > % (context.title_or_id())) > > return f > > return f.read() > > > Si el fichero es demasiado grande, habría que utilizar sockets. > > > > pero con esto no me devuelve el fichero sino que me devuelve > '/home/lur/instances/7080/bin/proba.odt', mode 'rb' at 0xb32ebd58> > escrito > > en un fichero .odt. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Lur Ibargutxi libargutxi en codesyntax.com From ogutsua en gmail.com Mon Jul 2 14:01:28 2007 From: ogutsua en gmail.com (Oliver =?iso-8859-1?q?Guti=E9rrez?=) Date: Mon, 2 Jul 2007 13:01:28 +0100 Subject: Control notebook de PyGTK In-Reply-To: <31a05fb20707020057u58229d0dyaa74f27cd0298aef@mail.gmail.com> References: <31a05fb20707020010o27993ad0s91ba568e8674187c@mail.gmail.com> <2c9fb0dd0707020047w54c1b17cs3f1f0bb94ee3a060@mail.gmail.com> <31a05fb20707020057u58229d0dyaa74f27cd0298aef@mail.gmail.com> Message-ID: <200707021301.28795.ogutsua@gmail.com> Hola a todos: Estoy haciendo una serie de pruebas con pygtk y glade y no logro hacer que el control notebook de pygtk funcione correctamente (o al menos como yo necesito) He creado una ventana simple em glade y le he añadido dos controles. Uno es un botón y otro un notebook. El notebook inicialmente tiene una sola pestaña, y la idea es que cuando pulse el botón, llamando al respectivo callback de la señal clicked, cree una nueva pestaña en el notebook con el método append_page, pasandole como hijo de la nueva página un control de texto y como etiqueda un label simple. La cuestión es que al añadir la nueva página en tiempo de ejecución, no pasa nada visualmente. La pestaña no se añade ni tampoco el resto de controles hijo de esta, pero para más inri, salta la señal del notebook que indica que he añadido la nueva página. He intentado utilizar otras funciones del control notebook como ir a las pestañas anteriores y siguientes, borrar pestañas, etc. y todo funciona correctamente excepto el append_page y el insert_page. Alguien me puede echar una mano con esto? Saludos y gracias a todos por adelantado. -- BOFH excuse #373: Suspicious pointer corrupted virtual machine From inf200468 en ucf.edu.cu Mon Jul 2 15:34:05 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Mon, 2 Jul 2007 09:34:05 -0400 (CDT) Subject: funcion en python Message-ID: <1717.10.14.17.145.1183383245.squirrel@correo.ucf.edu.cu> hola amigos> adjunto les envio la funcion de la que hable anteriormente para insertar datos en la base de datos, pero cuando le paso como parametro en alerta true oo false , cualquiera de los dos me da error , y en la bd yo tengo declarado ese campo como bool, pero me da error ayudenme si pueden ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From inf200468 en ucf.edu.cu Mon Jul 2 15:54:44 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Mon, 2 Jul 2007 09:54:44 -0400 (CDT) Subject: sobre modulo pg In-Reply-To: References: <52971.200.55.186.42.1183306710.squirrel@correo.ucf.edu.cu> <2c9fb0dd0707011017h59e44da7qb6a1e9e863b5cff4@mail.gmail.com> Message-ID: <3092.10.14.17.145.1183384484.squirrel@correo.ucf.edu.cu> muchas gracias astralrod lo prob'e con lo que me dijistes y todo excelente,gracias a ti tambien chema > lo que puedes hacer es primero crear una lista donde agregas el resultado > del query, > despues solamente haces un for y eliges la columna de nombre. > > con = pg.connection(parametros necesarios) > query_sql = ... > > lista = con1.query(query_sql).getresult() > nombres = [] > > #suponiendo que la segunda columna sea el nombre > for i in lista: > nombres.append(i[1]) > > #y ahora la lista nombres tendra los nombres que buscas > > ######################## > otra opcion, es hacer solamente un query para obtener los nombres y > trabajar > directamente sobre esa lista > > query_nombres = #query para obtener los nombres > lista2 = con1.query(sql_query).getresult() > for i in lista2: > print i[0] #aqui imprimimos solamente el nombre > > tal vez esto nosea la opcion optima o lo que puedes estar buscando, pero > es > lo que me ha funcionado cuando lo he necesitado > > Suerte! > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From inf200468 en ucf.edu.cu Mon Jul 2 15:58:20 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Mon, 2 Jul 2007 09:58:20 -0400 (CDT) Subject: problema con funcion Message-ID: <1511.10.14.17.145.1183384700.squirrel@correo.ucf.edu.cu> el error que me daba con la funcion que les envie anteriormente es insertar_nuevo_usuario = conex.query (cadena) pg.ProgrammingError: ERROR: invalid input syntax for type boolean: " true " adjunto les envio la funcion para si se olvidaron de ella gracias ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From riverplatense en gmail.com Mon Jul 2 16:20:21 2007 From: riverplatense en gmail.com (Javier Castrillo) Date: Mon, 2 Jul 2007 11:20:21 -0300 Subject: IDE con autocompletamiento In-Reply-To: References: <466E9EF2.5040002@ispvillena.rimed.cu> <85f8c5780706120800y1e796v51b14a9d9f84d38c@mail.gmail.com> <2c9fb0dd0706220457w4b2f98eaveb76312c6b94120b@mail.gmail.com> <467BCDBD.6020306@gmail.com> <6a39a1d0706230524s3becdc28j92c00a4c55c2e1cf@mail.gmail.com> <1183215395.7129.0.camel@rafael-desktop> Message-ID: On 30/06/07, Israel Fernández Cabrera wrote: > Si a alguno les interesa, por favor envíen un mensaje en privado que > yo gustoso se los envío, repito es completamente free() lo liberaré > bajo GPL 2 o superior. Toda ayuda es bienvenida, código, sugerencias, > documentación, traducciones, errores encontrados, en fin... > Hola amigo, si podés mandame el src que lo pruebo. Un abrazo. -- Javier Castrillo ========================================================= GNU / Linux User #242275 ------------------------------- pub 1024D/B482896F 2006-09-04 uid Javier Castrillo (El Palo) sub 2048g/52C99A4E 2006-09-04 Clave pública: carapa.com.ar/public.asc http://carapa.com.ar http://javiercastrillo.com.ar http://riverplatense.googlepages.com ========================================================= Usá Software Libre From gerardo en computo-industrial.com.mx Mon Jul 2 16:43:16 2007 From: gerardo en computo-industrial.com.mx (Gerardo Juarez) Date: Mon, 2 Jul 2007 10:43:16 -0400 (EDT) Subject: problema con funcion In-Reply-To: <1511.10.14.17.145.1183384700.squirrel@correo.ucf.edu.cu> References: <1511.10.14.17.145.1183384700.squirrel@correo.ucf.edu.cu> Message-ID: ?Ya probaste usar CAST en la sentencia SQL? Es algo asi como "cast (x as boolean)", donde "x" es el valor que quieres insertar. Ahora, esta el valor entre comillas, apostrofos o sin nada? Gerardo On Mon, 2 Jul 2007 inf200468 en ucf.edu.cu wrote: > el error que me daba con la funcion que les envie anteriormente es > insertar_nuevo_usuario = conex.query (cadena) > pg.ProgrammingError: ERROR: invalid input syntax for type boolean: " true " > > adjunto les envio la funcion para si se olvidaron de ella > gracias > > ------------------------------ > Participe en Universidad 2008 > 11 al 15 de febrero del 2008 > Palacio de las Convenciones, > Ciudad de la Habana, Cuba > http://www.universidad2008.cu > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From inf200468 en ucf.edu.cu Mon Jul 2 17:19:10 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Mon, 2 Jul 2007 11:19:10 -0400 (CDT) Subject: problema con funcion In-Reply-To: References: Message-ID: <4429.10.14.17.145.1183389550.squirrel@correo.ucf.edu.cu> tengo una duda....hago el cast (x as boolean) fuera o dentro de la consulta sql ???? > ?Ya probaste usar CAST en la sentencia SQL? Es algo asi como "cast (x as > boolean)", donde "x" es el valor que quieres insertar. Ahora, esta el > valor entre comillas, apostrofos o sin nada? > > Gerardo > > On Mon, 2 Jul 2007 inf200468 en ucf.edu.cu wrote: > >> el error que me daba con la funcion que les envie anteriormente es >> insertar_nuevo_usuario = conex.query (cadena) >> pg.ProgrammingError: ERROR: invalid input syntax for type boolean: " >> true " >> >> adjunto les envio la funcion para si se olvidaron de ella >> gracias >> >> ------------------------------ >> Participe en Universidad 2008 >> 11 al 15 de febrero del 2008 >> Palacio de las Convenciones, >> Ciudad de la Habana, Cuba >> http://www.universidad2008.cu >> > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From inf200468 en ucf.edu.cu Mon Jul 2 17:28:40 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Mon, 2 Jul 2007 11:28:40 -0400 (CDT) Subject: funcion en python Message-ID: <3292.10.14.17.145.1183390120.squirrel@correo.ucf.edu.cu> quedaria asi.... revisa el adjunto ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From inf200468 en ucf.edu.cu Mon Jul 2 17:34:34 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Mon, 2 Jul 2007 11:34:34 -0400 (CDT) Subject: problema con funcion Message-ID: <3028.10.14.17.145.1183390474.squirrel@correo.ucf.edu.cu> probe eso y no lo hace , alguien puede sugerirme algo , o corregir lo anterior muchas gracias ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From franciscojseva en gmail.com Mon Jul 2 18:17:26 2007 From: franciscojseva en gmail.com (=?ISO-8859-1?Q?Francisco_Jos=E9_Seva_Mora?=) Date: Mon, 2 Jul 2007 18:17:26 +0200 Subject: JPEG 2000 y pyhon In-Reply-To: <2c9fb0dd0707011926o4a1f1cb8tc8addee19281e3d4@mail.gmail.com> References: <85f8c5780707011029p45e812a8ge5bd1a4f883f4571@mail.gmail.com> <2c9fb0dd0707011926o4a1f1cb8tc8addee19281e3d4@mail.gmail.com> Message-ID: <85f8c5780707020917y381149c1k7d9d33687241327e@mail.gmail.com> Gracias Chema. Miraré como va con pythonMagic. A parte de jpg2000 también quiero mostrar imágenes JPEG-LS y me gustaría hacerlo usando alguna librería en python, ¿sabes algo sobre este formato y python?. Un saludo a todos!! From fidita48 en hotmail.com Mon Jul 2 19:07:45 2007 From: fidita48 en hotmail.com (=?iso-8859-1?B?SWRvaWEgVmlsbGFjaeFuIFrhcmF0ZQ==?=) Date: Mon, 02 Jul 2007 19:07:45 +0200 Subject: conectar en PSP a la base de datos Message-ID: Hola, Quiero hacer una aplicacion web y como para ello tengo que utilizar Apache y mod_python(por mi tutora del proyecto) he estado curioseando un poco con PSP, hacer el diseño me ha parecido facil. He estado mirando como conectarme a la Base de Datos pero nose muy bien como hacer para pasarle los datos a la Base de Datos.Yo tengo una ventana, donde un usuario introduce sus datos y cuando le doy a un boton quiero que esos datos se recojan y se inserten en la Base de datos, estoy utilizando MySQL. Como es un proyecto de fin de carrera lo estoy haciendo con una compañera que es la que se encarga de la Base de datos, ella me pasa, por ejemplo el archivo contestarCuestionario.py, que contiene lo siguiente: # import MySQL module import MySQLdb def contestarCuestionario(nombre, apellidos, dni, fechaNacimiento, listaNoDeseados): # connect db = MySQLdb.connect(host="localhost", user="joana", passwd="joana", db="prueba") # create a cursor cursor = db.cursor() # execute SQL statement cursor.execute("INSERT INTO prueba_usuario (Nombre, Apellidos, Dni, FechaNacimiento, ListaIngNoDeseados) VALUES (%s, %s, %s, %s, %s)" ,(nombre,apellidos,dni,fechaNacimiento,listaNoDeseados)) db.commit() Yo en MySQL tengo creada la database y la tabla prueba_usuario.Si alguien me puede explicar como lo tendria que hacer, gracias. _________________________________________________________________ Éxitos, grandes clásicos y novedades. [1]Un millón de canciones en MSN Music. References 1. http://g.msn.com/8HMBESES/2755??PS=47575 From arnau en ehas.org Mon Jul 2 20:06:27 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Mon, 02 Jul 2007 20:06:27 +0200 Subject: FAQ de Python-es In-Reply-To: <117d6e170707011159x32590323ycdaa3c5aa25e91ba@mail.gmail.com> References: <117d6e170707011159x32590323ycdaa3c5aa25e91ba@mail.gmail.com> Message-ID: <46893EA3.9000204@ehas.org> Juan José Alonso. escribió: > Dotpy ha vuelto, y estoy trabajando en el moinmoin y en el planet. > paciencia y todo lo tendre listo en una semana. Es una buena noticia, Juan José, me alegro de que arranque también el Planet, hubo bastante interés en su momento. En cuanto al moinmoin, ¿te refieres para el FAQ de la lista? From pablomarmol en gmail.com Mon Jul 2 20:00:30 2007 From: pablomarmol en gmail.com (peter) Date: Mon, 2 Jul 2007 20:00:30 +0200 Subject: conectar en PSP a la base de datos In-Reply-To: References: Message-ID: <32ec9b10707021100qbd5d466p6e624239b2660d7@mail.gmail.com> El 2/07/07, Idoia Villacián Zárate escribió: > > Quiero hacer una aplicacion web y como para ello tengo que utilizar > Apache y mod_python(por mi tutora del proyecto) he estado curioseando > un poco con PSP, hacer el diseño me ha parecido facil. Hola fidita48. No tengo respuesta que darte, pero tengo una duda. Ese proyecto de fin de carrera, ¿de que carrera es? Un saludo, From gnomeusr en gmail.com Mon Jul 2 20:26:49 2007 From: gnomeusr en gmail.com (gfcs) Date: Mon, 02 Jul 2007 14:26:49 -0400 Subject: Control notebook de PyGTK In-Reply-To: <200707021301.28795.ogutsua@gmail.com> References: <31a05fb20707020010o27993ad0s91ba568e8674187c@mail.gmail.com> <2c9fb0dd0707020047w54c1b17cs3f1f0bb94ee3a060@mail.gmail.com> <31a05fb20707020057u58229d0dyaa74f27cd0298aef@mail.gmail.com> <200707021301.28795.ogutsua@gmail.com> Message-ID: <1183400809.7825.2.camel@GnomeHack> Hola, solucion: def add_tab(self, widget, label): p = -1 if not self.wins.has_key(label): l = gtk.Label('') l.set_text_with_mnemonic(label) self.ntbPrueba.append_page(widget, l) widget.show() self.wins[label] = (widget, len(self.wins)) else: self.ntbPrueba.show_all() self.ntbPrueba.set_current_page(self.wins[label][1]) a = self.ntbPrueba.get_current_page() p = len(self.wins) - 1 self.ntbPrueba.set_current_page(-1) def remove_tab(self, label): self.ntbPrueba.remove(self.wins[label][0]) del self.wins[label] El lun, 02-07-2007 a las 13:01 +0100, Oliver Gutiérrez escribió: > Hola a todos: > > Estoy haciendo una serie de pruebas con pygtk y glade y no logro hacer que el > control notebook de pygtk funcione correctamente (o al menos como yo > necesito) > > He creado una ventana simple em glade y le he añadido dos controles. Uno es un > botón y otro un notebook. > > El notebook inicialmente tiene una sola pestaña, y la idea es que cuando pulse > el botón, llamando al respectivo callback de la señal clicked, cree una nueva > pestaña en el notebook con el método append_page, pasandole como hijo de la > nueva página un control de texto y como etiqueda un label simple. > > La cuestión es que al añadir la nueva página en tiempo de ejecución, no pasa > nada visualmente. La pestaña no se añade ni tampoco el resto de controles > hijo de esta, pero para más inri, salta la señal del notebook que indica que > he añadido la nueva página. > > He intentado utilizar otras funciones del control notebook como ir a las > pestañas anteriores y siguientes, borrar pestañas, etc. y todo funciona > correctamente excepto el append_page y el insert_page. > > Alguien me puede echar una mano con esto? > > Saludos y gracias a todos por adelantado. > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Mon Jul 2 20:32:37 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Mon, 02 Jul 2007 20:32:37 +0200 Subject: Control notebook de PyGTK In-Reply-To: <200707021301.28795.ogutsua@gmail.com> References: <31a05fb20707020010o27993ad0s91ba568e8674187c@mail.gmail.com> <2c9fb0dd0707020047w54c1b17cs3f1f0bb94ee3a060@mail.gmail.com> <31a05fb20707020057u58229d0dyaa74f27cd0298aef@mail.gmail.com> <200707021301.28795.ogutsua@gmail.com> Message-ID: <468944C5.2050505@ehas.org> Oliver Gutiérrez escribió: > He intentado utilizar otras funciones del control notebook como ir a las > pestañas anteriores y siguientes, borrar pestañas, etc. y todo funciona > correctamente excepto el append_page y el insert_page. > > Alguien me puede echar una mano con esto? Tienes que hacer un show del widget que has añadido. From cabrerachaparro en gmail.com Mon Jul 2 22:00:07 2007 From: cabrerachaparro en gmail.com (Daniel Cabrera) Date: Mon, 2 Jul 2007 15:00:07 -0500 Subject: Sentencias SQL embebidas usando DB2 Message-ID: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> Hola, Estoy leyendo un manual de DB2 en el se mencionan que se pueden crear sentencias SQL embebidas en algunos lenguajes de programación como C, Cobol y Java. Mi pregunta es si se puede hacer lo mismo usando Python, se que hay un API PyDB2 que te permite conectarte a DB2, pero no se si es lo mismo que usar sentencias embebidas, por ejemplo para poder crear variables host o crear sentencias estáticas o dinámicas. Estoy un poco confundido con esto. Agradezco desde ya su ayuda -- Daniel Cabrera Chaparro Noticias Interesantes de Linux en http://comulinux.blogspot.com/ From pych3m4 en gmail.com Mon Jul 2 22:34:25 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 2 Jul 2007 22:34:25 +0200 Subject: JPEG 2000 y pyhon In-Reply-To: <85f8c5780707020917y381149c1k7d9d33687241327e@mail.gmail.com> References: <85f8c5780707011029p45e812a8ge5bd1a4f883f4571@mail.gmail.com> <2c9fb0dd0707011926o4a1f1cb8tc8addee19281e3d4@mail.gmail.com> <85f8c5780707020917y381149c1k7d9d33687241327e@mail.gmail.com> Message-ID: <2c9fb0dd0707021334u3871e0a1wc3df19953acecb8e@mail.gmail.com> El 2/07/07, Francisco José Seva Mora escribió: > Gracias Chema. Miraré como va con pythonMagic. > A parte de jpg2000 también quiero mostrar imágenes JPEG-LS y me gustaría > hacerlo usando alguna librería en python, ¿sabes algo sobre este formato y > python?. Creo que el jpeg-ls está abandonado en favor del jpeg2000. No creo que se usen en ningún sitio más que en algunos sistemas DICOM de medicina antiguos. Lo único que puedes hacer es invocar desde python las utilidades de línea de comandos. Las tienes en la página web de LOCO, aunque son algo vetustas (kernel linux 2.2.5). http://www.hpl.hp.com/loco/locodown.htm http://www.jpeg.org/jpeg/jpegls.html From franciscojseva en gmail.com Mon Jul 2 23:23:06 2007 From: franciscojseva en gmail.com (=?ISO-8859-1?Q?Francisco_Jos=E9_Seva_Mora?=) Date: Mon, 2 Jul 2007 23:23:06 +0200 Subject: JPEG 2000 y pyhon In-Reply-To: <2c9fb0dd0707021334u3871e0a1wc3df19953acecb8e@mail.gmail.com> References: <85f8c5780707011029p45e812a8ge5bd1a4f883f4571@mail.gmail.com> <2c9fb0dd0707011926o4a1f1cb8tc8addee19281e3d4@mail.gmail.com> <85f8c5780707020917y381149c1k7d9d33687241327e@mail.gmail.com> <2c9fb0dd0707021334u3871e0a1wc3df19953acecb8e@mail.gmail.com> Message-ID: <85f8c5780707021423j55d4feaai69728e02a00a69fb@mail.gmail.com> Pués vaya faena. Estoy haciendo un decodificador DICOM y hay muchas imágnes comprimidas en jpeg-ls y esto es lo último que me queda por mostrar. Miraré la página web de LOCO a ver si me resuelve los problemas,sino pués habrá que currarse algo para jpeg-ls. Muchas gracias por todo :) Saludos Fran -- www.franciscojseva.com From ogutsua en gmail.com Tue Jul 3 00:13:52 2007 From: ogutsua en gmail.com (Oliver =?iso-8859-1?q?Guti=E9rrez?=) Date: Mon, 2 Jul 2007 23:13:52 +0100 Subject: Control notebook de PyGTK In-Reply-To: <468944C5.2050505@ehas.org> References: <31a05fb20707020010o27993ad0s91ba568e8674187c@mail.gmail.com> <200707021301.28795.ogutsua@gmail.com> <468944C5.2050505@ehas.org> Message-ID: <200707022313.52240.ogutsua@gmail.com> Gracias a los dos que me habeis respondido. Teníais razón. Lo solucioné esta tarde pero quería saber si se debia a eso o era simplemente  que mi versión de PyGTK estaba mal y tenía un bug. La razón por la que no me funcionaba era por que no hacía el show de los widgets añadidos y no se mostraba la pestaña entera. Muchas gracias On Monday 02 July 2007 19:32:37 Arnau Sanchez wrote: > Oliver Gutiérrez escribió: > > He intentado utilizar otras funciones del control notebook como ir a las > > pestañas anteriores y siguientes, borrar pestañas, etc. y todo funciona > > correctamente excepto el append_page y el insert_page. > > > > Alguien me puede echar una mano con esto? > > Tienes que hacer un show del widget que has añadido. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es -- BOFH excuse #417: Computer room being moved. Our systems are down for the weekend. From pych3m4 en gmail.com Tue Jul 3 03:42:39 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 3 Jul 2007 03:42:39 +0200 Subject: problema con funcion In-Reply-To: <1511.10.14.17.145.1183384700.squirrel@correo.ucf.edu.cu> References: <1511.10.14.17.145.1183384700.squirrel@correo.ucf.edu.cu> Message-ID: <2c9fb0dd0707021842w5535baa8v51175e13391ce1df@mail.gmail.com> El 2/07/07, inf200468 en ucf.edu.cu escribió: > el error que me daba con la funcion que les envie anteriormente es > insertar_nuevo_usuario = conex.query (cadena) > pg.ProgrammingError: ERROR: invalid input syntax for type boolean: " true " > > adjunto les envio la funcion para si se olvidaron de ella En esta lista no se aceptan adjuntos por defecto, por lo que no sabemos cómo es esa función (a veces un moderador lo pasa, pero muy rara vez). Por el error que pones, se ve que hay un espacio delante y otro detrás. Lo más seguro es que al construir la query hayas añadido espacios de más. Ya te advertí que resulta muy fácil equivocarse construyendo así las queries. Es mejor combinar comillas dobles y simples para evitar este tipo de errores y, aún mejor, emplea el operador formato % para asegurarte de cómo quedará la query: cadena= "insert into usuario (xlogin,nombre,primer_apellido,segundo_apellido,area,alerta) values ('%s','%s','%s','%s','%s','%s');" % (xlogin,nombre,primer_apellido,segundo_apellido,area,alerta) PD: Postgresql es capaz de convertir tipos implícitamente; no se requiere andar con el cast(..as...) PD2: los conectores DB-API2 (como pgdb) tienen mejor resuelto el tema de parametrizar queries. Deberías considerar cambiar de conector. From pych3m4 en gmail.com Tue Jul 3 04:05:09 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 3 Jul 2007 04:05:09 +0200 Subject: Sentencias SQL embebidas usando DB2 In-Reply-To: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> References: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> Message-ID: <2c9fb0dd0707021905m400cad34p98a9e2239c76ab09@mail.gmail.com> El 2/07/07, Daniel Cabrera escribió: > Estoy leyendo un manual de DB2 en el se mencionan que se pueden crear > sentencias SQL embebidas en algunos lenguajes de programación como C, Cobol > y Java. Mi pregunta es si se puede hacer lo mismo usando Python, se que hay > un API PyDB2 que te permite conectarte a DB2, pero no se si es lo mismo que > usar sentencias embebidas, por ejemplo para poder crear variables host o > crear sentencias estáticas o dinámicas. > > Estoy un poco confundido con esto. No sé si me equivoco, pero este tipo de sentencias se usan sólo en lenguajes "compilados", donde estas sentencias se preprocesan para se convertirdas en codigo normal que llama en bajo nivel a las librerías de la base de datos. En python, está todo más simplificado, sobre todo gracias a la DB-API2 que hace que todos los conectores se comporten de la misma forma. From rolandojtorres en gmail.com Tue Jul 3 07:21:58 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Tue, 3 Jul 2007 00:21:58 -0500 Subject: JPEG 2000 y pyhon In-Reply-To: <85f8c5780707021423j55d4feaai69728e02a00a69fb@mail.gmail.com> References: <85f8c5780707011029p45e812a8ge5bd1a4f883f4571@mail.gmail.com> <2c9fb0dd0707011926o4a1f1cb8tc8addee19281e3d4@mail.gmail.com> <85f8c5780707020917y381149c1k7d9d33687241327e@mail.gmail.com> <2c9fb0dd0707021334u3871e0a1wc3df19953acecb8e@mail.gmail.com> <85f8c5780707021423j55d4feaai69728e02a00a69fb@mail.gmail.com> Message-ID: <6a39a1d0707022221o60524a05te9dc8c4d9b59f3e5@mail.gmail.com> Donde puedo encontrar un jpeg-ls de ejemplo para probar si puedo hacer que sea leido de alguna forma desde python. El 2/07/07, Francisco José Seva Mora escribió: > Pués vaya faena. Estoy haciendo un decodificador DICOM y hay muchas imágnes > comprimidas en jpeg-ls y esto es lo último que me queda por mostrar. > > Miraré la página web de LOCO a ver si me resuelve los problemas,sino pués > habrá que currarse algo para jpeg-ls. > > Muchas gracias por todo :) > > Saludos > Fran > > -- > www.franciscojseva.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Tue Jul 3 09:25:28 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 3 Jul 2007 09:25:28 +0200 Subject: JPEG 2000 y pyhon In-Reply-To: <6a39a1d0707022221o60524a05te9dc8c4d9b59f3e5@mail.gmail.com> References: <85f8c5780707011029p45e812a8ge5bd1a4f883f4571@mail.gmail.com> <2c9fb0dd0707011926o4a1f1cb8tc8addee19281e3d4@mail.gmail.com> <85f8c5780707020917y381149c1k7d9d33687241327e@mail.gmail.com> <2c9fb0dd0707021334u3871e0a1wc3df19953acecb8e@mail.gmail.com> <85f8c5780707021423j55d4feaai69728e02a00a69fb@mail.gmail.com> <6a39a1d0707022221o60524a05te9dc8c4d9b59f3e5@mail.gmail.com> Message-ID: <2c9fb0dd0707030025n63597cd6p8204868a1b438492@mail.gmail.com> El 3/07/07, Rolando José Torres Sánchez escribió: > Donde puedo encontrar un jpeg-ls de ejemplo para probar si puedo hacer > que sea leido de alguna forma desde python. En la página web de HP de LOCO que puse hay ejemplos en escala de grises y color: http://www.hpl.hp.com/loco/jlsimV100.tar.gz From a.porrua en gmail.com Tue Jul 3 11:24:17 2007 From: a.porrua en gmail.com (tny) Date: Tue, 03 Jul 2007 11:24:17 +0200 Subject: OT. vida artificial Message-ID: <1183454657.7819.48.camel@skynet> Pues eso. Estoy comenzando un pequeño proyecto para crear vida artificial (inserte truenos aquí). Era para eso para lo que creí que me podían venir bien las metaclases, al final, cómo bien me aconsejaron no voy a hacer uso de ellas. Pues por si a alguien le interesa, describiré un poco el asunto: A diferencia de otros proyectos similares, en este no se parte de seres primigenios, ni de sistemas genéticos, se parte de un entorno. Dicho entorno no es una simulación, es una máquina virtual con plena funcionalidad. La máquina virtual: * permite multiples procesos (que comparten la memoria, la máquina no controla que no se pisen) * está en red, puede correr solita, o formar una gran máquina en red con otras. * Cuando sea necesario se le podrá dar acceso al S.O. o al hardware. El estado actual: Ya tengo una idea clara de qué y ?omo lo voy a hacer todo. Estoy comenzando a programar el juego de instrucciones de la máquina virtual. Metas volantes: 1. Hacer la máquina virtual. 2. Echarla a andar con mucho ruido. 3. que se autogenere la vida. 4. Aislar algún proto-ser y tratar de controlar su evolución hacia cosas útiles. Objetivo. Ser Dios XDDD Os avisaré cuando esté la maquina virtual terminada. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From lasizoillo en gmail.com Tue Jul 3 11:54:59 2007 From: lasizoillo en gmail.com (lasizoillo) Date: Tue, 3 Jul 2007 11:54:59 +0200 Subject: OT. vida artificial In-Reply-To: <1183454657.7819.48.camel@skynet> References: <1183454657.7819.48.camel@skynet> Message-ID: <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> uuuooooh Tenemos un Tom Ray pythonico entre nosotros http://www.his.atr.jp/~ray/tierra/ Animo El 3/07/07, tny escribió: > Pues eso. > > Estoy comenzando un pequeño proyecto para crear vida artificial (inserte > truenos aquí). > > Era para eso para lo que creí que me podían venir bien las metaclases, > al final, cómo bien me aconsejaron no voy a hacer uso de ellas. > > Pues por si a alguien le interesa, describiré un poco el asunto: > > A diferencia de otros proyectos similares, en este no se parte de seres > primigenios, ni de sistemas genéticos, se parte de un entorno. > > Dicho entorno no es una simulación, es una máquina virtual con plena > funcionalidad. > > La máquina virtual: > > * permite multiples procesos (que comparten la memoria, la máquina no > controla que no se pisen) > * está en red, puede correr solita, o formar una gran máquina en red con > otras. > * Cuando sea necesario se le podrá dar acceso al S.O. o al hardware. > > El estado actual: > > Ya tengo una idea clara de qué y ?omo lo voy a hacer todo. > Estoy comenzando a programar el juego de instrucciones de la máquina > virtual. > > Metas volantes: > > 1. Hacer la máquina virtual. > 2. Echarla a andar con mucho ruido. > 3. que se autogenere la vida. > 4. Aislar algún proto-ser y tratar de controlar su evolución hacia cosas > útiles. > > Objetivo. > Ser Dios XDDD > > > Os avisaré cuando esté la maquina virtual terminada. > > > _______________________________________________ > 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 jordi.f en ati.es Tue Jul 3 11:54:14 2007 From: jordi.f en ati.es (Jordi Funollet) Date: Tue, 3 Jul 2007 11:54:14 +0200 Subject: Sentencias SQL embebidas usando DB2 In-Reply-To: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> References: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> Message-ID: <200707031154.14204.jordi.f@ati.es> Daniel Cabrera dixit: > Hola, > > Estoy leyendo un manual de DB2 en el se mencionan que se pueden crear > sentencias SQL embebidas en algunos lenguajes de programación como C, Cobol > y Java. Mi pregunta es si se puede hacer lo mismo usando Python, Depende de la base de datos, y no conozco DB2. Si te interesa tener 'stored procedures' en Python, recuerdo que PostgreSQL lo soporta. > se que hay > un API PyDB2 que te permite conectarte a DB2, pero no se si es lo mismo que > usar sentencias embebidas, No, son cosas separadas. -- ############################## ### Jordi Funollet ### http://www.terraquis.net From a.porrua en gmail.com Tue Jul 3 13:19:48 2007 From: a.porrua en gmail.com (tny) Date: Tue, 03 Jul 2007 13:19:48 +0200 Subject: OT. vida artificial In-Reply-To: <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> Message-ID: <1183461588.7819.78.camel@skynet> Es un asunto al que le tengo ganas desde hace mucho tiempo. La máquina virtual consiste en una matriz de (256x256x256x256) (es debido al modo en que las máquinas se van a conectar entre sí en red (cosas de las ipes)) Cada casilla puede contener un valor y una lista de instrucciones. Un valor puede convertirse en una instrucción, del mismo modo en que una instrucción puede ser almacenada como un valor. Las instrucciones incluyen saltos y cambios de dirección de desplazamiento de los hilos, operaciones con los valores, operaciones con las instrucciones, y condiciones. Los hilos se desplazan de casilla en casilla ejecutando las instrucciones de las mismas, los hilos contienen una posición, una dirección de desplazamiento, y un valor. No necesito empezar con programas autoreplicantes como en tierra, basta cargar la matriz aleatoriamente y lanzar unos cuantos hilos. Gracias por los ánimos. El mar, 03-07-2007 a las 11:54 +0200, lasizoillo escribió: > uuuooooh > > Tenemos un Tom Ray pythonico entre nosotros > > http://www.his.atr.jp/~ray/tierra/ > > Animo > > El 3/07/07, tny escribió: > > Pues eso. > > > > Estoy comenzando un pequeño proyecto para crear vida artificial (inserte > > truenos aquí). > > > > Era para eso para lo que creí que me podían venir bien las metaclases, > > al final, cómo bien me aconsejaron no voy a hacer uso de ellas. > > > > Pues por si a alguien le interesa, describiré un poco el asunto: > > > > A diferencia de otros proyectos similares, en este no se parte de seres > > primigenios, ni de sistemas genéticos, se parte de un entorno. > > > > Dicho entorno no es una simulación, es una máquina virtual con plena > > funcionalidad. > > > > La máquina virtual: > > > > * permite multiples procesos (que comparten la memoria, la máquina no > > controla que no se pisen) > > * está en red, puede correr solita, o formar una gran máquina en red con > > otras. > > * Cuando sea necesario se le podrá dar acceso al S.O. o al hardware. > > > > El estado actual: > > > > Ya tengo una idea clara de qué y ?omo lo voy a hacer todo. > > Estoy comenzando a programar el juego de instrucciones de la máquina > > virtual. > > > > Metas volantes: > > > > 1. Hacer la máquina virtual. > > 2. Echarla a andar con mucho ruido. > > 3. que se autogenere la vida. > > 4. Aislar algún proto-ser y tratar de controlar su evolución hacia cosas > > útiles. > > > > Objetivo. > > Ser Dios XDDD > > > > > > Os avisaré cuando esté la maquina virtual terminada. > > > > > > _______________________________________________ > > 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 ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From dmunhiz en gmail.com Tue Jul 3 14:17:58 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Tue, 03 Jul 2007 14:17:58 +0200 Subject: importar modulo Message-ID: <468A3E76.1000803@gmail.com> Hola: Si importo el modulo wx es necesario que tambien importe el wx.grid para usar un Grid import wx import wx.grid El caso es que he llamado al wx.grid.Grid sin el import wx.grid y me indica que el módulo no existe, ¿lo estaré llamado mal? o es que es necesario que lo importe? Saludos y gracias -- Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From xinxic en gmail.com Tue Jul 3 14:29:00 2007 From: xinxic en gmail.com (Xin) Date: Tue, 3 Jul 2007 14:29:00 +0200 Subject: importar modulo In-Reply-To: <468A3E76.1000803@gmail.com> References: <468A3E76.1000803@gmail.com> Message-ID: Eso depende de lo que diga el __init__.py del directorio wx Si contiene la línea... import grid ...ya lo tendràs disponible. Si no lo pone, pués no lo tendràs a tu disposición, i deberàs importar-lo como has hecho tu. Salut El 03/07/2007, a les 14:17, en/na dmunhiz va escriure: > Hola: > Si importo el modulo wx es necesario que tambien importe el wx.grid > para usar un Grid > > import wx > import wx.grid > > El caso es que he llamado al wx.grid.Grid sin el import wx.grid y me > indica que el módulo no existe, ¿lo estaré llamado mal? o es que es > necesario que lo importe? > > Saludos y gracias > > > -- > Remitente: > Daniel Muñiz Fontoira > Eu uso software libre [1] > [1]http://www.gnu.org/philosophy/free-sw.gl.html > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From tecnicosrocha en adinet.com.uy Tue Jul 3 15:05:16 2007 From: tecnicosrocha en adinet.com.uy (=?ISO-8859-15?Q?T=E9cnicos?=) Date: Tue, 03 Jul 2007 10:05:16 -0300 Subject: importar modulo In-Reply-To: <468A3E76.1000803@gmail.com> References: <468A3E76.1000803@gmail.com> Message-ID: <468A498C.60204@adinet.com.uy> dmunhiz escribió: > Hola: > Si importo el modulo wx es necesario que tambien importe el wx.grid > para usar un Grid > > import wx > import wx.grid > > El caso es que he llamado al wx.grid.Grid sin el import wx.grid y me > indica que el módulo no existe, ¿lo estaré llamado mal? o es que es > necesario que lo importe? > > Saludos y gracias > > Hola, estoy haciendo mis primeros pinitos con wx y de lo poco que he leído recuerdo que en algún lado decía que wx.grid es muy grande y complejo y por eso está en un módulo aparte. Así que tendrás que importarlo para poder usarlo. Saludos ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From kernel.no.found en gmail.com Tue Jul 3 15:43:15 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Tue, 3 Jul 2007 15:43:15 +0200 Subject: OT. vida artificial Message-ID: <117d6e170707030643u58e0fae0nf1804e079225988@mail.gmail.com> OLE OLE! jajaja XD Suerte! -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com From inf200468 en ucf.edu.cu Tue Jul 3 15:49:49 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Tue, 3 Jul 2007 09:49:49 -0400 (CDT) Subject: cgi y pyhton Message-ID: <3025.10.14.17.145.1183470589.squirrel@correo.ucf.edu.cu> hola amigos: estoy haciendo una cgi , (mi primera cgi) quiero tomar los datos de la form y guardarlos en una base de datos, hice una funcion que inserta los valores en la base de datos , pero tengo una duda que es la sgte, para que cuando presionen el boton de submit se ejecute el script tengo que poner en el action de la form (
) action="script.py" el script ?????????? ottra duda es que yo pongo al principio del script esto> import cgi print "Content-Type:text/html\n" form = cgi.FieldStorage() y me da el sgte error: form = cgi.FieldStorage() AttributeError: 'module' object has no attribute 'FieldStorage' y el modulo cgi si tiene esa funcion muchas gracias nos vemos ;) ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From cabrerachaparro en gmail.com Tue Jul 3 17:24:59 2007 From: cabrerachaparro en gmail.com (Daniel Cabrera) Date: Tue, 3 Jul 2007 10:24:59 -0500 Subject: OT. vida artificial In-Reply-To: <117d6e170707030643u58e0fae0nf1804e079225988@mail.gmail.com> References: <117d6e170707030643u58e0fae0nf1804e079225988@mail.gmail.com> Message-ID: <8565ad90707030824t5b5b9b42jc180a242e44338e8@mail.gmail.com> Parece un proyecto muy interesante y por favor manteneos al tanto de los avances. Éxitos. El día 3/07/07, Juan José Alonso. escribió: > > OLE OLE! jajaja XD > > Suerte! > > -- > Juan José Alonso. KarlsBerg. > eMail: kernel.no.found en gmail.com > MSN: kernel.no.found en gmail.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Daniel Cabrera Chaparro Noticias Interesantes de Linux en http://comulinux.blogspot.com/ From cabrerachaparro en gmail.com Tue Jul 3 17:27:02 2007 From: cabrerachaparro en gmail.com (Daniel Cabrera) Date: Tue, 3 Jul 2007 10:27:02 -0500 Subject: Sentencias SQL embebidas usando DB2 In-Reply-To: <200707031154.14204.jordi.f@ati.es> References: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> <200707031154.14204.jordi.f@ati.es> Message-ID: <8565ad90707030827n4c6492a1j8a798731fda19f7e@mail.gmail.com> Bueno parece que si es usado en lenguajes compilados porque los ejemplos son usado en C, Cobol, pero tambien Java y sino me equivoco Java no es compilado. El día 3/07/07, Jordi Funollet escribió: > > Daniel Cabrera dixit: > > Hola, > > > > Estoy leyendo un manual de DB2 en el se mencionan que se pueden crear > > sentencias SQL embebidas en algunos lenguajes de programación como C, > Cobol > > y Java. Mi pregunta es si se puede hacer lo mismo usando Python, > > Depende de la base de datos, y no conozco DB2. Si te interesa tener > 'stored > procedures' en Python, recuerdo que PostgreSQL lo soporta. > > > se que hay > > un API PyDB2 que te permite conectarte a DB2, pero no se si es lo mismo > que > > usar sentencias embebidas, > > No, son cosas separadas. > > -- > ############################## > ### Jordi Funollet > ### http://www.terraquis.net > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Daniel Cabrera Chaparro Noticias Interesantes de Linux en http://comulinux.blogspot.com/ From maengora en gmail.com Tue Jul 3 17:49:32 2007 From: maengora en gmail.com (=?ISO-8859-1?Q?Manuel_Enrique_Gonz=E1lez_Ram=EDrez?=) Date: Tue, 3 Jul 2007 10:49:32 -0500 Subject: Conectar eventos Message-ID: Cordial saludo. Tengo un código que muestra tres etiquetas de texto(dirección IP, nombre de usuario, clave), tres cuadros de texto (Tservidor, Tusuario y Tclave), y dos botones (conectar, cancelar) con la intención de recoger los datos suministrados por el usuario y si estos son correctos que muestre una ventana que muestre el mensaje CONECTADO A LA BASE DE DATOS. Aun no he podido hacerlos porque pues no solo soy un novato en python sino tambien porque no he podido encontrar un buen tutorial (en español porque pesimo pal ingles tambien) que me indique como hacerlo. Alguien me puede indicar un buen tutorial donde no solo enseñen como crear ambientes gráficos con python utilizando por ejemplo wxGlade o wxWidgets sino también como recoger la informacion introducida en ellos?? Gracias From hfoffani en gmail.com Tue Jul 3 17:58:23 2007 From: hfoffani en gmail.com (Hernan M Foffani) Date: Tue, 3 Jul 2007 17:58:23 +0200 Subject: Sentencias SQL embebidas usando DB2 In-Reply-To: <8565ad90707030827n4c6492a1j8a798731fda19f7e@mail.gmail.com> References: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> <200707031154.14204.jordi.f@ati.es> <8565ad90707030827n4c6492a1j8a798731fda19f7e@mail.gmail.com> Message-ID: <11fab4bc0707030858xac95bfcg3260f42417fa1fe8@mail.gmail.com> En realidad depende a qué llamas "SQL embebido". Para mí son sentencias SQL directamente incorporadas a la sintaxis de un lenguaje. Estrictamente hablando el lenguaje resultante no podría llamarse ni C ni Java. Es mas, sospecho que hasta *legalmente* no se podría llamar Java. On 7/3/07, Daniel Cabrera wrote: > Bueno parece que si es usado en lenguajes compilados porque los ejemplos son > usado en C, Cobol, pero tambien Java y sino me equivoco Java no es > compilado. > > El día 3/07/07, Jordi Funollet escribió: > > > > Daniel Cabrera dixit: > > > Hola, > > > > > > Estoy leyendo un manual de DB2 en el se mencionan que se pueden crear > > > sentencias SQL embebidas en algunos lenguajes de programación como C, > > Cobol > > > y Java. Mi pregunta es si se puede hacer lo mismo usando Python, > > > > Depende de la base de datos, y no conozco DB2. Si te interesa tener > > 'stored > > procedures' en Python, recuerdo que PostgreSQL lo soporta. > > > > > se que hay > > > un API PyDB2 que te permite conectarte a DB2, pero no se si es lo mismo > > que > > > usar sentencias embebidas, > > > > No, son cosas separadas. > > > > -- > > ############################## > > ### Jordi Funollet > > ### http://www.terraquis.net > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > > > > -- > Daniel Cabrera Chaparro > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From cabrerachaparro en gmail.com Tue Jul 3 18:08:43 2007 From: cabrerachaparro en gmail.com (Daniel Cabrera) Date: Tue, 3 Jul 2007 11:08:43 -0500 Subject: Sentencias SQL embebidas usando DB2 In-Reply-To: <11fab4bc0707030858xac95bfcg3260f42417fa1fe8@mail.gmail.com> References: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> <200707031154.14204.jordi.f@ati.es> <8565ad90707030827n4c6492a1j8a798731fda19f7e@mail.gmail.com> <11fab4bc0707030858xac95bfcg3260f42417fa1fe8@mail.gmail.com> Message-ID: <8565ad90707030908m7731ee04g9be76df1f76d45ed@mail.gmail.com> Si efectivamente "SQL Embebido" es insertar sentencias SQL en la sintaxis del lenguaje de programación. Pero no entiendo a que te refieres con que legalmente no podría llamarse Java? El día 3/07/07, Hernan M Foffani escribió: > > En realidad depende a qué llamas "SQL embebido". > Para mí son sentencias SQL directamente incorporadas > a la sintaxis de un lenguaje. Estrictamente hablando > el lenguaje resultante no podría llamarse ni C ni Java. > Es mas, sospecho que hasta *legalmente* no se podría > llamar Java. > > > On 7/3/07, Daniel Cabrera wrote: > > Bueno parece que si es usado en lenguajes compilados porque los ejemplos > son > > usado en C, Cobol, pero tambien Java y sino me equivoco Java no es > > compilado. > > > > El día 3/07/07, Jordi Funollet escribió: > > > > > > Daniel Cabrera dixit: > > > > Hola, > > > > > > > > Estoy leyendo un manual de DB2 en el se mencionan que se pueden > crear > > > > sentencias SQL embebidas en algunos lenguajes de programación como > C, > > > Cobol > > > > y Java. Mi pregunta es si se puede hacer lo mismo usando Python, > > > > > > Depende de la base de datos, y no conozco DB2. Si te interesa tener > > > 'stored > > > procedures' en Python, recuerdo que PostgreSQL lo soporta. > > > > > > > se que hay > > > > un API PyDB2 que te permite conectarte a DB2, pero no se si es lo > mismo > > > que > > > > usar sentencias embebidas, > > > > > > No, son cosas separadas. > > > > > > -- > > > ############################## > > > ### Jordi Funollet > > > ### http://www.terraquis.net > > > _______________________________________________ > > > Python-es mailing list > > > Python-es en aditel.org > > > http://listas.aditel.org/listinfo/python-es > > > > > > > > > > > -- > > Daniel Cabrera Chaparro > > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > > _______________________________________________ > > 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 > -- Daniel Cabrera Chaparro Noticias Interesantes de Linux en http://comulinux.blogspot.com/ From hfoffani en gmail.com Tue Jul 3 18:26:14 2007 From: hfoffani en gmail.com (Hernan M Foffani) Date: Tue, 3 Jul 2007 18:26:14 +0200 Subject: Sentencias SQL embebidas usando DB2 In-Reply-To: <8565ad90707030908m7731ee04g9be76df1f76d45ed@mail.gmail.com> References: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> <200707031154.14204.jordi.f@ati.es> <8565ad90707030827n4c6492a1j8a798731fda19f7e@mail.gmail.com> <11fab4bc0707030858xac95bfcg3260f42417fa1fe8@mail.gmail.com> <8565ad90707030908m7731ee04g9be76df1f76d45ed@mail.gmail.com> Message-ID: <11fab4bc0707030926w17f41393h31ccbc0ac35ee1d8@mail.gmail.com> Era sólo una especulación mía considerando que Sun mantiene una política bastante estricta de lo que puede llamarse Java. Pero no tiene mayor importancia. En cuanto a Python no hay implementaciones de SQL embebido, que yo sepa (creo recordar haber leído sobre una propuesta de incrustar XML que no llegó muy lejos). Como la mayoría de las implementaciones son preprocesadores cuya salida es el lenguaje original mas una API de acceso a la BD al final te pierdes muchas cosas (portabilidad con otros motores, herramientas de análisis de código, editores, depuradores, etc. etc.) Para mí nunca ha sido buen negocio. On 7/3/07, Daniel Cabrera wrote: > Si efectivamente "SQL Embebido" es insertar sentencias SQL en la sintaxis > del lenguaje de programación. Pero no entiendo a que te refieres con que > legalmente no podría llamarse Java? > > El día 3/07/07, Hernan M Foffani escribió: > > > > En realidad depende a qué llamas "SQL embebido". > > Para mí son sentencias SQL directamente incorporadas > > a la sintaxis de un lenguaje. Estrictamente hablando > > el lenguaje resultante no podría llamarse ni C ni Java. > > Es mas, sospecho que hasta *legalmente* no se podría > > llamar Java. > > > > > > On 7/3/07, Daniel Cabrera wrote: > > > Bueno parece que si es usado en lenguajes compilados porque los ejemplos > > son > > > usado en C, Cobol, pero tambien Java y sino me equivoco Java no es > > > compilado. > > > > > > El día 3/07/07, Jordi Funollet escribió: > > > > > > > > Daniel Cabrera dixit: > > > > > Hola, > > > > > > > > > > Estoy leyendo un manual de DB2 en el se mencionan que se pueden > > crear > > > > > sentencias SQL embebidas en algunos lenguajes de programación como > > C, > > > > Cobol > > > > > y Java. Mi pregunta es si se puede hacer lo mismo usando Python, > > > > > > > > Depende de la base de datos, y no conozco DB2. Si te interesa tener > > > > 'stored > > > > procedures' en Python, recuerdo que PostgreSQL lo soporta. > > > > > > > > > se que hay > > > > > un API PyDB2 que te permite conectarte a DB2, pero no se si es lo > > mismo > > > > que > > > > > usar sentencias embebidas, > > > > > > > > No, son cosas separadas. > > > > > > > > -- > > > > ############################## > > > > ### Jordi Funollet > > > > ### http://www.terraquis.net > > > > _______________________________________________ > > > > Python-es mailing list > > > > Python-es en aditel.org > > > > http://listas.aditel.org/listinfo/python-es > > > > > > > > > > > > > > > > -- > > > Daniel Cabrera Chaparro > > > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > > > _______________________________________________ > > > 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 > > > > > > -- > Daniel Cabrera Chaparro > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From cabrerachaparro en gmail.com Tue Jul 3 18:41:47 2007 From: cabrerachaparro en gmail.com (Daniel Cabrera) Date: Tue, 3 Jul 2007 11:41:47 -0500 Subject: Sentencias SQL embebidas usando DB2 In-Reply-To: <11fab4bc0707030926w17f41393h31ccbc0ac35ee1d8@mail.gmail.com> References: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> <200707031154.14204.jordi.f@ati.es> <8565ad90707030827n4c6492a1j8a798731fda19f7e@mail.gmail.com> <11fab4bc0707030858xac95bfcg3260f42417fa1fe8@mail.gmail.com> <8565ad90707030908m7731ee04g9be76df1f76d45ed@mail.gmail.com> <11fab4bc0707030926w17f41393h31ccbc0ac35ee1d8@mail.gmail.com> Message-ID: <8565ad90707030941o4d4ab979m80491bf64e9c619d@mail.gmail.com> Quieres decir que una aplicacion creada usando SQL Embebido seria mas portable en lo que se refiere al motor de BDs? Osea una aplicacion hecha en Python usando la API de DB2, habria que cambiar toda la parte referente a SQL para poder usarla con otro motor de BD El día 3/07/07, Hernan M Foffani escribió: > > Era sólo una especulación mía considerando que Sun mantiene > una política bastante estricta de lo que puede llamarse Java. > Pero no tiene mayor importancia. > > En cuanto a Python no hay implementaciones de SQL embebido, > que yo sepa (creo recordar haber leído sobre una propuesta de > incrustar XML que no llegó muy lejos). > > Como la mayoría de las implementaciones son preprocesadores > cuya salida es el lenguaje original mas una API de acceso a > la BD al final te pierdes muchas cosas (portabilidad con > otros motores, herramientas de análisis de código, editores, > depuradores, etc. etc.) Para mí nunca ha sido buen negocio. > > > > On 7/3/07, Daniel Cabrera wrote: > > Si efectivamente "SQL Embebido" es insertar sentencias SQL en la > sintaxis > > del lenguaje de programación. Pero no entiendo a que te refieres con que > > legalmente no podría llamarse Java? > > > > El día 3/07/07, Hernan M Foffani escribió: > > > > > > En realidad depende a qué llamas "SQL embebido". > > > Para mí son sentencias SQL directamente incorporadas > > > a la sintaxis de un lenguaje. Estrictamente hablando > > > el lenguaje resultante no podría llamarse ni C ni Java. > > > Es mas, sospecho que hasta *legalmente* no se podría > > > llamar Java. > > > > > > > > > On 7/3/07, Daniel Cabrera wrote: > > > > Bueno parece que si es usado en lenguajes compilados porque los > ejemplos > > > son > > > > usado en C, Cobol, pero tambien Java y sino me equivoco Java no es > > > > compilado. > > > > > > > > El día 3/07/07, Jordi Funollet escribió: > > > > > > > > > > Daniel Cabrera dixit: > > > > > > Hola, > > > > > > > > > > > > Estoy leyendo un manual de DB2 en el se mencionan que se pueden > > > crear > > > > > > sentencias SQL embebidas en algunos lenguajes de programación > como > > > C, > > > > > Cobol > > > > > > y Java. Mi pregunta es si se puede hacer lo mismo usando Python, > > > > > > > > > > Depende de la base de datos, y no conozco DB2. Si te interesa > tener > > > > > 'stored > > > > > procedures' en Python, recuerdo que PostgreSQL lo soporta. > > > > > > > > > > > se que hay > > > > > > un API PyDB2 que te permite conectarte a DB2, pero no se si es > lo > > > mismo > > > > > que > > > > > > usar sentencias embebidas, > > > > > > > > > > No, son cosas separadas. > > > > > > > > > > -- > > > > > ############################## > > > > > ### Jordi Funollet > > > > > ### http://www.terraquis.net > > > > > _______________________________________________ > > > > > Python-es mailing list > > > > > Python-es en aditel.org > > > > > http://listas.aditel.org/listinfo/python-es > > > > > > > > > > > > > > > > > > > > > -- > > > > Daniel Cabrera Chaparro > > > > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > > > > _______________________________________________ > > > > 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 > > > > > > > > > > > -- > > Daniel Cabrera Chaparro > > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > > _______________________________________________ > > 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 > -- Daniel Cabrera Chaparro Noticias Interesantes de Linux en http://comulinux.blogspot.com/ From franciscojseva en gmail.com Tue Jul 3 18:55:27 2007 From: franciscojseva en gmail.com (=?ISO-8859-1?Q?Francisco_Jos=E9_Seva_Mora?=) Date: Tue, 3 Jul 2007 18:55:27 +0200 Subject: JPEG 2000 y pyhon In-Reply-To: <85f8c5780707030623p5bbaa67brc4a2af7e8648534f@mail.gmail.com> References: <85f8c5780707011029p45e812a8ge5bd1a4f883f4571@mail.gmail.com> <2c9fb0dd0707011926o4a1f1cb8tc8addee19281e3d4@mail.gmail.com> <85f8c5780707020917y381149c1k7d9d33687241327e@mail.gmail.com> <2c9fb0dd0707021334u3871e0a1wc3df19953acecb8e@mail.gmail.com> <85f8c5780707021423j55d4feaai69728e02a00a69fb@mail.gmail.com> <20070702233139.065a7274@localhost> <85f8c5780707030623p5bbaa67brc4a2af7e8648534f@mail.gmail.com> Message-ID: <85f8c5780707030955q23f6fd04ye2666db46107f3e8@mail.gmail.com> Hola a todos. He estado probando imageMagick y muestro JPEG's pero no los que saco de los archivos DICOM. Ahora la duda es, ¿Estoy extrallendo correctamente las imágenes de los archivos DICOM?, mi respuesta sería "sí". Para afirmarlo me baso en que a la hora de decodificar DICOM las longitudes de los datos que leo me cuadran todos. También he usado el comando "file miImagen.txt", donde miImagen.txt contiene la información leiida de DICOM con el supuesto JPEG. Ahora se me ocurre que a la hora de leer y almacenarlo estoy usando un tipo inadecuado. En mi caso estoy usando imagen=array.array('B'). ¿A alguien se le ocurre una forma de probar que lo que estoy leyendo no es JPEG a parte de ver si se abre o no en un visor de imágenes? Un saludo a todos Fran From franciscojseva en gmail.com Tue Jul 3 19:02:31 2007 From: franciscojseva en gmail.com (=?ISO-8859-1?Q?Francisco_Jos=E9_Seva_Mora?=) Date: Tue, 3 Jul 2007 19:02:31 +0200 Subject: JPEG 2000 y pyhon In-Reply-To: <85f8c5780707030955q23f6fd04ye2666db46107f3e8@mail.gmail.com> References: <85f8c5780707011029p45e812a8ge5bd1a4f883f4571@mail.gmail.com> <2c9fb0dd0707011926o4a1f1cb8tc8addee19281e3d4@mail.gmail.com> <85f8c5780707020917y381149c1k7d9d33687241327e@mail.gmail.com> <2c9fb0dd0707021334u3871e0a1wc3df19953acecb8e@mail.gmail.com> <85f8c5780707021423j55d4feaai69728e02a00a69fb@mail.gmail.com> <20070702233139.065a7274@localhost> <85f8c5780707030623p5bbaa67brc4a2af7e8648534f@mail.gmail.com> <85f8c5780707030955q23f6fd04ye2666db46107f3e8@mail.gmail.com> Message-ID: <85f8c5780707031002r10ade12dme5dcedb7fe2069d8@mail.gmail.com> Dr.Bobus he estado mirando algunas librerias DICOM (DCMTK : http://dicom.offis.de/dcmtk.php.en) pero no he encontrado ningún comando que genere DICOM. Pero si te puedo confirmar que el programa OSIRIX ( http://homepage.mac.com/rossetantoine/osirix/) lo hace. Hay otro programa que funciona bajo Unix y Windows, se llama Aeskulap ( http://www.nongnu.org/aeskulap/index.html) que puede que te sirva ( no te lo confirmo porque tengo mi máquina con linux estropeada y en el mac no corre ). Un saludo Fran PD: Seguiré mirando la libreria que te dcmtk porque no me creo que no tenga un generador DICOM -- www.franciscojseva.com From cabrerachaparro en gmail.com Tue Jul 3 19:40:06 2007 From: cabrerachaparro en gmail.com (Daniel Cabrera) Date: Tue, 3 Jul 2007 12:40:06 -0500 Subject: Ejecutar comandos SO desde consola Python Message-ID: <8565ad90707031040u74349809p4dad50ffffe0d99b@mail.gmail.com> Hola, como se hace para ejecutar comandos del SO en la consola de Python? Estoy trabajando sobre windows. Ya intente con por ejemplo !dir pero no funciona, me parece que habia una opcion para hacerlo. Gracias -- Daniel Cabrera Chaparro Noticias Interesantes de Linux en http://comulinux.blogspot.com/ From gerardo en computo-industrial.com.mx Tue Jul 3 21:18:26 2007 From: gerardo en computo-industrial.com.mx (Gerardo Juarez) Date: Tue, 3 Jul 2007 15:18:26 -0400 (EDT) Subject: Ejecutar comandos SO desde consola Python In-Reply-To: <8565ad90707031040u74349809p4dad50ffffe0d99b@mail.gmail.com> References: <8565ad90707031040u74349809p4dad50ffffe0d99b@mail.gmail.com> Message-ID: import os os.system("dir") On Tue, 3 Jul 2007, Daniel Cabrera wrote: > Hola, > como se hace para ejecutar comandos del SO en la consola de Python? Estoy > trabajando sobre windows. Ya intente con por ejemplo !dir pero no funciona, > me parece que habia una opcion para hacerlo. > > Gracias > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From ogunsett en gmail.com Tue Jul 3 21:19:05 2007 From: ogunsett en gmail.com (Oscar Gunsett) Date: Tue, 3 Jul 2007 16:19:05 -0300 Subject: Ejecutar comandos SO desde consola Python In-Reply-To: <8565ad90707031040u74349809p4dad50ffffe0d99b@mail.gmail.com> References: <8565ad90707031040u74349809p4dad50ffffe0d99b@mail.gmail.com> Message-ID: La manera que utiliza python para comunicarse con el S.O. es a travez de los modulos, por ejemplo el que viene por defecto es el os. EJ.: import os print os.listdir('.') si queres ejecutar en comando externo: os.system('comando') si importa conocer la salida de dicho comando tenes una familia de comandos: os.popen() El día 3/07/07, Daniel Cabrera escribió: > > Hola, > como se hace para ejecutar comandos del SO en la consola de Python? Estoy > trabajando sobre windows. Ya intente con por ejemplo !dir pero no > funciona, > me parece que habia una opcion para hacerlo. > > Gracias > > -- > Daniel Cabrera Chaparro > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From iferca en gmail.com Tue Jul 3 21:19:47 2007 From: iferca en gmail.com (=?ISO-8859-1?Q?Israel_Fern=E1ndez_Cabrera?=) Date: Tue, 3 Jul 2007 15:19:47 -0400 Subject: Ejecutar comandos SO desde consola Python In-Reply-To: <8565ad90707031040u74349809p4dad50ffffe0d99b@mail.gmail.com> References: <8565ad90707031040u74349809p4dad50ffffe0d99b@mail.gmail.com> Message-ID: No se si en Windows tendrás ipython... al menos en mi GNU/Linux puedo ejecutar comandos de consola sin problemas. S en lu2 On 7/3/07, Daniel Cabrera wrote: > Hola, > como se hace para ejecutar comandos del SO en la consola de Python? Estoy > trabajando sobre windows. Ya intente con por ejemplo !dir pero no funciona, > me parece que habia una opcion para hacerlo. > > Gracias > > -- > Daniel Cabrera Chaparro > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- ____________________ Israel Fdez. Cabrera iferca en gmail.com . 0 . . . 0 0 0 0 From cabrerachaparro en gmail.com Tue Jul 3 21:31:46 2007 From: cabrerachaparro en gmail.com (Daniel Cabrera) Date: Tue, 3 Jul 2007 14:31:46 -0500 Subject: Ejecutar comandos SO desde consola Python In-Reply-To: References: <8565ad90707031040u74349809p4dad50ffffe0d99b@mail.gmail.com> Message-ID: <8565ad90707031231pb4105bfy499386e320ed4885@mail.gmail.com> Gracias El día 3/07/07, Israel Fernández Cabrera escribió: > > No se si en Windows tendrás ipython... al menos en mi GNU/Linux puedo > ejecutar comandos de consola sin problemas. > > S en lu2 > > On 7/3/07, Daniel Cabrera wrote: > > Hola, > > como se hace para ejecutar comandos del SO en la consola de Python? > Estoy > > trabajando sobre windows. Ya intente con por ejemplo !dir pero no > funciona, > > me parece que habia una opcion para hacerlo. > > > > Gracias > > > > -- > > Daniel Cabrera Chaparro > > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > > > -- > ____________________ > Israel Fdez. Cabrera > iferca en gmail.com > > . 0 . > . . 0 > 0 0 0 > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Daniel Cabrera Chaparro Noticias Interesantes de Linux en http://comulinux.blogspot.com/ From cabrerachaparro en gmail.com Tue Jul 3 23:48:11 2007 From: cabrerachaparro en gmail.com (Daniel Cabrera) Date: Tue, 3 Jul 2007 16:48:11 -0500 Subject: OT: Internet como herramienta para estudiar. Message-ID: <8565ad90707031448t61951d55u909b445c855e6655@mail.gmail.com> Hola, Estoy realizando un estudio sobre el uso de Internet en el colegio, en especial al momento de realizar los deberes escolares. Que tan ventajoso es para los alumnos el hecho de que con solo copiar y pegar ya tiene hecha su tarea. Les dejo el link del blog para que puedan dejar sus opiniones ahí y no cargar la lista. http://comulinux.blogspot.com/2007/07/ot-internet-como-herramienta-de-estudio.html Gracias y disculpen el OT. -- Daniel Cabrera Chaparro Noticias Interesantes de Linux en http://comulinux.blogspot.com/ From magodeoz.virtual en gmail.com Tue Jul 3 23:59:50 2007 From: magodeoz.virtual en gmail.com (=?ISO-8859-1?Q?M=E4go_de_Oz?=) Date: Tue, 3 Jul 2007 16:59:50 -0500 Subject: importar modulo In-Reply-To: <468A498C.60204@adinet.com.uy> References: <468A3E76.1000803@gmail.com> <468A498C.60204@adinet.com.uy> Message-ID: <3e5b28760707031459r6c831ea0xa860a98c565b853c@mail.gmail.com> Lo mismo sucede me imagino con os.path no?? From pych3m4 en gmail.com Wed Jul 4 01:24:38 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 4 Jul 2007 01:24:38 +0200 Subject: importar modulo In-Reply-To: <3e5b28760707031459r6c831ea0xa860a98c565b853c@mail.gmail.com> References: <468A3E76.1000803@gmail.com> <468A498C.60204@adinet.com.uy> <3e5b28760707031459r6c831ea0xa860a98c565b853c@mail.gmail.com> Message-ID: <2c9fb0dd0707031624j6d21500bw743ce4755e8c23a8@mail.gmail.com> El 3/07/07, Mägo de Oz escribió: > Lo mismo sucede me imagino con os.path no?? En realidad no. El os.path es un módulo "virtual" que apunta al módulo adecuado según el sistema operativo usado. Por ejemplo, en linux apunta al 'posixpath': >>> import sys >>> sys.modules["os"] >>> sys.modules["os.path"] >>> From dmunhiz en gmail.com Wed Jul 4 08:33:40 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Wed, 04 Jul 2007 08:33:40 +0200 Subject: importar modulo In-Reply-To: <2c9fb0dd0707031624j6d21500bw743ce4755e8c23a8@mail.gmail.com> References: <468A3E76.1000803@gmail.com> <468A498C.60204@adinet.com.uy> <3e5b28760707031459r6c831ea0xa860a98c565b853c@mail.gmail.com> <2c9fb0dd0707031624j6d21500bw743ce4755e8c23a8@mail.gmail.com> Message-ID: <468B3F44.3060803@gmail.com> Gracias a todos por las respuestas, en definitiva que tengo que importarlo como: import wx.grid Saludos Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Chema Cortes escribiu: > El 3/07/07, Mägo de Oz escribió: >> Lo mismo sucede me imagino con os.path no?? > > En realidad no. El os.path es un módulo "virtual" que apunta al módulo > adecuado según el sistema operativo usado. Por ejemplo, en linux > apunta al 'posixpath': > >>>> import sys >>>> sys.modules["os"] > >>>> sys.modules["os.path"] > >>>> > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From gabri.losada en gmail.com Wed Jul 4 09:25:41 2007 From: gabri.losada en gmail.com (Gabri) Date: Wed, 4 Jul 2007 09:25:41 +0200 Subject: Entorno visual Message-ID: <61290ece0707040025t4511de5bpbd7c10f020e4e715@mail.gmail.com> Hola a tod en s. Llevo varios años (algo así como 5) programando en python, pero siempre en entorno MSDOS. Programo para producción, así que nunca he necesitado más. El caso es que me gustaría empezar a haer algo en entorno visual. La pregunta que quiero haceros es bastante simple, ¿por dónde empiezo?. Como referencias, trabajo bajo entorno Windows, y conozco bien Visual Basic. y estoy trabajando con python 2.3.5. Supongo que habré de descargarme algo más ... en fin, que no sé ni por donde empezar. A ver si me podeis echar una mano. Muchas gracias, pythoneros. From ogutsua en gmail.com Wed Jul 4 09:45:06 2007 From: ogutsua en gmail.com (Oliver =?iso-8859-1?q?Guti=E9rrez?=) Date: Wed, 4 Jul 2007 08:45:06 +0100 Subject: Entorno visual In-Reply-To: <61290ece0707040025t4511de5bpbd7c10f020e4e715@mail.gmail.com> References: <61290ece0707040025t4511de5bpbd7c10f020e4e715@mail.gmail.com> Message-ID: <200707040845.06337.ogutsua@gmail.com> Hola Gabri: Empieza por elegir un sistema de widgets gráficos. En principio GTK. QT y wxWidgets te sirven para windows. Yo personalmente uso GTK, aunque desde hace poco tiempo, y me vi en la misma encrucijada que tu. Me decanté por GTK por 2 cosas principalmente: 1) Documentación inmejorable, multiples ejemplos y la posibilidad de desarrollar y diseñar las ventanas de las aplicaciones por medio del editor glade 2) Facilidad de uso debido a la gran cantidad de documentación al respecto Para que vayas empezando a ver cositas te dejo la web de la documentación de PyGTK: http://www.pygtk.org/ Saludos. On Wednesday 04 July 2007 08:25:41 Gabri wrote: > Hola a tod en s. > Llevo varios años (algo así como 5) programando en python, pero siempre en > entorno MSDOS. Programo para producción, así que nunca he necesitado más. > El caso es que me gustaría empezar a haer algo en entorno visual. La > pregunta que quiero haceros es bastante simple, ¿por dónde empiezo?. > Como referencias, trabajo bajo entorno Windows, y conozco bien Visual > Basic. y estoy trabajando con python 2.3.5. Supongo que habré de > descargarme algo más ... en fin, que no sé ni por donde empezar. A ver si > me podeis echar una mano. > > Muchas gracias, pythoneros. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es -- BOFH excuse #77: Typo in the code From dmunhiz en gmail.com Wed Jul 4 10:00:47 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Wed, 04 Jul 2007 10:00:47 +0200 Subject: =?iso-8859-15?q?A=F1adir_fila_de_encabezado_a_wx=2Eg?= =?iso-8859-15?q?rid?= Message-ID: <468B53AF.6000700@gmail.com> Hola: Estoy intentando darle formato a un grid, el caso es que quería que tuviese dos (2) filas de encabezado (label/head) en lugar de una, me gustaría saber si se puede hacer esto. En realiad hay muchas mas cosas que no se hacer pero de momento esto es lo que no doy encrontrado el como se hace. He mirado aquí (http://wiki.wxpython.org/wxGrid), y si está no lo encuentro, a quí tampoco encontré nada (http://wxwidgets.org/manuals/stable/wx_wxgrid.html#wxgridcreategrid), tambien he consultado en google y tampoco encuentro lo que busco. Saludos y gracias -- Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Wed Jul 4 10:19:10 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 4 Jul 2007 10:19:10 +0200 Subject: Sentencias SQL embebidas usando DB2 In-Reply-To: <8565ad90707030827n4c6492a1j8a798731fda19f7e@mail.gmail.com> References: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> <200707031154.14204.jordi.f@ati.es> <8565ad90707030827n4c6492a1j8a798731fda19f7e@mail.gmail.com> Message-ID: <2c9fb0dd0707040119v6f2d3bd6ofa59a7121bbe7493@mail.gmail.com> El 3/07/07, Daniel Cabrera escribió: > Bueno parece que si es usado en lenguajes compilados porque los ejemplos son > usado en C, Cobol, pero tambien Java y sino me equivoco Java no es > compilado. Depende de las "definiciones" de cada término. Java "compila" a bytecode, que es el código máquina de la máquina virtual, que es quien se encarga de interpretarlo. Algo similar ocurre a un nivel mucho más bajo, donde las CPUs "interpretan" las instrucciones de código máquina en su procesador de microcódigos. La frontera entre lo "interpretado" y lo "compilado" cada vez está menos clara. Por éso yo siempre hablo de "estático" y "dinámico" en los mismo términos en los que se empleaba "compilado" o "interpretado" hasta ahora. From pych3m4 en gmail.com Wed Jul 4 10:32:56 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 4 Jul 2007 10:32:56 +0200 Subject: cgi y pyhton In-Reply-To: <3025.10.14.17.145.1183470589.squirrel@correo.ucf.edu.cu> References: <3025.10.14.17.145.1183470589.squirrel@correo.ucf.edu.cu> Message-ID: <2c9fb0dd0707040132u5249b565p6838b037edbc51d7@mail.gmail.com> El 3/07/07, inf200468 en ucf.edu.cu escribió: > estoy haciendo una cgi , (mi primera cgi) quiero tomar los > datos de la form y guardarlos en una base de datos, hice una > funcion que inserta los valores en la base de datos , pero > tengo una duda que es la sgte, para que cuando presionen el > boton de submit se ejecute el script tengo que poner en el > action de la form ( action="">) action="script.py" el script ?????????? Así es como funciona. Normalmente, aquí se pone el mismo cgi que muestra el formulario, repintando los campos con los errores detectados. Para controlar mejor la presentación, se emplean campos ocultos. > ottra duda es que yo pongo al principio del script esto> > import cgi > print "Content-Type:text/html\n" > form = cgi.FieldStorage() > y me da el sgte error: > > form = cgi.FieldStorage() > AttributeError: 'module' object has no attribute 'FieldStorage' > > y el modulo cgi si tiene esa funcion Seguramente hayas llamado a algún script "cgi.py" y te está enmascarando el módulo estándar. From hfoffani en gmail.com Wed Jul 4 11:20:51 2007 From: hfoffani en gmail.com (Hernan M Foffani) Date: Wed, 4 Jul 2007 11:20:51 +0200 Subject: Sentencias SQL embebidas usando DB2 In-Reply-To: <8565ad90707030941o4d4ab979m80491bf64e9c619d@mail.gmail.com> References: <8565ad90707021300t276c587s357c1f48c718b86c@mail.gmail.com> <200707031154.14204.jordi.f@ati.es> <8565ad90707030827n4c6492a1j8a798731fda19f7e@mail.gmail.com> <11fab4bc0707030858xac95bfcg3260f42417fa1fe8@mail.gmail.com> <8565ad90707030908m7731ee04g9be76df1f76d45ed@mail.gmail.com> <11fab4bc0707030926w17f41393h31ccbc0ac35ee1d8@mail.gmail.com> <8565ad90707030941o4d4ab979m80491bf64e9c619d@mail.gmail.com> Message-ID: <11fab4bc0707040220o5ef7d4a8s7a199da2173d0b7e@mail.gmail.com> On 7/3/07, Daniel Cabrera wrote: > Quieres decir que una aplicacion creada usando SQL Embebido seria mas > portable en lo que se refiere al motor de BDs? No, al contrario. Con SQL Embebido sería *menos* portable. En la práctica quien define la sintaxis del SQL incrustado suele ser el mismo proveedor del gestor de BD. Por ejemplo, el PRO*C de Oracle. Lo que escribes en PRO*C luego se traduce (mediante un preprocesador provisto por Oracle) a lenguaje C. ¿Cómo compilarías (traducirías) el PRO*C para que acceda a una BD de Microsoft SQLServer? Aunque tus sentencias SQL sean de lo mas estándar, la sintaxis y las herramientas de desarrollo son propias de Oracle. > O sea una aplicacion hecha en > Python usando la API de DB2, habria que cambiar toda la parte > referente a SQL para poder usarla con otro motor de BD No toda. Si la API de DB2 es compatible con DB-API y no haces uso de particularidades propias al motor de IBM, en la práctica sólo tendrías que cambiar los datos de conexión y algunas cosillas mas. Además, como programas usando una APIs y bibliotecas, el lenguaje (Python en este caso) no se modifica y puedes usar los editores, IDEs y depuradores que se te antojen. > > El día 3/07/07, Hernan M Foffani escribió: > > > > Era sólo una especulación mía considerando que Sun mantiene > > una política bastante estricta de lo que puede llamarse Java. > > Pero no tiene mayor importancia. > > > > En cuanto a Python no hay implementaciones de SQL embebido, > > que yo sepa (creo recordar haber leído sobre una propuesta de > > incrustar XML que no llegó muy lejos). > > > > Como la mayoría de las implementaciones son preprocesadores > > cuya salida es el lenguaje original mas una API de acceso a > > la BD al final te pierdes muchas cosas (portabilidad con > > otros motores, herramientas de análisis de código, editores, > > depuradores, etc. etc.) Para mí nunca ha sido buen negocio. > > > > > > > > On 7/3/07, Daniel Cabrera wrote: > > > Si efectivamente "SQL Embebido" es insertar sentencias SQL en la > > sintaxis > > > del lenguaje de programación. Pero no entiendo a que te refieres con que > > > legalmente no podría llamarse Java? > > > > > > El día 3/07/07, Hernan M Foffani escribió: > > > > > > > > En realidad depende a qué llamas "SQL embebido". > > > > Para mí son sentencias SQL directamente incorporadas > > > > a la sintaxis de un lenguaje. Estrictamente hablando > > > > el lenguaje resultante no podría llamarse ni C ni Java. > > > > Es mas, sospecho que hasta *legalmente* no se podría > > > > llamar Java. > > > > > > > > > > > > On 7/3/07, Daniel Cabrera wrote: > > > > > Bueno parece que si es usado en lenguajes compilados porque los > > ejemplos > > > > son > > > > > usado en C, Cobol, pero tambien Java y sino me equivoco Java no es > > > > > compilado. > > > > > > > > > > El día 3/07/07, Jordi Funollet escribió: > > > > > > > > > > > > Daniel Cabrera dixit: > > > > > > > Hola, > > > > > > > > > > > > > > Estoy leyendo un manual de DB2 en el se mencionan que se pueden > > > > crear > > > > > > > sentencias SQL embebidas en algunos lenguajes de programación > > como > > > > C, > > > > > > Cobol > > > > > > > y Java. Mi pregunta es si se puede hacer lo mismo usando Python, > > > > > > > > > > > > Depende de la base de datos, y no conozco DB2. Si te interesa > > tener > > > > > > 'stored > > > > > > procedures' en Python, recuerdo que PostgreSQL lo soporta. > > > > > > > > > > > > > se que hay > > > > > > > un API PyDB2 que te permite conectarte a DB2, pero no se si es > > lo > > > > mismo > > > > > > que > > > > > > > usar sentencias embebidas, > > > > > > > > > > > > No, son cosas separadas. > > > > > > > > > > > > -- > > > > > > ############################## > > > > > > ### Jordi Funollet > > > > > > ### http://www.terraquis.net > > > > > > _______________________________________________ > > > > > > Python-es mailing list > > > > > > Python-es en aditel.org > > > > > > http://listas.aditel.org/listinfo/python-es > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Daniel Cabrera Chaparro > > > > > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > > > > > _______________________________________________ > > > > > 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 > > > > > > > > > > > > > > > > -- > > > Daniel Cabrera Chaparro > > > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > > > _______________________________________________ > > > 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 > > > > > > -- > Daniel Cabrera Chaparro > Noticias Interesantes de Linux en http://comulinux.blogspot.com/ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From iferca en gmail.com Wed Jul 4 17:38:14 2007 From: iferca en gmail.com (=?ISO-8859-1?Q?Israel_Fern=E1ndez_Cabrera?=) Date: Wed, 4 Jul 2007 11:38:14 -0400 Subject: Recargar unittest en Python Message-ID: Hola: Creo que el asunto no refleja exactamente mi duda pero bueno, el problema que tengo es el siguiente. Estoy escribiendo un código que ejecuta unittests, en la misma corrida del programa las pruebas de unidad (unittest) pueden cambiar y se ejecutan de nuevo, como en este código de ejemplo que reproduce el problema: class PruebasDePrueba(unittest.TestCase): def testUnTest(self): a = 2 b = 1 self.assertEquals(a, b) def runTests(): loader = unittest.TestLoader() result = unittest.TestResult() suite = loader.loadTestsFromName("import_tests.PruebasDePrueba") suite.run(result) print "Errores: ", len(result.errors) print "Fallos: ", len(result.failures) if __name__ == "__main__": runTests() raw_input("Modifique el test y presione ENTER para continuar") El código ejecuta los tests de la clase PruebasDePrueba, le pide que lo modifique y luego los ejecuta de nuevo después de presionar ENTER. El estado inicial de la prueba es "fallo" así que haciendo a y b iguales en la segunda corrida se esperaría que la prueba no falle, pero sigue fallando. Ya he modificado el código real de mil maneras, los tests se ejecutan en un hilo separado, todas las variables, al igual que en el ejemplo, se inicializan con cada corrida. Como dato curioso, el ejemplo carga los test de "import_tests.PruebasDePrueba", que es un TestCase, si la cadena hiciera referencia a un módulo, resolví el problema heredando de unittest.TestLoader y redefiniendo el método loadTestsFromModule(module) y haciendo un module = reload(module) y luego dejando que se ejecute el método del padre. Pero en el caso de los TestCase no lo logro y no se porqué. Para facilitar la ayuda copio aquí el código del método loadTestsFromName de unittest.TestLoader: def loadTestsFromName(self, name, module=None): """Return a suite of all tests cases given a string specifier. The name may resolve either to a module, a test case class, a test method within a test case class, or a callable object which returns a TestCase or TestSuite instance. The method optionally resolves the names relative to a given module. """ parts = name.split('.') if module is None: parts_copy = parts[:] while parts_copy: try: module = __import__('.'.join(parts_copy)) break except ImportError: del parts_copy[-1] if not parts_copy: raise parts = parts[1:] obj = module for part in parts: parent, obj = obj, getattr(obj, part) if type(obj) == types.ModuleType: return self.loadTestsFromModule(obj) elif (isinstance(obj, (type, types.ClassType)) and issubclass(obj, TestCase)): return self.loadTestsFromTestCase(obj) elif type(obj) == types.UnboundMethodType: return parent(obj.__name__) elif isinstance(obj, TestSuite): return obj elif callable(obj): test = obj() if not isinstance(test, (TestCase, TestSuite)): raise ValueError, \ "calling %s returned %s, not a test" % (obj,test) return test else: raise ValueError, "don't know how to make test from: %s" % obj gracias de antemano, S en lu2 -- ____________________ Israel Fdez. Cabrera iferca en gmail.com . 0 . . . 0 0 0 0 From sergio en wikier.org Wed Jul 4 20:03:42 2007 From: sergio en wikier.org (Sergio =?ISO-8859-1?Q?Fern=E1ndez?=) Date: Wed, 04 Jul 2007 20:03:42 +0200 Subject: Entorno visual In-Reply-To: <61290ece0707040025t4511de5bpbd7c10f020e4e715@mail.gmail.com> References: <61290ece0707040025t4511de5bpbd7c10f020e4e715@mail.gmail.com> Message-ID: <1183572222.3353.30.camel@localhost.localdomain> Hola, > Llevo varios años (algo así como 5) programando en python, pero siempre en > entorno MSDOS. Programo para producción, así que nunca he necesitado más. El > caso es que me gustaría empezar a haer algo en entorno visual. La pregunta > que quiero haceros es bastante simple, ¿por dónde empiezo?. PyGTK [1] es muy sencillo, sobre todo usando diseñadores tipo Glade [2] o Gazpacho [3]. > Como referencias, trabajo bajo entorno Windows, y conozco bien Visual > Basic. y estoy trabajando con python 2.3.5. Si estas acostumbrado a VisualStudio, quizás puedas usar WinForms con IronPython [4]; yo no tengo experiencia, pero no parece difícil [5]. Un saludo, [1] http://www.pygtk.org/ [2] http://glade.gnome.org/ [3] http://gazpacho.sicem.biz/ [4] http://www.codeplex.com/IronPython [5] http://www.codeproject.com/useritems/IronPython_NET_20.asp -- __ ___ _ _ \ \ / (_) |_(_)___ _ _ \ \/\/ /| | / / / -_) '_| Sergio Fernández \_/\_/ |_|_\_\_\___|_| http://www.wikier.org/ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From dmunhiz en gmail.com Wed Jul 4 20:11:48 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Wed, 04 Jul 2007 20:11:48 +0200 Subject: Entorno visual In-Reply-To: <1183572222.3353.30.camel@localhost.localdomain> References: <61290ece0707040025t4511de5bpbd7c10f020e4e715@mail.gmail.com> <1183572222.3353.30.camel@localhost.localdomain> Message-ID: <468BE2E4.2000608@gmail.com> Ola: Si optas por las wx. el boa construcotor puede ayudarte, tiene un diseñador visual y también "autocompletado" que va bastante bien, paradojicamente funciona mejor en windows que en linux (por lo menos ubuntu (falla y termina)). Saludos Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Sergio Fernández escribiu: > Hola, > >> Llevo varios años (algo así como 5) programando en python, pero siempre en >> entorno MSDOS. Programo para producción, así que nunca he necesitado más. El >> caso es que me gustaría empezar a haer algo en entorno visual. La pregunta >> que quiero haceros es bastante simple, ¿por dónde empiezo?. > > PyGTK [1] es muy sencillo, sobre todo usando diseñadores tipo Glade [2] > o Gazpacho [3]. > >> Como referencias, trabajo bajo entorno Windows, y conozco bien Visual >> Basic. y estoy trabajando con python 2.3.5. > > Si estas acostumbrado a VisualStudio, quizás puedas usar WinForms con > IronPython [4]; yo no tengo experiencia, pero no parece difícil [5]. > > Un saludo, > > [1] http://www.pygtk.org/ > [2] http://glade.gnome.org/ > [3] http://gazpacho.sicem.biz/ > [4] http://www.codeplex.com/IronPython > [5] http://www.codeproject.com/useritems/IronPython_NET_20.asp > > > > ------------------------------------------------------------------------ > > _______________________________________________ > 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 riverplatense en gmail.com Wed Jul 4 20:04:41 2007 From: riverplatense en gmail.com (Javier Castrillo) Date: Wed, 4 Jul 2007 15:04:41 -0300 Subject: Entorno visual In-Reply-To: <1183572222.3353.30.camel@localhost.localdomain> References: <61290ece0707040025t4511de5bpbd7c10f020e4e715@mail.gmail.com> <1183572222.3353.30.camel@localhost.localdomain> Message-ID: On 04/07/07, Sergio Fernández wrote: > > Llevo varios años (algo así como 5) programando en python, pero siempre en > > entorno MSDOS. Programo para producción, así que nunca he necesitado más. El > > caso es que me gustaría empezar a haer algo en entorno visual. La pregunta > > que quiero haceros es bastante simple, ¿por dónde empiezo?. te recomiendo efusivamente wxPython. Hasta yo lo he aprendido! Saludos -- Javier Castrillo ========================================================= GNU / Linux User #242275 ------------------------------- pub 1024D/B482896F 2006-09-04 uid Javier Castrillo (El Palo) sub 2048g/52C99A4E 2006-09-04 Clave pública: carapa.com.ar/public.asc http://carapa.com.ar http://javiercastrillo.com.ar http://riverplatense.googlepages.com ========================================================= Usá Software Libre From rafaelrp en uci.cu Wed Jul 4 20:33:54 2007 From: rafaelrp en uci.cu (Rafael =?ISO-8859-1?Q?Rodr=EDguez?= Puente) Date: Wed, 04 Jul 2007 14:33:54 -0400 Subject: gtk.FileChooserButton Message-ID: <1183574034.7205.26.camel@rafael-desktop> Estoy utilizando gtk.FileChooserButton para seleccionar un archivo de cualquier carpeta, pero no encuentro como obtener el nombre del archivo seleccionado. EN la documentaci'on solo hay metodos para obtener el titulo del dialogo y el ancho de los caracteres del boton. Muchas gracias de antemano. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From iferca en gmail.com Wed Jul 4 20:59:07 2007 From: iferca en gmail.com (=?ISO-8859-1?Q?Israel_Fern=E1ndez_Cabrera?=) Date: Wed, 4 Jul 2007 14:59:07 -0400 Subject: gtk.FileChooserButton In-Reply-To: <1183574034.7205.26.camel@rafael-desktop> References: <1183574034.7205.26.camel@rafael-desktop> Message-ID: El método se llama: get_filename() On 7/4/07, Rafael Rodríguez Puente wrote: > Estoy utilizando gtk.FileChooserButton para seleccionar un archivo de > cualquier carpeta, pero no encuentro como obtener el nombre del archivo > seleccionado. EN la documentaci'on solo hay metodos para obtener el > titulo del dialogo y el ancho de los caracteres del boton. > > Muchas gracias de antemano. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- ____________________ Israel Fdez. Cabrera iferca en gmail.com . 0 . . . 0 0 0 0 From minoztro en gmail.com Wed Jul 4 21:19:59 2007 From: minoztro en gmail.com (Milton Galo Patricio Inostroza Aguilera) Date: Wed, 4 Jul 2007 15:19:59 -0400 Subject: gtk.FileChooserButton In-Reply-To: <1183574034.7205.26.camel@rafael-desktop> References: <1183574034.7205.26.camel@rafael-desktop> Message-ID: <172699c50707041219p3e438c1ep6d0abc1d3b7ca294@mail.gmail.com> El 4/07/07, Rafael Rodríguez Puente escribió: > Estoy utilizando gtk.FileChooserButton para seleccionar un archivo de > cualquier carpeta, pero no encuentro como obtener el nombre del archivo > seleccionado. EN la documentaci'on solo hay metodos para obtener el > titulo del dialogo y el ancho de los caracteres del boton. Debes revisar mejor la completa documentación [1] [1] http://www.pygtk.org/pygtk2tutorial/sec-FileChoosers.html > > Muchas gracias de antemano. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- Milton Inostroza Aguilera From ruido_electronico en yahoo.es Wed Jul 4 22:42:09 2007 From: ruido_electronico en yahoo.es (ruben gomez) Date: Wed, 4 Jul 2007 22:42:09 +0200 (CEST) Subject: Tk-Text Message-ID: <20070704204209.76631.qmail@web27211.mail.ukl.yahoo.com> Hola. Después de probar con gtk me he decidido por tk, que considero más claro. Sin embargo, tengo un problema con Text. Lo que intento es que, cada vez que el usuario introduce un texto en un entry y pulsa enter, el texto se vea en una nueva línea en Text. He probado con: self.Text.insert('1.end',"texto1") self.Text.insert('2.end',"texto2") pero sólo consigo que vayan una detrás de la otra. Tampoco funciona \n. ¿Alguien tiene alguna idea? --------------------------------- ¡Descubre una nueva forma de obtener respuestas a tus preguntas! Entra en Yahoo! Respuestas. From jvicentevilla en yahoo.es Wed Jul 4 22:46:07 2007 From: jvicentevilla en yahoo.es (vicente villaveces) Date: Wed, 4 Jul 2007 22:46:07 +0200 (CEST) Subject: cgi y pyhton In-Reply-To: <3025.10.14.17.145.1183470589.squirrel@correo.ucf.edu.cu> References: <3025.10.14.17.145.1183470589.squirrel@correo.ucf.edu.cu> Message-ID: <20070704204608.53932.qmail@web27305.mail.ukl.yahoo.com> inf200468 en ucf.edu.cu escribió: hola amigos: estoy haciendo una cgi , (mi primera cgi) quiero tomar los datos de la form y guardarlos en una base de datos, hice una funcion que inserta los valores en la base de datos , pero tengo una duda que es la sgte, para que cuando presionen el boton de submit se ejecute el script tengo que poner en el action de la form ( action="">) action="script.py" el script ?????????? ottra duda es que yo pongo al principio del script esto> import cgi print "Content-Type:text/html\n" form = cgi.FieldStorage() y me da el sgte error: form = cgi.FieldStorage() AttributeError: 'module' object has no attribute 'FieldStorage' y el modulo cgi si tiene esa funcion > Saludos, con respecto a la primera parte, se debe colocar en el cuerpo del formulario html la indicación del metodo que vas a usar para enviar la informacion y la ruta del script que va procesarla por ejemplo: En cuanto a la segunda, no se cual es la causa del error,recién estoy iniciandome en la programación web, además pienso que debieras colocar todo el codigo, ya que así es más fácil para que te ayuden. Que viva el software libre y los hombres que lo liberan. José Vicente V. --------------------------------- ¡Descubre una nueva forma de obtener respuestas a tus preguntas! Entra en Yahoo! Respuestas. From pepe en diselpro.com Thu Jul 5 01:28:02 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Thu, 05 Jul 2007 01:28:02 +0200 Subject: OT. vida artificial In-Reply-To: <1183461588.7819.78.camel@skynet> References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> <1183461588.7819.78.camel@skynet> Message-ID: <468C2D02.70404@diselpro.com> Vamos a ponernos un poco Metafísicos y perdón por el OT ;-) Creo que conceptualmente es imposible crear "vida" en un ordenador. Lo único que puedes crear es un conjunto de algoritmos que manipulen datos en una matriz de una forma más o menos compleja en un universo 100% determinista como en este caso un programa de ordenador. Es decir, ante un estado inicial de la matriz y despues de n iteraciones de tu algoritmo, obtendras siempre los mismos resultados. Y no vale utilizar funciones generadoras de números pseudoaleatorios, porque son eso, pseudoaleatorios y sin libre albedrio :) Si para que tu sistema te sorprenda, necesitas introducir caos generado desde un universo exterior (nuestro mundo fisico), realmente lo que estas haciendo es inyectar libre albedrio donde no existe o es imposible generarlo. En definitiva y para terminar esta columpiada mental: - Para generar vida es indispensable el libre albedrio. - Una máquina 100% determinista como un PC no puede generar libre albedrio. - Una máquina no puede generar vida. Si nuestro universo fuese 100% determinista, esta historia estaría en la página n de un libro que ya está escrito. Digamos que la vida y el libre albedrío escapan a la dictadura de las matemáticas. Salud. tny escribió: > Es un asunto al que le tengo ganas desde hace mucho tiempo. > > > La máquina virtual consiste en una matriz de (256x256x256x256) (es > debido al modo en que las máquinas se van a conectar entre sí en red > (cosas de las ipes)) > Cada casilla puede contener un valor y una lista de instrucciones. > > Un valor puede convertirse en una instrucción, del mismo modo en que una > instrucción puede ser almacenada como un valor. > > Las instrucciones incluyen saltos y cambios de dirección de > desplazamiento de los hilos, operaciones con los valores, operaciones > con las instrucciones, y condiciones. > > > Los hilos se desplazan de casilla en casilla ejecutando las > instrucciones de las mismas, los hilos contienen una posición, una > dirección de desplazamiento, y un valor. > > > No necesito empezar con programas autoreplicantes como en tierra, basta > cargar la matriz aleatoriamente y lanzar unos cuantos hilos. > > > > Gracias por los ánimos. > > El mar, 03-07-2007 a las 11:54 +0200, lasizoillo escribió: > >> uuuooooh >> >> Tenemos un Tom Ray pythonico entre nosotros >> >> http://www.his.atr.jp/~ray/tierra/ >> >> Animo >> >> El 3/07/07, tny escribió: >> >>> Pues eso. >>> >>> Estoy comenzando un pequeño proyecto para crear vida artificial (inserte >>> truenos aquí). >>> >>> Era para eso para lo que creí que me podían venir bien las metaclases, >>> al final, cómo bien me aconsejaron no voy a hacer uso de ellas. >>> >>> Pues por si a alguien le interesa, describiré un poco el asunto: >>> >>> A diferencia de otros proyectos similares, en este no se parte de seres >>> primigenios, ni de sistemas genéticos, se parte de un entorno. >>> >>> Dicho entorno no es una simulación, es una máquina virtual con plena >>> funcionalidad. >>> >>> La máquina virtual: >>> >>> * permite multiples procesos (que comparten la memoria, la máquina no >>> controla que no se pisen) >>> * está en red, puede correr solita, o formar una gran máquina en red con >>> otras. >>> * Cuando sea necesario se le podrá dar acceso al S.O. o al hardware. >>> >>> El estado actual: >>> >>> Ya tengo una idea clara de qué y ?omo lo voy a hacer todo. >>> Estoy comenzando a programar el juego de instrucciones de la máquina >>> virtual. >>> >>> Metas volantes: >>> >>> 1. Hacer la máquina virtual. >>> 2. Echarla a andar con mucho ruido. >>> 3. que se autogenere la vida. >>> 4. Aislar algún proto-ser y tratar de controlar su evolución hacia cosas >>> útiles. >>> >>> Objetivo. >>> Ser Dios XDDD >>> >>> >>> Os avisaré cuando esté la maquina virtual terminada. >>> >>> >>> _______________________________________________ >>> 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 > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From minoztro en gmail.com Thu Jul 5 01:51:48 2007 From: minoztro en gmail.com (Milton Galo Patricio Inostroza Aguilera) Date: Wed, 4 Jul 2007 19:51:48 -0400 Subject: gtk.FileChooserButton In-Reply-To: <172699c50707041219p3e438c1ep6d0abc1d3b7ca294@mail.gmail.com> References: <1183574034.7205.26.camel@rafael-desktop> <172699c50707041219p3e438c1ep6d0abc1d3b7ca294@mail.gmail.com> Message-ID: <172699c50707041651j15037c6dvdb1c9f3646f42d4@mail.gmail.com> en español quizás sea mejor [1]. [1] http://www.pygtk.org/pygtk2tutorial-es/sec-FileChoosers.html El 4/07/07, Milton Galo Patricio Inostroza Aguilera escribió: > El 4/07/07, Rafael Rodríguez Puente escribió: > > Estoy utilizando gtk.FileChooserButton para seleccionar un archivo de > > cualquier carpeta, pero no encuentro como obtener el nombre del archivo > > seleccionado. EN la documentaci'on solo hay metodos para obtener el > > titulo del dialogo y el ancho de los caracteres del boton. > > Debes revisar mejor la completa documentación [1] > > [1] http://www.pygtk.org/pygtk2tutorial/sec-FileChoosers.html > > > > > Muchas gracias de antemano. > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > > > > > -- > Milton Inostroza Aguilera > -- Milton Inostroza Aguilera From gagsl-py2 en yahoo.com.ar Thu Jul 5 03:46:53 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Wed, 04 Jul 2007 22:46:53 -0300 Subject: Conectar eventos References: Message-ID: En Tue, 03 Jul 2007 12:49:32 -0300, Manuel Enrique González Ramírez escribió: > Aun no he podido hacerlos porque pues no solo soy un novato en python > sino > tambien porque no he podido encontrar un buen tutorial (en español porque > pesimo pal ingles tambien) que me indique como hacerlo. > Alguien me puede indicar un buen tutorial donde no solo enseñen como > crear > ambientes gráficos con python utilizando por ejemplo wxGlade o wxWidgets No es que haya mucho, pero algo hay: http://www.google.com/search?q=wxpython+tutorial+castellano y en particular: http://hispapython.org/Probando/ > sino también como recoger la informacion introducida en ellos?? La mayoria de los controles a quienes tiene sentido pedirles su "texto", tienen metodos GetValue y SetValue. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From leandrotocalini en gmail.com Thu Jul 5 04:17:42 2007 From: leandrotocalini en gmail.com (Leandro Tocalini) Date: Wed, 04 Jul 2007 23:17:42 -0300 Subject: diccionario a una lista Message-ID: <1183601862.2823.2.camel@debian.tocalinijoerg.com.ar> tengo una consulta.... toy tomando valores de un archivo.. q se agruparia asi... ponele para el 5000 tengo los valores 30, 60, 200 ... para el 5010 tengo los valores 12, 10 entonces tengo pensado armar un diccionario y quiero hacer append de valores... despues me gustaria ordenar esos vectores... se puede hacer asi o q estructura me aconsejan??? ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From ruido_electronico en yahoo.es Thu Jul 5 06:17:04 2007 From: ruido_electronico en yahoo.es (ruben gomez) Date: Thu, 5 Jul 2007 06:17:04 +0200 (CEST) Subject: thread Message-ID: <112466.823.qm@web27210.mail.ukl.yahoo.com> Disculpen la ignorancia. Tengo un programa en tk que debería lanzar otro programa para enviarle datos a través de OSC. Consigo hacerlo manualmente en windows, pero no he encontrado ningún ejemplo de thread que pueda utilizar con os.open( ). ¿Algún ejemplo? ¿Alguna idea? --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From rolandojtorres en gmail.com Thu Jul 5 08:39:05 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Thu, 5 Jul 2007 01:39:05 -0500 Subject: Tk-Text In-Reply-To: <20070704204209.76631.qmail@web27211.mail.ukl.yahoo.com> References: <20070704204209.76631.qmail@web27211.mail.ukl.yahoo.com> Message-ID: <6a39a1d0707042339l47889080ua41a89ec54800ee5@mail.gmail.com> En tcltk seria: pack [entry .e1 -textvar texto] [button .b1 -text "escribir" -command {.t1 insert end "\n $texto"} ] [text .t1 -height 10 -width 40 ] -side top -fill x El problema podria estar en definir el fin o la ultima linea con 'end', y en esa linea asegurarse que escriba una nueva linea con \n antes de la variable del entry. self.Text.insert('end',"\n texto1") Mi problema es que no tengo en este momento sino mi celular, y hace unos meses para aca desinstale el pythonce y no tengo donde probar esto, pero el codigo de arriba es TCL/TK que si pude probarlo. El 4/07/07, ruben gomez escribió: > Hola. > > Después de probar con gtk me he decidido por tk, que considero más claro. > Sin embargo, tengo un problema con Text. Lo que intento es que, cada vez que > el usuario introduce un texto en un entry y pulsa enter, el texto se vea en > una nueva línea en Text. He probado con: > > self.Text.insert('1.end',"texto1") > > self.Text.insert('2.end',"texto2") > > pero sólo consigo que vayan una detrás de la otra. Tampoco funciona \n. > > ¿Alguien tiene alguna idea? > > ----------------------------------- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rolandojtorres en gmail.com Thu Jul 5 08:55:58 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Thu, 5 Jul 2007 01:55:58 -0500 Subject: OT. vida artificial In-Reply-To: <468C2D02.70404@diselpro.com> References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> <1183461588.7819.78.camel@skynet> <468C2D02.70404@diselpro.com> Message-ID: <6a39a1d0707042355k50db70dcve68a43316d3199d7@mail.gmail.com> El 4/07/07, Pepe Aracil escribió: > Vamos a ponernos un poco Metafísicos y perdón por el OT ;-) > > Creo que conceptualmente es imposible crear "vida" en un ordenador. > > Lo único que puedes crear es un conjunto de algoritmos que manipulen > datos en una matriz de una forma más o menos compleja en un universo > 100% determinista como en este caso un programa de ordenador. > Es decir, ante un estado inicial de la matriz y despues de n iteraciones > de tu algoritmo, obtendras siempre los mismos resultados. Y no vale > utilizar funciones generadoras de números pseudoaleatorios, porque > son eso, pseudoaleatorios y sin libre albedrio :) > > Si para que tu sistema te sorprenda, necesitas introducir caos generado > desde un universo exterior (nuestro mundo fisico), realmente lo que > estas haciendo es inyectar libre albedrio donde no existe o es imposible > generarlo. > > En definitiva y para terminar esta columpiada mental: > > - Para generar vida es indispensable el libre albedrio. > - Una máquina 100% determinista como un PC no puede generar libre albedrio. > - Una máquina no puede generar vida. > > Si nuestro universo fuese 100% determinista, esta historia estaría en > la página n de un libro que ya está escrito. Digamos que la vida y el > libre albedrío escapan a la dictadura de las matemáticas. > > Salud. > El libre albedrío corresponde a un caos generalizado dificil de describir matematicamente. Sin embargo puedes crear una seudo-vida planteando una serie de reglas, entre mas reglas añadas, mas dificil de describir matemáticamente el modelo de vida artificial. Nuestro modelo real esta determinado por una serie de reglas que hasta ahora estamos descubriendo. Con solo variar la regla de la gravedad en este universo, el aspecto seria muy distinto. Aun no sabemos si estemos en un universo 100% determinista, falta descubrir todas las reglas que lo rigen. Puedes hacer un juego de la vida que tan solo te pide unas pocas reglas, pero que te ilustra una forma sencilla de libre albedrío. > > > > > > > tny escribió: > > Es un asunto al que le tengo ganas desde hace mucho tiempo. > > > > > > La máquina virtual consiste en una matriz de (256x256x256x256) (es > > debido al modo en que las máquinas se van a conectar entre sí en red > > (cosas de las ipes)) > > Cada casilla puede contener un valor y una lista de instrucciones. > > > > Un valor puede convertirse en una instrucción, del mismo modo en que una > > instrucción puede ser almacenada como un valor. > > > > Las instrucciones incluyen saltos y cambios de dirección de > > desplazamiento de los hilos, operaciones con los valores, operaciones > > con las instrucciones, y condiciones. > > > > > > Los hilos se desplazan de casilla en casilla ejecutando las > > instrucciones de las mismas, los hilos contienen una posición, una > > dirección de desplazamiento, y un valor. > > > > > > No necesito empezar con programas autoreplicantes como en tierra, basta > > cargar la matriz aleatoriamente y lanzar unos cuantos hilos. > > > > > > > > Gracias por los ánimos. > > > > El mar, 03-07-2007 a las 11:54 +0200, lasizoillo escribió: > > > >> uuuooooh > >> > >> Tenemos un Tom Ray pythonico entre nosotros > >> > >> http://www.his.atr.jp/~ray/tierra/ > >> > >> Animo > >> > >> El 3/07/07, tny escribió: > >> > >>> Pues eso. > >>> > >>> Estoy comenzando un pequeño proyecto para crear vida artificial (inserte > >>> truenos aquí). > >>> > >>> Era para eso para lo que creí que me podían venir bien las metaclases, > >>> al final, cómo bien me aconsejaron no voy a hacer uso de ellas. > >>> > >>> Pues por si a alguien le interesa, describiré un poco el asunto: > >>> > >>> A diferencia de otros proyectos similares, en este no se parte de seres > >>> primigenios, ni de sistemas genéticos, se parte de un entorno. > >>> > >>> Dicho entorno no es una simulación, es una máquina virtual con plena > >>> funcionalidad. > >>> > >>> La máquina virtual: > >>> > >>> * permite multiples procesos (que comparten la memoria, la máquina no > >>> controla que no se pisen) > >>> * está en red, puede correr solita, o formar una gran máquina en red con > >>> otras. > >>> * Cuando sea necesario se le podrá dar acceso al S.O. o al hardware. > >>> > >>> El estado actual: > >>> > >>> Ya tengo una idea clara de qué y ?omo lo voy a hacer todo. > >>> Estoy comenzando a programar el juego de instrucciones de la máquina > >>> virtual. > >>> > >>> Metas volantes: > >>> > >>> 1. Hacer la máquina virtual. > >>> 2. Echarla a andar con mucho ruido. > >>> 3. que se autogenere la vida. > >>> 4. Aislar algún proto-ser y tratar de controlar su evolución hacia cosas > >>> útiles. > >>> > >>> Objetivo. > >>> Ser Dios XDDD > >>> > >>> > >>> Os avisaré cuando esté la maquina virtual terminada. > >>> > >>> > >>> _______________________________________________ > >>> 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 > > > > -- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From antonio.beamud en linkend.net Thu Jul 5 09:19:54 2007 From: antonio.beamud en linkend.net (Antonio Beamud Montero) Date: Thu, 05 Jul 2007 09:19:54 +0200 Subject: diccionario a una lista In-Reply-To: <1183601862.2823.2.camel@debian.tocalinijoerg.com.ar> References: <1183601862.2823.2.camel@debian.tocalinijoerg.com.ar> Message-ID: <1183619994.5416.88.camel@lujuria.linkend.net> El mié, 04-07-2007 a las 23:17 -0300, Leandro Tocalini escribió: > tengo una consulta.... toy tomando valores de un archivo.. q se > agruparia asi... > ponele para el 5000 tengo los valores 30, 60, 200 ... para el 5010 tengo > los valores 12, 10 > entonces tengo pensado armar un diccionario y quiero hacer append de > valores... despues me gustaria ordenar esos vectores... se puede hacer > asi o q estructura me aconsejan??? Algo como: vals = {} vals[5000] = [] vals[5000].append(30) vals[5000].append(60) vals[5000].append(200) vals[5000].sort() ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Thu Jul 5 09:42:52 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 5 Jul 2007 09:42:52 +0200 Subject: diccionario a una lista In-Reply-To: <1183601862.2823.2.camel@debian.tocalinijoerg.com.ar> References: <1183601862.2823.2.camel@debian.tocalinijoerg.com.ar> Message-ID: <2c9fb0dd0707050042p44f094aelda3a46996e320b24@mail.gmail.com> El 5/07/07, Leandro Tocalini escribió: > tengo una consulta.... toy tomando valores de un archivo.. q se > agruparia asi... > ponele para el 5000 tengo los valores 30, 60, 200 ... para el 5010 tengo > los valores 12, 10 > entonces tengo pensado armar un diccionario y quiero hacer append de > valores... despues me gustaria ordenar esos vectores... se puede hacer > asi o q estructura me aconsejan??? Un diccionario está bien, aunque debes tener en cuenta que los diccionarios no se pueden ordenar. La ventaja es que puedes hacer la ordenación así de fácil: sorted(d.items(),key=lambda x:x[1]) Aunque lo mejor sería que te crees tu propia clase derivada de 'dict': class MiDict(dict): def __setitem__(self,k,v): self.setdefault(k,[]) self[k].append(v) def sorted(self): return sorted(self.items(),key=lambda x:x[1]) d=MiDict() d[5000]=30 d[5010]=12 d[5000]=60 d[5000]=200 d[5010]=10 print d.sorted() --> [(5010, [12, 10]), (5000, [30, 60, 200])] #para "resetear", basta con borrar el elemento antes del d[5000] d[5000]=2 print d.sorted() --> [(5000, [2]), (5010, [12, 10])] From pych3m4 en gmail.com Thu Jul 5 12:10:58 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 5 Jul 2007 12:10:58 +0200 Subject: OT. vida artificial In-Reply-To: <468C2D02.70404@diselpro.com> References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> <1183461588.7819.78.camel@skynet> <468C2D02.70404@diselpro.com> Message-ID: <2c9fb0dd0707050310w37dab289x99521cb866de456d@mail.gmail.com> El 5/07/07, Pepe Aracil escribió: > Creo que conceptualmente es imposible crear "vida" en un ordenador. Hay programas que crecen, se reproducen y mueren: los virus informáticos. Tal vez no sean inteligentes y no posean libre albedrío, pero al menos están tan vivos como puedan estarlo el virus de la gripe o las esporas de la penicilina. From faltet en carabos.com Thu Jul 5 12:40:09 2007 From: faltet en carabos.com (Francesc Altet) Date: Thu, 5 Jul 2007 12:40:09 +0200 Subject: OT. vida artificial In-Reply-To: <2c9fb0dd0707050310w37dab289x99521cb866de456d@mail.gmail.com> References: <1183454657.7819.48.camel@skynet> <468C2D02.70404@diselpro.com> <2c9fb0dd0707050310w37dab289x99521cb866de456d@mail.gmail.com> Message-ID: <200707051240.10572.faltet@carabos.com> A Dijous 05 Juliol 2007 12:10, Chema Cortes escrigué: > El 5/07/07, Pepe Aracil escribió: > > Creo que conceptualmente es imposible crear "vida" en un ordenador. > > Hay programas que crecen, se reproducen y mueren: los virus > informáticos. Tal vez no sean inteligentes y no posean libre albedrío, Mmm, si consultan el /dev/random de vez en cuando, lo mismo pueden tener igual de "libre albedrío", o más, del que tenemos las personas. En fin, esto ya entra dentro de la filosofia, supongo ;) Saludos! -- >0,0< Francesc Altet     http://www.carabos.com/ V V Cárabos Coop. V.   Enjoy Data "-" From pych3m4 en gmail.com Thu Jul 5 13:26:38 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 5 Jul 2007 13:26:38 +0200 Subject: OT. vida artificial In-Reply-To: <200707051240.10572.faltet@carabos.com> References: <1183454657.7819.48.camel@skynet> <468C2D02.70404@diselpro.com> <2c9fb0dd0707050310w37dab289x99521cb866de456d@mail.gmail.com> <200707051240.10572.faltet@carabos.com> Message-ID: <2c9fb0dd0707050426s624eaffft3134bf9523c6952a@mail.gmail.com> El 5/07/07, Francesc Altet escribió: > A Dijous 05 Juliol 2007 12:10, Chema Cortes escrigué: > > El 5/07/07, Pepe Aracil escribió: > > > Creo que conceptualmente es imposible crear "vida" en un ordenador. > > > > Hay programas que crecen, se reproducen y mueren: los virus > > informáticos. Tal vez no sean inteligentes y no posean libre albedrío, > > Mmm, si consultan el /dev/random de vez en cuando, lo mismo pueden tener igual > de "libre albedrío", o más, del que tenemos las personas. En fin, esto ya > entra dentro de la filosofia, supongo ;) Esto me suena mucho a "psicohistoria" :-))) En fin, que hay mucho donde experimentar, desde teoría del caos hasta algoritmos genéticos. En lugar de /dev/random, en un entorno conectado se pueden pensar muchas otras formas de aleatorizar, por ejemplo tomando los decimales menos significativos de las respuesta de un ping o de la señal horaria de algún servidor de tiempos (ntp). From hfoffani en gmail.com Thu Jul 5 13:44:54 2007 From: hfoffani en gmail.com (Hernan M Foffani) Date: Thu, 5 Jul 2007 13:44:54 +0200 Subject: OT. vida artificial In-Reply-To: <2c9fb0dd0707050426s624eaffft3134bf9523c6952a@mail.gmail.com> References: <1183454657.7819.48.camel@skynet> <468C2D02.70404@diselpro.com> <2c9fb0dd0707050310w37dab289x99521cb866de456d@mail.gmail.com> <200707051240.10572.faltet@carabos.com> <2c9fb0dd0707050426s624eaffft3134bf9523c6952a@mail.gmail.com> Message-ID: <11fab4bc0707050444na301796x87980cd6c714f382@mail.gmail.com> > > > > Creo que conceptualmente es imposible crear "vida" en un ordenador. > > > > > > Hay programas que crecen, se reproducen y mueren: los virus > > > informáticos. Tal vez no sean inteligentes y no posean libre albedrío, > > > > Mmm, si consultan el /dev/random de vez en cuando, lo mismo pueden tener igual > > de "libre albedrío", o más, del que tenemos las personas. En fin, esto ya > > entra dentro de la filosofia, supongo ;) > > Esto me suena mucho a "psicohistoria" :-))) > > En fin, que hay mucho donde experimentar, desde teoría del caos hasta > algoritmos genéticos. En lugar de /dev/random, en un entorno conectado > se pueden pensar muchas otras formas de aleatorizar, por ejemplo > tomando los decimales menos significativos de las respuesta de un ping > o de la señal horaria de algún servidor de tiempos (ntp). O de servidores de números aleatorios genuinos: 1- https://www.fourmilab.ch/hotbits/secure_generate.html 2- http://www.random.org/integers/ etc.. El (1) obtiene los datos de muestras sucesivas del decaimiento radioactivo y el (2) del ruido atmosférico. Sospecho que hay varios mas... -Hernán. From kernel.no.found en gmail.com Thu Jul 5 15:44:31 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Thu, 5 Jul 2007 15:44:31 +0200 Subject: OT. vida artificial Message-ID: <117d6e170707050644h25dad238y59a12b62585395e6@mail.gmail.com> Creo que no es tan imposible simularlo, desde mi punto de vista creo que lo complejo es tener tanto tiempo como para escribir tantos estados/algoritmos/funciones como puede tener la vida real, pasando por enfermedades, por relaciones, por actividades, por python, por culebras, por python-es hehehe -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com From gagsl-py2 en yahoo.com.ar Thu Jul 5 18:35:37 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Thu, 05 Jul 2007 13:35:37 -0300 Subject: OT. vida artificial References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> <1183461588.7819.78.camel@skynet> <468C2D02.70404@diselpro.com> Message-ID: En Wed, 04 Jul 2007 20:28:02 -0300, Pepe Aracil escribió: > - Para generar vida es indispensable el libre albedrio. > - Una máquina 100% determinista como un PC no puede generar libre > albedrio. > - Una máquina no puede generar vida. No entiendo la relación que pretendes mostrar entre libre albedrío y vida. Una lechuga esta viva y no tiene libre albedrío... > Si nuestro universo fuese 100% determinista, esta historia estaría en > la página n de un libro que ya está escrito. Digamos que la vida y el > libre albedrío escapan a la dictadura de las matemáticas. Por suerte el universo no es determinista... -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gerardo en computo-industrial.com.mx Thu Jul 5 18:36:23 2007 From: gerardo en computo-industrial.com.mx (Gerardo Juarez) Date: Thu, 5 Jul 2007 12:36:23 -0400 (EDT) Subject: Tk-Text In-Reply-To: <20070704204209.76631.qmail@web27211.mail.ukl.yahoo.com> References: <20070704204209.76631.qmail@web27211.mail.ukl.yahoo.com> Message-ID: Tengo aqui una aplicacion que hice hace un tiempo y alli uso algo asi como esto: # importacion from Tkinter import * # creacion: self.panel = Text(self.f1, height=adm.panel_height, width=70) # borrar dos lineas self.panel.delete('1.0', '2.0') # escribir al final: self.panel.insert(END, "respaldado (%s)\n" % time.ctime(tm)) # borrar todo self.panel.delete('1.0', END) No se como seria si quiero insertar en la posicion 3 de la ultima linea, porque no lo necesite entonces, pero esto funciona. saludos Gerardo On Wed, 4 Jul 2007, ruben gomez wrote: > Hola. > > Después de probar con gtk me he decidido por tk, que considero más claro. Sin embargo, tengo un problema con Text. Lo que intento es que, cada vez que el usuario introduce un texto en un entry y pulsa enter, el texto se vea en una nueva línea en Text. He probado con: > > self.Text.insert('1.end',"texto1") > > self.Text.insert('2.end',"texto2") > > pero sólo consigo que vayan una detrás de la otra. Tampoco funciona \n. > > ¿Alguien tiene alguna idea? > > > > --------------------------------- > > ¡Descubre una nueva forma de obtener respuestas a tus preguntas! > Entra en Yahoo! Respuestas. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From gerardo699 en gmail.com Thu Jul 5 19:01:52 2007 From: gerardo699 en gmail.com (Gerardo Ayala G.) Date: Thu, 5 Jul 2007 12:01:52 -0500 Subject: Bases de Datos Message-ID: Hola!!! Estoy tratando de crear una base de datos en python 2.4 con pysqlite pero he tenido varios problemas alguien me podria dar alguna direccion donde conseguir un buen turorial para esto, o algun ejemplo bien completo sobre este tema preferiblemente en español. Muchas gracias de antemano.... -- Gerardo A. From faltet en carabos.com Thu Jul 5 19:07:11 2007 From: faltet en carabos.com (Francesc Altet) Date: Thu, 05 Jul 2007 19:07:11 +0200 Subject: OT. vida artificial In-Reply-To: References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> <1183461588.7819.78.camel@skynet> <468C2D02.70404@diselpro.com> Message-ID: <1183655232.2592.6.camel@carabos.com> El dj 05 de 07 del 2007 a les 13:35 -0300, en/na Gabriel Genellina va escriure: > Por suerte el universo no es determinista... Mmm, seguro que a Einstein le hubiera gustado discutir esto con un poco más de profundidad ;) -- Francesc Altet | Be careful about using the following code -- Carabos Coop. V. | I've only proven that it works, www.carabos.com | I haven't tested it. -- Donald Knuth ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From mlacunza en gmail.com Thu Jul 5 19:18:37 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Thu, 5 Jul 2007 12:18:37 -0500 Subject: Entorno visual In-Reply-To: <468BE2E4.2000608@gmail.com> References: <61290ece0707040025t4511de5bpbd7c10f020e4e715@mail.gmail.com> <1183572222.3353.30.camel@localhost.localdomain> <468BE2E4.2000608@gmail.com> Message-ID: <771741b20707051018h4c70475am9e097bfa818e1d7d@mail.gmail.com> Bajate la version CVS para q no tengas esa falla y casualmente acaba de salir la version 0.6. En cuanto a la pregunta usa wxPython su documentacion a manera de ejemplos practicos es inmejorable, muchas veces solo tienes q ubicar el control q necesites usar y copy&paste el codigo referente, a parte hay un libro del mismo autor wxPython in Action q es excelente. La lista tiene un movimiento enorme y el mismo Robin contesta las preguntas.... El día 4/07/07, dmunhiz escribió: > > Ola: > Si optas por las wx. el boa construcotor puede ayudarte, tiene un > diseñador visual y también "autocompletado" que va bastante bien, > paradojicamente funciona mejor en windows que en linux (por lo menos > ubuntu (falla y termina)). > Saludos > > > Remitente: > Daniel Muñiz Fontoira > Eu uso software libre [1] > [1]http://www.gnu.org/philosophy/free-sw.gl.html > > > Sergio Fernández escribiu: > > Hola, > > > >> Llevo varios años (algo así como 5) programando en python, pero siempre > en > >> entorno MSDOS. Programo para producción, así que nunca he necesitado > más. El > >> caso es que me gustaría empezar a haer algo en entorno visual. La > pregunta > >> que quiero haceros es bastante simple, ¿por dónde empiezo?. > > > > PyGTK [1] es muy sencillo, sobre todo usando diseñadores tipo Glade [2] > > o Gazpacho [3]. > > > >> Como referencias, trabajo bajo entorno Windows, y conozco bien Visual > >> Basic. y estoy trabajando con python 2.3.5. > > > > Si estas acostumbrado a VisualStudio, quizás puedas usar WinForms con > > IronPython [4]; yo no tengo experiencia, pero no parece difícil [5]. > > > > Un saludo, > > > > [1] http://www.pygtk.org/ > > [2] http://glade.gnome.org/ > > [3] http://gazpacho.sicem.biz/ > > [4] http://www.codeplex.com/IronPython > > [5] http://www.codeproject.com/useritems/IronPython_NET_20.asp > > > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > 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 > > -- Saludos / Best regards Mario Lacunza Desarrollador de Sistemas - Webmaster Desarrollador 2 Estrellas VS2005 Email: mlacunza [AT] gmail [DOT] com Website: mlacunzav[DOT]cogia[DOT]net Blog: http://mlacunza.blogspot.com/ Lima - Peru From gagsl-py2 en yahoo.com.ar Thu Jul 5 21:07:36 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Thu, 05 Jul 2007 16:07:36 -0300 Subject: OT. vida artificial References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> <1183461588.7819.78.camel@skynet> <468C2D02.70404@diselpro.com> <1183655232.2592.6.camel@carabos.com> Message-ID: En Thu, 05 Jul 2007 14:07:11 -0300, Francesc Altet escribió: > El dj 05 de 07 del 2007 a les 13:35 -0300, en/na Gabriel Genellina va > escriure: >> Por suerte el universo no es determinista... > > Mmm, seguro que a Einstein le hubiera gustado discutir esto con un poco > más de profundidad ;) Sí, claro, pero se murio sin poder encontrar la forma de que vuelva a ser deterministico. Como todavia no hay evidencias de que el principio de indeterminación de Heisenberg sea falso, parece que Dios juega a los dados nomás... -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From a.porrua en gmail.com Thu Jul 5 21:16:07 2007 From: a.porrua en gmail.com (tny) Date: Thu, 05 Jul 2007 21:16:07 +0200 Subject: OT. vida artificial In-Reply-To: <1183655232.2592.6.camel@carabos.com> References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> <1183461588.7819.78.camel@skynet> <468C2D02.70404@diselpro.com> <1183655232.2592.6.camel@carabos.com> Message-ID: <1183662968.5872.15.camel@skynet> Pido disculpas a todos, pues no era mi intención que esto interfiriese al normal funcionamiento de la lista. Regresemos a python Una duda. Yo había leído por hay que los threads no eran para nada deterministas, que no se sabe a priori cuanto tiempo va a tardar cpython en crear cada hilo y lanzarlo, o como les va a ir dando los turnos. Tengo entendido que se puede ejecutar varias veces del mismo modo el mismo programa y obtener resultados diferentes e impredecibles en cada vez, (No vale usar random) #hilos import thread def hilo(numero): for i in range(1000): if i%100==0: print numero, def main(): for i in range(100): a=thread.start_new_thread(hilo,(i,)) print "", if __name__=='__main__': main() tny en skynet:~$ python determinista.py 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 16 16 16 16 16 16 16 16 16 16 17 17 17 17 17 17 17 17 17 17 18 18 18 18 18 18 18 18 18 18 19 19 19 19 19 19 19 19 19 19 15 15 15 15 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 20 21 21 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 23 23 23 23 23 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 25 25 25 25 25 26 26 26 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 28 28 28 28 28 28 28 28 28 28 29 29 29 29 29 29 29 29 29 29 30 30 30 30 30 30 30 30 30 30 31 31 31 31 31 31 31 31 31 31 32 32 32 32 32 32 32 32 32 32 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 34 34 34 34 34 tny en skynet:~$ python determinista.py 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 17 17 17 17 17 17 17 17 17 17 tny en skynet:~$ python determinista.py 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 17 17 17 17 17 17 17 17 17 17 18 18 18 18 18 18 18 18 18 18 19 19 19 19 19 19 19 19 19 19 20 20 20 20 20 20 20 20 20 20 21 21 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 23 23 23 23 23 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 25 25 25 25 25 26 26 26 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 tny en skynet:~$ python determinista.py 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 17 17 17 17 17 17 17 17 17 17 ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From inf200468 en ucf.edu.cu Thu Jul 5 21:48:16 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Thu, 5 Jul 2007 15:48:16 -0400 (CDT) Subject: apache y python Message-ID: <1075.10.14.17.145.1183664896.squirrel@correo.ucf.edu.cu> alguien puede decirme , despues que instalo el servidor apache2 que tengo que hacer para hacer una cgi con python , es decir hay algun modulo especifico que tenga que copiar para algun directorio, yo lo que hice fue copiar en el directorio /var/www/html/cgi-bin los script de la cgi y en /var/www/html/logs , copiar las paginas .htm, en el action de cada form puse el "../cgi-bin/el script correspondiente.py", pero cuando presiono el boton submit de la form , da un internal server error y no se lo que es ....alguien puede ayudarme. gracias ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From pepe en diselpro.com Fri Jul 6 00:36:11 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Fri, 06 Jul 2007 00:36:11 +0200 Subject: OT. vida artificial In-Reply-To: <6a39a1d0707042355k50db70dcve68a43316d3199d7@mail.gmail.com> References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> <1183461588.7819.78.camel@skynet> <468C2D02.70404@diselpro.com> <6a39a1d0707042355k50db70dcve68a43316d3199d7@mail.gmail.com> Message-ID: <468D725B.1030400@diselpro.com> Rolando José Torres Sánchez escribió: > El libre albedrío corresponde a un caos generalizado dificil de > describir matematicamente. Yo difiero en esta idea. Hay modelos muy sensibles a pequeños cambios (caóticos) lo cual no quiere decir que no se sometan a leyes físicas conocidas o no. Mientras que el libre albedrío es simplemente una expresión de "libertad de elección". Sin el libre albedrío estaría ya todo escrito y no existiría por poner un ejemplo ninguna acción moralmente reprobable, porque ¿como vas a eludir lo que ya estaba escrito en un universo determinista? > Sin embargo puedes crear una seudo-vida planteando una serie de > reglas, entre mas reglas añadas, mas dificil de describir > matemáticamente el modelo de vida artificial. > Mas difícil de describir si, pero no se diferenciaría conceptualmente en nada a un sistema simple. O a caso cuando el nivel de complejidad supera un determinado umbral se trasciende a las matemáticas. ;-D > Nuestro modelo real esta determinado por una serie de reglas que hasta > ahora estamos descubriendo. > > Con solo variar la regla de la gravedad en este universo, el aspecto > seria muy distinto. > Totalmente de acuerdo. > Aun no sabemos si estemos en un universo 100% determinista, falta > descubrir todas las reglas que lo rigen. > Si es 100% determinista, siento decirte que tú no existes como "ente" ya que tu pasado, presente y futuro está 100% determinado. > Puedes hacer un juego de la vida que tan solo te pide unas pocas > reglas, pero que te ilustra una forma sencilla de libre albedrío. > > Creo que lo que ilustra es la capacidad de marear bytes que puede tener un determinado algoritmo y lo sensible que puede ser a pequeños cambios, pero no creo que simule un libre albedrio. Mira por ejemplo el conjunto de Mandelbrot parece que tenga libre albedrio dada la complejidad de las formas generadas, pero es un sistema 100% determinista, no hay ni un solo pixel que escape a las matemáticas. Luego parece que tenga, pero no tiene libre albedrio. Saludos. From pepe en diselpro.com Fri Jul 6 00:48:33 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Fri, 06 Jul 2007 00:48:33 +0200 Subject: OT. vida artificial In-Reply-To: <11fab4bc0707050444na301796x87980cd6c714f382@mail.gmail.com> References: <1183454657.7819.48.camel@skynet> <468C2D02.70404@diselpro.com> <2c9fb0dd0707050310w37dab289x99521cb866de456d@mail.gmail.com> <200707051240.10572.faltet@carabos.com> <2c9fb0dd0707050426s624eaffft3134bf9523c6952a@mail.gmail.com> <11fab4bc0707050444na301796x87980cd6c714f382@mail.gmail.com> Message-ID: <468D7541.50004@diselpro.com> Hernan M Foffani escribió: > > O de servidores de números aleatorios genuinos: > 1- https://www.fourmilab.ch/hotbits/secure_generate.html > 2- http://www.random.org/integers/ > etc.. > > El (1) obtiene los datos de muestras sucesivas del decaimiento > radioactivo y el (2) del ruido atmosférico. > > Sospecho que hay varios mas... > Pero con estas fuentes de aleatoriedad, lo que hacemos en es "inyectar" libre albedrio desde un sistema que es nuestro universo a otro sistema que es el universo simulado en la PC... tiene narices que "la bolita de la ruleta" de un casino virtual tenga que ser "animada" con libre albedrio procedente de un "universo paralelo". Saludos From marcelobarbero en arnet.com.ar Fri Jul 6 03:16:07 2007 From: marcelobarbero en arnet.com.ar (Marcelo Barbero) Date: Thu, 5 Jul 2007 22:16:07 -0300 Subject: OT. vida artificial In-Reply-To: <468C2D02.70404@diselpro.com> References: <468C2D02.70404@diselpro.com> Message-ID: <20070706011514.73BD81B042F@dns2.uji.es> -----Mensaje original----- De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org] En nombre de Pepe Aracil Enviado el: Miércoles 4 de Julio de 2007 08:28 p.m. Para: La lista de python en castellano Asunto: Re: [Python-es] OT. vida artificial > Vamos a ponernos un poco Metafísicos y perdón por el OT ;-) Tu reloj filosófico atrasa unos cuantos siglos... > Creo que conceptualmente es imposible crear "vida" en un ordenador. Sobre todo porque las únicas formas de "vida" que se conocen proceden de un ancestro común por evolución, no por ordenador. Cualquiera lo sabe. No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.476 / Virus Database: 269.9.14/885 - Release Date: 03/07/2007 10:02 a.m. From drbobus en gulic.org Fri Jul 6 08:42:50 2007 From: drbobus en gulic.org (Dr. Bobus) Date: Fri, 6 Jul 2007 07:42:50 +0100 Subject: OT. vida artificial In-Reply-To: <468C2D02.70404@diselpro.com> References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> <1183461588.7819.78.camel@skynet> <468C2D02.70404@diselpro.com> Message-ID: <20070706074250.3eb0b7b9@localhost> El Thu, 05 Jul 2007 01:28:02 +0200 Pepe Aracil dijo: > Vamos a ponernos un poco Metafísicos y perdón por el OT ;-) > > Creo que conceptualmente es imposible crear "vida" en un ordenador. Primero debes definir vida. Si la basas en estructura basada en la química del carbono que ... evidentemente, pero insisto primero defínase vida. > > En definitiva y para terminar esta columpiada mental: > > - Para generar vida es indispensable el libre albedrio. Lo lamento, pero creo que son dos conceptos distintos e independientes. Hay quien cree que de existir el tal libre albedrio es privativo de los humanos (y de algunos otros mamíferos ya extintos). Pero millones de formas vivas en el planeta no tienen ni la menor pizca de L.A. Saludos Dr. Bobus -- This is a logical analogy too... anyone who's been around, knows the world is run by paenguins. Always a paenguin behind the curtain, really getting things done. And paenguins in politics--who can deny it? (Kevin M. Bealer, commenting on the penguin Linux logo.) ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: no disponible URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Fri Jul 6 09:16:34 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 6 Jul 2007 09:16:34 +0200 Subject: apache y python In-Reply-To: <1075.10.14.17.145.1183664896.squirrel@correo.ucf.edu.cu> References: <1075.10.14.17.145.1183664896.squirrel@correo.ucf.edu.cu> Message-ID: <2c9fb0dd0707060016l57f6ae29q51b6805db7744855@mail.gmail.com> El 5/07/07, inf200468 en ucf.edu.cu escribió: > alguien puede decirme , despues que instalo el servidor apache2 que tengo > que hacer para hacer una cgi con python , es decir hay algun modulo > especifico que tenga que copiar para algun directorio, yo lo que hice fue > copiar en el directorio /var/www/html/cgi-bin los script de la cgi y en > /var/www/html/logs , copiar las paginas .htm, en el action de cada form > puse el "../cgi-bin/el script correspondiente.py", pero cuando presiono el > boton submit de la form , da un internal server error y no se lo que es > ....alguien puede ayudarme. Veamos...la ejecución de un cgi es idéntica a ejecutar un script python desde la línea de comandos. Para saber si es problema de la configuración del apache o es un problema de python, ejecuta el script desde la línea de comandos a ver qué sale. En la documentación del módulo 'cgi' tienes información sobre cómo depurar un cgi en python. Tal vez podrías echarle un vistazo. Si sigues perdido, ilustranos con parte del código y de la configuración para saber dónde tienes el problema. From pych3m4 en gmail.com Fri Jul 6 10:23:33 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 6 Jul 2007 10:23:33 +0200 Subject: OT. vida artificial In-Reply-To: <468D7541.50004@diselpro.com> References: <1183454657.7819.48.camel@skynet> <468C2D02.70404@diselpro.com> <2c9fb0dd0707050310w37dab289x99521cb866de456d@mail.gmail.com> <200707051240.10572.faltet@carabos.com> <2c9fb0dd0707050426s624eaffft3134bf9523c6952a@mail.gmail.com> <11fab4bc0707050444na301796x87980cd6c714f382@mail.gmail.com> <468D7541.50004@diselpro.com> Message-ID: <2c9fb0dd0707060123n3de2c93cjf6c263f90899c1fd@mail.gmail.com> El 6/07/07, Pepe Aracil escribió: > Pero con estas fuentes de aleatoriedad, lo que hacemos en es "inyectar" > libre > albedrio desde un sistema que es nuestro universo a otro sistema que es > el universo simulado en la PC... tiene narices que "la bolita de la > ruleta" de > un casino virtual tenga que ser "animada" con libre albedrio procedente de > un "universo paralelo". Matemáticamente hablando, ningún sistema es completo y cerrado a la vez (Teorema de Incompletitud de Gödel). Lo que para tí son universos paralelos separados, en otro orden de cosas sería un solo universo. El sistema completo sería nuestro universo estudiado más el algoritmo de aleatoriedad. Sin problemas. From pepe en diselpro.com Fri Jul 6 10:11:48 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Fri, 06 Jul 2007 10:11:48 +0200 Subject: OT. vida artificial In-Reply-To: <20070706074250.3eb0b7b9@localhost> References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> <1183461588.7819.78.camel@skynet> <468C2D02.70404@diselpro.com> <20070706074250.3eb0b7b9@localhost> Message-ID: <468DF944.9020400@diselpro.com> Dr. Bobus escribió: > > Primero debes definir vida. Si la basas en estructura basada en la química del carbono que ... evidentemente, pero insisto primero defínase vida. > Creo que para definir lo que es vida primero hay que estar vivo y ser consciente de ello.... lo cual nos mete en un comprometedor bucle sin fin. > > Lo lamento, pero creo que son dos conceptos distintos e independientes. Hay quien cree que de existir el tal libre albedrio es privativo de los humanos (y de algunos otros mamíferos ya extintos). > He mezclado el concepto de libre albedrio con el de "no determinismo o de incertidumbre" porque creo que para que para que exista el primero debe existir el segundo, pero esta relación no deja de ser una simple intuición. Saludos P.D. Pido perdón a los moderadores por este hilo que aunque creo interesante no se ciñe lo más mínimo al propósito de la lista. Así que sed buenos y dejad que mi post sea el último... jeje ;-P ------------ 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 Jul 6 10:47:25 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Fri, 06 Jul 2007 10:47:25 +0200 Subject: OT. vida artificial In-Reply-To: <2c9fb0dd0707060123n3de2c93cjf6c263f90899c1fd@mail.gmail.com> References: <1183454657.7819.48.camel@skynet> <468C2D02.70404@diselpro.com> <2c9fb0dd0707050310w37dab289x99521cb866de456d@mail.gmail.com> <200707051240.10572.faltet@carabos.com> <2c9fb0dd0707050426s624eaffft3134bf9523c6952a@mail.gmail.com> <11fab4bc0707050444na301796x87980cd6c714f382@mail.gmail.com> <468D7541.50004@diselpro.com> <2c9fb0dd0707060123n3de2c93cjf6c263f90899c1fd@mail.gmail.com> Message-ID: <468E019D.4030707@diselpro.com> Chema Cortes escribió: > Lo que para tí son universos paralelos separados, en otro orden de > cosas sería un solo universo. El sistema completo sería nuestro > universo estudiado más el algoritmo de aleatoriedad. Sin problemas. Que a su vez también estaría incompleto ya que la fuente de aleatoriedad estaría influenciada por universos que desconocemos .... y en la cima de la pirámide está "Dios" jugando a los dados mmmmm pero ¿como puede juagar a los dados alguien o algo que sabe de antemano lo que va a salir? Uff!! esto me provoca sobrecalentamiento neuronal... voy a centrarme en cosas más banales como buscar aplicaciones para las metaclases ;-P Saludos. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Fri Jul 6 11:39:56 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 6 Jul 2007 11:39:56 +0200 Subject: OT. vida artificial In-Reply-To: <468E019D.4030707@diselpro.com> References: <1183454657.7819.48.camel@skynet> <468C2D02.70404@diselpro.com> <2c9fb0dd0707050310w37dab289x99521cb866de456d@mail.gmail.com> <200707051240.10572.faltet@carabos.com> <2c9fb0dd0707050426s624eaffft3134bf9523c6952a@mail.gmail.com> <11fab4bc0707050444na301796x87980cd6c714f382@mail.gmail.com> <468D7541.50004@diselpro.com> <2c9fb0dd0707060123n3de2c93cjf6c263f90899c1fd@mail.gmail.com> <468E019D.4030707@diselpro.com> Message-ID: <2c9fb0dd0707060239xfdd7aa1j6313c22feaa87b1f@mail.gmail.com> El 6/07/07, Pepe Aracil escribió: > > Chema Cortes escribió: > > Lo que para tí son universos paralelos separados, en otro orden de > > cosas sería un solo universo. El sistema completo sería nuestro > > universo estudiado más el algoritmo de aleatoriedad. Sin problemas. > > Que a su vez también estaría incompleto ya que la fuente de aleatoriedad > estaría influenciada por universos que desconocemos .... y en la cima de > la pirámide está "Dios" jugando a los dados mmmmm pero ¿como puede juagar > a los dados alguien o algo que sabe de antemano lo que va a salir? En realidad, lo que no estaría es "cerrrado"; pero sí que podría estar "completo". En cuanto a Dios, recuerdo (y recomiendo) un libro llamado "Gödel, Escher, Bach: un Eterno y Grácil Bucle" donde los protagonistas recurren a la omnipotencia de un genio. Pero lo que le piden se sale de sus dominios, por lo que tiene que recurrir a genio de nivel superior, y este a uno superior, y así recursivamente. En esta recursión infinita surgía Dios como "finalizador" de la recursividad. La gracia del relato es que la rotura de la recursividad "corrompe" la pila, de modo que se retorna a un nivel distinto del de partida, o sea, hay un cambio de reglas y de universo, al estilo de los cuadros de Escher donde el espectador es parte del cuadro que está viendo. > Uff!! esto me provoca sobrecalentamiento neuronal... voy a centrarme en cosas > más banales como buscar aplicaciones para las metaclases ;-P Será porque están subiendo las temperaturas, por lo menos por esta parte septentrional del universo :-P From inf200468 en ucf.edu.cu Fri Jul 6 15:33:41 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Fri, 6 Jul 2007 09:33:41 -0400 (CDT) Subject: apache y python In-Reply-To: <2c9fb0dd0707060016l57f6ae29q51b6805db7744855@mail.gmail.com> References: <1075.10.14.17.145.1183664896.squirrel@correo.ucf.edu.cu> <2c9fb0dd0707060016l57f6ae29q51b6805db7744855@mail.gmail.com> Message-ID: <1574.10.14.17.145.1183728821.squirrel@correo.ucf.edu.cu> #### esta es la cgi para agregarle un telefono a un usuario ########### estas lineas no cambian ############## import cgi print "Content-Type:text/html\n" form = cgi.FieldStorage( ) ########## para validar lo que me entran ######## import re ######### para salir del scipt en caso de un valor malo import sys import AgregarTelefono login = form.getvalue("textfield") telefono = form.getvalue("textfield2") # aqui valido que entren todos los datos if not login or not telefono: print "debe llenar todos los campos" sys.exit() # aqui valido la longitud de los campos if len(login)>10: print "login muy largo" sys.exit() if len(telefono)<6: print "los telefonos deben tener mas de 6 digitos" sys.exit() # aqui valido la sintaxis de los campos car_check= re.compile(r"^[\w\-\s]+$") #num_check = re.compile([1]) esta es para el telef result_login = car_check.search(login) #result_telefono = num_check.search(telefono) if not result_login: print "caracteres inapropiados para el login" sys.exit() if not result_telefono: print "por favor , entre correctamente un numero telefonico" sys.exit() AgregarTelefono.AgregarTelefono(login,telefono) #esta es una funcion que #agrega el login y el #telefono en la base de datos, la tengo en un modulo aparte, esta es mi #primera cgi y no se si esta bien print "el telefono ha sido agregado correctamente" El 5/07/07, inf200468 en ucf.edu.cu escribió: >> alguien puede decirme , despues que instalo el servidor apache2 que >> tengo >> que hacer para hacer una cgi con python , es decir hay algun modulo >> especifico que tenga que copiar para algun directorio, yo lo que hice >> fue >> copiar en el directorio /var/www/html/cgi-bin los script de la cgi y en >> /var/www/html/logs , copiar las paginas .htm, en el action de cada form >> puse el "../cgi-bin/el script correspondiente.py", pero cuando presiono >> el >> boton submit de la form , da un internal server error y no se lo que es >> ....alguien puede ayudarme. > > Veamos...la ejecución de un cgi es idéntica a ejecutar un script > python desde la línea de comandos. Para saber si es problema de la > configuración del apache o es un problema de python, ejecuta el script > desde la línea de comandos a ver qué sale. > > En la documentación del módulo 'cgi' tienes información sobre cómo > depurar un cgi en python. Tal vez podrías echarle un vistazo. Si > sigues perdido, ilustranos con parte del código y de la configuración > para saber dónde tienes el problema. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From inf200468 en ucf.edu.cu Fri Jul 6 15:35:21 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Fri, 6 Jul 2007 09:35:21 -0400 (CDT) Subject: chema aqui va el script de la cgi Message-ID: <2437.10.14.17.145.1183728921.squirrel@correo.ucf.edu.cu> #### esta es la cgi para agregarle un telefono a un usuario ########### estas lineas no cambian ############## import cgi print "Content-Type:text/html\n" form = cgi.FieldStorage( ) ########## para validar lo que me entran ######## import re ######### para salir del scipt en caso de un valor malo import sys import AgregarTelefono login = form.getvalue("textfield") telefono = form.getvalue("textfield2") # aqui valido que entren todos los datos if not login or not telefono: print "debe llenar todos los campos" sys.exit() # aqui valido la longitud de los campos if len(login)>10: print "login muy largo" sys.exit() if len(telefono)<6: print "los telefonos deben tener mas de 6 digitos" sys.exit() # aqui valido la sintaxis de los campos car_check= re.compile(r"^[\w\-\s]+$") #num_check = re.compile([1]) esta es para el telef result_login = car_check.search(login) #result_telefono = num_check.search(telefono) if not result_login: print "caracteres inapropiados para el login" sys.exit() if not result_telefono: print "por favor , entre correctamente un numero telefonico" sys.exit() AgregarTelefono.AgregarTelefono(login,telefono) #esta es una funcion que #agrega el login y el #telefono en la base de datos, la tengo en un modulo aparte, esta es mi #primera cgi y no se si esta bien print "el telefono ha sido agregado correctamente" El 5/07/07, inf200468 en ucf.edu.cu escribió: >> alguien puede decirme , despues que instalo el servidor apache2 que >> tengo >> que hacer para hacer una cgi con python , es decir hay algun modulo >> especifico que tenga que copiar para algun directorio, yo lo que hice >> fue >> copiar en el directorio /var/www/html/cgi-bin los script de la cgi y en >> /var/www/html/logs , copiar las paginas .htm, en el action de cada form >> puse el "../cgi-bin/el script correspondiente.py", pero cuando presiono >> el >> boton submit de la form , da un internal server error y no se lo que es >> ....alguien puede ayudarme. > > Veamos...la ejecución de un cgi es idéntica a ejecutar un script > python desde la línea de comandos. Para saber si es problema de la > configuración del apache o es un problema de python, ejecuta el script > desde la línea de comandos a ver qué sale. > > En la documentación del módulo 'cgi' tienes información sobre cómo > depurar un cgi en python. Tal vez podrías echarle un vistazo. Si > sigues perdido, ilustranos con parte del código y de la configuración > para saber dónde tienes el problema. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From roylan04012 en pri.jovenclub.cu Sat Jul 7 03:49:06 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Fri, 6 Jul 2007 21:49:06 -0400 Subject: apache y python In-Reply-To: <1574.10.14.17.145.1183728821.squirrel@correo.ucf.edu.cu> References: <1574.10.14.17.145.1183728821.squirrel@correo.ucf.edu.cu> Message-ID: <62f6b87986e3465e5b3d66ab72193c1d@mx1.vn.pri.jovenclub.cu> Hola colegas ahora que estamos es esto de los CGI, estoy interesado en aprender un poco CGI alguien conoce alguna URl donde se pueda aprender un poco salu2 roylan On Fri, 6 Jul 2007 09:33:41 -0400 (CDT), inf200468 en ucf.edu.cu wrote: > #### esta es la cgi para agregarle un telefono a un usuario > ########### estas lineas no cambian ############## > import cgi > print "Content-Type:text/html\n" > > form = cgi.FieldStorage( ) > > ########## para validar lo que me entran ######## > import re > ######### para salir del scipt en caso de un valor malo > import sys > import AgregarTelefono > > login = form.getvalue("textfield") > telefono = form.getvalue("textfield2") > > # aqui valido que entren todos los datos > if not login or not telefono: > print "debe llenar todos los campos" > sys.exit() > > # aqui valido la longitud de los campos > if len(login)>10: > print "login muy largo" > sys.exit() > if len(telefono)<6: > print "los telefonos deben tener mas de 6 digitos" > sys.exit() > # aqui valido la sintaxis de los campos > car_check= re.compile(r"^[\w\-\s]+$") > #num_check = re.compile([1]) esta es para el telef > > result_login = car_check.search(login) > #result_telefono = num_check.search(telefono) > > if not result_login: > print "caracteres inapropiados para el login" > sys.exit() > if not result_telefono: > print "por favor , entre correctamente un numero telefonico" > sys.exit() > > AgregarTelefono.AgregarTelefono(login,telefono) #esta es una funcion que > #agrega el login y el > #telefono en la base de datos, la tengo en un modulo aparte, esta es mi > #primera cgi y no se si esta bien > print "el telefono ha sido agregado correctamente" > > > > > > > > > > > El 5/07/07, inf200468 en ucf.edu.cu escribió: >>> alguien puede decirme , despues que instalo el servidor apache2 que >>> tengo >>> que hacer para hacer una cgi con python , es decir hay algun modulo >>> especifico que tenga que copiar para algun directorio, yo lo que hice >>> fue >>> copiar en el directorio /var/www/html/cgi-bin los script de la cgi y en >>> /var/www/html/logs , copiar las paginas .htm, en el action de cada form >>> puse el "../cgi-bin/el script correspondiente.py", pero cuando presiono >>> el >>> boton submit de la form , da un internal server error y no se lo que es >>> ....alguien puede ayudarme. >> >> Veamos...la ejecución de un cgi es idéntica a ejecutar un script >> python desde la línea de comandos. Para saber si es problema de la >> configuración del apache o es un problema de python, ejecuta el script >> desde la línea de comandos a ver qué sale. >> >> En la documentación del módulo 'cgi' tienes información sobre cómo >> depurar un cgi en python. Tal vez podrías echarle un vistazo. Si >> sigues perdido, ilustranos con parte del código y de la configuración >> para saber dónde tienes el problema. >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> > > > > > ------------------------------ > Participe en Universidad 2008 > 11 al 15 de febrero del 2008 > Palacio de las Convenciones, > Ciudad de la Habana, Cuba > http://www.universidad2008.cu > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es -- -- Roylan Suarez Reyes Admin. Redes JC. Vinales roylan04012 en pri.jovenclub.cu Telef: 793210 ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From inf200468 en ucf.edu.cu Fri Jul 6 16:07:13 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Fri, 6 Jul 2007 10:07:13 -0400 (CDT) Subject: excelente sitio con tutoriales .... Message-ID: <4884.10.14.17.145.1183730833.squirrel@correo.ucf.edu.cu> hola amigos: esta es la direccion de un sitio que contiene tutoriales de python abarcando todos los temas , se los recomiendo http://www.awaretek.com/tutorials.html Saludos ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From inf200468 en ucf.edu.cu Fri Jul 6 17:30:13 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Fri, 6 Jul 2007 11:30:13 -0400 (CDT) Subject: mod_python Message-ID: <4536.10.14.17.145.1183735813.squirrel@correo.ucf.edu.cu> Hola: tengo la sgte duda, para hacer una cgi con python , necesito instalar el mod_python ????? ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From gerardo699 en gmail.com Fri Jul 6 17:56:57 2007 From: gerardo699 en gmail.com (Gerardo Ayala G.) Date: Fri, 6 Jul 2007 10:56:57 -0500 Subject: Bases de Datos In-Reply-To: References: Message-ID: Hola!!! Estoy tratando de crear una base de datos en python 2.4 con pysqlite pero he tenido varios problemas alguien me podria dar alguna direccion donde conseguir un buen turorial para esto, o algun ejemplo bien completo sobre este tema preferiblemente en español. Muchas gracias de antemano.... -- Gerardo A. From mlindo en gmail.com Fri Jul 6 18:55:07 2007 From: mlindo en gmail.com (Moises Alberto Lindo Gutarra) Date: Fri, 6 Jul 2007 11:55:07 -0500 Subject: Bases de Datos In-Reply-To: References: Message-ID: <5db591c00707060955xeb87f9ev5bf85218cb421c0a@mail.gmail.com> El 6/07/07, Gerardo Ayala G. escribió: > Hola!!! > Estoy tratando de crear una base de datos en python 2.4 con pysqlite pero he > tenido varios problemas > alguien me podria dar alguna direccion donde conseguir un buen turorial para > esto, o algun ejemplo bien > completo sobre este tema preferiblemente en español. > > Muchas gracias de antemano.... > -- > Gerardo A. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > revisa lo siguiente: http://www.devshed.com/c/a/Python/Using-SQLite-in-Python/ e intenta realizarlo, cualquier problema lo mandas a la lista. -- Atentamente, Moisés Alberto Lindo Gutarra Asesor - Desarrollador Java / Open Source MSN: mlindo en tumisolutions.com From minoztro en gmail.com Sat Jul 7 09:09:32 2007 From: minoztro en gmail.com (Milton Galo Patricio Inostroza Aguilera) Date: Sat, 7 Jul 2007 03:09:32 -0400 Subject: diccionario a una lista In-Reply-To: <2c9fb0dd0707050042p44f094aelda3a46996e320b24@mail.gmail.com> References: <1183601862.2823.2.camel@debian.tocalinijoerg.com.ar> <2c9fb0dd0707050042p44f094aelda3a46996e320b24@mail.gmail.com> Message-ID: <172699c50707070009l24716589gd8a11e0817ee0a1e@mail.gmail.com> El 5/07/07, Chema Cortes escribió: > El 5/07/07, Leandro Tocalini escribió: > > tengo una consulta.... toy tomando valores de un archivo.. q se > > agruparia asi... > > ponele para el 5000 tengo los valores 30, 60, 200 ... para el 5010 tengo > > los valores 12, 10 > > entonces tengo pensado armar un diccionario y quiero hacer append de > > valores... despues me gustaria ordenar esos vectores... se puede hacer > > asi o q estructura me aconsejan??? > > Un diccionario está bien, aunque debes tener en cuenta que los > diccionarios no se pueden ordenar. La ventaja es que puedes hacer la > ordenación así de fácil: > > sorted(d.items(),key=lambda x:x[1]) como aporte humilde acá retornará una lista, para quedar con tu diccionario original ordenado, sería: d = dict( sorted(d.items(),key=lambda x:x[1]) ) > > > Aunque lo mejor sería que te crees tu propia clase derivada de 'dict': > > class MiDict(dict): > def __setitem__(self,k,v): > self.setdefault(k,[]) > self[k].append(v) > def sorted(self): > return sorted(self.items(),key=lambda x:x[1]) excelente aporte chema...gracias por siempre compartir tus conocimientos :-) > > d=MiDict() > d[5000]=30 > d[5010]=12 > d[5000]=60 > d[5000]=200 > d[5010]=10 > > print d.sorted() --> [(5010, [12, 10]), (5000, [30, 60, 200])] > > #para "resetear", basta con borrar el elemento antes > del d[5000] > d[5000]=2 > > print d.sorted() --> [(5000, [2]), (5010, [12, 10])] > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Milton Inostroza Aguilera From minoztro en gmail.com Sat Jul 7 09:16:52 2007 From: minoztro en gmail.com (Milton Galo Patricio Inostroza Aguilera) Date: Sat, 7 Jul 2007 03:16:52 -0400 Subject: =?iso-8859-1?q?=5Bgtk=2ETreeView=5D_se=F1al_de_click?= =?iso-8859-1?q?_sobre_columnas?= Message-ID: <172699c50707070016xcb81cd3y4ab17a8956fff99b@mail.gmail.com> estimados: Estoy utilizando TreeSortable para ordenar mi liststore según presione el usuario las columnas de treeview. El problema es que no puedo encontrar cual es la señal que se dispara cuando hago click en una de las columnas de mi treeview...cabe señalar que ya puse el headers-clickable en True...pero no encuentro en la documentación la señal {de seguro estoy buscando mal}. Agradezco vuestra ayuda en este tema, atentamente, -- Milton Inostroza Aguilera From arnau en ehas.org Sat Jul 7 13:29:31 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sat, 07 Jul 2007 13:29:31 +0200 Subject: [gtk.TreeView] =?ISO-8859-1?Q?se=F1al_de_cli?= =?ISO-8859-1?Q?ck_sobre_columnas?= In-Reply-To: <172699c50707070016xcb81cd3y4ab17a8956fff99b@mail.gmail.com> References: <172699c50707070016xcb81cd3y4ab17a8956fff99b@mail.gmail.com> Message-ID: <468F791B.5030904@ehas.org> Milton Galo Patricio Inostroza Aguilera escribió: > Estoy utilizando TreeSortable para ordenar mi liststore según > presione el usuario las columnas de treeview. El problema es que no > puedo encontrar cual es la señal que se dispara cuando hago click en > una de las columnas de mi treeview...cabe señalar que ya puse el > headers-clickable en True...pero no encuentro en la documentación la > señal {de seguro estoy buscando mal}. No dices qué biblioteca estás usando, supongo que PyGTK. ¿Has conectado la señal "clicked" de la columna? column = ... column.connect("clicked", on_column_clicked) From vicente.reig en gmail.com Sat Jul 7 15:54:34 2007 From: vicente.reig en gmail.com (Vicente Reig) Date: Sat, 7 Jul 2007 15:54:34 +0200 Subject: OT. vida artificial In-Reply-To: <2c9fb0dd0707050310w37dab289x99521cb866de456d@mail.gmail.com> References: <1183454657.7819.48.camel@skynet> <49414f570707030254i58fe7ab4r601fbea15c309d61@mail.gmail.com> <1183461588.7819.78.camel@skynet> <468C2D02.70404@diselpro.com> <2c9fb0dd0707050310w37dab289x99521cb866de456d@mail.gmail.com> Message-ID: <835d58c60707070654h6eea13c2p269e37618e0ec94e@mail.gmail.com> > > Hay programas que crecen, se reproducen y mueren: los virus > informáticos. Tal vez no sean inteligentes y no posean libre albedrío, > pero al menos están tan vivos como puedan estarlo el virus de la gripe > o las esporas de la penicilina. Un detalle: los virus como el de la gripe no son seres vivos, creo que sólo eran secuencias de ARN que por sí solas no hacen nada. [1] [1] http://es.wikipedia.org/wiki/Virus_ARN -- Vicente Reig Rincón de Arellano http://www.vicentereig.info/ http://www.flickr.com/photos/vitxo mvl: 679 980 411 From pych3m4 en gmail.com Sat Jul 7 20:44:43 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Sat, 7 Jul 2007 20:44:43 +0200 Subject: diccionario a una lista In-Reply-To: <172699c50707070009l24716589gd8a11e0817ee0a1e@mail.gmail.com> References: <1183601862.2823.2.camel@debian.tocalinijoerg.com.ar> <2c9fb0dd0707050042p44f094aelda3a46996e320b24@mail.gmail.com> <172699c50707070009l24716589gd8a11e0817ee0a1e@mail.gmail.com> Message-ID: <2c9fb0dd0707071144v4f16ae5dqc8454fd3b7c3fd93@mail.gmail.com> El 7/07/07, Milton Galo Patricio Inostroza Aguilera escribió: > El 5/07/07, Chema Cortes escribió: > > Un diccionario está bien, aunque debes tener en cuenta que los > > diccionarios no se pueden ordenar. La ventaja es que puedes hacer la > > ordenación así de fácil: > > > > sorted(d.items(),key=lambda x:x[1]) > > como aporte humilde acá retornará una lista, para quedar con tu > diccionario original ordenado, sería: > > d = dict( sorted(d.items(),key=lambda x:x[1]) ) El problema, como comentaba en mi respuesta, es que un diccionario no conserva el orden de creación de los elementos. > excelente aporte chema...gracias por siempre compartir tus conocimientos :-) No hay de qué. From minoztro en gmail.com Sat Jul 7 21:10:31 2007 From: minoztro en gmail.com (Milton Galo Patricio Inostroza Aguilera) Date: Sat, 7 Jul 2007 15:10:31 -0400 Subject: diccionario a una lista In-Reply-To: <2c9fb0dd0707071144v4f16ae5dqc8454fd3b7c3fd93@mail.gmail.com> References: <1183601862.2823.2.camel@debian.tocalinijoerg.com.ar> <2c9fb0dd0707050042p44f094aelda3a46996e320b24@mail.gmail.com> <172699c50707070009l24716589gd8a11e0817ee0a1e@mail.gmail.com> <2c9fb0dd0707071144v4f16ae5dqc8454fd3b7c3fd93@mail.gmail.com> Message-ID: <172699c50707071210q54209986h50f4e0523740eb92@mail.gmail.com> El 7/07/07, Chema Cortes escribió: > El 7/07/07, Milton Galo Patricio Inostroza Aguilera > escribió: > > El 5/07/07, Chema Cortes escribió: > > > Un diccionario está bien, aunque debes tener en cuenta que los > > > diccionarios no se pueden ordenar. La ventaja es que puedes hacer la > > > ordenación así de fácil: > > > > > > sorted(d.items(),key=lambda x:x[1]) > > > > como aporte humilde acá retornará una lista, para quedar con tu > > diccionario original ordenado, sería: > > > > d = dict( sorted(d.items(),key=lambda x:x[1]) ) > > El problema, como comentaba en mi respuesta, es que un diccionario no > conserva el orden de creación de los elementos. tienes toda la razón no se saca nada con la asignación que se hace en la parte superior. > > > excelente aporte chema...gracias por siempre compartir tus conocimientos :-) > > No hay de qué. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Milton Inostroza Aguilera From leandrotocalini en gmail.com Sat Jul 7 22:47:46 2007 From: leandrotocalini en gmail.com (Leandro Tocalini) Date: Sat, 07 Jul 2007 17:47:46 -0300 Subject: diccionario a una lista In-Reply-To: <172699c50707071210q54209986h50f4e0523740eb92@mail.gmail.com> References: <1183601862.2823.2.camel@debian.tocalinijoerg.com.ar> <2c9fb0dd0707050042p44f094aelda3a46996e320b24@mail.gmail.com> <172699c50707070009l24716589gd8a11e0817ee0a1e@mail.gmail.com> <2c9fb0dd0707071144v4f16ae5dqc8454fd3b7c3fd93@mail.gmail.com> <172699c50707071210q54209986h50f4e0523740eb92@mail.gmail.com> Message-ID: <1183841267.2778.5.camel@debian.tocalinijoerg.com.ar> Muchas gracias a todos. Miren alfinal lo arregle asiendo un vector dentro de otro vector ( osea tipo una matriz jaja) La idea era tomar los puntos q pasaban por una linea. entonces despues t decia en la linea 5000 hay puntos desde el 2001 hasta 2010 y tmb desde el 2050 al 2300. y asi con cada linea. El sáb, 07-07-2007 a las 15:10 -0400, Milton Galo Patricio Inostroza Aguilera escribió: > El 7/07/07, Chema Cortes escribió: > > El 7/07/07, Milton Galo Patricio Inostroza Aguilera > > escribió: > > > El 5/07/07, Chema Cortes escribió: > > > > Un diccionario está bien, aunque debes tener en cuenta que los > > > > diccionarios no se pueden ordenar. La ventaja es que puedes hacer la > > > > ordenación así de fácil: > > > > > > > > sorted(d.items(),key=lambda x:x[1]) > > > > > > como aporte humilde acá retornará una lista, para quedar con tu > > > diccionario original ordenado, sería: > > > > > > d = dict( sorted(d.items(),key=lambda x:x[1]) ) > > > > El problema, como comentaba en mi respuesta, es que un diccionario no > > conserva el orden de creación de los elementos. > > tienes toda la razón no se saca nada con la asignación que se hace en > la parte superior. > > > > > > excelente aporte chema...gracias por siempre compartir tus conocimientos :-) > > > > No hay de qué. > > _______________________________________________ > > 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 minoztro en gmail.com Sat Jul 7 23:13:40 2007 From: minoztro en gmail.com (Milton Galo Patricio Inostroza Aguilera) Date: Sat, 7 Jul 2007 17:13:40 -0400 Subject: =?ISO-8859-1?Q?Re:__[gtk.TreeView]?= =?ISO-8859-1?Q?_se=F1al_de_click_sobre_columnas?= In-Reply-To: <468F791B.5030904@ehas.org> References: <172699c50707070016xcb81cd3y4ab17a8956fff99b@mail.gmail.com> <468F791B.5030904@ehas.org> Message-ID: <172699c50707071413jcc4dc5cg574a66a2deb97a6b@mail.gmail.com> El 7/07/07, Arnau Sanchez escribió: > Milton Galo Patricio Inostroza Aguilera escribió: > > > Estoy utilizando TreeSortable para ordenar mi liststore según > > presione el usuario las columnas de treeview. El problema es que no > > puedo encontrar cual es la señal que se dispara cuando hago click en > > una de las columnas de mi treeview...cabe señalar que ya puse el > > headers-clickable en True...pero no encuentro en la documentación la > > señal {de seguro estoy buscando mal}. > > No dices qué biblioteca estás usando, supongo que PyGTK. si...se me fue indicar eso > > ¿Has conectado la señal "clicked" de la columna? > > column = ... > column.connect("clicked", on_column_clicked) no!..eso era lo que faltaba ahora ya entendí el asunto...yo buscaba por las signals de la treeview por eso que no encontraba algo que me sirviera. gracias, > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Milton Inostroza Aguilera From ruido_electronico en yahoo.es Sun Jul 8 02:47:10 2007 From: ruido_electronico en yahoo.es (ruben gomez) Date: Sun, 8 Jul 2007 02:47:10 +0200 (CEST) Subject: Tk-Text Message-ID: <672734.73138.qm@web27206.mail.ukl.yahoo.com> Gracia por vuestra ayuda, al final lo he conseguido con: self.Text.insert( 'end', text1+"\n" ) donde self.Text era un ScrolledText creado anteriormente: self.Text = ScrolledText(self, height=10) y text1 es la variable introducida en el entry. Un saludo --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From alvaro.tovar en gmail.com Sun Jul 8 16:49:37 2007 From: alvaro.tovar en gmail.com (alvaro tovar) Date: Sun, 8 Jul 2007 09:49:37 -0500 Subject: ayuda, con classes Message-ID: <8e8876a20707080749r71ed9f3dxf31883d456afd3c@mail.gmail.com> hola, estoy tratando de hacer un programa con hilos, pero tengo un problema, y no se como resolverlo, wxPython ----------------------- import wx from threading import Thread ID_ABOUT=101 ID_EXIT=110 class Dialogo(wx.Frame): control=None def __init__(self,parent,id,title): wx.Frame.__init__(self,parent,wx.ID_ANY, title, size = (200,100)) self.control = wx.TextCtrl(self, 1, style=wx.TE_MULTILINE) self.control.write('fdfda') self.control.write('fdfda') self.CreateStatusBar() # A Statusbar in the bottom of the window # Setting up the menu. filemenu= wx.Menu() filemenu.Append(wx.ID_ABOUT, "&About"," Information about this program") filemenu.AppendSeparator() filemenu.Append(wx.ID_EXIT,"E&xit"," Terminate the program") # Creating the menubar. menuBar = wx.MenuBar() menuBar.Append(filemenu,"&File") # Adding the "filemenu" to the MenuBar self.SetMenuBar(menuBar) # Adding the MenuBar to the Frame content. self.Show(True) def escribir(self,tex): self.control.write(tex) class v(Thread): frame=None def run(self): app = wx.PySimpleApp() self.frame = Dialogo(None, -1, "Sample editor") print 'corre',self.frame print 'dialogo',self.frame.__class__ print dir(self) print dir(self.frame) app.MainLoop() ------------------------------ y servidor ------------------------------ mport socket,thread from wxPython import * def leerYescribir(canal,*args): print 'ller escribir' ventana=v() ventana.start() # thread.start_new_thread(d.correr,()) # thread.start_new_thread(correr,()) print 'fdsf' print ventana.__class__,dir(ventana) print ventana.frame.__class__ ,dir(ventana.frame.__class__) thread.start_new_thread(leer, (canal,ventana.frame)) thread.start_new_thread(escribir, (canal,ventana.frame)) def leer(canal,ventana): while True: print 'a escuchar\n' print dir(ventana) ventana.control.write('de: '+canal.recv(100)+'\n') ------------------------ corro el servidor y me sale esto Unhandled exception in thread started by Traceback (most recent call last): File "E:\aat\eclipse-SDK-3.2-win32\eclipse\workspace\chat\src\servidor.py", line 20, in leer a enviar escribe : ventana.control.write('de: '+canal.recv(100)+'\n') AttributeError: 'NoneType' object has no attribute 'control' dice que ventana no tiene el atributo control y que es de tipo NoneType, pero no deberia, ventana es de tipo diaogo. en leerYescribir ventana es de tipo v, y v.frame es Dialogo. gracias From nan_lo2001 en yahoo.com Sun Jul 8 17:13:48 2007 From: nan_lo2001 en yahoo.com (Nan loz) Date: Sun, 8 Jul 2007 08:13:48 -0700 (PDT) Subject: (sin asunto) Message-ID: <309931.12093.qm@web33309.mail.mud.yahoo.com> Hola a todos, necesito encontrar un modulo para optimizacion de funciones en python. Hasta ahora no he encontrado nada, si alguien conoce alguno les agradeceria que me orienten un poco. Nancy --------------------------------- Get the Yahoo! toolbar and be alerted to new email wherever you're surfing. From pych3m4 en gmail.com Sun Jul 8 17:39:30 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Sun, 8 Jul 2007 17:39:30 +0200 Subject: mod_python In-Reply-To: <4536.10.14.17.145.1183735813.squirrel@correo.ucf.edu.cu> References: <4536.10.14.17.145.1183735813.squirrel@correo.ucf.edu.cu> Message-ID: <2c9fb0dd0707080839g2dea6ef2hb69e81230b500c84@mail.gmail.com> El 6/07/07, inf200468 en ucf.edu.cu escribió: > tengo la sgte duda, > para hacer una cgi con python , necesito instalar el mod_python ????? Para nada. El mod_python es un módulo para apache, que ejecuta el script de python dentro de apache. Los cgis, en cambio, se ejecutan como un proceso de sistema cuyas entradas y salidas están redirigidas para su envío al cliente http. From francisco.palm en gmail.com Sun Jul 8 17:40:19 2007 From: francisco.palm en gmail.com (Francisco Palm) Date: Sun, 8 Jul 2007 11:40:19 -0400 Subject: (sin asunto) In-Reply-To: <309931.12093.qm@web33309.mail.mud.yahoo.com> References: <309931.12093.qm@web33309.mail.mud.yahoo.com> Message-ID: El 8/07/07, Nan loz escribió: > Hola a todos, necesito encontrar un modulo para optimizacion de funciones en python. Hasta ahora no he encontrado nada, si alguien conoce alguno les agradeceria que me orienten un poco. > Nancy Qué tipo de funciones? Ya revisaste SciPy? http://www.scipy.org Saludos F. Palm -- -------------------------------------- fpalm en ula.ve francisco.palm en gmail.com cel: 0414 5109177 tel: 0274 2712106 "Cuando uno es joven, debe ser revolucionario, no sólo rebelarse... ser psicológicamente revolucionario significa no aceptar ningún modelo." K From pych3m4 en gmail.com Sun Jul 8 17:43:44 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Sun, 8 Jul 2007 17:43:44 +0200 Subject: apache y python In-Reply-To: <1574.10.14.17.145.1183728821.squirrel@correo.ucf.edu.cu> References: <1075.10.14.17.145.1183664896.squirrel@correo.ucf.edu.cu> <2c9fb0dd0707060016l57f6ae29q51b6805db7744855@mail.gmail.com> <1574.10.14.17.145.1183728821.squirrel@correo.ucf.edu.cu> Message-ID: <2c9fb0dd0707080843p386593c7g8b795fec6b48830b@mail.gmail.com> El 6/07/07, inf200468 en ucf.edu.cu escribió: Este script no parece ser el problema. ¿Cómo lo ejecutas?¿le has dado permiso de ejecución al usuario con el que se ejecuta apache? Mira bien la configuración apache, en los logs de error que genera y pasa la parte del formulario que invoca a éste cgi. From pych3m4 en gmail.com Sun Jul 8 17:48:43 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Sun, 8 Jul 2007 17:48:43 +0200 Subject: apache y python In-Reply-To: <62f6b87986e3465e5b3d66ab72193c1d@mx1.vn.pri.jovenclub.cu> References: <1574.10.14.17.145.1183728821.squirrel@correo.ucf.edu.cu> <62f6b87986e3465e5b3d66ab72193c1d@mx1.vn.pri.jovenclub.cu> Message-ID: <2c9fb0dd0707080848u1dfbd8c8i269fd404a46ddd1e@mail.gmail.com> El 7/07/07, Roylan Suarez Reyes escribió: > Hola colegas > > > ahora que estamos es esto de los CGI, estoy interesado en aprender un poco CGI > > alguien conoce alguna URl donde se pueda aprender un poco En la web oficial de python tienes unas cuantas referencias: http://wiki.python.org/moin/CgiScripts From arnau en ehas.org Sun Jul 8 17:57:21 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sun, 08 Jul 2007 17:57:21 +0200 Subject: (sin asunto) In-Reply-To: References: <309931.12093.qm@web33309.mail.mud.yahoo.com> Message-ID: <46910961.1050509@ehas.org> Francisco Palm escribió: > El 8/07/07, Nan loz escribió: >> Hola a todos, necesito encontrar un modulo para optimizacion de >> funciones en python. Hasta ahora no he encontrado nada, si alguien >> conoce alguno les agradeceria que me orienten un poco. >> Nancy > > Qué tipo de funciones? > > Ya revisaste SciPy? > http://www.scipy.org Pues yo entendí que quería acelerar la velocidad de las funciones (?). A ver si nos lo aclara. Por si acaso: profile: Para detectar cuellos de botella http://docs.python.org/lib/profile.html psyco: Para acelerar el código en procesadores i386 http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/ pyrex: Lenguaje parecido a Python para crear módulos compilados (y rápidos) http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/ From arnau en ehas.org Sun Jul 8 18:11:15 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sun, 08 Jul 2007 18:11:15 +0200 Subject: (sin asunto) In-Reply-To: <46910961.1050509@ehas.org> References: <309931.12093.qm@web33309.mail.mud.yahoo.com> <46910961.1050509@ehas.org> Message-ID: <46910CA3.6070203@ehas.org> Arnau Sanchez escribió: > psyco: Para acelerar el código en procesadores i386 > http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/ este... http://psyco.sourceforge.net/ From dmunhiz en gmail.com Mon Jul 9 08:57:29 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Mon, 09 Jul 2007 08:57:29 +0200 Subject: Entorno visual In-Reply-To: <771741b20707051018h4c70475am9e097bfa818e1d7d@mail.gmail.com> References: <61290ece0707040025t4511de5bpbd7c10f020e4e715@mail.gmail.com> <1183572222.3353.30.camel@localhost.localdomain> <468BE2E4.2000608@gmail.com> <771741b20707051018h4c70475am9e097bfa818e1d7d@mail.gmail.com> Message-ID: <4691DC59.3030500@gmail.com> Hola: Ya tenía la versión 0.6.0 hoy he bajado una nueva actualización. Ya contaré que tal. Como puedo ejacutarlo para ver la salida de consola? (en linux) así a priori se me ocurre ejecutarlo desde otro editor (por ejemplo el ulipad) Hai forma mejor? Saludos Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Mario Lacunza escribiu: > Bajate la version CVS para q no tengas esa falla y casualmente acaba de > salir la version 0.6. > > En cuanto a la pregunta usa wxPython su documentacion a manera de ejemplos > practicos es inmejorable, muchas veces solo tienes q ubicar el control q > necesites usar y copy&paste el codigo referente, a parte hay un libro del > mismo autor wxPython in Action q es excelente. La lista tiene un movimiento > enorme y el mismo Robin contesta las preguntas.... > > > El día 4/07/07, dmunhiz escribió: >> >> Ola: >> Si optas por las wx. el boa construcotor puede ayudarte, tiene un >> diseñador visual y también "autocompletado" que va bastante bien, >> paradojicamente funciona mejor en windows que en linux (por lo menos >> ubuntu (falla y termina)). >> Saludos >> >> >> Remitente: >> Daniel Muñiz Fontoira >> Eu uso software libre [1] >> [1]http://www.gnu.org/philosophy/free-sw.gl.html >> >> >> Sergio Fernández escribiu: >> > Hola, >> > >> >> Llevo varios años (algo así como 5) programando en python, pero >> siempre >> en >> >> entorno MSDOS. Programo para producción, así que nunca he necesitado >> más. El >> >> caso es que me gustaría empezar a haer algo en entorno visual. La >> pregunta >> >> que quiero haceros es bastante simple, ¿por dónde empiezo?. >> > >> > PyGTK [1] es muy sencillo, sobre todo usando diseñadores tipo Glade [2] >> > o Gazpacho [3]. >> > >> >> Como referencias, trabajo bajo entorno Windows, y conozco bien Visual >> >> Basic. y estoy trabajando con python 2.3.5. >> > >> > Si estas acostumbrado a VisualStudio, quizás puedas usar WinForms con >> > IronPython [4]; yo no tengo experiencia, pero no parece difícil [5]. >> > >> > Un saludo, >> > >> > [1] http://www.pygtk.org/ >> > [2] http://glade.gnome.org/ >> > [3] http://gazpacho.sicem.biz/ >> > [4] http://www.codeplex.com/IronPython >> > [5] http://www.codeproject.com/useritems/IronPython_NET_20.asp >> > >> > >> > >> > >> ------------------------------------------------------------------------ >> > >> > _______________________________________________ >> > 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 kh_alatar en telefonica.net Mon Jul 9 15:07:24 2007 From: kh_alatar en telefonica.net (Alatar) Date: Mon, 9 Jul 2007 15:07:24 +0200 Subject: Python en macbook Message-ID: <7807DD22-3325-435F-900B-58FEF1D5AEDA@telefonica.net> Salu2. Finalmente, y tras pensármelo bastante, he caído en la tentación y al tener que renovarme el portátil me he decantado por un macbook. Como soy completamente neófito en este sistema, me dirijo a lista por si alguien pudiera aconsejarme respecto a que vía tomar. Por ejemplo, hasta ahora he estado usando las pygtk para hacer mis cositas en win y ubuntu. No sé si quizá sea más aconsejable pasarme a las wx para trabajar sobre macosx. ¿Alguna opinión o consejo al respecto? Así mismo, agradecería cualquier otra sugerencia o consideración que alguien más experimentado me pueda hacer respecto al uso de python sobre macosx. Gracias a todos por adelantado. From maengora en gmail.com Mon Jul 9 19:23:58 2007 From: maengora en gmail.com (=?ISO-8859-1?Q?Manuel_Enrique_Gonz=E1lez_Ram=EDrez?=) Date: Mon, 9 Jul 2007 12:23:58 -0500 Subject: ImportError: No module named pygtk Message-ID: Salu2 a todos. Estoy tratando de aprender ya la parte grafica de la programacion con Python y para ello he instalado lo siguiente: - wxWidgets 2.8.4 - wxGlade 2.5 - Glade 2.12.1 (Las estoy trabajando en guin2 con Python 2.5) Tambien tengo instaladas la siguientes herramientas - pygtk-2.10.4-1.win32-py2.5 - MySQL-python-1.2.2.win32-py2.5 (muy importante para mi este modulo) Como lo que estoy haciendo es aprender, recurri a varios manuales que se encuentran en la web, entre ellos uno en http://lordtaran.eniac2000.com/ y el otro "el mas completo" http://www.pygtk.org/pygtk2tutorial-es/ch-Introduction.html He tratado de hacer una ventana con un botón que al ser presionado muestre el mensaje (aunque sea por consola) "Hola Mundo" (poco original pero bueno...que asi aprendemos) siguiendo dichos manuales pero no he podido. Lo estoy intentando con el Glade ya que me permite ubicar los widgets de una forma mas sencilla en cualquier parte del formulario (aun no se como se hace con wxGlade). Al ejecutar el script de python siempre me aparece este mensaje: Traceback (most recent call last): File "C:\Documents and Settings\Manuel\Escritorio\ejmeplosglade\Pyholamundo.py", line 3, in import pygtk ImportError: No module named pygtk >>> Es como si no tuviera instalado el pygtk (y esto es lo que instale pygtk-2.10.4-1.win32-py2.5). En donde tengo el error, que debo hacer???? Gracias?? From cloudneozero en gmail.com Tue Jul 10 00:29:02 2007 From: cloudneozero en gmail.com (Ark) Date: Mon, 9 Jul 2007 17:29:02 -0500 Subject: Ayuda con plugins Message-ID: <9dd22c9c0707091529r3705aa31me4f88382cb2cc02a@mail.gmail.com> Hola Necesito ayuda con lo siguiente: Quiero realizar una aplicación en python (obviamente) que sea extensible por medio de plugins. La aplicación es un editor. La ayuda que necesito es cualquiera que me puedan dar, sobre todo documentación sobre el tema, porque aunque he buscado mucho, lo que he encontrado no me da toda la información que necesito. He encontrado algunos howtos para manajar una arquitectura de plugins, pero no son lo suficientemente profundos para una apliacación compleja. Muchos de los documentos que he encontrado hablan sobre Trac, una aplicación open source que utiliza una muy buena arquitectura de plugins, y en verdad que es muy buena, pero no quiero basarme en ella, sino que necesito documentación para llegar a mi propia idea sobre plugins. Gracias por la ayuda From py en ch3m4.org Tue Jul 10 03:03:15 2007 From: py en ch3m4.org (Chema Cortes) Date: Tue, 10 Jul 2007 03:03:15 +0200 Subject: Ayuda con plugins In-Reply-To: <9dd22c9c0707091529r3705aa31me4f88382cb2cc02a@mail.gmail.com> References: <9dd22c9c0707091529r3705aa31me4f88382cb2cc02a@mail.gmail.com> Message-ID: <200707100303.16182.py@ch3m4.org> El Martes, 10 de Julio de 2007 00:29, Ark escribió: > Muchos de los documentos que he encontrado hablan sobre Trac, una > aplicación open source que utiliza una muy buena arquitectura de plugins, y > en verdad que es muy buena, pero no quiero basarme en ella, sino que > necesito documentación para llegar a mi propia idea sobre plugins. En los desarrollos de software libre se dice que la mejor documentación que puedes tener es el propio código fuente. Si no te quieres basar en Trac, perfecto; pero no por éso has de renunciar a estudiar su código. No esperes encontrar mejor documentación, ni que alguien te haya hecho un manual detallado de estas técnicas. Editores con plugins de python existen algunos como ,por ejemplo, vim y jedit. From kernel.no.found en gmail.com Tue Jul 10 03:13:42 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Tue, 10 Jul 2007 03:13:42 +0200 Subject: Dotpy.net ABIERTO! Message-ID: <117d6e170707091813s509e935ai5cb5ab3e75a9a192@mail.gmail.com> Queridos Pythoneros, quiero daros la bienvenida al nuevo Dotpy Planetario y Wiki Me gustaria que lo explotarais y me comentarais si algo esta mal o falla, la verdad que era la primera vez que preparaba un moinmoin y un planetplanet :P Y como no, empezar a innagurar el planet con vuestros blogs y colaborar con el dotpy, todo es bienvenido. Bueno, es tarde y necesito dormir, ya me contais! gracias a todos y sobretodo gracias a ebooz.com quien me ha donado el hosting. Un saludo! -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com From pych3m4 en gmail.com Tue Jul 10 03:16:26 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 10 Jul 2007 03:16:26 +0200 Subject: ImportError: No module named pygtk In-Reply-To: References: Message-ID: <2c9fb0dd0707091816y6320c387q2fa7c84dd0a14f85@mail.gmail.com> El 9/07/07, Manuel Enrique González Ramírez escribió: > Al ejecutar el script de python siempre me aparece este mensaje: > Traceback (most recent call last): > File "C:\Documents and > Settings\Manuel\Escritorio\ejmeplosglade\Pyholamundo.py", line 3, in > > import pygtk > ImportError: No module named pygtk > >>> > > Es como si no tuviera instalado el pygtk (y esto es lo que instale > pygtk-2.10.4-1.win32-py2.5). > > En donde tengo el error, que debo hacer???? Sólo se me ocurre que se esté ejecutando otra versión de python instalada. Revisa el PATH, comprueba la versión de python y lista los módulos que estén instalados (help("modules")) From joana_mendaro en hotmail.com Tue Jul 10 10:11:59 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Tue, 10 Jul 2007 08:11:59 +0000 Subject: BD desde python Message-ID: Hola chicos!!!!!! He hecho un algoritmo que lee un archivo y solamente mete la linea del archivo en una tabla de python si esta no esta ya dentro: import MySQLdb # -*- coding: cp1252 -*- def rellenarTablaReceta(): db = MySQLdb.connect(host='localhost', user='root', passwd='joana', db='recetario') cursor = db.cursor() #aquí abres el fichero y construyes el "insert into" #f=open('receta.txt','r') lineas=(l.rstrip('\n') for l in file('receta.txt',"rU")) l=list(lineas) for i in range (len(l)): fila=l[i].split(' ') idReceta=int(fila[0]) nombreReceta=fila[1] preparacion=fila[2] cursor.execute("""SELECT * FROM receta WHERE idReceta=%s""",(idReceta)) q=cursor.fetchone() if q=='None': cursor.execute("""INSERT INTO receta (idReceta, nombreReceta, preparacion)VALUES (%s, %s, %s)""", (idReceta,nombreReceta,preparacion)) db.commit() El caso es que no me mete nada en la tabla, porque hace esto???Sabe alguien decirme que estoy haciendo mal?? _________________________________________________________________ Busca a la vez en Internet, en directorios, en enciclopedias... [1]Atrévete con el nuevo MSN Search References 1. http://g.msn.com/8HMBESES/2740??PS=47575 From jjrojoc en hotmail.com Tue Jul 10 14:15:07 2007 From: jjrojoc en hotmail.com (=?iso-8859-1?B?SnVhbiBKb3PpIFJvam8=?=) Date: Tue, 10 Jul 2007 12:15:07 +0000 Subject: BD desde python In-Reply-To: References: Message-ID: >From: "joana salgado gomez" >Reply-To: La lista de python en castellano >To: python-es en aditel.org >Subject: [Python-es] BD desde python >Date: Tue, 10 Jul 2007 08:11:59 +0000 > > > Hola chicos!!!!!! > > He hecho un algoritmo que lee un archivo y solamente mete la linea del > archivo en una tabla de python si esta no esta ya dentro: > > import MySQLdb > # -*- coding: cp1252 -*- > def rellenarTablaReceta(): > db = MySQLdb.connect(host='localhost', user='root', > passwd='joana', db='recetario') > cursor = db.cursor() > #aquí abres el fichero y construyes el "insert into" > #f=open('receta.txt','r') > lineas=(l.rstrip('\n') for l in file('receta.txt',"rU")) > l=list(lineas) > > for i in range (len(l)): > fila=l[i].split(' ') > idReceta=int(fila[0]) > nombreReceta=fila[1] > preparacion=fila[2] > cursor.execute("""SELECT * FROM receta WHERE > idReceta=%s""",(idReceta)) > q=cursor.fetchone() > > > if q=='None': > cursor.execute("""INSERT INTO receta (idReceta, > nombreReceta, preparacion)VALUES (%s, %s, %s)""", > (idReceta,nombreReceta,preparacion)) > db.commit() > > > > El caso es que no me mete nada en la tabla, porque hace esto???Sabe > alguien decirme que estoy haciendo mal?? > Has probado a añadir unos prints a ver donde se te quedan los datos vacíos para saber donde está el hueco de datos? _________________________________________________________________ Acepta el reto MSN Premium: Correos más divertidos con fotos y textos increíbles en MSN Premium. Descárgalo y pruébalo 2 meses gratis. http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_correosmasdivertidos From elizundia en fitbak.com Tue Jul 10 10:44:02 2007 From: elizundia en fitbak.com (Ekaitz Lizundia) Date: Tue, 10 Jul 2007 10:44:02 +0200 Subject: BD desde python In-Reply-To: References: Message-ID: <469346D2.8070908@fitbak.com> Yo no entiendo mucho de esto, pero por si acaso yo no le pondria a la variable de cursor el nombre "cursor", que igual no tiene importancia, pero por si acaso. cursor.execute("""SELECT * FROM receta WHERE idReceta=%s""",(idReceta)) Yo esto lo suelo poner cursor.execute("""SELECT * FROM receta WHERE idReceta='%s'""",(idReceta)) No se si esas comillas arreglaran algo... From vitojph en gmail.com Tue Jul 10 13:16:41 2007 From: vitojph en gmail.com (Victor Peinado) Date: Tue, 10 Jul 2007 13:16:41 +0200 Subject: urllib2.urlopen y unicode Message-ID: ¡Hola a todos! Estoy tratando de hacer un sencillo wrapper para el traductor automático Babelfish (http://babelfish.altavista.com). El mecanismo es sencillo: capturo el resultado de llamar a la página web con una serie de parámetros (lenguas de origen y destino, cadena a traducir, etc), los parseo con expresiones regulares para extraer la traducción y devuelvo la información que me interesa. Os pego el código simplificado. La página web que capturo está en utf-8, la misma codificación que mi script y mi sistema. Sin embargo, parece ser que o bien urllib2.urlopen o bien el método readlines() en algún momento transforman todo a cadena sin interpretar correctamente algunos caracteres, y me salta excepciones de tipo UnicodeDecodeError. ¿Hay alguna forma de preservar el contenido de la página capturada en su formato original? Gracias de antemano y un saludo. #!/usr/bin/env python # -*- coding: utf-8 -*- import re import urllib import urllib2 class BabelFishWrapper(object): transRe = re.compile(''' self.text += line translation = self.transRe.search(self.text).groups()[0] return translation if __name__ == u"__main__": bf1 = BabelFishWrapper(u"es_en") s1 = u"El niño corre por la calle" # como entrada tiene caracteres no ascii s2 = u"el caballo es azul" # sin problemas print s1, "->", bf1.translate(s1) print s2, "->", bf1.translate(s2) bf2 = BabelFishWrapper(u"en_es") s3 = u"I like fish" # sin problemas s4 = u"The kid is running down the street" # devuelve caracteres no ascii print s3, "->", bf2.translate(s3) print s4, "->", bf2.translate(s4) -- Víctor Peinado | NLP & IR Group - UNED | http://nlp.uned.es/~victor Tel (+34) 91 398 8106 Skype/GTalk: vitojph ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Tue Jul 10 15:15:24 2007 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: Tue, 10 Jul 2007 15:15:24 +0200 Subject: BD desde python In-Reply-To: References: Message-ID: <1184073324.5565.16.camel@savin> El mar, 10-07-2007 a las 08:11 +0000, joana salgado gomez escribió: > Hola chicos!!!!!! > > He hecho un algoritmo que lee un archivo y solamente mete la linea del > archivo en una tabla de python si esta no esta ya dentro: > > > if q=='None': q nunca va a ser la cadena None. Tendrías que poner: if q is None: if q == None: if not q: Cada una de ésas tiene sus matices. PS (idReceta) no es una tupla. sería más correcto poner (idReceta,) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jvicentevilla en yahoo.es Tue Jul 10 15:49:53 2007 From: jvicentevilla en yahoo.es (vicente villaveces) Date: Tue, 10 Jul 2007 15:49:53 +0200 (CEST) Subject: Referencia de variables enviadas con post o get Message-ID: <20070710134953.2831.qmail@web27312.mail.ukl.yahoo.com> Saludos, Estoy tratando de realizar una búsqueda en una base de datos en postgres por medio de un valor de una variable enviada por el método post desde un formulario, y no se como referenciar la variable en python para que no se pierda el valor enviado, por ejemplo en php las variables enviadas se referencian asi: $_Post[nombre] o $_get[nombre], pero en python no se como se hace, agradezco de antemano la ayuda que puedan darme. "Que viva el sotfware libre y los hombres que lo liberan" José Vicente Villaveces. --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From nan_lo2001 en yahoo.com Tue Jul 10 15:57:45 2007 From: nan_lo2001 en yahoo.com (Nan loz) Date: Tue, 10 Jul 2007 06:57:45 -0700 (PDT) Subject: (sin asunto) Message-ID: <648871.65972.qm@web33308.mail.mud.yahoo.com> Gracias!! creo que en scipy voy a encontrar lo que necesito. Si no, los volvere a molestar Gracias por la ayuda!! Nancy Francisco Palm escribió: > El 8/07/07, Nan loz escribió: >> Hola a todos, necesito encontrar un modulo para optimizacion de >> funciones en python. Hasta ahora no he encontrado nada, si alguien >> conoce alguno les agradeceria que me orienten un poco. >> Nancy > > Qué tipo de funciones? > > Ya revisaste SciPy? > http://www.scipy.org Pues yo entendí que quería acelerar la velocidad de las funciones (?). A ver si nos lo aclara. Por si acaso: --------------------------------- Now that's room service! Choose from over 150,000 hotels in 45,000 destinations on Yahoo! Travel to find your fit. From fquintana en codesyntax.com Tue Jul 10 10:50:12 2007 From: fquintana en codesyntax.com (Nando Quintana) Date: Tue, 10 Jul 2007 10:50:12 +0200 Subject: BD desde python In-Reply-To: References: Message-ID: <1184057412.4969.1.camel@localhost> Aupi: > if q=='None': > cursor.execute("""INSERT INTO receta (idReceta, > nombreReceta, preparacion)VALUES (%s, %s, %s)""", > (idReceta,nombreReceta,preparacion)) > db.commit() prueba comparando con None en lugar de con 'None': if q == None: Agur, Nando. -- http://www.nandoquintana.com/contact ------------ 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: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From vitojph en gmail.com Tue Jul 10 16:27:37 2007 From: vitojph en gmail.com (Victor Peinado) Date: Tue, 10 Jul 2007 16:27:37 +0200 Subject: urllib2.urlopen y unicode In-Reply-To: References: Message-ID: Me auto-respondo. Por el momento, ha bastado con sustituir la línea: self.text += line por: self.text += unicode(line, "iso-8859-15") On 7/10/07, Victor Peinado wrote: > ¡Hola a todos! > > Estoy tratando de hacer un sencillo wrapper para el traductor > automático Babelfish (http://babelfish.altavista.com). El mecanismo es > sencillo: capturo el resultado de llamar a la página web con una serie > de parámetros (lenguas de origen y destino, cadena a traducir, etc), > los parseo con expresiones regulares para extraer la traducción y > devuelvo la información que me interesa. Os pego el código > simplificado. > > La página web que capturo está en utf-8, la misma codificación que mi > script y mi sistema. Sin embargo, parece ser que o bien > urllib2.urlopen o bien el método readlines() en algún momento > transforman todo a cadena sin interpretar correctamente algunos > caracteres, y me salta excepciones de tipo UnicodeDecodeError. > > ¿Hay alguna forma de preservar el contenido de la página capturada en > su formato original? Gracias de antemano y un saludo. > > > #!/usr/bin/env python > # -*- coding: utf-8 -*- > > import re > import urllib > import urllib2 > > class BabelFishWrapper(object): > transRe = re.compile(''' value="(.+)"> URI = u"http://world.altavista.com/tr" > > def __init__(self, translation_mode): > self.translation_mode = translation_mode > self.source_lang, self.target_lang = translation_mode.split(u"_") > self.args = dict(lp=self.translation_mode, tt=u"urltext", > intl=1, doit="done") > > def translate(self, text): > self.args[u"urltext"] = text > self.values = urllib.urlencode(self.args) > req = urllib2.Request(self.URI, self.values) > response = urllib2.urlopen(req) > self.text = u"" > for line in response.readlines(): > # aquí line es > self.text += line > > translation = self.transRe.search(self.text).groups()[0] > return translation > > > if __name__ == u"__main__": > bf1 = BabelFishWrapper(u"es_en") > s1 = u"El niño corre por la calle" # como entrada tiene > caracteres no ascii > s2 = u"el caballo es azul" # sin problemas > print s1, "->", bf1.translate(s1) > print s2, "->", bf1.translate(s2) > > bf2 = BabelFishWrapper(u"en_es") > s3 = u"I like fish" # sin problemas > s4 = u"The kid is running down the street" # devuelve caracteres no ascii > print s3, "->", bf2.translate(s3) > print s4, "->", bf2.translate(s4) > > > -- > Víctor Peinado | NLP & IR Group - UNED | http://nlp.uned.es/~victor > Tel (+34) 91 398 8106 > Skype/GTalk: vitojph > -- Víctor Peinado | NLP & IR Group - UNED | http://nlp.uned.es/~victor Tel (+34) 91 398 8106 Skype/GTalk: vitojph ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gerardo en computo-industrial.com.mx Tue Jul 10 16:56:11 2007 From: gerardo en computo-industrial.com.mx (Gerardo Juarez) Date: Tue, 10 Jul 2007 10:56:11 -0400 (EDT) Subject: Referencia de variables enviadas con post o get In-Reply-To: <20070710134953.2831.qmail@web27312.mail.ukl.yahoo.com> References: <20070710134953.2831.qmail@web27312.mail.ukl.yahoo.com> Message-ID: Si entendi bien, quieres extraer el valor de un campo de una forma en HTML. Eso se haria asi: import cgi forma = cgi.FieldStorage() # suponemos que tu campo se llamaba "nombre" nombre = forma["nombre"].value() En el caso de algunos campos ("checkboxes" por ejemplo) si no los marcan la forma podria no regresar el campo. En tal caso, dentro de un try usas ese valor; si existe, le das a la variable tu valor interno para verdadero. Si no existe, no la devolvio la forma porque no la seleccionaron, y en tal caso le das tu valor interno para falso: try: campo = forma["si_o_no"].value() # podria devolver cualquier cosa campo = 1 # yo voy a usar 1, como == true except IndexError: campo = 0 # no lo seleccionaron # estoy usando 0 como == false if campo != 0: # marcado como activo ... else: ... Espero sea de utilidad, Gerardo On Tue, 10 Jul 2007, vicente villaveces wrote: > Saludos, Estoy tratando de realizar una búsqueda en una base de datos en postgres por medio de un valor de una variable enviada por el método post desde un formulario, y no se como referenciar la variable en python para que no se pierda el valor enviado, por ejemplo en php las variables enviadas se referencian asi: $_Post[nombre] o $_get[nombre], pero en python no se como se hace, agradezco de antemano la ayuda que puedan darme. > > > "Que viva el sotfware libre y los hombres que lo liberan" > > José Vicente Villaveces. > > > > --------------------------------- > > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y móviles desde 1 céntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From juatman_2000 en yahoo.es Tue Jul 10 19:13:43 2007 From: juatman_2000 en yahoo.es (Juan M.) Date: Tue, 10 Jul 2007 19:13:43 +0200 Subject: Dotpy.net ABIERTO! References: <117d6e170707091813s509e935ai5cb5ab3e75a9a192@mail.gmail.com> Message-ID: <002301c7c315$ada63930$5d8ae050@equipo> Muchas gracias Juan José. Era mi página favorita en español, entre otras cosas porque siempre estaba al día de las novedeades de Python. ¡Felicidades por tu trabajo!. :-) ----- Original Message ----- From: "Juan José Alonso." To: Sent: Tuesday, July 10, 2007 3:13 AM Subject: [Python-es] Dotpy.net ABIERTO! Queridos Pythoneros, quiero daros la bienvenida al nuevo Dotpy Planetario y Wiki Me gustaria que lo explotarais y me comentarais si algo esta mal o falla, la verdad que era la primera vez que preparaba un moinmoin y un planetplanet :P Y como no, empezar a innagurar el planet con vuestros blogs y colaborar con el dotpy, todo es bienvenido. Bueno, es tarde y necesito dormir, ya me contais! gracias a todos y sobretodo gracias a ebooz.com quien me ha donado el hosting. Un saludo! -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pergonzales en gmail.com Tue Jul 10 19:55:44 2007 From: pergonzales en gmail.com (Percy Gonzales) Date: Tue, 10 Jul 2007 13:55:44 -0400 Subject: Python y POA Message-ID: <2495165b0707101055v5915378eh7c373655467f4a43@mail.gmail.com> Hola, desearia saber si python tiene la posibilidad de poder ser utilizado como herramienta para la programacion orientada a aspectos, y si alguno tubiese algun ejemplo o material al respecto se lo agradeceria atte Percy From arnau en ehas.org Tue Jul 10 19:57:24 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 10 Jul 2007 19:57:24 +0200 Subject: FAQ de Python-es In-Reply-To: References: <46929182.6040903@ehas.org> Message-ID: <4693C884.4000103@ehas.org> Buenas! Tras una semana de intenso trabajo (según me dicen quienes lo ejecutaron), podemos anunciar con alegría y alborozo la presentación en sociedad del FAQ de la lista: http://pythonesfaq.k-rolus.net/ Como veis, hay una buena cantidad de preguntas y sólo unas pocas respuestas (muchas sólo con enlaces), ahora toca ir completándolo entre todos. El primer apartado explica cómo colaborar, es realmente sencillo: http://pythonesfaq.k-rolus.net/#index1h2 Tened en cuenta que el dominio se ha creado hace escasos días, por lo que en algunos DNS puede no haberse propagado aún, paciencia en estos casos. Es obligado decir que Carlos Galisteo ha hecho el trabajo duro (sin olvidar a Rafael Villar, que ha aportado buenas ideas). Cualquier sugerencia acerca de cómo mejorarlo será, por supuesto, bienvenida. saludos arnau pd: Seguimos a la espera de que en Aditel den señales de vida y veamos la posibilidad de migrar el wiki a su servidor (donde debería estar...) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rbaquerizo en ehas.org Tue Jul 10 20:10:03 2007 From: rbaquerizo en ehas.org (Reynaldo Baquerizo Micheline) Date: Tue, 10 Jul 2007 18:10:03 +0000 Subject: [Fwd: Python y POA] Message-ID: <4693CB7B.1020403@ehas.org> No tengo idea de POA, pero he encontrado estos links que puedan ser de utilidad, ojala te sirvan: http://zope.org/Members/pje/Wikis/TransWarp/AOPTutorial/HomePage http://pythius.sourceforge.net/ http://springpython.python-hosting.com/wiki/AspectOrientedProgramming http://mail.python.org/pipermail/python-list/2000-July/042159.html Saludos, Reynaldo -- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From maengora en gmail.com Tue Jul 10 21:08:43 2007 From: maengora en gmail.com (=?ISO-8859-1?Q?Manuel_Enrique_Gonz=E1lez_Ram=EDrez?=) Date: Tue, 10 Jul 2007 14:08:43 -0500 Subject: ImportError: No module named pygtk Message-ID: No creo que sea la versión del Python ya que el módulo coincide con la del Python *****Python 2.5 (r25:51908, Mar 9 2007, 17:40:28) [MSC v.1310 32 bit (Intel)] on win32****** Sigo sin saber porque el error al cargar el modulo de pygtk From minoztro en gmail.com Tue Jul 10 22:13:44 2007 From: minoztro en gmail.com (Milton Galo Patricio Inostroza Aguilera) Date: Tue, 10 Jul 2007 16:13:44 -0400 Subject: ImportError: No module named pygtk In-Reply-To: References: Message-ID: <172699c50707101313qfb94a2eofd8f675788bc032d@mail.gmail.com> El 10/07/07, Manuel Enrique González Ramírez escribió: > No creo que sea la versión del Python ya que el módulo coincide con la del > Python > *****Python 2.5 (r25:51908, Mar 9 2007, 17:40:28) [MSC v.1310 32 bit > (Intel)] on win32****** > > Sigo sin saber porque el error al cargar el modulo de pygtk Por favor trata de responder en el mismo hilo y no crear uno nuevo. Puedes verficar si el archivo pygtk.py se encuentra en la siguiente carpeta [1] [1] C:\Python25\Lib\site-packages Tambien puedes pegar el resultado del siguiente comando: import sys print sys.path Que tengas un buen día. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Milton Inostroza Aguilera From drbobus en gulic.org Tue Jul 10 23:15:53 2007 From: drbobus en gulic.org (Dr. Bobus) Date: Tue, 10 Jul 2007 22:15:53 +0100 Subject: BD desde python In-Reply-To: <1184073324.5565.16.camel@savin> References: <1184073324.5565.16.camel@savin> Message-ID: <20070710221553.10608022@localhost> El Tue, 10 Jul 2007 15:15:24 +0200 Marcos Sánchez Provencio dijo: > > > > if q=='None': > > q nunca va a ser la cadena None. Tendrías que poner: > > if q is None: > if q == None: > if not q: > > Cada una de ésas tiene sus matices. > Y ya que estamos.... cuales son los matices? Gracias Saludos Dr. Bobus. ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: no disponible URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Wed Jul 11 01:58:11 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 11 Jul 2007 01:58:11 +0200 Subject: ImportError: No module named pygtk In-Reply-To: References: Message-ID: <2c9fb0dd0707101658g11b2dc6es909d8bcfd0f0e266@mail.gmail.com> El 10/07/07, Manuel Enrique González Ramírez escribió: > No creo que sea la versión del Python ya que el módulo coincide con la del > Python > *****Python 2.5 (r25:51908, Mar 9 2007, 17:40:28) [MSC v.1310 32 bit > (Intel)] on win32****** > > Sigo sin saber porque el error al cargar el modulo de pygtk Si revisas mi respuesta, yo no te he dicho que comprobases la versión de pygtk. Asegúrate que estás ejecutando la versión de python correcta y que esta versión ve el paquete que has instalado. Y si nos pusieras algo más de información que nos pueda servir de pista, aún podríamos ayudarte mejor. Por ejemplo, ejecuta el traceador (python -v) a ver qué te dice. From pych3m4 en gmail.com Wed Jul 11 04:23:20 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 11 Jul 2007 04:23:20 +0200 Subject: Python y POA In-Reply-To: <2495165b0707101055v5915378eh7c373655467f4a43@mail.gmail.com> References: <2495165b0707101055v5915378eh7c373655467f4a43@mail.gmail.com> Message-ID: <2c9fb0dd0707101923w2018b51pf8646db68e608912@mail.gmail.com> El 10/07/07, Percy Gonzales escribió: > Hola, desearia saber si python tiene la posibilidad de poder ser > utilizado como herramienta para la programacion orientada a aspectos, > y si alguno tubiese algun ejemplo o material al respecto se lo > agradeceria Para ser concreto con tu pregunta, python sí tiene la posibilidad de programación AOP; lo que pasa es que python suele ser agnóstico en cuanto a seguir los patrones comunes. Hay alguna herramienta AOP, pero ha quedado largamente desfasada frente a la combinación de decoradores y metaclases. De las herramientas que todavía quedan por ahí: Logilabs Aspects: http://www.logilab.org/2738/ aspects: http://www.cs.tut.fi/~ask/aspects/aspects.html Pero te recomiendo que directamente empieces por mirarte las metaclases y los decoradores. Aquí tienes algunas buenas referencias sobre lo que puede hacerse: http://www.ibm.com/developerworks/linux/library/l-cpdecor.html http://mail.python.org/pipermail/python-list/2002-June/151895.html También puedes mirarte un ejemplo de programación por contrato "a la Eiffel" que viene entre las demos de python (Demo/newmetaclasses/Eiffel.py). Yo en su tiempo programé algunos ejercicios sobre este tema para indagar posibilidades con cherrypy, pero no recuerdo dónde han ido a parar. Algunas cosas eran para cherrypy, que tuvo programación AOP hasta que desapareció al pasar a la versión 2. From rapto en arrakis.es Wed Jul 11 11:06:20 2007 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: Wed, 11 Jul 2007 11:06:20 +0200 Subject: BD desde python In-Reply-To: <20070710221553.10608022@localhost> References: <1184073324.5565.16.camel@savin> <20070710221553.10608022@localhost> Message-ID: <1184144780.7350.5.camel@savin> Me pasa por ponerme misterioso :-) El mar, 10-07-2007 a las 22:15 +0100, Dr. Bobus escribió: > Y ya que estamos.... cuales son los matices? >> if q is None: q es el objeto None (se le ha asignado None a q). En este caso, es adecuado y además es la comparación más rápida: .fetchone() Fetch the next row of a query result set, returning a single sequence, or None when no more data is available. [6] > > if q == None: q se evalúa a None. Bien q es None (como la anterior) o hay una función de comparación que estima que q y None son iguales. > > if not q: O bien se dan las anteriores, o q se evalúa a un valor falso. Son falsos el valor False (claro :-), 0, 0.0, las cadenas y listas vacías... > > > > Cada una de ésas tiene sus matices. > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arcturus en us.es Wed Jul 11 13:29:26 2007 From: arcturus en us.es (=?ISO-8859-1?Q?Francisco_Jes=FAs_Jordano_Jim=E9nez?=) Date: Wed, 11 Jul 2007 13:29:26 +0200 Subject: Ayuda con plugins In-Reply-To: <200707100303.16182.py@ch3m4.org> References: <9dd22c9c0707091529r3705aa31me4f88382cb2cc02a@mail.gmail.com> <200707100303.16182.py@ch3m4.org> Message-ID: <4694BF16.8000907@us.es> Chema Cortes escribió: > Editores con plugins de python existen algunos como ,por ejemplo, vim > y jedit. GEdit el editor de GNOME también admite plugins escritos en python. Saludos! > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From pych3m4 en gmail.com Wed Jul 11 13:47:22 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 11 Jul 2007 13:47:22 +0200 Subject: Dotpy.net ABIERTO! In-Reply-To: <117d6e170707091813s509e935ai5cb5ab3e75a9a192@mail.gmail.com> References: <117d6e170707091813s509e935ai5cb5ab3e75a9a192@mail.gmail.com> Message-ID: <2c9fb0dd0707110447v62f48f69n719b3b14cd8e0505@mail.gmail.com> El 10/07/07, Juan José Alonso. escribió: > Queridos Pythoneros, quiero daros la bienvenida al nuevo Dotpy > Planetario y Wiki > > Me gustaria que lo explotarais y me comentarais si algo esta mal o falla, la > verdad que era la primera vez que preparaba un moinmoin y un planetplanet :P > > Y como no, empezar a innagurar el planet con vuestros blogs y colaborar con > el dotpy, todo es bienvenido. No quisiera empezar siendo crítico, pero encuentro que el feed del planet no funciona y que en el wiki faltaría algún tipo de estructuración inicial de contenidos como orientación. Por lo demás, agradecer tu trabajo para poner en marcha esta web y animarte a que sigas mejorándolo. Como autocastigo, me comprometo a terminar ya de montar mi blog para incluirlo en el planet. From kernel.no.found en gmail.com Wed Jul 11 14:46:43 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Wed, 11 Jul 2007 14:46:43 +0200 Subject: FAQ de Python-es Message-ID: <117d6e170707110546y3d8e22dfmf834390f3470b7c8@mail.gmail.com> Excelente trabajo, muy completo.. pero digo yo... ¿Porque no reunimos fuerzas y lo colocamos en el wiki de Dotpy? ¿Que os parece? http://dotpy.net -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com From jvicentevilla en yahoo.es Wed Jul 11 16:11:00 2007 From: jvicentevilla en yahoo.es (vicente villaveces) Date: Wed, 11 Jul 2007 16:11:00 +0200 (CEST) Subject: Referencia de variables enviadas con post o get In-Reply-To: References: Message-ID: <247451.13124.qm@web27307.mail.ukl.yahoo.com> Gerardo Juarez escribió: Si entendi bien, quieres extraer el valor de un campo de una forma en HTML. Eso se haria asi: import cgi forma = cgi.FieldStorage() # suponemos que tu campo se llamaba "nombre" nombre = forma["nombre"].value() Saludos, gracias por la respuesta del señor Gerardo Juarez, he hecho la referencia a la variable según tu sugerencia: cedula = form['cedula'].value() pero me da el error siguiente: Traceback (most recent call last): File "/usr/lib/cgi-bin/solbecas22.py", line 45, in ? cedula = form['cedula'].value() File "/usr/lib/python2.4/cgi.py", line 559, in __getitem__ raise KeyError, key KeyError: 'cedula' >>> anexo todo el codigo: #!/usr/bin/env python ####################################################### # runs on the server, reads form input, prints html ####################################################### import cgi, sys, pg form = cgi.FieldStorage() db = pg.connect('datos', 'localhost', 5432, user= 'postgres', passwd= 'jose123456') form = cgi.FieldStorage() # parse form data print "content-type: text/html" # plus blank line ########## html = """ solbecas

SALUDOS

Esta página ha sido realizada con la metodologia Server-side Scripting, en el lenguaje de programación Python, en respuesta a un formulario enviado desde otra página realizada con Html


%s


""" if not form.has_key('cedula'): print html % ("Ingrese su número de cedula por favor") else: print html % ("Su número de cédula, %s." % form['cedula'].value) print """

""" cedula = form['cedula'].value() print 'cedula' for r in db.query("""SELECT * FROM estudiantes where cedu = 'cedula'""").dictresult(): print '''''' % r print "
BASE DATOS ESTUDIANTES
CEDULA NOMBRE EDAD
%(cedu)s %(nomb)s %(edad)s

" print 'fin de programa' ............................................................................. On Tue, 10 Jul 2007, vicente villaveces wrote: > Saludos, Estoy tratando de realizar una búsqueda en una base de datos en postgres por medio de un valor de una variable enviada por el método post desde un formulario, y no se como referenciar la variable en python para que no se pierda el valor enviado, por ejemplo en php las variables enviadas se referencian asi: $_Post[nombre] o $_get[nombre], pero en python no se como se hace, agradezco de antemano la ayuda que puedan darme. > > > > "Que viva el software libre y los hombres que lo liberan" > José Vicente Villaveces > > > > --------------------------------- > > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y móviles desde 1 céntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > 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 --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From lasizoillo en gmail.com Wed Jul 11 17:56:59 2007 From: lasizoillo en gmail.com (lasizoillo) Date: Wed, 11 Jul 2007 17:56:59 +0200 Subject: Ayuda con plugins In-Reply-To: <9dd22c9c0707091529r3705aa31me4f88382cb2cc02a@mail.gmail.com> References: <9dd22c9c0707091529r3705aa31me4f88382cb2cc02a@mail.gmail.com> Message-ID: <49414f570707110856j6acc61a3s3d1d45c2e967b5f5@mail.gmail.com> Un sistema de plugins tiene que tener en cuenta varios aspectos: - Instalacion de plugins - Configuracion y uso de los mismos - Uso de los mismos por parte del programa principal Para que la instalacion de plugins sea facil puedes basarte en setuptools. Mira el siguiente ejemplo: http://lucumr.pocoo.org/blogarchive/setuptools-plugins Puedes ver un ejemplo en Turbogears. Si te fijas, el cogbin ( http://turbogears.org/cogbin/ ), descubre plugins que hay en la cheeseshop, sin necesidad de tenerlos cargados o ejecutarlos. A la hora de usar los plugins te recomendaria pensar muy bien unos interfaces para usar los plugins y hacerte unas utilidades de carga y uso de los mismos. Tal vez un interfaz simple como los de WSGI te baste, o quiza quieras unas interfaces mas complejas como las de Zope. Eso ya es cuestion de gusto a la hora de hacer los diseños. Suerte y espero que el turorial que te remito te sea de ayuda. El 10/07/07, Ark escribió: > Hola > Necesito ayuda con lo siguiente: > Quiero realizar una aplicación en python (obviamente) que sea extensible por > medio de plugins. La aplicación es un editor. > La ayuda que necesito es cualquiera que me puedan dar, sobre todo > documentación sobre el tema, porque aunque he buscado mucho, lo que he > encontrado no me da toda la información que necesito. He encontrado algunos > howtos para manajar una arquitectura de plugins, pero no son lo > suficientemente profundos para una apliacación compleja. > Muchos de los documentos que he encontrado hablan sobre Trac, una aplicación > open source que utiliza una muy buena arquitectura de plugins, y en verdad > que es muy buena, pero no quiero basarme en ella, sino que necesito > documentación para llegar a mi propia idea sobre plugins. > > Gracias por la ayuda > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From listas en soft-com.es Wed Jul 11 18:22:27 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Wed, 11 Jul 2007 18:22:27 +0200 Subject: Derivacion condicional Message-ID: <469503C3.9050104@soft-com.es> Hola a todos, Me interesaria saber si es posible que una clase decida por si misma de que clase tiene que derivar. Es decir, tengo 2 clases 'patron' que tienen un interface similar, pero no son exactamente iguales. class a: .... class b: .... Ahora quiero crear una tercera clase que, en en funcion de unas condiciones (variable global, parametro, etc) decida si misma si deriva de la clase 'a' o de la clase 'b'. # variable global usar_a = True class c( ????? ): def __init__() if usar_a: ??????? He estado mirando las metaclases, pero no se si serian la solución para esto, ademas que no termino de enterderlas :( Gracias. -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From joana_mendaro en hotmail.com Wed Jul 11 19:37:40 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Wed, 11 Jul 2007 17:37:40 +0000 Subject: (sin asunto) Message-ID: Hola chicos estoy haciendo el siguiente programa: import MySQLdb def guardarCambios(DNIUsuario,nombreUsuario, apellidoUsuario, claveUsuario, pwdUsuario): db = MySQLdb.connect(host='localhost', user='root', passwd='joana', db='recetario') cursor = db.cursor() cursor.execute("""INSERT INTO usuario(dni,nombreUsuario, apellidoUsuario, claveUsuario, pwdUsuario) VALUES(%s,%s,%s,%s,%s) ON DUPLICATE KEY UPDATE""",(DNIUsuario,nombreUsuario, apellidoUsuario, claveUsuario, pwdUsuario)) db.commit() y me da el siguient error Traceback (most recent call last): File "", line 1, in -toplevel- guardarCambios('15391204V','maria','gomez','15391203v','hola3') File "C:\Python24\guardarCambios.py", line 5, in guardarCambios cursor.execute("""INSERT INTO usuario(dni,nombreUsuario, apellidoUsuario, claveUsuario, pwdUsuario) VALUES(%s,%s,%s,%s,%s) ON DUPLICATE KEY UPDATE""",(DNIUsuario,nombreUsuario, apellidoUsuario, claveUsuario, pwdUsuario)) File "C:\Python24\Lib\site-packages\MySQLdb\cursors.py", line 166, in execute self.errorhandler(self, exc, value) File "C:\Python24\Lib\site-packages\MySQLdb\connections.py", line 35, in defaulterrorhandler raise errorclass, errorvalue ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1") alguien me puede decir que stoy haciendo mal??? _________________________________________________________________ Acepta el reto MSN Premium: incluye Antivirus y Firewall de McAffee. [1]Descárgalo y pruébalo 2 meses gratis. References 1. http://g.msn.com/8HMBESES/2731??PS=47575 From dmunhiz en gmail.com Wed Jul 11 19:47:47 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Wed, 11 Jul 2007 19:47:47 +0200 Subject: (sin asunto) In-Reply-To: References: Message-ID: <469517C3.7020700@gmail.com> Pues por lo que dice parece que es cosa de la sentencia SQL Revisa la consulta, si puedes pruébala directamente desde el mysql. Saludos Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html joana salgado gomez escribiu: > > Hola chicos estoy haciendo el siguiente programa: > > import MySQLdb > def guardarCambios(DNIUsuario,nombreUsuario, apellidoUsuario, > claveUsuario, pwdUsuario): > db = MySQLdb.connect(host='localhost', user='root', > passwd='joana', db='recetario') > cursor = db.cursor() > cursor.execute("""INSERT INTO usuario(dni,nombreUsuario, > apellidoUsuario, claveUsuario, pwdUsuario) VALUES(%s,%s,%s,%s,%s) ON > DUPLICATE KEY UPDATE""",(DNIUsuario,nombreUsuario, apellidoUsuario, > claveUsuario, pwdUsuario)) > db.commit() > > > y me da el siguient error > > Traceback (most recent call last): > File "", line 1, in -toplevel- > guardarCambios('15391204V','maria','gomez','15391203v','hola3') > File "C:\Python24\guardarCambios.py", line 5, in guardarCambios > cursor.execute("""INSERT INTO usuario(dni,nombreUsuario, > apellidoUsuario, claveUsuario, pwdUsuario) VALUES(%s,%s,%s,%s,%s) ON > DUPLICATE KEY UPDATE""",(DNIUsuario,nombreUsuario, apellidoUsuario, > claveUsuario, pwdUsuario)) > File "C:\Python24\Lib\site-packages\MySQLdb\cursors.py", line 166, > in execute > self.errorhandler(self, exc, value) > File "C:\Python24\Lib\site-packages\MySQLdb\connections.py", line > 35, in defaulterrorhandler > raise errorclass, errorvalue > ProgrammingError: (1064, "You have an error in your SQL syntax; check > the manual that corresponds to your MySQL server version for the right > syntax to use near '' at line 1") > > alguien me puede decir que stoy haciendo mal??? > _________________________________________________________________ > > Acepta el reto MSN Premium: incluye Antivirus y Firewall de McAffee. > [1]Descárgalo y pruébalo 2 meses gratis. > > References > > 1. http://g.msn.com/8HMBESES/2731??PS=47575 > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From bruno32 en gmail.com Wed Jul 11 21:04:55 2007 From: bruno32 en gmail.com (Bruno Espinoza) Date: Wed, 11 Jul 2007 14:04:55 -0500 Subject: Descargar de Stage6 con Python Message-ID: <33a557360707111204n75c75b05re850e0b1d50537de@mail.gmail.com> Hola a todos los de la lista, Muchos de nosotros habremos usado el famoso youtube-dl, un script que nos permite descargar videos de YouTube. Pero últimamente YouTube ha estado medio mal (Censura galopante) y esto ha hecho que algunos se muden a Stage6, un servicio de videos de alta calidad en formato DivX. Por tener poco ancho de banda decidí crear un pequeño script que nos permite descargar videos de este servicio sin necesodad de instalar ningún plug-in El script es libre bajo la GPL 3.0 y es este: #!/usr/bin/python # -*- coding: utf-8 -*- # ***************** # Stage6 - Downloader # 2007 por BrunoProg64 # ***************** # Este programa descarga videos del sitio http://stage6.com # creado por la empresa DivX # ****************** # Este programa es Software libre y puede ser copiado, redistribuido y modificado # de acuerdo a los términos de la licencia GNU GPL 3.0 o superior, publicada por la #Free Software Foundation. Puede conectarse a su sitio http://www.gnu.orgpara # obtener una copia de la licencia. # ******************* import sys params = sys.argv if (len(params)) <= 1: print "No se han introducido argumentos suficientes" print "Introdusca una URL de video de stage6.com" sys.exit(0) # si llega aquí, se introdujo una línea de comandos. la validamos # La validación, comprobará si la URL tiene las cadenas "stage6.divx.com" # si no encuentra la cadena... entonces dará un error y saldrá del programa test = params[1] if (test.find("stage6.divx.com") == -1): print "La URL ingresada no es valida. Asegurese que sea de stage6.divx.com" exit(0) num=0 j=0 url_sp = test.split("/") for i in range(1, len(url_sp)): l=url_sp[i].isdigit() if (l == True): num=num+1 j=i if num < 0: print "No hay ID de video. URL no valida" exit(0) # Armamos la cadena que devolveremos. # La URL de descarga es: http://video.stage6.com/[id_video]/.divx down_url = "http://video.stage6.com/" + url_sp[j] + "/.divx" print down_url Agradecer a omederos en gmail.com por ayudarme como tester de este script. El uso es muy sencilo. Solo pongan como argumento el URL de Stage6 que deseen descargar. El programa devolverá la URL de descarga. Tengo entendido que Stage6 permite recuperar descargas... ¡Aprovechen mientras dure! Algunos enlaces de interés: http://sigt.net/archivo/como-ver-videos-de-stage6-con-mplayer-en-gnulinux.xhtml (Fuente original) http://brunoprog64.blogsome.com/2007/07/07/stage6-alternativa-a-youtube/ (Que es Stage6) Si hay algun error o sugerencia, estoy abierto a ellas. Simplementen contesten este mail. Saludos, -- BrunoProg64 ------------ próxima parte ------------ #!/usr/bin/python # -*- coding: utf-8 -*- # ***************** # Stage6 - Downloader # 2007 por BrunoProg64 # ***************** # Este programa descarga videos del sitio http://stage6.com # creado por la empresa DivX # ****************** # Este programa es Software libre y puede ser copiado, redistribuido y modificado # de acuerdo a los t?rminos de la licencia GNU GPL 3.0 o superior, publicada por la #Free Software Foundation. Puede conectarse a su sitio http://www.gnu.org para # obtener una copia de la licencia. # ******************* import sys params = sys.argv if (len(params)) <= 1: print "No se han introducido argumentos suficientes" print "Introdusca una URL de video de stage6.com" sys.exit(0) # si llega aqu?, se introdujo una l?nea de comandos. la validamos # La validaci?n, comprobar? si la URL tiene las cadenas "stage6.divx.com" # si no encuentra la cadena... entonces dar? un error y saldr? del programa test = params[1] if (test.find("stage6.divx.com") == -1): print "La URL ingresada no es valida. Asegurese que sea de stage6.divx.com" exit(0) num=0 j=0 url_sp = test.split("/") for i in range(1, len(url_sp)): l=url_sp[i].isdigit() if (l == True): num=num+1 j=i if num < 0: print "No hay ID de video. URL no valida" exit(0) # Armamos la cadena que devolveremos. # La URL de descarga es: http://video.stage6.com/[id_video]/.divx down_url = "http://video.stage6.com/" + url_sp[j] + "/.divx" print down_url ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Thu Jul 12 00:20:15 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 12 Jul 2007 00:20:15 +0200 Subject: Derivacion condicional In-Reply-To: <469503C3.9050104@soft-com.es> References: <469503C3.9050104@soft-com.es> Message-ID: <2c9fb0dd0707111520v57512d1ema940777f788e322a@mail.gmail.com> El 11/07/07, Oswaldo Hernández escribió: > Me interesaria saber si es posible que una clase decida por si misma de que clase tiene que derivar. > Es decir, tengo 2 clases 'patron' que tienen un interface similar, pero no son exactamente iguales. > > class a: > .... > > class b: > .... > > Ahora quiero crear una tercera clase que, en en funcion de unas condiciones (variable global, > parametro, etc) decida si misma si deriva de la clase 'a' o de la clase 'b'. > > # variable global > usar_a = True > > class c( ????? ): > def __init__() > if usar_a: > ??????? > > He estado mirando las metaclases, pero no se si serian la solución para esto, ademas que no termino > de enterderlas :( Es más sencillo que éso: X = A if usar_a else B class C(X): ... From kernel.no.found en gmail.com Thu Jul 12 01:15:07 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Thu, 12 Jul 2007 01:15:07 +0200 Subject: Dotpy.net ABIERTO! Message-ID: <117d6e170707111615x4db53ce1s7ac9517e3204553a@mail.gmail.com> PEDIA! esas criticas, muchas gracias, lo apunto todo. La verdad que es la primera vez que trabajaba con un wiki, y con moin, pero le estoy cogiendo el rollo facil, voy a estructurarlo creando unas categorias, al igual que las tenia en la lista de documentacion en castellano. -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com From omederos.lists en gmail.com Thu Jul 12 01:54:10 2007 From: omederos.lists en gmail.com (Oscar Mederos) Date: Wed, 11 Jul 2007 19:54:10 -0400 Subject: Descargar de Stage6 con Python In-Reply-To: <33a557360707111204n75c75b05re850e0b1d50537de@mail.gmail.com> References: <33a557360707111204n75c75b05re850e0b1d50537de@mail.gmail.com> Message-ID: <7fc63bf0707111654p44970878oce91a2b68a902278@mail.gmail.com> El 11/07/07, Bruno Espinoza escribió: > Agradecer a omederos en gmail.com por ayudarme como tester de este script. Y lo dificil que es eso !!! :) Gracias XD > Saludos, > -- > BrunoProg64 -- Saludos From jboris.bsm en gmail.com Thu Jul 12 05:08:18 2007 From: jboris.bsm en gmail.com (=?ISO-8859-1?Q?Jos=E9_Boris_Bellido_Santa_Mar=EDa?=) Date: Wed, 11 Jul 2007 23:08:18 -0400 Subject: (sin asunto) In-Reply-To: References: Message-ID: <24ed9e840707112008i91c56cdre8906f17144d5ee9@mail.gmail.com> 2007/7/11, joana salgado gomez : > > Hola chicos estoy haciendo el siguiente programa: > > import MySQLdb > def guardarCambios(DNIUsuario,nombreUsuario, apellidoUsuario, > claveUsuario, pwdUsuario): > db = MySQLdb.connect(host='localhost', user='root', > passwd='joana', db='recetario') > cursor = db.cursor() > cursor.execute("""INSERT INTO usuario(dni,nombreUsuario, > apellidoUsuario, claveUsuario, pwdUsuario) VALUES(%s,%s,%s,%s,%s) ON > DUPLICATE KEY UPDATE""",(DNIUsuario,nombreUsuario, apellidoUsuario, > claveUsuario, pwdUsuario)) > db.commit() > > Tu consulta esta mal hecha me parece q el error es q te falta % antes de (DNIUsuario,nombreUsuario, apellidoUsuario, claveUsuario, pwdUsuario) deberia ser: cursor.execute("""INSERT INTO usuario(dni,nombreUsuario, apellidoUsuario, claveUsuario, pwdUsuario) VALUES(%s,%s,%s,%s,%s) ON DUPLICATE KEY UPDATE"""%(DNIUsuario,nombreUsuario, apellidoUsuario, claveUsuario, pwdUsuario)) Saludos, -- José Boris Bellido Santa María Se libre, usa software libre -------------------------------------------- http://boris.arcamo.org/ jboris.bsm en gmail.com - boris en arcamo.org Linux User #419610 http://counter.li.org/ From hmanzano en labein.es Thu Jul 12 12:19:42 2007 From: hmanzano en labein.es (hmanzano en labein.es) Date: Thu, 12 Jul 2007 12:19:42 +0200 Subject: nuevo "programando" Message-ID: Hola a todos, soy nuevo en esto de la programación, o más bien hacer pequeños scripts, estoy aprendiendo y me han recomendado python por ser un lenguaje claro y sencillo. Mi problema es que para alguna cosa tengo prisa. Explico lo que quiero hacer: Tengo un archivo x de unas 2000 lineas, de las cuales me interesan 300. Empiezan por la palabra " frecuencia" con espacios. Lo que quiero hacer es que me escriba esas lineas en otro archivo de salida, digamos y. Con el comando string.find('frecuencia' ) se supone que encuentra la palabra en una cadena, y con f=open('x','r') for linea in f: estoy haciendo que lea todo el archivo y convientiendo cada linea en una cadena no?? pero el problema es que find devuelve un número o -1 si no esta la palabra deseada. Me interesaría que si el valor que devuelve es distinto de -1 (!= significa distinto no??) pues que escriba la línea, y si es = -1 no haga nada. He probado el string.find('frecuencia' ) en por ejemplo string = 'hola frecuencia' y en el interprete interactivo me funciona y devuelve 5, pero si lo ejecuto como script , ¿donde diablos aparece ese 5? ¿como hago que lo escriba en el archivo y? Bueno, como veís estoy muy pardillo, imagino que será normal al principio, si nunca se ha programado... ____________________________ Hegoi Manzano Moro, PhD Student e-mail: hmanzano en labein.es Tel: 94 607 3300 ext. 2774 Fax: +34-946073349 Nanomaterials on construction , NANOC. LABEIN-TECNALIA C/ Geldo, edif 700 Parque Tecnológico de Bizkaia 48160 Derio, Bizkaia --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Imprime sólo lo imprescindible, recuerda tu compromiso con el MEDIO AMBIENTE // Behar beharrezkoa baino ez imprimatu, gogoratu zure INGURUGIROArekiko konpromezua // Before printing think about the ENVIRONMENT --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Este mensaje se dirige exclusivamente a su destinatario y puede contener información privilegiada o confidencial. Si no es vd. el destinatario indicado, queda notificado de que la utilización, divulgación y/o copia sin autorización está prohibida en virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción. Mezu honek eta erantsita dituen agiriek (baldin baditu) isilpeko informazioa izan dezakete. Hori dela eta, hutsegite baten ondorioz jasotzen duenak jakin beza bertan dagoen informazioa ezkutukoa dela eta legeak galarazi egiten duela berori baimenik gabe erabiltzea. This message is intended exclusively for its addressee and may contain information that is CONFIDENTIAL and protected by professional privilege. If you are not the intended recipient you are hereby notified that any dissemination, copy or disclosure of this communication is strictly prohibited by law. If this message has been received in error, please immediately notify us via e-mail and delete it. --------------------------------------------------------------------------------------------------------------------------------------------------------------------- From carles en companysoler.cat Thu Jul 12 12:56:45 2007 From: carles en companysoler.cat (Carles Company Soler) Date: Thu, 12 Jul 2007 12:56:45 +0200 Subject: nuevo "programando" In-Reply-To: References: Message-ID: <469608ED.3070006@companysoler.cat> En/na hmanzano en labein.es ha escrit: >¿donde diablos aparece ese 5? El 5 es la posición en la cadena donde aparece la palabra. Saludos. From listas en soft-com.es Thu Jul 12 14:27:40 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Thu, 12 Jul 2007 14:27:40 +0200 Subject: Derivacion condicional In-Reply-To: <2c9fb0dd0707111520v57512d1ema940777f788e322a@mail.gmail.com> References: <469503C3.9050104@soft-com.es> <2c9fb0dd0707111520v57512d1ema940777f788e322a@mail.gmail.com> Message-ID: <46961E3C.5050409@soft-com.es> Chema Cortes escribió: > El 11/07/07, Oswaldo Hernández escribió: > >> Me interesaria saber si es posible que una clase decida por si misma >> de que clase tiene que derivar. >> Es decir, tengo 2 clases 'patron' que tienen un interface similar, >> pero no son exactamente iguales. >> >> class a: >> .... >> >> class b: >> .... >> >> Ahora quiero crear una tercera clase que, en en funcion de unas >> condiciones (variable global, >> parametro, etc) decida si misma si deriva de la clase 'a' o de la >> clase 'b'. >> >> # variable global >> usar_a = True >> >> class c( ????? ): >> def __init__() >> if usar_a: >> ??????? >> >> He estado mirando las metaclases, pero no se si serian la solución >> para esto, ademas que no termino >> de enterderlas :( > > Es más sencillo que éso: > > > X = A if usar_a else B > > class C(X): > ... Esta solucion la habia pensado para los casos en los que la seleccion dependiera de una variable global, incluso establecer los valores mediente una funcion para hacerlo de forma dinamica (despues de haber realizado el import). El problema es cuando la decision se ha de realizar en la propia creación de la clase al evaluar los parametros. Lo unico que he conseguido es hacer una funcion que evalue los parametros y retorne la clase apropiada, pero no me permite derivar esta a su vez, ademas de que no veo la solucion muy 'elegante' class a: def __init__(self, p1): print "iniciar a, valores: %s" % p1 self.p1 = p1 def p(self): print "p1 en a:", self.p1 / 2 class b: def __init__(self, p1): print "iniciar b, valores: %s" % p1 self.p1 = p1 def p(self): print "p1 en b:", self.p1 * 2 # funcion auxiliar para selecciona de clase dinamicamente segun los parametros def SelectClase(p1): if p1 < 100: return a else: return b # Creacion de instancias utilizando la funcion parametro = 1 inst = SelectClase(parametro)(parametro) inst.p() parametro = 200 inst = SelectClase(parametro)(parametro) inst.p() Esto funciona, pero lo que no consiguo es hacer una clase que haga la derivacion de a o b de forma automatica: class C(SelectClase(parametro)): pass aqui da error, puesto que 'parametro' no esta definido. Alguna idea? Gracias. -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From arnau en ehas.org Thu Jul 12 14:33:04 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 12 Jul 2007 14:33:04 +0200 Subject: FAQ de Python-es In-Reply-To: <117d6e170707110546y3d8e22dfmf834390f3470b7c8@mail.gmail.com> References: <117d6e170707110546y3d8e22dfmf834390f3470b7c8@mail.gmail.com> Message-ID: <46961F80.9000807@ehas.org> Buenas, La idea original es tener el FAQ en Aditel. Nosotros vamos y venimos, pero asociaciones como éstas quedan (¡esperemos!). No sé cómo lo veis (no ha habido mucha realimentación por el momento...), pero creo que el FAQ de la lista *debería* estar en el mismo servidor, controlada por el mismo grupo de administradores. Por eso me parece razonable mantener el FAQ temporalmente donde está y tratar de alojarlo en Aditel lo antes posible. Si se nos dice de forma taxativa que eso no es posible, entonces sí me parecería necesario buscar una nueva ubicación que reúna a la comunidad Python en español, y por lo que conozco tu web me parece ideal. arnau Juan José Alonso. escribió: > Excelente trabajo, muy completo.. pero digo yo... > > ¿Porque no reunimos fuerzas y lo colocamos en el wiki de Dotpy? > > ¿Que os parece? > http://dotpy.net > From DOMINGUEZ_JOSE_LUIS_NONLILLY en LILLY.COM Thu Jul 12 15:16:08 2007 From: DOMINGUEZ_JOSE_LUIS_NONLILLY en LILLY.COM (Jose Luis Dominguez NONLILLY) Date: Thu, 12 Jul 2007 15:16:08 +0200 Subject: nuevo "programando" In-Reply-To: References: Message-ID: Podrías hacer una cosa así f=open("TuArchivo") l=[v for v in f.readlines() if v.find("frecuencia")==5] f.close() s=open("Salida", "w") for v in l: s.write(v) s.close() python-es-bounces en aditel.org wrote on 12/07/2007 12:19:42: > Hola a todos, soy nuevo en esto de la programación, o más bien hacer > pequeños scripts, estoy aprendiendo y me han recomendado python por ser un > lenguaje claro y sencillo. Mi problema es que para alguna cosa tengo > prisa. Explico lo que quiero hacer: > > Tengo un archivo x de unas 2000 lineas, de las cuales me interesan 300. > Empiezan por la palabra " frecuencia" con espacios. Lo que quiero > hacer es que me escriba esas lineas en otro archivo de salida, digamos y. > Con el comando > > string.find('frecuencia' ) > > se supone que encuentra la palabra en una cadena, y con > > f=open('x','r') > for linea in f: > > estoy haciendo que lea todo el archivo y convientiendo cada linea en una > cadena no?? pero el problema es que find devuelve un número o -1 si no > esta la palabra deseada. Me interesaría que si el valor que devuelve es > distinto de -1 (!= significa distinto no??) pues que escriba la línea, y > si es = -1 no haga nada. > He probado el string.find('frecuencia' ) en por ejemplo string = 'hola > frecuencia' y en el interprete interactivo me funciona y devuelve 5, pero > si lo ejecuto como script , ¿donde diablos aparece ese 5? ¿como hago que > lo escriba en el archivo y? > > Bueno, como veís estoy muy pardillo, imagino que será normal al principio, > si nunca se ha programado... > > ____________________________ > Hegoi Manzano Moro, PhD Student > > e-mail: hmanzano en labein.es > Tel: 94 607 3300 ext. 2774 > Fax: +34-946073349 > > Nanomaterials on construction , NANOC. > LABEIN-TECNALIA > C/ Geldo, edif 700 > Parque Tecnológico de Bizkaia > 48160 Derio, Bizkaia > > > --------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Imprime sólo lo imprescindible, recuerda tu compromiso con el MEDIO > AMBIENTE // Behar beharrezkoa baino ez imprimatu, gogoratu zure > INGURUGIROArekiko konpromezua // Before printing think about the ENVIRONMENT > > --------------------------------------------------------------------------------------------------------------------------------------------------------------------- > Este mensaje se dirige exclusivamente a su destinatario y puede > contener información privilegiada o confidencial. Si no es vd. el > destinatario indicado, queda notificado de que la utilización, > divulgación y/o copia sin autorización está prohibida en virtud de > la legislación vigente. Si ha recibido este mensaje por error, le > rogamos que nos lo comunique inmediatamente por esta misma vía y > proceda a su destrucción. > > Mezu honek eta erantsita dituen agiriek (baldin baditu) isilpeko > informazioa izan dezakete. Hori dela eta, hutsegite baten ondorioz > jasotzen duenak jakin beza bertan dagoen informazioa ezkutukoa dela > eta legeak galarazi egiten duela berori baimenik gabe erabiltzea. > > This message is intended exclusively for its addressee and may > contain information that is CONFIDENTIAL and protected by > professional privilege. If you are not the intended recipient you > are hereby notified that any dissemination, copy or disclosure of > this communication is strictly prohibited by law. If this message > has been received in error, please immediately notify us via e-mail > and delete it. > --------------------------------------------------------------------------------------------------------------------------------------------------------------------- > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Thu Jul 12 15:21:33 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 12 Jul 2007 15:21:33 +0200 Subject: nuevo "programando" In-Reply-To: References: Message-ID: <46962ADD.5030101@ehas.org> hmanzano en labein.es escribió: > Hola a todos, soy nuevo en esto de la programación, o más bien hacer > pequeños scripts, estoy aprendiendo y me han recomendado python por ser un > lenguaje claro y sencillo. Mi problema es que para alguna cosa tengo > prisa. Explico lo que quiero hacer: > > Tengo un archivo x de unas 2000 lineas, de las cuales me interesan 300. > Empiezan por la palabra " frecuencia" con espacios. Lo que quiero > hacer es que me escriba esas lineas en otro archivo de salida, digamos y. > Con l comando Esta es una duda bastante típica, así que tenía su entrada en el FAQ que acabamos de crear. Aprovechando tu pregunta, la he completado con el problema que planteas: http://pythonesfaq.k-rolus.net/#index21h3 La solución que usa expresiones regulares no me acaba de gustar, seguro que a alguien se le ocurre alguna forma mejor. 1ª propuesta: usando métodos de cadena. output = file("salida.txt", "w") for line in file("entrada.txt"): if line.lstrip().startswith("frecuencia"): output.write(line) output.close() 2ª propuesta: usando métodos de cadena y el método *writelines* con generadores. output = file("salida.txt", "w") condition = lambda s: s.lstrip().startswith("frecuencia") output.writelines(line for line in file("entrada.txt") if condition(line)) output.close() 3ª propuesta: usando métodos de cadena, y leyendo/escribiendo en una misma línea con generadores (poco claro). condition = lambda s: s.lstrip().startswith("frecuencia") file("salida.txt", "w").writelines(line for line in file("entrada.txt") if condition(line)) 4ª propuesta: usando expresiones regulares. En este caso tan simple no está justificado, pero a veces la búsqueda puede ser más compleja y entonces sí puede ser útil. import re output = file("salida.txt", "w") pat = re.compile("^(\s*frecuencia.*)$", re.MULTILINE) addlf = lambda iterator: ("%s\n"%s for s in iterator) output.writelines(addlf(pat.findall(file("entrada.txt").read()))) output.close() From pych3m4 en gmail.com Thu Jul 12 15:23:33 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 12 Jul 2007 15:23:33 +0200 Subject: Derivacion condicional In-Reply-To: <46961E3C.5050409@soft-com.es> References: <469503C3.9050104@soft-com.es> <2c9fb0dd0707111520v57512d1ema940777f788e322a@mail.gmail.com> <46961E3C.5050409@soft-com.es> Message-ID: <2c9fb0dd0707120623r3fb21ac3h1d26e52eeb2d3bee@mail.gmail.com> El 12/07/07, Oswaldo Hernández escribió: > El problema es cuando la decision se ha de realizar en la propia creación de la clase al evaluar los > parametros. Para ésto lo mejor sería usar metaclases. Pero... > Esto funciona, pero lo que no consiguo es hacer una clase que haga la derivacion de a o b de forma > automatica: > > class C(SelectClase(parametro)): > pass > > aqui da error, puesto que 'parametro' no esta definido. Aquí me he perdido. Sintácticamente está correcto, y el que no encuentre el parámetro depende de la manera de pasarlo. ¿En qué momento se realiza la decisión? Intuyo que hay un problema de concepto: las clases se "crean" cuando se definen, no cuando instancian. Si quieres que el tipo de cada instancia se decida justo en el momento de su instanciación tendrás emplear algún patrón "Factoría"; posiblemente, trasteando con el método __new__ te resulte suficiente: class C(object): def __new__(cls,sel,*args,**kw): if sel<100: return A(*args,**kw) else: return B(*args,**kw) assert isinstance(C(1),A) assert isinstance(C(111),B) From arnau en ehas.org Thu Jul 12 15:35:01 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 12 Jul 2007 15:35:01 +0200 Subject: nuevo "programando" In-Reply-To: <46962ADD.5030101@ehas.org> References: <46962ADD.5030101@ehas.org> Message-ID: <46962E05.504@ehas.org> Arnau Sanchez escribió: >> 300. Empiezan por la palabra " frecuencia" con espacios. Lo que Por aclarar: lo que acabo de mandar no tienen en cuenta el número de espacios o tabuladores que preceden a la palabra "frecuencia" en inicio de línea. Si realmente quieres que empiece por 5 espacios, ni más ni menos, cambiarías: line.lstrip().startswith("frecuencia") por line.startswith(" frecuencia") o line.startswith(" "*5+"frecuencia") o line.find("frecuencia") == 5 y "^(\s*frecuencia.*)$" por "^( frecuencia.*)$" o "^( {5}frecuencia.*)$" > Esta es una duda bastante típica, así que tenía su entrada en el FAQ que > acabamos de crear. Aprovechando tu pregunta, la he completado con el > problema que planteas: > > http://pythonesfaq.k-rolus.net/#index21h3 > > La solución que usa expresiones regulares no me acaba de gustar, seguro > que a alguien se le ocurre alguna forma mejor. > > 1ª propuesta: usando métodos de cadena. > > output = file("salida.txt", "w") > for line in file("entrada.txt"): > if line.lstrip().startswith("frecuencia"): > output.write(line) > output.close() > > 2ª propuesta: usando métodos de cadena y el método *writelines* con > generadores. > > output = file("salida.txt", "w") > condition = lambda s: s.lstrip().startswith("frecuencia") > output.writelines(line for line in file("entrada.txt") if > condition(line)) > output.close() > > 3ª propuesta: usando métodos de cadena, y leyendo/escribiendo en una > misma línea con generadores (poco claro). > > condition = lambda s: s.lstrip().startswith("frecuencia") > file("salida.txt", "w").writelines(line for line in > file("entrada.txt") if condition(line)) > > 4ª propuesta: usando expresiones regulares. En este caso tan simple no > está justificado, pero a veces la búsqueda puede ser más compleja y > entonces sí puede ser útil. > > import re > output = file("salida.txt", "w") > pat = re.compile("^(\s*frecuencia.*)$", re.MULTILINE) > addlf = lambda iterator: ("%s\n"%s for s in iterator) > output.writelines(addlf(pat.findall(file("entrada.txt").read()))) > output.close() > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > From marcelo.schiavone en gmail.com Thu Jul 12 16:28:36 2007 From: marcelo.schiavone en gmail.com (marcelo schiavone) Date: Thu, 12 Jul 2007 11:28:36 -0300 Subject: wsdl2py Message-ID: <931b28a60707120728h77824db6yb6742142981e4317@mail.gmail.com> Hola, alguien ha usado los archivos generados con wsdl2py? Saben de algun tutorial o manual para recomendarme? Saludos From gerardo en computo-industrial.com.mx Thu Jul 12 17:21:51 2007 From: gerardo en computo-industrial.com.mx (Gerardo Juarez) Date: Thu, 12 Jul 2007 11:21:51 -0400 (EDT) Subject: Referencia de variables enviadas con post o get In-Reply-To: <247451.13124.qm@web27307.mail.ukl.yahoo.com> References: <247451.13124.qm@web27307.mail.ukl.yahoo.com> Message-ID: Desde que puse mi respuesta me quede con la duda, pero ya la verifique con un programa que tengo que funciona. "value" es un atributo, no un metodo. Por lo tanto, no lleva los (): cedula = form['cedula'].value Mi receta inicial tenia el error y en tu script usas las dos formas. La primera form['cedula'].value no te da error y la segunda si. Ahora la excepcion KeyError no corresponde a que "form" no tenga la llave "cedula", que ya probaste previamente en el "if", sino a que form['cedula'], que es un diccionario en si mismo, no tiene un metodo "value()", si bien *si* tiene un atributo "value". saludos Gerardo On Wed, 11 Jul 2007, vicente villaveces wrote: > > > Gerardo Juarez escribió: > Si entendi bien, quieres extraer el valor de un campo de una forma en > HTML. Eso se haria asi: > > import cgi > > forma = cgi.FieldStorage() > # suponemos que tu campo se llamaba "nombre" > > nombre = forma["nombre"].value() > > Saludos, gracias por la respuesta del señor Gerardo Juarez, he hecho la referencia a la variable según tu sugerencia: > > cedula = form['cedula'].value() > pero me da el error siguiente: > > Traceback (most recent call last): > File "/usr/lib/cgi-bin/solbecas22.py", line 45, in ? > cedula = form['cedula'].value() > File "/usr/lib/python2.4/cgi.py", line 559, in __getitem__ > raise KeyError, key > KeyError: 'cedula' > >>> > anexo todo el codigo: > > #!/usr/bin/env python > > From listas en soft-com.es Thu Jul 12 17:22:12 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Thu, 12 Jul 2007 17:22:12 +0200 Subject: Derivacion condicional In-Reply-To: <2c9fb0dd0707120623r3fb21ac3h1d26e52eeb2d3bee@mail.gmail.com> References: <469503C3.9050104@soft-com.es> <2c9fb0dd0707111520v57512d1ema940777f788e322a@mail.gmail.com> <46961E3C.5050409@soft-com.es> <2c9fb0dd0707120623r3fb21ac3h1d26e52eeb2d3bee@mail.gmail.com> Message-ID: <46964724.1090804@soft-com.es> Chema Cortes escribió: > El 12/07/07, Oswaldo Hernández escribió: > >> El problema es cuando la decision se ha de realizar en la propia >> creación de la clase al evaluar los >> parametros. > > Para ésto lo mejor sería usar metaclases. Pero... > > >> Esto funciona, pero lo que no consiguo es hacer una clase que haga la >> derivacion de a o b de forma >> automatica: >> >> class C(SelectClase(parametro)): >> pass >> >> aqui da error, puesto que 'parametro' no esta definido. > > Aquí me he perdido. Sintácticamente está correcto, y el que no > encuentre el parámetro depende de la manera de pasarlo. ¿En qué > momento se realiza la decisión? > > Intuyo que hay un problema de concepto: las clases se "crean" cuando > se definen, no cuando instancian. Si quieres que el tipo de cada > instancia se decida justo en el momento de su instanciación tendrás > emplear algún patrón "Factoría"; posiblemente, trasteando con el > método __new__ te resulte suficiente: > > class C(object): > def __new__(cls,sel,*args,**kw): > if sel<100: > return A(*args,**kw) > else: > return B(*args,**kw) > > assert isinstance(C(1),A) > assert isinstance(C(111),B) El problema de esto es que: isinstance(C(1), C) -> False Tambien si C tiene un metodo __init__ (o cualquier otro) este no se ejecuta puesto que __new__ no devuelve una clase tipo C. Me parece que voy a releer el tema de las metaclases y del operador new. Gracias. -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From gerardo en computo-industrial.com.mx Thu Jul 12 17:36:25 2007 From: gerardo en computo-industrial.com.mx (Gerardo Juarez) Date: Thu, 12 Jul 2007 11:36:25 -0400 (EDT) Subject: (sin asunto) In-Reply-To: <24ed9e840707112008i91c56cdre8906f17144d5ee9@mail.gmail.com> References: <24ed9e840707112008i91c56cdre8906f17144d5ee9@mail.gmail.com> Message-ID: Dos cosas: he probado, y las dos formas de sintaxis se pueden usar con MySQLdb: INSERT = "insert into tabla (nombre, clave) values (%s, %s))" # ambas funcionan, por lo menos con SELECT: cursor.execute(INSERT, (valor1, valor2)) cursor.execute(INSERT % (valor1, valor2)) Lo que me ha pasado es que cuando tienes un argumento, no me ha sido facil saber si deben llevar '%s' o solamente %s, cuando el campo es de tipo char, varchar, o similar. Esto solo pasa con INSERT. A esto me referia en un mensaje anterior con el "problema de insercion de codigo", en el que se puede modificar la instruccion SQL con comillas (') de mas. Prueba a ver si son las comillas o que extranamente se requiera SQL % (args,...) con un INSERT. saludos Gerardo On Wed, 11 Jul 2007, José Boris Bellido Santa María wrote: > 2007/7/11, joana salgado gomez : > > > > Hola chicos estoy haciendo el siguiente programa: > > > > import MySQLdb > > def guardarCambios(DNIUsuario,nombreUsuario, apellidoUsuario, > > claveUsuario, pwdUsuario): > > db = MySQLdb.connect(host='localhost', user='root', > > passwd='joana', db='recetario') > > cursor = db.cursor() > > cursor.execute("""INSERT INTO usuario(dni,nombreUsuario, > > apellidoUsuario, claveUsuario, pwdUsuario) VALUES(%s,%s,%s,%s,%s) ON > > DUPLICATE KEY UPDATE""",(DNIUsuario,nombreUsuario, apellidoUsuario, > > claveUsuario, pwdUsuario)) > > db.commit() > > > > > Tu consulta esta mal hecha > me parece q el error es q te falta % antes de > (DNIUsuario,nombreUsuario, apellidoUsuario, claveUsuario, pwdUsuario) > deberia ser: > cursor.execute("""INSERT INTO usuario(dni,nombreUsuario, > apellidoUsuario, claveUsuario, pwdUsuario) VALUES(%s,%s,%s,%s,%s) ON > DUPLICATE KEY UPDATE"""%(DNIUsuario,nombreUsuario, apellidoUsuario, > claveUsuario, pwdUsuario)) > > Saludos, > > From gerardo en computo-industrial.com.mx Thu Jul 12 17:44:40 2007 From: gerardo en computo-industrial.com.mx (Gerardo Juarez) Date: Thu, 12 Jul 2007 11:44:40 -0400 (EDT) Subject: Derivacion condicional In-Reply-To: <46964724.1090804@soft-com.es> References: <46964724.1090804@soft-com.es> Message-ID: No se si podria verse el problema desde este punto de vista: Lo que tienes es un objeto X, que se comparte caracteristicas con A y con B y que puede ser como A o como B dependiendo del contexto. Entonces no seria X un derivado de ambos A y B? class X (A, B): ... y que usara la funcionalidad que quisiera internamente? Otra posibilidad: si A y B se parecen tanto, es que probablemente vienen de otra clase generica P, de la cual derivan funcionalidades distintas. En tal caso, X no deberia de definir su funcionalidad a partir de la clase generica P? La solucion de Chema es practica, pero los puristas de OO seguramente se retorceran como caracoles espolvoreados con sal... Saludos Gerardo On Thu, 12 Jul 2007, Oswaldo Hernández wrote: > Chema Cortes escribió: > > El 12/07/07, Oswaldo Hernández escribió: > > > >> El problema es cuando la decision se ha de realizar en la propia > >> creación de la clase al evaluar los > >> parametros. > > > > Para ésto lo mejor sería usar metaclases. Pero... > > > > > >> Esto funciona, pero lo que no consiguo es hacer una clase que haga la > >> derivacion de a o b de forma > >> automatica: > >> > >> class C(SelectClase(parametro)): > >> pass > >> > >> aqui da error, puesto que 'parametro' no esta definido. > > > > Aquí me he perdido. Sintácticamente está correcto, y el que no > > encuentre el parámetro depende de la manera de pasarlo. ¿En qué > > momento se realiza la decisión? > > > > Intuyo que hay un problema de concepto: las clases se "crean" cuando > > se definen, no cuando instancian. Si quieres que el tipo de cada > > instancia se decida justo en el momento de su instanciación tendrás > > emplear algún patrón "Factoría"; posiblemente, trasteando con el > > método __new__ te resulte suficiente: > > > > class C(object): > > def __new__(cls,sel,*args,**kw): > > if sel<100: > > return A(*args,**kw) > > else: > > return B(*args,**kw) > > > > assert isinstance(C(1),A) > > assert isinstance(C(111),B) > > El problema de esto es que: > > isinstance(C(1), C) -> False > Tambien si C tiene un metodo __init__ (o cualquier otro) este no se ejecuta puesto que __new__ no > devuelve una clase tipo C. > > Me parece que voy a releer el tema de las metaclases y del operador new. > > Gracias. > From pych3m4 en gmail.com Thu Jul 12 17:56:11 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 12 Jul 2007 17:56:11 +0200 Subject: nuevo "programando" In-Reply-To: <46962ADD.5030101@ehas.org> References: <46962ADD.5030101@ehas.org> Message-ID: <2c9fb0dd0707120856m6dcfe32wb9916a37c83fb620@mail.gmail.com> El 12/07/07, Arnau Sanchez escribió: > La solución que usa expresiones regulares no me acaba de gustar, seguro que a > alguien se le ocurre alguna forma mejor. > 4ª propuesta: usando expresiones regulares. En este caso tan simple no está > justificado, pero a veces la búsqueda puede ser más compleja y entonces sí puede > ser útil. > > import re > output = file("salida.txt", "w") > pat = re.compile("^(\s*frecuencia.*)$", re.MULTILINE) > addlf = lambda iterator: ("%s\n"%s for s in iterator) > output.writelines(addlf(pat.findall(file("entrada.txt").read()))) > output.close() Yo lo haría así: import re pat=re.compile("^\s*frecuencia") file("salida.txt","w").writelines(line for line in file("entrada.txt") if pat.match(line)) bastante similar en construcción al resto de opciones. From arnau en ehas.org Thu Jul 12 18:03:33 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 12 Jul 2007 18:03:33 +0200 Subject: nuevo "programando" In-Reply-To: <2c9fb0dd0707120856m6dcfe32wb9916a37c83fb620@mail.gmail.com> References: <46962ADD.5030101@ehas.org> <2c9fb0dd0707120856m6dcfe32wb9916a37c83fb620@mail.gmail.com> Message-ID: <469650D5.3020706@ehas.org> Cortes escribió: > Yo lo haría así: > > import re > > pat=re.compile("^\s*frecuencia") > file("salida.txt","w").writelines(line for line in file("entrada.txt") > if pat.match(line)) Correcto, la puse hace un rato como nueva opción (la 4), por no aburrir no dije nada. http://pythonesfaq.k-rolus.net/#index21h3 Sólo un detalle: según tengo entendido, en este caso el "^" es redundante, match sólo mira al principio de línea. Con "search" (busca en cualquier posición) sí hace falta ponerlo (por eso lo tiene la solución del FAQ). From inf200468 en ucf.edu.cu Thu Jul 12 18:43:24 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Thu, 12 Jul 2007 12:43:24 -0400 (CDT) Subject: autenticarse Message-ID: <3219.10.14.17.145.1184258604.squirrel@correo.ucf.edu.cu> Hola> estoy haciendo una cgi con python , y quiero hacer una pagina de entrada para autenticarse, para esto quiero hacer una tabla en una base de datos que contenga login y contrasena, y cuando vayan a entrar mando una consulta a la base de datos,,,,el problema es que esa consulta va a navegar por la red, y quiero encriptar la contrasena , y si es posible almacenar la contrasena encriptada en la base de datos. Saludos JL ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From inf200468 en ucf.edu.cu Thu Jul 12 18:44:21 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Thu, 12 Jul 2007 12:44:21 -0400 (CDT) Subject: autenticarse Message-ID: <3221.10.14.17.145.1184258661.squirrel@correo.ucf.edu.cu> ---------------------------------------------------------------- Alguien puede sugerirme algo Saludos JL ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From listas en soft-com.es Thu Jul 12 18:46:15 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Thu, 12 Jul 2007 18:46:15 +0200 Subject: Derivacion condicional In-Reply-To: References: Message-ID: <46965AD7.5050100@soft-com.es> Gerardo Juarez escribió: > No se si podria verse el problema desde este punto de vista: > Lo que tienes es un objeto X, que se comparte caracteristicas con A y con > B y que puede ser como A o como B dependiendo del contexto. Entonces no > seria X un derivado de ambos A y B? > > class X (A, B): > ... > > y que usara la funcionalidad que quisiera internamente? No me vale porque A y B exponen los mismos metodos y al hacer la derivacion de ambas se solaparian. > > Otra posibilidad: si A y B se parecen tanto, es que probablemente vienen > de otra clase generica P, de la cual derivan funcionalidades distintas. > En tal caso, X no deberia de definir su funcionalidad a partir de la > clase generica P? > No necesariamente, A y B derivan de clases distintas, precisamente lo que hacen es crear un interface comun para ellas. Gracias por tu interés. Saludos, -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From pych3m4 en gmail.com Thu Jul 12 19:14:59 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 12 Jul 2007 19:14:59 +0200 Subject: Derivacion condicional In-Reply-To: <46964724.1090804@soft-com.es> References: <469503C3.9050104@soft-com.es> <2c9fb0dd0707111520v57512d1ema940777f788e322a@mail.gmail.com> <46961E3C.5050409@soft-com.es> <2c9fb0dd0707120623r3fb21ac3h1d26e52eeb2d3bee@mail.gmail.com> <46964724.1090804@soft-com.es> Message-ID: <2c9fb0dd0707121014u4ae56dd0pbca2fa764fd1cd50@mail.gmail.com> El 12/07/07, Oswaldo Hernández escribió: > Chema Cortes escribió: > > class C(object): > > def __new__(cls,sel,*args,**kw): > > if sel<100: > > return A(*args,**kw) > > else: > > return B(*args,**kw) > > > > assert isinstance(C(1),A) > > assert isinstance(C(111),B) > > El problema de esto es que: > > isinstance(C(1), C) -> False > Tambien si C tiene un metodo __init__ (o cualquier otro) este no se ejecuta puesto que __new__ no > devuelve una clase tipo C. Supongo que lo debes tener claro; pero es dificil saber qué es lo que buscas sin ver el grafo de herencias que tienes previsto. Por la respuesta que has dado a Gerardo sospecho que las metaclases tampoco te van a servir. Basándome en la respuesta de Gerardo, asumo que A y B derivan de clases diferentes, y que el objetivo es "unificar" interfaces, una de la técnicas más simples que te pueden servir es la "delegación": class C: def __init__(self,sel): self._instance=A() if sel<100 else B() def __getattr__(self,name): return getattr(self._instance,name) La clase C no deriva ni de A ni de B, pero al menos "actúa" como si lo fuera. From pych3m4 en gmail.com Thu Jul 12 19:24:26 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 12 Jul 2007 19:24:26 +0200 Subject: Derivacion condicional In-Reply-To: References: <46964724.1090804@soft-com.es> Message-ID: <2c9fb0dd0707121024i7ef24f8m3a9c56eae33899c3@mail.gmail.com> El 12/07/07, Gerardo Juarez escribió: > La solucion de Chema es practica, pero los puristas de OO seguramente se > retorceran como caracoles espolvoreados con sal... :-DD Yo antes también era uno de esos puristas,...hasta que conocí python y la filosofía KISS[0]. Será por éso que en estos momentos me interesa lua y archlinux, porque los veo más simples que lo que usaba hasta ahora: python y gentoo. [0] http://es.wikipedia.org/wiki/Principio_KISS From jjrojoc en hotmail.com Thu Jul 12 19:31:55 2007 From: jjrojoc en hotmail.com (=?iso-8859-1?B?SnVhbiBKb3PpIFJvam8=?=) Date: Thu, 12 Jul 2007 17:31:55 +0000 Subject: autenticarse In-Reply-To: <3221.10.14.17.145.1184258661.squirrel@correo.ucf.edu.cu> References: <3221.10.14.17.145.1184258661.squirrel@correo.ucf.edu.cu> Message-ID: http://www.mysql-hispano.org/page.php?id=44 >From: inf200468 en ucf.edu.cu >Reply-To: La lista de python en castellano >To: python-es en aditel.org >Subject: [Python-es] autenticarse >Date: Thu, 12 Jul 2007 12:44:21 -0400 (CDT) > >---------------------------------------------------------------- >Alguien puede sugerirme algo > >Saludos JL > > > > >------------------------------ >Participe en Universidad 2008 >11 al 15 de febrero del 2008 >Palacio de las Convenciones, >Ciudad de la Habana, Cuba >http://www.universidad2008.cu >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Moda para esta temporada. Ponte al día de todas las tendencias. http://www.msn.es/Mujer/moda/default.asp From inf200468 en ucf.edu.cu Thu Jul 12 19:38:14 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Thu, 12 Jul 2007 13:38:14 -0400 (CDT) Subject: autenticarse In-Reply-To: References: Message-ID: <1235.10.14.17.145.1184261894.squirrel@correo.ucf.edu.cu> eso esta muy bien , pero yo utilizo postgresql, quiero saber como hacer eso de encriptar la contrasena desde python > http://www.mysql-hispano.org/page.php?id=44 > > >>From: inf200468 en ucf.edu.cu >>Reply-To: La lista de python en castellano >>To: python-es en aditel.org >>Subject: [Python-es] autenticarse >>Date: Thu, 12 Jul 2007 12:44:21 -0400 (CDT) >> >>---------------------------------------------------------------- >>Alguien puede sugerirme algo >> >>Saludos JL >> >> >> >> >>------------------------------ >>Participe en Universidad 2008 >>11 al 15 de febrero del 2008 >>Palacio de las Convenciones, >>Ciudad de la Habana, Cuba >>http://www.universidad2008.cu >>_______________________________________________ >>Python-es mailing list >>Python-es en aditel.org >>http://listas.aditel.org/listinfo/python-es > > _________________________________________________________________ > Moda para esta temporada. Ponte al día de todas las tendencias. > http://www.msn.es/Mujer/moda/default.asp > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From a.porrua en gmail.com Thu Jul 12 19:54:24 2007 From: a.porrua en gmail.com (tny) Date: Thu, 12 Jul 2007 19:54:24 +0200 Subject: autenticarse In-Reply-To: <1235.10.14.17.145.1184261894.squirrel@correo.ucf.edu.cu> References: <1235.10.14.17.145.1184261894.squirrel@correo.ucf.edu.cu> Message-ID: <1184262864.22098.3.camel@skynet> El jue, 12-07-2007 a las 13:38 -0400, inf200468 en ucf.edu.cu escribió: > eso esta muy bien , pero yo utilizo postgresql, quiero saber como hacer > eso de encriptar la contrasena desde python > > > > http://www.mysql-hispano.org/page.php?id=44 > > > > > >>From: inf200468 en ucf.edu.cu > >>Reply-To: La lista de python en castellano > >>To: python-es en aditel.org > >>Subject: [Python-es] autenticarse > >>Date: Thu, 12 Jul 2007 12:44:21 -0400 (CDT) > >> > >>---------------------------------------------------------------- > >>Alguien puede sugerirme algo > >> > >>Saludos JL Puedes emplear claves del modo en que hace linux. De modo que la página web no envíe la clave sino un digest de la misma. De todos modos si estás empleando algún framework casí fijo que tienen algún modo sancillo de hacer lo que quieres. Yo he mirao un poco por encima plone y me suena haber visto cosas de esas. Al final me decanté por cherrypy, y estoy empezando en esto de las aplicaciones web, así que no te puedo ser de más ayuda. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jjrojoc en hotmail.com Thu Jul 12 20:01:21 2007 From: jjrojoc en hotmail.com (=?iso-8859-1?B?SnVhbiBKb3PpIFJvam8=?=) Date: Thu, 12 Jul 2007 18:01:21 +0000 Subject: autenticarse In-Reply-To: <1235.10.14.17.145.1184261894.squirrel@correo.ucf.edu.cu> References: <1235.10.14.17.145.1184261894.squirrel@correo.ucf.edu.cu> Message-ID: Gogleando 5 minutos he encontrado esto, imagino que habrá más. Espero te sirva alguno. http://twhiteman.netfirms.com/des.html http://www.python.org/dev/peps/pep-0272/ http://www.python.org/workshops/1995-05/pct.html http://www.amk.ca/python/writing/pycrypt/ >From: inf200468 en ucf.edu.cu >Reply-To: La lista de python en castellano >To: "La lista de python en castellano" >Subject: RE: [Python-es] autenticarse >Date: Thu, 12 Jul 2007 13:38:14 -0400 (CDT) > >eso esta muy bien , pero yo utilizo postgresql, quiero saber como hacer >eso de encriptar la contrasena desde python > > > > http://www.mysql-hispano.org/page.php?id=44 > > > > > >>From: inf200468 en ucf.edu.cu > >>Reply-To: La lista de python en castellano > >>To: python-es en aditel.org > >>Subject: [Python-es] autenticarse > >>Date: Thu, 12 Jul 2007 12:44:21 -0400 (CDT) > >> > >>---------------------------------------------------------------- > >>Alguien puede sugerirme algo > >> > >>Saludos JL > >> > >> > >> > >> > >>------------------------------ > >>Participe en Universidad 2008 > >>11 al 15 de febrero del 2008 > >>Palacio de las Convenciones, > >>Ciudad de la Habana, Cuba > >>http://www.universidad2008.cu > >>_______________________________________________ > >>Python-es mailing list > >>Python-es en aditel.org > >>http://listas.aditel.org/listinfo/python-es > > > > _________________________________________________________________ > > Moda para esta temporada. Ponte al día de todas las tendencias. > > http://www.msn.es/Mujer/moda/default.asp > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > > > > >------------------------------ >Participe en Universidad 2008 >11 al 15 de febrero del 2008 >Palacio de las Convenciones, >Ciudad de la Habana, Cuba >http://www.universidad2008.cu >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Grandes éxitos, superhéroes, imitaciones, cine y TV... http://es.msn.kiwee.com/ Lo mejor para tu móvil. From joana_mendaro en hotmail.com Thu Jul 12 20:16:10 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Thu, 12 Jul 2007 18:16:10 +0000 Subject: invertir un diccionario Message-ID: Hola [1]chic en s mi pregunta es como puedo invertir un diccionario, es decir, si tengo: r={'hola':1, 'adios':2} #asi un diccionario muy largo convertirlo en r={1:'hola', 2:'adios'} gracias, la verdad es que es muy largo y escribirlo sería todo un coñazo!!! _________________________________________________________________ Ofertas y reservas para viajar por todo el mundo. [2]Organiza y contrata tus viajes aquí. References 1. mailto:chic en s 2. http://g.msn.com/8HMBESES/2749??PS=47575 From arnau en ehas.org Thu Jul 12 20:20:08 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 12 Jul 2007 20:20:08 +0200 Subject: invertir un diccionario In-Reply-To: References: Message-ID: <469670D8.1060303@ehas.org> joana salgado gomez escribió: > mi pregunta es como puedo invertir un diccionario, es decir, si tengo: > > r={'hola':1, 'adios':2} #asi un diccionario muy largo convertirlo en > > r={1:'hola', 2:'adios'} se me ocurre: dict((v, k) for (k, v) in r.iteritems()) From joana_mendaro en hotmail.com Thu Jul 12 20:43:52 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Thu, 12 Jul 2007 18:43:52 +0000 Subject: invertir un diccionario In-Reply-To: <469670D8.1060303@ehas.org> References: <469670D8.1060303@ehas.org> Message-ID: MUCHAS GRACIAS!!!! justo lo que necesitaba From: Arnau Sanchez Reply-To: La lista de python en castellano To: La lista de python en castellano Subject: Re: [Python-es] invertir un diccionario Date: Thu, 12 Jul 2007 20:20:08 +0200 >joana salgado gomez escribió: > >> mi pregunta es como puedo invertir un diccionario, es decir, si >>tengo: >> >> r={'hola':1, 'adios':2} #asi un diccionario muy largo >>convertirlo en >> >> r={1:'hola', 2:'adios'} > >se me ocurre: > >dict((v, k) for (k, v) in r.iteritems()) >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Coches nuevos, coches de ocasión, coches de Km 0 [1]Si piensas en cambiar de coche, MSN Motor. References 1. http://g.msn.com/8HMBESES/2746??PS=47575 From listas en soft-com.es Thu Jul 12 20:55:07 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Thu, 12 Jul 2007 20:55:07 +0200 Subject: Derivacion condicional In-Reply-To: <2c9fb0dd0707121014u4ae56dd0pbca2fa764fd1cd50@mail.gmail.com> References: <469503C3.9050104@soft-com.es> <2c9fb0dd0707111520v57512d1ema940777f788e322a@mail.gmail.com> <46961E3C.5050409@soft-com.es> <2c9fb0dd0707120623r3fb21ac3h1d26e52eeb2d3bee@mail.gmail.com> <46964724.1090804@soft-com.es> <2c9fb0dd0707121014u4ae56dd0pbca2fa764fd1cd50@mail.gmail.com> Message-ID: <4696790B.7060008@soft-com.es> Chema Cortes escribió: > El 12/07/07, Oswaldo Hernández escribió: >> Chema Cortes escribió: > Supongo que lo debes tener claro; pero es dificil saber qué es lo que > buscas sin ver el grafo de herencias que tienes previsto. Por la > respuesta que has dado a Gerardo sospecho que las metaclases tampoco > te van a servir. El esquema de clases vendria a ser algo asi (debia de haber empezado por aqui :( ) Clases A y B: derivan de distintos objetos wx y establecen un interface comun para ellos. Clase C es la que, en funcion del entorno o de los parametros, decide si se ha de utilizar A o B, ademas de añadir algunos metodos. Clases D, E, ... derivan de C y son las que establecen las propiedades y metodos finales para la funcion a realizar. Estas clases finales no tienen que preocuparse sobre si se esta utilizando A o B. Algunos posibles usos: - Modificar todo el interface de una aplicacion cambiando simplemente el valor de una variable global. (esta es facil) - Decidir segun los datos a mostrar en un widget wx si se ha de utilizar un TreeCtrl, un ListBox, o un Choice. - Mostrar u ocultar cierta información en funcion del usuario que ha establecido la sesión, la ip del equipo, etc. El objetivo de todo esto es que los programadores que realiza las clases finales que derivan de C no tengan que preocuparse sobre muchas de las cuestiones de aspecto, privacidad, etc .. -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From hernan en foffani.org Thu Jul 12 21:16:43 2007 From: hernan en foffani.org (=?ISO-8859-1?Q?Hernan_Mart=EDnez-Foffani?=) Date: Thu, 12 Jul 2007 21:16:43 +0200 Subject: Derivacion condicional In-Reply-To: <4696790B.7060008@soft-com.es> References: <469503C3.9050104@soft-com.es> <2c9fb0dd0707111520v57512d1ema940777f788e322a@mail.gmail.com> <46961E3C.5050409@soft-com.es> <2c9fb0dd0707120623r3fb21ac3h1d26e52eeb2d3bee@mail.gmail.com> <46964724.1090804@soft-com.es> <2c9fb0dd0707121014u4ae56dd0pbca2fa764fd1cd50@mail.gmail.com> <4696790B.7060008@soft-com.es> Message-ID: <11fab4bc0707121216x3bd094e4m64feeb20ce898828@mail.gmail.com> On 7/12/07, Oswaldo Hernández wrote: > Chema Cortes escribió: > > El 12/07/07, Oswaldo Hernández escribió: > >> Chema Cortes escribió: > > > Supongo que lo debes tener claro; pero es dificil saber qué es lo que > > buscas sin ver el grafo de herencias que tienes previsto. Por la > > respuesta que has dado a Gerardo sospecho que las metaclases tampoco > > te van a servir. > > El esquema de clases vendria a ser algo asi (debia de haber empezado por aqui :( ) > > Clases A y B: derivan de distintos objetos wx y establecen un > interface comun para ellos. > > Clase C es la que, en funcion del entorno o de los parametros, > decide si se ha de utilizar A o B, ademas de añadir algunos metodos. me da la impresión que te estás complicándo demasiado porque eso de cambiar la jerarquía de clases en tiempo de ejecución... ¿no puedes quitar a C de en medio? ¿estás *completamente seguro* que no tienes alternativas? > Clases D, E, ... derivan de C y son las que establecen las propiedades y > metodos finales para la > funcion a realizar. Estas clases finales no tienen que preocuparse > sobre si se esta utilizando A o B. Como creo que ya te ha comentado Chema, si usas "duck typing" ni siquiera te tienes que preocupar de dónde derivan los objetos de D, E y demás. Usas los métodos y a otra cosa. También podrías generalizar la interfaz común en una superclase común a A y B. Recuerda que Python permite la herencia múltiple. From listas en soft-com.es Thu Jul 12 21:46:38 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Thu, 12 Jul 2007 21:46:38 +0200 Subject: Derivacion condicional In-Reply-To: <11fab4bc0707121216x3bd094e4m64feeb20ce898828@mail.gmail.com> References: <469503C3.9050104@soft-com.es> <2c9fb0dd0707111520v57512d1ema940777f788e322a@mail.gmail.com> <46961E3C.5050409@soft-com.es> <2c9fb0dd0707120623r3fb21ac3h1d26e52eeb2d3bee@mail.gmail.com> <46964724.1090804@soft-com.es> <2c9fb0dd0707121014u4ae56dd0pbca2fa764fd1cd50@mail.gmail.com> <4696790B.7060008@soft-com.es> <11fab4bc0707121216x3bd094e4m64feeb20ce898828@mail.gmail.com> Message-ID: <4696851E.1030800@soft-com.es> Hernan Martínez-Foffani escribió: > On 7/12/07, Oswaldo Hernández wrote: >> Chema Cortes escribió: >> > El 12/07/07, Oswaldo Hernández escribió: >> >> Chema Cortes escribió: >> >> > Supongo que lo debes tener claro; pero es dificil saber qué es lo que >> > buscas sin ver el grafo de herencias que tienes previsto. Por la >> > respuesta que has dado a Gerardo sospecho que las metaclases tampoco >> > te van a servir. >> >> El esquema de clases vendria a ser algo asi (debia de haber empezado >> por aqui :( ) >> >> Clases A y B: derivan de distintos objetos wx y establecen un >> interface comun para ellos. >> >> Clase C es la que, en funcion del entorno o de los parametros, >> decide si se ha de utilizar A o B, ademas de añadir algunos metodos. > > me da la impresión que te estás complicándo demasiado porque > eso de cambiar la jerarquía de clases en tiempo de ejecución... > ¿no puedes quitar a C de en medio? > ¿estás *completamente seguro* que no tienes alternativas? > >> Clases D, E, ... derivan de C y son las que establecen las propiedades y >> metodos finales para la >> funcion a realizar. Estas clases finales no tienen que preocuparse >> sobre si se esta utilizando A o B. > > Como creo que ya te ha comentado Chema, si usas "duck typing" ni > siquiera te tienes que preocupar de dónde derivan los objetos de > D, E y demás. Usas los métodos y a otra cosa. > > También podrías generalizar la interfaz común en una superclase > común a A y B. Recuerda que Python permite la herencia múltiple. Creo que hoy ya tengo bastante cargada la cabeza. Quiza lo esté complicando demasiado. Mañana me replantearé el tema y volveré a comprobar las soluciones que me aportais. Gracias. -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From rodrigo en nul-unu.com Thu Jul 12 21:42:48 2007 From: rodrigo en nul-unu.com (Luis Rodrigo Gallardo Cruz) Date: Thu, 12 Jul 2007 14:42:48 -0500 Subject: Derivacion condicional In-Reply-To: <11fab4bc0707121216x3bd094e4m64feeb20ce898828@mail.gmail.com> References: <469503C3.9050104@soft-com.es> <2c9fb0dd0707111520v57512d1ema940777f788e322a@mail.gmail.com> <46961E3C.5050409@soft-com.es> <2c9fb0dd0707120623r3fb21ac3h1d26e52eeb2d3bee@mail.gmail.com> <46964724.1090804@soft-com.es> <2c9fb0dd0707121014u4ae56dd0pbca2fa764fd1cd50@mail.gmail.com> <4696790B.7060008@soft-com.es> <11fab4bc0707121216x3bd094e4m64feeb20ce898828@mail.gmail.com> Message-ID: <20070712194248.GA4659@caribdis.nul-unu.com> On Thu, Jul 12, 2007 at 09:16:43PM +0200, Hernan Martínez-Foffani wrote: > On 7/12/07, Oswaldo Hernández wrote: >> Clases A y B: derivan de distintos objetos wx y establecen un >> interface comun para ellos. >> >> Clase C es la que, en funcion del entorno o de los parametros, >> decide si se ha de utilizar A o B, ademas de añadir algunos metodos. >> >> Clases D, E, ... derivan de C y son las que establecen las propiedades y >> metodos finales para la >> funcion a realizar. Estas clases finales no tienen que preocuparse >> sobre si se esta utilizando A o B. > > me da la impresión que te estás complicándo demasiado porque > eso de cambiar la jerarquía de clases en tiempo de ejecución... El error me parece que es querer a fuerza tener una jerarquia de herencia. ¿Que tienen que ver D y E con todo esto? Define al revés, que A y B deriven de C, implementando la interfaz común y escondiendo las diferencias. Haz que D y E *usen* a C. Y define (en C o en otro lado) un 'proxy' que, según al entorno o lo que quieras regrese un C-especializado-con-A o un C-especializado-con-B o lo que sea. -- Rodrigo Gallardo GPG-Fingerprint: 7C81 E60C 442E 8FBC D975 2F49 0199 8318 ADC9 BC28 ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rastro en gmail.com Thu Jul 12 23:16:42 2007 From: rastro en gmail.com (r4str0) Date: Thu, 12 Jul 2007 17:16:42 -0400 Subject: nuevo "programando" In-Reply-To: References: Message-ID: On 7/12/07, hmanzano en labein.es wrote: > ... Mi problema es que para alguna cosa tengo prisa. Bueno, por ahora, ya que llevas prisa, ¿no te sirve un 'grep'?. Saludos From jvicentevilla en yahoo.es Thu Jul 12 23:22:34 2007 From: jvicentevilla en yahoo.es (vicente villaveces) Date: Thu, 12 Jul 2007 23:22:34 +0200 (CEST) Subject: Referencia de variables enviadas con post o get In-Reply-To: References: Message-ID: <792836.93740.qm@web27314.mail.ukl.yahoo.com> Gerardo Juarez escribió: Desde que puse mi respuesta me quede con la duda, pero ya la verifique con un programa que tengo que funciona. "value" es un atributo, no un metodo. Por lo tanto, no lleva los (): cedula = form['cedula'].value Mi receta inicial tenia el error y en tu script usas las dos formas. La primera form['cedula'].value no te da error y la segunda si. Ahora la excepcion KeyError no corresponde a que "form" no tenga la llave "cedula", que ya probaste previamente en el "if", sino a que form['cedula'], que es un diccionario en si mismo, no tiene un metodo "value()", si bien *si* tiene un atributo "value". saludos Gerardo >Saludos . gracias Sr. Gerardo, ya se pudo recobrar el valor de la variable cedula, leyendo la documentaciòn de python, encontré un ejemplo del método form.getvalue() y lo adapte quedando: cedula =form.getvalue("cedula") Con lo que tengo el valor de la variable,pero al usarla para establecer un filtro en la tabla no recupera la fila coincidente a pesar que la cedula que recupero está en la tabla, posiblemente especulo que tal vez sea que en la condición del filtro de la sentencia SQL, se tome la variable por su nombre no por su valor o será que existe otra forma de hacer el filtrado la cual desconozco. anexo el codigo. #!/usr/bin/env python ####################################################### # runs on the server, reads form input, prints html ####################################################### import cgi, sys, pg import cgitb; cgitb.enable () form = cgi.FieldStorage() if not (form.has_key("cedula")): print "

Error

" print "Por favor ingrese su cedula." db = pg.connect('datos', 'localhost', 5432, user= 'postgres', passwd= 'jose123456') #form = cgi.FieldStorage() # parse form data print "content-type: text/html" # plus blank line ########## html = """ solbecas

SALUDOS

Esta página ha sido realizada con la metodologia Server-side Scripting, en el lenguaje de programación Python, en respuesta a un formulario enviado desde otra página realizada con Html


%s

HR>""" if not form.has_key('cedula'): print html % ("Ingrese su número de cedula por favor") else: print html % ("Su número de cédula, %s." % form['cedula'].value) print """

""" cedula = form.getvalue("cedula") print cedula for r in db.query("""SELECT * FROM estudiantes where cedu ='cedula'""").dictresult(): print '''''' % r print "
BASE DATOS ESTUDIANTES
CEDULA NOMBRE EDAD
%(cedu)s %(nomb)s %(edad)s

" print 'fin de programa' Gracias. "Que viva el software libre y los hombres que lo liberan" Jose Vicente Villaveces. --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From jrvilda en gmail.com Thu Jul 12 23:47:06 2007 From: jrvilda en gmail.com (josu) Date: Thu, 12 Jul 2007 23:47:06 +0200 Subject: envio de ficheros eml Message-ID: <1184276826.15309.8.camel@Mobile-Desktop> hola amigos, necesitaba enviar diferentes tipos de adjuntos por correo para unas pruebas que tenemos que realizar. Ya he conseguido crear un programíta que permite seleccionar de forma rápida, los adjuntos listados de un directorios y enviarlos por correo con un simple click (sin tener que rellenar un correo, adjuntar el fichero y enviarlo), pero ahora necesitaría enviar no solo adjuntos sino ficheros eml ya formados y creados. Alguien sabe como podría hacerlo con python. Ficheros eml, (correos del express) para reenviarlos. La cuestion seria modificar el destinatario unicamnete y enviarlo, ya que son una recolecta de email dirigidos a varios destinatarios. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From cloudneozero en gmail.com Thu Jul 12 23:58:10 2007 From: cloudneozero en gmail.com (Ark) Date: Thu, 12 Jul 2007 16:58:10 -0500 Subject: Ayuda con plugins In-Reply-To: <49414f570707110856j6acc61a3s3d1d45c2e967b5f5@mail.gmail.com> References: <9dd22c9c0707091529r3705aa31me4f88382cb2cc02a@mail.gmail.com> <49414f570707110856j6acc61a3s3d1d45c2e967b5f5@mail.gmail.com> Message-ID: <9dd22c9c0707121458p69643831nd0bb88108fffbc1b@mail.gmail.com> Muchas gracias por sus aportes. Con lo que dices respecto a Trac, es verdad, antes de leer tu mensaje ya me había estado estudiando el códifo fuente del administrador de componentes de Trac, Es realmente muy buen software, pero me gusta mucho idear mis propios sistemas. Ya veré con que termino. Con respecto a lo de Gedit, no lo tuve en cuenta porque no está escrito en python, aunque usa algunos de los widgets de Gtk que voy a usar en el editor. Y a la tercera respuesta le agradezco mucho los enlaces. Uno de ellos (el primero) es la segunda parte que no había encontrado de un turorial. No tengo idea de como no la encotré, pero eso es el problema de tener el tiempo contado en los cafés. Gracias por la ayuda. From sonajadiabolica en gmail.com Fri Jul 13 01:02:39 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Thu, 12 Jul 2007 18:02:39 -0500 Subject: autenticarse In-Reply-To: <3219.10.14.17.145.1184258604.squirrel@correo.ucf.edu.cu> References: <3219.10.14.17.145.1184258604.squirrel@correo.ucf.edu.cu> Message-ID: <8d9e208f0707121602h75811042o303d1443db52ffac@mail.gmail.com> > el problema es que esa consulta va a > navegar por la red, y quiero encriptar la contrasena , y si es posible > almacenar la contrasena encriptada en la base de datos. Puedes almacenar el md5 de la contraseña, una manera de hacerlo: import md5 password='asdf' enc_password=md5.new(password).hexdigest() #se obtiene la cadena "912ec803b2ce49e4a541068d495ab570" #se guardar el enc_password en la db y cuando quieras autenticar, pides el password, obtienes su md5, y lo comparas con el que guardaste en la bd, si son iguales, el password es correcto. El punto flaco de esto, es que los cgi se ejecutan en el servidor, así que las contraseñas viajaran por internet desde el cliente hasta el servidor en claro, es decir, viajará la cadena "asdf" y no la cadena "912ec803b2ce49e4a541068d495ab570". Si quieres que sea la 2a cadena la que viaje, tendrías que apoyarte en javascript para generarla desde el navegador. Saludos. -- aNgel rEsendiz.! From jjachuf en gmail.com Fri Jul 13 02:21:34 2007 From: jjachuf en gmail.com (=?ISO-8859-1?Q?Jos=E9_Jachuf?=) Date: Thu, 12 Jul 2007 21:21:34 -0300 Subject: autenticarse In-Reply-To: <3219.10.14.17.145.1184258604.squirrel@correo.ucf.edu.cu> References: <3219.10.14.17.145.1184258604.squirrel@correo.ucf.edu.cu> Message-ID: <4696C58E.6000300@gmail.com> inf200468 en ucf.edu.cu escribió: > Hola> > estoy haciendo una cgi con python , y quiero hacer una pagina de entrada > para autenticarse, para esto quiero hacer una tabla en una base de datos > que contenga login y contrasena, y cuando vayan a entrar mando una > consulta a la base de datos,,,,el problema es que esa consulta va a > navegar por la red, y quiero encriptar la contrasena , y si es posible > almacenar la contrasena encriptada en la base de datos. > Saludos JL > Hola inf200468 en ucf.edu.cu hace un tiempo te envié por privado lo que estás pidiendo. Saludos From lasizoillo en gmail.com Fri Jul 13 11:21:36 2007 From: lasizoillo en gmail.com (lasizoillo) Date: Fri, 13 Jul 2007 11:21:36 +0200 Subject: Derivacion condicional In-Reply-To: <4696790B.7060008@soft-com.es> References: <469503C3.9050104@soft-com.es> <2c9fb0dd0707111520v57512d1ema940777f788e322a@mail.gmail.com> <46961E3C.5050409@soft-com.es> <2c9fb0dd0707120623r3fb21ac3h1d26e52eeb2d3bee@mail.gmail.com> <46964724.1090804@soft-com.es> <2c9fb0dd0707121014u4ae56dd0pbca2fa764fd1cd50@mail.gmail.com> <4696790B.7060008@soft-com.es> Message-ID: <49414f570707130221o4fec6605pc311fd67a3058842@mail.gmail.com> Asi explicado la cosa parece mas facil. Premisas: - C tiene que comportarse como A o como B dependiendo de algo (que mas da que). Por ahora nos olvidamos cual es la forma de hacerlo. - C, A y B comparten un interfaz comun. - Nos interesa trabajar con objetos de tipo C por algun motivo, por lo que descartamos el duck-typing. - D, E, F, ... heredan de C. Propuesta 1 que ya te han dado: C es un interface de A y de B. A y B heredan de lo que tengan que heredar y de C. D, E, ... heredan tranquilamente de C, pero no sabemos como decirle que implementar. No se me ocurre una forma elegante de decirles que usen la implementacion de A o de B. Propuesta 2, nos olvidamos de la herencia: Definimos una clase C que no hereda de ninguna otra. Esta clase C sabe ver ese algo de lo que depende para usar A o B. A y B comoponen a C, C elige cual usar "decorando" a una de estas dos clases. D, E, .... heredan tranquilamente de C. No nos molestamos en decirle si queremos que C se comporte como A o como B porque C es ya muy listo y sabe hacer las cosas. Creo que la segunda propuesta no es nada dificil de implementar. Seria algo asi: class C: def __init__(self): #TODO: dispatching a mejorar if algo: self.__c_inst = A() else: self.__c_inst = B() #Ejemplo de una funcion que se ejecuta con la implementacion de A o B dependiendo de algo def pinta(self, loquesea): log.info("Entro en pintar") #Puedo añadir "funcionalidad" en C self.__c_inst.pinta(loquesea) log.info("Salgo de pintar) Espero que esto te sirva de ayuda El 12/07/07, Oswaldo Hernández escribió: > Chema Cortes escribió: > > El 12/07/07, Oswaldo Hernández escribió: > >> Chema Cortes escribió: > > > Supongo que lo debes tener claro; pero es dificil saber qué es lo que > > buscas sin ver el grafo de herencias que tienes previsto. Por la > > respuesta que has dado a Gerardo sospecho que las metaclases tampoco > > te van a servir. > > El esquema de clases vendria a ser algo asi (debia de haber empezado por aqui :( ) > > Clases A y B: derivan de distintos objetos wx y establecen un interface comun para ellos. > > Clase C es la que, en funcion del entorno o de los parametros, decide si se ha de utilizar A o B, > ademas de añadir algunos metodos. > > Clases D, E, ... derivan de C y son las que establecen las propiedades y metodos finales para la > funcion a realizar. Estas clases finales no tienen que preocuparse sobre si se esta utilizando A o B. > > Algunos posibles usos: > > - Modificar todo el interface de una aplicacion cambiando simplemente el valor de una variable > global. (esta es facil) > > - Decidir segun los datos a mostrar en un widget wx si se ha de utilizar un TreeCtrl, un ListBox, o > un Choice. > > - Mostrar u ocultar cierta información en funcion del usuario que ha establecido la sesión, la ip > del equipo, etc. > > El objetivo de todo esto es que los programadores que realiza las clases finales que derivan de C no > tengan que preocuparse sobre muchas de las cuestiones de aspecto, privacidad, etc .. > > > -- > ***************************************** > Oswaldo Hernández > oswaldo (@) soft-com (.) es > ***************************************** > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From inf200468 en ucf.edu.cu Fri Jul 13 17:37:59 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Fri, 13 Jul 2007 11:37:59 -0400 (CDT) Subject: cargar fichero con cgi Message-ID: <1937.10.14.17.145.1184341079.squirrel@correo.ucf.edu.cu> hola tengo una cgi que tiene que abrir un fichero txt, les mando un fragmento del script, pero no abre el fichero. que ouede ser eso ???? gracias #!/usr/bin/python #### esta es la cgi para generar el fichero ########### estas lineas no cambian ############## import cgi print "Content-Type:text/html\n" print "" form = cgi.FieldStorage( ) import sys fuente = form.getvalue("textfield") # esta es la direccion de donde esta el #fichero # variables subcadena = "Llamador = " sub = "/" # cargo el fichero log para una lista fichero=open(fuente,'r') #esto no lo esta haciendo lista=fichero.readlines() fichero.close() ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From sonajadiabolica en gmail.com Fri Jul 13 19:40:04 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Fri, 13 Jul 2007 12:40:04 -0500 Subject: cargar fichero con cgi In-Reply-To: <1937.10.14.17.145.1184341079.squirrel@correo.ucf.edu.cu> References: <1937.10.14.17.145.1184341079.squirrel@correo.ucf.edu.cu> Message-ID: <8d9e208f0707131040h69c930ffgd332c1334054eb33@mail.gmail.com> > fuente = form.getvalue("textfield") # esta es la direccion de donde esta > el #fichero > > # variables > subcadena = "Llamador = " > sub = "/" > > # cargo el fichero log para una lista > fichero=open(fuente,'r') #esto no lo esta haciendo > lista=fichero.readlines() > fichero.close() Eso funcionará solamente si el fichero "fuente" se encuentra en el servidor, en el mismo directorio que el cgi, y tiene los permisos adecuados. Según lo que veo, la ruta la recibes de un formulario, así que dudo que tu enfoque esté correcto. Si lo que quieres es leer un archivo que esta en la computadora de el cliente, esa no es la manera de hacerlo. -- aNgel rEsendiz.! From inf200468 en ucf.edu.cu Fri Jul 13 20:15:05 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Fri, 13 Jul 2007 14:15:05 -0400 (CDT) Subject: cargar fichero con cgi In-Reply-To: <8d9e208f0707131040h69c930ffgd332c1334054eb33@mail.gmail.com> References: <1937.10.14.17.145.1184341079.squirrel@correo.ucf.edu.cu> <8d9e208f0707131040h69c930ffgd332c1334054eb33@mail.gmail.com> Message-ID: <3361.10.14.17.145.1184350505.squirrel@correo.ucf.edu.cu> tienes toda la razon ...gracias >> fuente = form.getvalue("textfield") # esta es la direccion de donde >> esta >> el #fichero >> >> # variables >> subcadena = "Llamador = " >> sub = "/" >> >> # cargo el fichero log para una lista >> fichero=open(fuente,'r') #esto no lo esta haciendo >> lista=fichero.readlines() >> fichero.close() > > Eso funcionará solamente si el fichero "fuente" se encuentra en el > servidor, en el mismo directorio que el cgi, y tiene los permisos > adecuados. Según lo que veo, la ruta la recibes de un formulario, así > que dudo que tu enfoque esté correcto. Si lo que quieres es leer un > archivo que esta en la computadora de el cliente, esa no es la manera > de hacerlo. > > -- > aNgel rEsendiz.! > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From inf200468 en ucf.edu.cu Fri Jul 13 20:21:58 2007 From: inf200468 en ucf.edu.cu (inf200468 en ucf.edu.cu) Date: Fri, 13 Jul 2007 14:21:58 -0400 (CDT) Subject: cgi Message-ID: <1095.10.14.17.145.1184350918.squirrel@correo.ucf.edu.cu> tengo otro problema con la cgi....yo tengo un formulario, cuando lo lleno, inserto esos datos en la base de datos y luego mando a imprimir esa misma pagina con el mismo formularios , para que sigan insertando datos, pero los vinculos no trabajan , da un error cada vez que presiono un vinculo. que puede ser eso????? ------------------------------ Participe en Universidad 2008 11 al 15 de febrero del 2008 Palacio de las Convenciones, Ciudad de la Habana, Cuba http://www.universidad2008.cu From sonajadiabolica en gmail.com Fri Jul 13 21:09:38 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Fri, 13 Jul 2007 14:09:38 -0500 Subject: cgi In-Reply-To: <1095.10.14.17.145.1184350918.squirrel@correo.ucf.edu.cu> References: <1095.10.14.17.145.1184350918.squirrel@correo.ucf.edu.cu> Message-ID: <8d9e208f0707131209q341dd99dva1a0acbc8f2a930f@mail.gmail.com> > tengo otro problema con la cgi....yo tengo un formulario, cuando lo > lleno, inserto esos datos en la base de datos y luego mando a imprimir > esa misma pagina con el mismo formularios , para que sigan insertando > datos, pero los vinculos no trabajan , da un error cada vez que > presiono un vinculo. > que puede ser eso????? Revisa bien tu código podria ser que estas formando mal las cadenas, o muchas otras cosas, pero si no dices que error es el que te arroja, o pones código, es imposible ayudarte, no podemos adivinar. Y creo que te vendría bien leer algo de cgi, parece que no son dudas o problemas aislados, lo que parece es que aún no tienes muy claro el concepto. Saludos. -- aNgel rEsendiz.! From pepe en diselpro.com Sun Jul 15 01:16:52 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Sun, 15 Jul 2007 01:16:52 +0200 Subject: autenticarse In-Reply-To: <8d9e208f0707121602h75811042o303d1443db52ffac@mail.gmail.com> References: <3219.10.14.17.145.1184258604.squirrel@correo.ucf.edu.cu> <8d9e208f0707121602h75811042o303d1443db52ffac@mail.gmail.com> Message-ID: <46995964.5060908@diselpro.com> Lo ideal es añadir al digest MD5/SHA unos cuantos bytes de "sal" para dificultar un ataque por diccionario. Saludos. aNgel rEsendiz g. escribió: >> el problema es que esa consulta va a >> navegar por la red, y quiero encriptar la contrasena , y si es posible >> almacenar la contrasena encriptada en la base de datos. > > Puedes almacenar el md5 de la contraseña, una manera de hacerlo: > import md5 > password='asdf' > enc_password=md5.new(password).hexdigest() > #se obtiene la cadena "912ec803b2ce49e4a541068d495ab570" > #se guardar el enc_password en la db > > y cuando quieras autenticar, pides el password, obtienes su md5, y lo > comparas con el que guardaste en la bd, si son iguales, el password es > correcto. > > El punto flaco de esto, es que los cgi se ejecutan en el servidor, así > que las contraseñas viajaran por internet desde el cliente hasta el > servidor en claro, es decir, viajará la cadena "asdf" y no la cadena > "912ec803b2ce49e4a541068d495ab570". Si quieres que sea la 2a cadena la > que viaje, tendrías que apoyarte en javascript para generarla desde el > navegador. > > Saludos. From dmunhiz en gmail.com Mon Jul 16 13:43:01 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Mon, 16 Jul 2007 13:43:01 +0200 Subject: teclas de acceso =?iso-8859-15?q?r=E1pido_en_grid?= Message-ID: <469B59C5.6080205@gmail.com> Hola: Uso wx.grid Ul caso es que he creado un grid y un botón el botón tiene tecla de método abreviado cuando estoy en la tabla al pulsar Alt+I ejecuta el código del bótón (en este caso añade una fila), esto lo hace bien pero me borra el contenido de la celda. Me gustaría saber como hacer para que la celda conserve su contenido. Saludos y gracias. -- Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From dmunhiz en gmail.com Mon Jul 16 13:51:44 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Mon, 16 Jul 2007 13:51:44 +0200 Subject: teclas de acceso =?ISO-8859-15?Q?r=E1pido_en_?= =?ISO-8859-15?Q?grid?= In-Reply-To: <469B59C5.6080205@gmail.com> References: <469B59C5.6080205@gmail.com> Message-ID: <469B5BD0.1060007@gmail.com> Me respondo a mi mismo. Eso no pasa, tienes un error en el código. dani dmunhiz escribiu: > Hola: > Uso wx.grid > Ul caso es que he creado un grid y un botón el botón tiene tecla de > método abreviado cuando estoy en la tabla al pulsar Alt+I ejecuta el > código del bótón (en este caso añade una fila), esto lo hace bien pero > me borra el contenido de la celda. > Me gustaría saber como hacer para que la celda conserve su contenido. > Saludos y gracias. > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From joana_mendaro en hotmail.com Mon Jul 16 17:59:02 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Mon, 16 Jul 2007 15:59:02 +0000 Subject: excepciones en python Message-ID: Hola estoy haciendo un programilla y quiero que haga una cosas i ocurre algun tipo de error, en pythn se usan try y ecxept y catch pero existe modo de agrupar todas los errorres posibles en uno. _________________________________________________________________ Encuentra una aventura, un romance o al amor de tu vida. [1]Date de alta gratis. References 1. http://g.msn.com/8HMAESES/2737??PS=47575 From nauj27 en gmail.com Mon Jul 16 18:01:53 2007 From: nauj27 en gmail.com (=?ISO-8859-1?Q?Juan_Mart=EDn?=) Date: Mon, 16 Jul 2007 18:01:53 +0200 Subject: excepciones en python In-Reply-To: References: Message-ID: <2c79d17e0707160901u3933cd63r5329975bdd563a5c@mail.gmail.com> On 7/16/07, joana salgado gomez wrote: > > Hola > estoy haciendo un programilla y quiero que haga una cosas i ocurre > algun tipo de error, en pythn se usan try y ecxept y catch pero existe > modo de agrupar todas los errorres posibles en uno. Hola, Si pones except: sin especificar el tipo de excepción las estarás capturando todas las que puedan ocurrir en el bloque try: correspondiente. J. From ruido_electronico en yahoo.es Tue Jul 17 05:56:31 2007 From: ruido_electronico en yahoo.es (ruben gomez) Date: Tue, 17 Jul 2007 05:56:31 +0200 (CEST) Subject: Leer asignaciones en un archivo de texto. Message-ID: <386079.91567.qm@web27212.mail.ukl.yahoo.com> Buenas: Tengo una cosa como esta: #Archivo python: lola = "que guapa es" manolo = "mira que es feo" f = open(r"C:/prueba.txt", "r") a = f.readline( ) b = f.readline( ) print a print b f.close( ) #archivo prueba.txt lola manolo #Resultado de la impresión lola manolo Yo, en realidad, lo que quería que se imprimiese era: que guapa es mira que es feo No se si me explico bien, lo que pretendo es que lea las asignaciones de variables en un archivo de texto. ¿Alguna idea? Gracias por adelantado. --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From victoredier en yahoo.com Tue Jul 17 06:16:32 2007 From: victoredier en yahoo.com (Victor Edier) Date: Mon, 16 Jul 2007 21:16:32 -0700 (PDT) Subject: Leer asignaciones en un archivo de texto. Message-ID: <423933.70198.qm@web30808.mail.mud.yahoo.com> Lo que quieres es leer el nombre de la variable ( ya existente ) a imprimir desde el archivo, eso es lo que te entiendo te recomiendo la función eval que funciona así: a="A" #la variable existe v="a" print eval(v) El eval(cadena) ejecuta la cadena, ejemplo x=eval("2+2") ¡¡¡¡¡¡¡¡¡Good luck for every body!!!!!!!!! Buenas: Tengo una cosa como esta: #Archivo python: lola = "que guapa es" manolo = "mira que es feo" f = open(r"C:/prueba.txt", "r") a = f.readline( ) b = f.readline( ) print a print b f.close( ) #archivo prueba.txt lola manolo #Resultado de la impresión lola manolo Yo, en realidad, lo que quería que se imprimiese era: que guapa es mira que es feo No se si me explico bien, lo que pretendo es que lea las asignaciones de variables en un archivo de texto. ¿Alguna idea? Gracias por adelantado. --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! Regístrate ya - http://correo.espanol.yahoo.com/ From pych3m4 en gmail.com Tue Jul 17 10:28:19 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 17 Jul 2007 10:28:19 +0200 Subject: Leer asignaciones en un archivo de texto. In-Reply-To: <386079.91567.qm@web27212.mail.ukl.yahoo.com> References: <386079.91567.qm@web27212.mail.ukl.yahoo.com> Message-ID: <2c9fb0dd0707170128l4e22238bxc20d16d5331241ca@mail.gmail.com> El 17/07/07, ruben gomez escribió: > [...] > No se si me explico bien, lo que pretendo es que lea las asignaciones de variables en un archivo de texto. > > ¿Alguna idea? Gracias por adelantado. No te recomiendo que uses 'eval' a menos que sea necesario. Es posible acceder a las variables globales y locales como si fueran diccionarios a través de las funciones globals() y locals(), respectivamente. En tu caso: a = f.readline() print globals().get(a,"") From pych3m4 en gmail.com Tue Jul 17 10:55:08 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 17 Jul 2007 10:55:08 +0200 Subject: excepciones en python In-Reply-To: References: Message-ID: <2c9fb0dd0707170155if8daa50l7c66898cad923f1f@mail.gmail.com> El 16/07/07, joana salgado gomez escribió: > > Hola > estoy haciendo un programilla y quiero que haga una cosas i ocurre > algun tipo de error, en pythn se usan try y ecxept y catch pero existe > modo de agrupar todas los errorres posibles en uno. Te recomendaría que eches un vistazo al tutorial: http://pyspanishdoc.sourceforge.net/tut/node10.html Las excepciones poseen una jerarquía que puede verse aquí: http://docs.python.org/lib/exception_hierarchy.txt Para capturar varias excepciones puedes optar por dos formas: - capturando una excepción de nivel superior que sea una superclase de las excepciones que desees capturar - dando una lista explícita de la excepciones que quieres capturar. Para responder en concreto a tu pregunta, todas las excepciones derivan de la clase 'Exception': try: ... except Exception: ... Si realmente quisieras interceptar "TODAS" las excepciones, puedes usar el 'except' sin parámetros, como te cuenta Juan Martín, o interceptar la excepción 'BaseException'; pero ten en cuenta que excepciones son también 'KeyboarInterrupt' y 'SystemExit' (mira cómo están en la jerarquía que te he pasado antes). Supongo que no quieres interceptar estas dos excepciones, ya que imposibilitarías el poder forzar la salida de tu aplicación. From jrvilda en gmail.com Tue Jul 17 21:15:15 2007 From: jrvilda en gmail.com (Josu Rodriguez) Date: Tue, 17 Jul 2007 21:15:15 +0200 Subject: =?utf-8?q?verificar_firma_de_procesos_en_ejecuci?= =?utf-8?b?w7NuLg==?= Message-ID: Hola buenas, ¿Alguien sabe alguna función para verificar las firmas de los procesos en ejecución? ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From lozadarg en gmail.com Tue Jul 17 22:09:10 2007 From: lozadarg en gmail.com (Lozada) Date: Tue, 17 Jul 2007 14:09:10 -0600 Subject: Combobox en TreeView Message-ID: <1b781d4d0707171309u560f98ecscbda38c6a5f4707@mail.gmail.com> Hola todos, tengo un TreeView con un Combobox en una celda, con el cual tengo dos dudas, la primera es como hacer para que sea visible ya que solo es visible cuando le doy click a la celda donde esta, cuando pierde el foco se oculta el combo; la segunda es como puedo obtener el valor del combo que esta en la celda, es decir como obtengo el modelo del combo. les pongo parte del codigo por si sirve de algo ... self.cell8 = gtk.CellRendererCombo() ... self.modelo = gtk.ListStore(str, str) [self.modelo.append((meses[0],"%s, %s" % (meses[1], meses[2]))) for meses in meses] self.cell8.set_property('text-column', 1) self.cell8.set_property('model', self.modelo) self.cell8.set_property('editable', True) ... col8 = gtk.TreeViewColumn('Mes', self.cell8, text=7) ... self.trvAvAvance.append_column(col8) gracias de desde ya. From flaper87 en gmail.com Wed Jul 18 06:55:50 2007 From: flaper87 en gmail.com (Flaper87) Date: Wed, 18 Jul 2007 00:55:50 -0400 Subject: =?iso-8859-1?q?pybluez_+_calidad_de_se=F1al_o_respue?= =?iso-8859-1?q?sta?= Message-ID: Saludos: Quisiera saber como puedo hacer para medir la calidad o intensidad de la señal de un dispositivo bluetooth. Esto lo quiero implementar para saber que tan cerca se encuentra del computador. Hasta donde se pybluez no tiene esa opcion, alguien tiene una idea?, La mia es enviar un paquete echo como los que envia l2ping y evaluar el tiempo de respuesta del dispositivo, pero tampoco se como enviar ese tipo de paquetes :-D Cualquier ayuda se agradece Saludos -- Flavio Percoco Premoli, A.K.A. [Flaper87] http://www.flaper87.com Usuario Linux registrado #436538 Geek by nature, Linux by choice, Debian of course. Key Fingerprint: CFC0 C67D FF73 463B 7E55 CF43 25D1 E75B E2DB 15C7 From rafaelcantos en hotmail.com Wed Jul 18 10:29:30 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Wed, 18 Jul 2007 08:29:30 +0000 Subject: Dudas sobre pygtk y GStreamer Message-ID: Hola a todos. A ver si podéis echarme una mano con esto. Estoy desarrollando una interfaz con pygtk, de forma manual, y se me plantea la duda de que si la barra de menú es mejor añadirla directamente a la ventana o primero empaquetarla en una caja y añadir esta a la ventana. En ambos casos, ¿la barra de menú ocuparía todo el área de la ventana o sólo la parte superior? La otra cuestión es si conocéis algún tutorial de GStreamer, a poder ser en español. En la página web oficial lo único que he visto es una referencia de funciones y eso. Saludos y gracias. Rafa _________________________________________________________________ Un amor, una aventura, compañía para un viaje. Regístrate gratis en MSN Amor & Amistad. http://match.msn.es/match/mt.cfm?pg=channel&tcid=162349 From jjrojoc en hotmail.com Wed Jul 18 12:48:52 2007 From: jjrojoc en hotmail.com (=?iso-8859-1?B?SnVhbiBKb3PpIFJvam8=?=) Date: Wed, 18 Jul 2007 10:48:52 +0000 Subject: Dudas sobre pygtk y GStreamer In-Reply-To: References: Message-ID: Obviamente tiene que añadir un VBox, sería más o menos así: win = gtk.Window() vbox = gtk,VBox(homogeneous=False, spacing=0) toolbar = gtk.Toolbar() win.add(vbox) vbox.pack_start(toolbar, expand=False, fill=True, padding=0) Respecto a lo de gstreamer, lo siento, no sé tampoco como va. >From: "Rafael Cantos" >Reply-To: La lista de python en castellano >To: python-es en aditel.org >Subject: [Python-es] Dudas sobre pygtk y GStreamer >Date: Wed, 18 Jul 2007 08:29:30 +0000 > >Hola a todos. A ver si podéis echarme una mano con esto. > >Estoy desarrollando una interfaz con pygtk, de forma manual, y se me >plantea la duda de que si la barra de menú es mejor añadirla directamente a >la ventana o primero empaquetarla en una caja y añadir esta a la ventana. >En ambos casos, ¿la barra de menú ocuparía todo el área de la ventana o >sólo la parte superior? >La otra cuestión es si conocéis algún tutorial de GStreamer, a poder ser en >español. En la página web oficial lo único que he visto es una referencia >de funciones y eso. >Saludos y gracias. > >Rafa > >_________________________________________________________________ >Un amor, una aventura, compañía para un viaje. Regístrate gratis en MSN >Amor & Amistad. http://match.msn.es/match/mt.cfm?pg=channel&tcid=162349 > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Descarga gratis la Barra de Herramientas de MSN http://www.msn.es/usuario/busqueda/barra?XAPID=2031&DI=1055&SU=http%3A//www.hotmail.com&HL=LINKTAG1OPENINGTEXT_MSNBH From arnau en ehas.org Wed Jul 18 12:42:32 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Wed, 18 Jul 2007 12:42:32 +0200 Subject: =?ISO-8859-1?Q?Re=3A_=5BPython-es=5D_verificar_firma_de_?= =?ISO-8859-1?Q?procesos_en_ejecuci=F3n=2E?= In-Reply-To: References: Message-ID: <469DEE98.5030609@ehas.org> Josu Rodriguez escribió: > ¿Alguien sabe alguna función para verificar las firmas de los procesos en > ejecución? Perdona la ignorancia, pero... ¿qué es la firma de un proceso? From foxandxss en gmail.com Wed Jul 18 12:21:35 2007 From: foxandxss en gmail.com (Jesus Rodriguez) Date: Wed, 18 Jul 2007 10:21:35 +0000 Subject: Dudas sobre pygtk y GStreamer In-Reply-To: References: Message-ID: <2a1edb210707180321s13046e2j8bee0fd7c600b865@mail.gmail.com> El menú es como otro widget más. Necesitarias colocar una caja ya que si no ocuparía toda la ventana. Lo que puedes hacer es colocar una caja vertical para partir la vetana en dos, poner el menú arriba y en la parte de abajo pues ya lo que quieras. Sobre GStreamer no se nada, sorry. Un saludo. From jvicentevilla en yahoo.es Wed Jul 18 17:33:39 2007 From: jvicentevilla en yahoo.es (vicente villaveces) Date: Wed, 18 Jul 2007 17:33:39 +0200 (CEST) Subject: filtrar base de datos con una variable Message-ID: <20070718153339.94639.qmail@web27311.mail.ukl.yahoo.com> Saludos. Estoy tratando de hacer una búsqueda en una base de datos por medio de un instrucción SQL, pero no consigo implementar el filtro, utilizo una instruccción SELECT con la claúsula WHERE, pero me presenta un error si coloco la variable cedula entre comillas dobles o sin comillas me da el error que la variable cedula no esta definida y si coloco la variable cedula entre comillas simples no presenta error pero no consigue la fila coincidente en la base de datos, a pesar de que estoy consultando una cedula registrada en la base datos, he buscado en las documentaciones de python y postgresql y en la web, pero no he conseguido la forma de resolver el error, les ruego el favor si conocen algún link donde pueda obtener informaciòn. Gracias. Josë Vicente Villaveces "Que viva el software libre y los hombres que lo liberan" --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From sonajadiabolica en gmail.com Wed Jul 18 17:48:02 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Wed, 18 Jul 2007 10:48:02 -0500 Subject: filtrar base de datos con una variable In-Reply-To: <20070718153339.94639.qmail@web27311.mail.ukl.yahoo.com> References: <20070718153339.94639.qmail@web27311.mail.ukl.yahoo.com> Message-ID: <8d9e208f0707180848i6e3d1dbey2b9afbe293d5c6e@mail.gmail.com> On 7/18/07, vicente villaveces wrote: > Saludos. Estoy tratando de hacer una búsqueda en una base de datos por medio de un instrucción SQL, pero no consigo implementar el filtro, utilizo una instruccción SELECT con la claúsula WHERE, pero me presenta un error si coloco la variable cedula entre comillas dobles o sin comillas me da el error que la variable cedula no esta definida y si coloco la variable cedula entre comillas simples no presenta error pero no consigue la fila coincidente en la base de datos, a pesar de que estoy consultando una cedula registrada en la base datos, he buscado en las documentaciones de python y postgresql y en la web, pero no he conseguido la forma de resolver el error, les ruego el favor si conocen algún link donde pueda obtener informaciòn. Podrías poner el renglón en donde formas tu cadena para SELECT ?, probablemente se trate de algo de sintaxis. Saludos -- aNgel rEsendiz.! From jjrojoc en hotmail.com Wed Jul 18 17:53:29 2007 From: jjrojoc en hotmail.com (=?iso-8859-1?B?SnVhbiBKb3PpIFJvam8=?=) Date: Wed, 18 Jul 2007 15:53:29 +0000 Subject: filtrar base de datos con una variable In-Reply-To: <20070718153339.94639.qmail@web27311.mail.ukl.yahoo.com> References: <20070718153339.94639.qmail@web27311.mail.ukl.yahoo.com> Message-ID: cedula+'%') En este caso filtraria por lo que contenga la variable cedula mas X. Por ejemplo si cedula = 'p' el select te mostraria todas las filas que contengan p mas lo que sea. El iterador % sustituye cualquier caracter que haya detras en este caso, tambien se puede poner delante para filtrar palabras que contengan la variable cedula. Te dejo mi codigo funcionando: c.execute('select id, nombre, direccion from clientes where nombre like %s', self.widgets.get_widget('entBusqueda').get_text()+'%') >From: vicente villaveces >Reply-To: La lista de python en castellano >To: python-es en aditel.org >Subject: [Python-es] filtrar base de datos con una variable >Date: Wed, 18 Jul 2007 17:33:39 +0200 (CEST) > > Saludos. Estoy tratando de hacer una búsqueda en una base de >datos por medio de un instrucción SQL, pero no consigo implementar el >filtro, utilizo una instruccción SELECT con la claúsula WHERE, pero me >presenta un error si coloco la variable cedula entre comillas dobles o sin >comillas me da el error que la variable cedula no esta definida y si >coloco la variable cedula entre comillas simples no presenta error pero no >consigue la fila coincidente en la base de datos, a pesar de que estoy >consultando una cedula registrada en la base datos, he buscado en las >documentaciones de python y postgresql y en la web, pero no he conseguido >la forma de resolver el error, les ruego el favor si conocen algún link >donde pueda obtener informaciòn. > > > > Gracias. > > Josë >Vicente Villaveces > >"Que viva el software libre y los hombres que lo liberan" > > > > > >--------------------------------- > >Sé un Mejor Amante del Cine >¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Horóscopo, tarot, numerología... Escucha lo que te dicen los astros. http://astrocentro.msn.es/ From jvicentevilla en yahoo.es Wed Jul 18 23:21:38 2007 From: jvicentevilla en yahoo.es (vicente villaveces) Date: Wed, 18 Jul 2007 23:21:38 +0200 (CEST) Subject: filtrar base de datos con una variable In-Reply-To: <8d9e208f0707180848i6e3d1dbey2b9afbe293d5c6e@mail.gmail.com> References: <8d9e208f0707180848i6e3d1dbey2b9afbe293d5c6e@mail.gmail.com> Message-ID: <753522.13677.qm@web27307.mail.ukl.yahoo.com> "aNgel rEsendiz g." escribió: On 7/18/07, vicente villaveces wrote: > Saludos. Estoy tratando de hacer una búsqueda en una base de datos por medio de un instrucción SQL, pero no consigo implementar el filtro, utilizo una instruccción SELECT con la claúsula WHERE, pero me presenta un error si coloco la variable cedula entre comillas dobles o sin comillas me da el error que la variable cedula no esta definida y si coloco la variable cedula entre comillas simples no presenta error pero no consigue la fila coincidente en la base de datos, a pesar de que estoy consultando una cedula registrada en la base datos, he buscado en las documentaciones de python y postgresql y en la web, pero no he conseguido la forma de resolver el error, les ruego el favor si conocen algún link donde pueda obtener informaciòn. Podrías poner el renglón en donde formas tu cadena para SELECT ?, probablemente se trate de algo de sintaxis. Saludos -- aNgel rEsendiz.! >Saludos, gracias a Sr. aNgel rEsendiz, por su respuesta, anexo le envio el codigo del script: #!/usr/bin/env python ####################################################### # runs on the server, reads form input, prints html ####################################################### import cgi, sys, pg import cgitb; cgitb.enable () form = cgi.FieldStorage() if not (form.has_key("cedula")): print "

Error

" print "Por favor ingrese su cedula." db = pg.connect('datos', 'localhost', 5432, user= 'postgres', passwd= 'jose123456') print "content-type: text/html" # plus blank line ########## html = """ solbecas

SALUDOS

Esta página ha sido realizada con la metodologia Server-side Scripting, en el lenguaje de programación Python, en respuesta a un formulario enviado desde otra página realizada con Html


%s

HR>""" #print cedula if not form.has_key('cedula'): print html % ("Ingrese su número de cedula por favor") else: print html % ("Su número de cédula, %s." % form['cedula'].value) print """

""" cedula = form.getvalue("cedula") print cedula print "
" #for r in db.query("""SELECT * FROM estudiantes where cedu = "cedula" """).dictresult(): # print ''' #for r in db.query("""SELECT * FROM estudiantes where cedu = cedula """).dictresult(): # print ''' for r in db.query("""SELECT * FROM estudiantes where cedu = cedula """).dictresult(): print '''''' % r print "
BASE DATOS ESTUDIANTES
CEDULA NOMBRE EDAD
%(cedu)s %(nomb)s %(edad)s

" print 'fin de programa' Gracias. Jose Vicente Villaveces. "Que viva el software libre y los hombres que lo liberan" _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From riverplatense en gmail.com Thu Jul 19 00:03:50 2007 From: riverplatense en gmail.com (Javier Castrillo) Date: Wed, 18 Jul 2007 19:03:50 -0300 Subject: filtrar base de datos con una variable In-Reply-To: <753522.13677.qm@web27307.mail.ukl.yahoo.com> References: <8d9e208f0707180848i6e3d1dbey2b9afbe293d5c6e@mail.gmail.com> <753522.13677.qm@web27307.mail.ukl.yahoo.com> Message-ID: On 18/07/07, vicente villaveces wrote: > > #for r in db.query("""SELECT * FROM estudiantes where cedu = "cedula" """).dictresult(): Me parece que es así: for r in db.query("""SELECT * FROM estudiantes where cedu = %s """ , (cedula)).dictresult(): Saludos -- Javier Castrillo ========================================================= GNU / Linux User #242275 ------------------------------- pub 1024D/B482896F 2006-09-04 uid Javier Castrillo (El Palo) sub 2048g/52C99A4E 2006-09-04 Clave pública: carapa.com.ar/public.asc http://carapa.com.ar http://javiercastrillo.com.ar http://riverplatense.googlepages.com ========================================================= Usá Software Libre From minoztro en gmail.com Wed Jul 18 22:34:17 2007 From: minoztro en gmail.com (Milton Galo Patricio Inostroza Aguilera) Date: Wed, 18 Jul 2007 16:34:17 -0400 Subject: Combobox en TreeView In-Reply-To: <1b781d4d0707171309u560f98ecscbda38c6a5f4707@mail.gmail.com> References: <1b781d4d0707171309u560f98ecscbda38c6a5f4707@mail.gmail.com> Message-ID: <172699c50707181334lefe8297oc91d795da036cd85@mail.gmail.com> El 17/07/07, Lozada escribió: > Hola todos, tengo un TreeView con un Combobox en una celda, con el > cual tengo dos dudas, la primera es como hacer para que sea visible ya > que solo es visible cuando le doy click a la celda donde esta, cuando Esa duda la tengo hace ya unos ocho meses :-( > pierde el foco se oculta el combo; la segunda es como puedo obtener el > valor del combo que esta en la celda, es decir como obtengo el modelo > del combo. Esa si la se :-) > > les pongo parte del codigo por si sirve de algo > > > ... > self.cell8 = gtk.CellRendererCombo() > ... > > > self.modelo = gtk.ListStore(str, str) > [self.modelo.append((meses[0],"%s, %s" % (meses[1], meses[2]))) for > meses in meses] > > > self.cell8.set_property('text-column', 1) > self.cell8.set_property('model', self.modelo) > self.cell8.set_property('editable', True) self.cell8.connect('edited', self.fgn_edita_celda_tipo_producto, self.modelo) > ... > col8 = gtk.TreeViewColumn('Mes', self.cell8, text=7) > ... > self.trvAvAvance.append_column(col8) luego, def fgn_edita_celda_tipo_producto(self, cell, path, texto_nuevo, model): if texto_nuevo==None: model[path][1]='-' return model[path][1]=texto_nuevo model[path][2]='-' if model[path][0]=='0' and not model[path][1]==None: model[path][0]=1 return Creo que el cuerpo de la función está demás pero lo que interesa es la cabecera, espero que este código sea de ayuda, salu2!! > > gracias de desde ya. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Milton Inostroza Aguilera From fvillarroel en yahoo.com Thu Jul 19 07:22:24 2007 From: fvillarroel en yahoo.com (FERNANDO VILLARROEL) Date: Wed, 18 Jul 2007 22:22:24 -0700 (PDT) Subject: Turbogears Message-ID: <920193.69448.qm@web34308.mail.mud.yahoo.com> Hola amigos, este post junto con enviarles un fuerte abrazo a todos, tiene por objeto tambien conocer un poco sobre vuestro Know How de turbogears, en particular: 1) Que opinion o que ventajas o desventajas ofrece ante plataformas como .net o J2EE. 2) Cual es el mejor material de apoyo disponible o descargable, llamese manual, demo, etc. 3) Que tan dificil es la curva de aprendizaje. Bueno y si alguien tiene alguna opinion adicional se las agradecere mucho. La razon que me lleva a investigar sobre el tema es que ademas debo presentar tema para mi tesis y esta plataforma me suena muy bien. Debo comentar eso si que nunca me ha gustado el desarrollo web, pero si se trata de Python (me fascina) estoy dispuesto. Reitero mis mas coordiales saludos a todos y espero vuestros valiosos comentarios. Fernando Villarroel Noriel. ____________________________________________________________________________________ Take the Internet to Go: Yahoo!Go puts the Internet in your pocket: mail, news, photos & more. http://mobile.yahoo.com/go?refer=1GNXIC From ruido_electronico en yahoo.es Thu Jul 19 05:53:19 2007 From: ruido_electronico en yahoo.es (ruben gomez) Date: Thu, 19 Jul 2007 05:53:19 +0200 (CEST) Subject: Leer asignaciones en un archivo de texto Message-ID: <553671.25777.qm@web27202.mail.ukl.yahoo.com> Por el momento eval( ) ha solucionado el problema. Pero me surgen dos dudas: 1-¿Porqué se me recomienda no usarlo? ¿Qué desventajas tiene? 2-Igualmente, si redefino una variable dentro de una definición def( ), no se me redefine dentro de todo el programa. Gracias. --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From xinxic en gmail.com Thu Jul 19 11:06:55 2007 From: xinxic en gmail.com (Xin) Date: Thu, 19 Jul 2007 11:06:55 +0200 Subject: Unittest i doctest Message-ID: <522677626fa11d6ed06d47d6e10412dc@GMail.com> Hola a todos, Ayer descubrí unittest i doctest. Como he podido estar perdiendo el tiempo haciendo pruevas y volvíendolas a hacer cada vez que cambiaba algo del código... Ahora, hago las pruebas con classes unittest i las agrupo en los paquetes para poder comprobar con una sola instrucción que el código no ha sufrido ningun percance por algun cambio. Vosotros los usais? De que forma lo hacéis? Teneis alguna técnica para ejecutar-los todos a la vez? Bueno, queria compartir este descubrimiento. Xin From rafaelcantos en hotmail.com Thu Jul 19 10:04:56 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Thu, 19 Jul 2007 08:04:56 +0000 Subject: Dudas sobre Pygtk y GStreamer In-Reply-To: <20070718223549.086731440B38@devnull.aditel.org> References: <20070718223549.086731440B38@devnull.aditel.org> Message-ID: Hola. gracias por vuestras respuestas. Lo del menú venía porque en el manual ponía que se podía agregar directamente a la ventana o empaquetándolo en una caja. Si alguien sabe algo de GStreamer, le agradecería q me lo dijese. Y si no, algun tipo de librerías para reproducir archivos de audio, MP3 y Wav, que no tengan restricciones de uso y que sean gratuitas, pues estoy desarrollando una aplicación libre. gracias y saludos. Rafa >El menú es como otro widget más. Necesitarias colocar una caja ya que si no >ocuparía toda la ventana. > >Lo que puedes hacer es colocar una caja vertical para partir la vetana en >dos, poner el menú arriba y en la parte de abajo pues ya lo que quieras. > > >Sobre GStreamer no se nada, sorry. > > >Un saludo. _________________________________________________________________ Acepta el reto MSN Premium: Protección para tus hijos en internet. Descárgalo y pruébalo 2 meses gratis. http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_proteccioninfantil From hfoffani en gmail.com Thu Jul 19 11:45:28 2007 From: hfoffani en gmail.com (Hernan M Foffani) Date: Thu, 19 Jul 2007 11:45:28 +0200 Subject: Leer asignaciones en un archivo de texto In-Reply-To: <553671.25777.qm@web27202.mail.ukl.yahoo.com> References: <553671.25777.qm@web27202.mail.ukl.yahoo.com> Message-ID: <11fab4bc0707190245g3fbf6b34x2e4456477dcb47e0@mail.gmail.com> > Por el momento eval( ) ha solucionado el problema. Pero me surgen dos dudas: > > 1-¿Porqué se me recomienda no usarlo? ¿Qué desventajas tiene? Mas que nada por un problema de seguridad. Es muy complicado controlar lo que recibe el eval. > 2-Igualmente, si redefino una variable dentro de una definición def( ), > no se me redefine dentro de todo el programa. En este caso python se comporta como la mayoría de los lenguajes. Una función crea un espacio de nombres nuevo (las llamadas variables locales.) Si dentro de la función quieres referir a la variable definidas a nivel de módulo usa global. >>> p=4 >>> def x(): ... global p ... p=5 ... >>> x() >>> p 5 >>> Saludos, -H. From jrvilda en gmail.com Thu Jul 19 08:48:55 2007 From: jrvilda en gmail.com (Josu Rodriguez) Date: Thu, 19 Jul 2007 08:48:55 +0200 Subject: =?UTF-8?Q?Re:__verificar_firma_de_procesos_en_ejecuci=C3=B3n.?= In-Reply-To: <469DEE98.5030609@ehas.org> References: <469DEE98.5030609@ehas.org> Message-ID: Los procesos, o ejecutables, pueden llevar una firma digital (RSA), para poder asegurar que: 1.Pertenece a la empresa de software que dice ser. 2.Asegurar que el proceso no a sido modificado desde su firmado en la organizacion que lo a creado a tu ordenador. Gracias a este sistema, en caso de que un proceso hubiese sido modificado por algun tipo de virus, la firma digital no se podria verificar, ya que el calculo del hash no corresponde. Un ejemplo de ello, son los procesos de microsoft, que casi todos, llevan la firma de microsoft. Esto se puede comprobar de forma facil, con el process explorer de sysinternals ahora de microsoft. Selecionando un proceso, propiedades y en la lengueta imagen, verificar. Veremos como en la misma lengueta debajo de nombre aparece verificado o no pendiente de verifiar. Tambien haciendo click derecho en el ejecutable veremos la lengueta firmas digitales, y poder seguir todos los certificados. El día 18/07/07, Arnau Sanchez escribió: > > Josu Rodriguez escribió: > > > ¿Alguien sabe alguna función para verificar las firmas de los procesos > en > > ejecución? > > Perdona la ignorancia, pero... ¿qué es la firma de un proceso? > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Josu Rodriguez Vilda Visita http://www.ivanfl.com/jrvilda ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Thu Jul 19 11:07:00 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 19 Jul 2007 11:07:00 +0200 Subject: Combobox en TreeView In-Reply-To: <172699c50707181334lefe8297oc91d795da036cd85@mail.gmail.com> References: <1b781d4d0707171309u560f98ecscbda38c6a5f4707@mail.gmail.com> <172699c50707181334lefe8297oc91d795da036cd85@mail.gmail.com> Message-ID: <469F29B4.3090301@ehas.org> Milton Galo Patricio Inostroza Aguilera escribió: > El 17/07/07, Lozada escribió: >> Hola todos, tengo un TreeView con un Combobox en una celda, con el >> cual tengo dos dudas, la primera es como hacer para que sea visible ya >> que solo es visible cuando le doy click a la celda donde esta, cuando > > Esa duda la tengo hace ya unos ocho meses :-( Aunque no os puedo dar la solución (creo que no se puede hacer, pero no estoy seguro), os aconsejaría que os subscribierais a la lista de pygtk (en inglés): http://www.daa.com.au/mailman/listinfo/pygtk Y luego volváis con la solución aquí :-) No tiene mucho tráfico, y ahí, entre otros, escriben Johan Dahlin (mantenedor actual de pygtk) y John Finlay (documentador), sería raro que no os dieran respuesta. Saludos From pych3m4 en gmail.com Thu Jul 19 10:20:50 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 19 Jul 2007 10:20:50 +0200 Subject: filtrar base de datos con una variable In-Reply-To: References: <8d9e208f0707180848i6e3d1dbey2b9afbe293d5c6e@mail.gmail.com> <753522.13677.qm@web27307.mail.ukl.yahoo.com> Message-ID: <2c9fb0dd0707190120o6ceec8c8y714b6c425b1e8c44@mail.gmail.com> El 19/07/07, Javier Castrillo escribió: > On 18/07/07, vicente villaveces wrote: > > > > #for r in db.query("""SELECT * FROM estudiantes where cedu = "cedula" """).dictresult(): > > Me parece que es así: > > for r in db.query("""SELECT * FROM estudiantes where cedu = %s """ , > (cedula)).dictresult(): Sería así, o casi, si el módulo usado siguiera la DB-API2. ...y digo lo de casi porque los parámetros tienen que pasarse como tupla (sería (cedula,) ) Con el módulo pg de pygresql no queda más remedio que construir la query SQL completa: sql="SELECT cedu,nomb,edad FROM estudiantes where cedu = '%s'" % cedula for r in db.query(sql).dictresult(): ... From pych3m4 en gmail.com Thu Jul 19 09:32:32 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 19 Jul 2007 09:32:32 +0200 Subject: Leer asignaciones en un archivo de texto In-Reply-To: <553671.25777.qm@web27202.mail.ukl.yahoo.com> References: <553671.25777.qm@web27202.mail.ukl.yahoo.com> Message-ID: <2c9fb0dd0707190032n63f7eefej8e74ddf87f31b4b0@mail.gmail.com> El 19/07/07, ruben gomez escribió: > Por el momento eval( ) ha solucionado el problema. Pero me surgen dos dudas: > > 1-¿Porqué se me recomienda no usarlo? ¿Qué desventajas tiene? desventaja: es necesario otro proceso diferente que interprete el código. No se recomienda debido a que no controla la posible ejecución de código malicioso. > 2-Igualmente, si redefino una variable dentro de una definición def( ), no se me redefine dentro de todo el programa. Si miras mejor la función eval, se le puede pasar un espacio de nombres globales y otro locales. Usa globals() y locals() para esos dos espacios, aunque no resuelve el problema del código malicioso. Existen técnicas para restringir lo que se puede hacer en un eval (mira en la lista[0]); pero si vas a usar la función globals() de todos modos, entonces úsala tal como te dije en lugar del 'eval' sin más complicaciones. [0] http://listas.aditel.org/archivos/python-es/2006-April/017018.html From pych3m4 en gmail.com Thu Jul 19 13:13:48 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 19 Jul 2007 13:13:48 +0200 Subject: Turbogears In-Reply-To: <920193.69448.qm@web34308.mail.mud.yahoo.com> References: <920193.69448.qm@web34308.mail.mud.yahoo.com> Message-ID: <2c9fb0dd0707190413q6278894am27d5fce2c1e9a836@mail.gmail.com> El 19/07/07, FERNANDO VILLARROEL escribió: > Hola amigos, este post junto con enviarles un fuerte > abrazo a todos, tiene por objeto tambien conocer un > poco sobre vuestro Know How de turbogears, en > particular: > > 1) Que opinion o que ventajas o desventajas ofrece > ante plataformas como .net o J2EE. Estas comparaciones no serían muy acertadas ya que estamos hablando de cosas distintas. Tal vez lo mejor es que revises éste mensaje reciente: http://listas.aditel.org/archivos/python-es/2007-June/022139.html Por añadir algo, yo diría lo siguiente: - asp.net tiene herramientas de desarrollo que permiten crear una aplicación web muy rápida. El problema viene luego a la hora de refinar ajustes y dar mantenimiento, una pesadilla. - j2ee: está muy aceptado, empresarialmente hablando. Tiene buenas herramientas de desarrollo para elegir, algunas de ellas como software libre. Su funcionamiento es muy estable y rápido, siempre que se configure correctamente el servidor. Como pega podría ser la incompatibilidad que se introduce al cambiar de versión del JRE, y que se hace poco esfuerzo en configurar bien el servidor. - turbogears: integra varias herramientas alrededor de cherrypy. Se puede crear un proyecto en unos pocos pasos. Tiene herramientas propias con las que diseñar el modelo de datos y un sistema de widgets expansible con el que crear interface gráfico interactivos muy fácilmente. Como desventaja, una vez creado un proyecto, el mantenimiento es bastante manual, perdiendo buena parte de la automatización inicial. > 2) Cual es el mejor material de apoyo disponible o > descargable, llamese manual, demo, etc. Sin duda, lo mejor es comprase el libro: http://docs.turbogears.org/1.0/TGBooks > 3) Que tan dificil es la curva de aprendizaje. Yo diría que cuesta mucho iniciarse sin conocer nada de los componentes que integra turbogears. La curva de aprendizaje sería la suma de lo que cuesta aprender cada elemento por separado, más el aprendizaje de los elementos propios de turbogears. La ventaja es que puedes experimentar los conceptos que vas adquiriendo dentro del prototipo que te ha creado turbogears, y usar sus herramientas para mejorar la comprensión (por ejemplo, usar catwalk para ver cómo se haría el código sqlobject de un modelo de datos relacional). No sé, podríamos hablar de muchas cosas, pero no dispongo de una información "realista" con la que apoyar estos argumentos. Pero, tal vez, deberías dejar de darle más vueltas y seguir a tu intuición. From mlarreategi en codesyntax.com Thu Jul 19 13:24:42 2007 From: mlarreategi en codesyntax.com (Mikel Larreategi) Date: Thu, 19 Jul 2007 13:24:42 +0200 Subject: Unittest i doctest In-Reply-To: <522677626fa11d6ed06d47d6e10412dc@GMail.com> References: <522677626fa11d6ed06d47d6e10412dc@GMail.com> Message-ID: <469F49FA.5020807@codesyntax.com> Xin(e)k dio: > Hola a todos, > > Ayer descubrí unittest i doctest. > > Como he podido estar perdiendo el tiempo haciendo pruevas y volvíendolas > a hacer cada vez que cambiaba algo del código... > > Ahora, hago las pruebas con classes unittest i las agrupo en los > paquetes para poder comprobar con una sola instrucción que el código no > ha sufrido ningun percance por algun cambio. > > Vosotros los usais? > De que forma lo hacéis? > Teneis alguna técnica para ejecutar-los todos a la vez? > > > Bueno, queria compartir este descubrimiento. > El código fuente de Zope está lleno de unittest y doctest. Allí encontraras scripts para ejecutar todos tus tests automáticamente http://svn.zope.org Mikel -- Mikel Larreategi mlarreategi en codesyntax.com CodeSyntax Azitaingo Industrialdea 3 K E-20600 Eibar Tel: (+34) 943 82 17 80 From antonio.beamud en linkend.net Thu Jul 19 13:15:46 2007 From: antonio.beamud en linkend.net (Antonio Beamud Montero) Date: Thu, 19 Jul 2007 13:15:46 +0200 Subject: Unittest i doctest In-Reply-To: <522677626fa11d6ed06d47d6e10412dc@GMail.com> References: <522677626fa11d6ed06d47d6e10412dc@GMail.com> Message-ID: <1184843746.5336.5.camel@lujuria.linkend.net> El jue, 19-07-2007 a las 11:06 +0200, Xin escribió: > Hola a todos, > > Ayer descubrí unittest i doctest. > > Teneis alguna técnica para ejecutar-los todos a la vez? Nose: http://somethingaboutorange.com/mrl/projects/nose/ > > Bueno, queria compartir este descubrimiento. > > > Xin > _______________________________________________ > 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 qualopec en gmail.com Thu Jul 19 13:51:32 2007 From: qualopec en gmail.com (Javier Santana) Date: Thu, 19 Jul 2007 13:51:32 +0200 Subject: Unittest i doctest In-Reply-To: <1184843746.5336.5.camel@lujuria.linkend.net> References: <522677626fa11d6ed06d47d6e10412dc@GMail.com> <1184843746.5336.5.camel@lujuria.linkend.net> Message-ID: http://en.wikipedia.org/wiki/Test-driven_development On 7/19/07, Antonio Beamud Montero wrote: > El jue, 19-07-2007 a las 11:06 +0200, Xin escribió: > > Hola a todos, > > > > Ayer descubrí unittest i doctest. > > > > Teneis alguna técnica para ejecutar-los todos a la vez? > > Nose: http://somethingaboutorange.com/mrl/projects/nose/ > > > > > Bueno, queria compartir este descubrimiento. > > > > > > Xin > > _______________________________________________ > > 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 cgalisteo en k-rolus.net Thu Jul 19 09:49:41 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo) Date: Thu, 19 Jul 2007 09:49:41 +0200 Subject: Turbogears In-Reply-To: <920193.69448.qm@web34308.mail.mud.yahoo.com> References: <920193.69448.qm@web34308.mail.mud.yahoo.com> Message-ID: <1b1b6ace98dc0f422dfce54861bc4bc4@k-rolus.net> > 1) Que opinion o que ventajas o desventajas ofrece > ante plataformas como .net o J2EE. No conozco mucho las dos plataformas que citas, pero creo que no son directamente comparables. Turbogears es estrictamente un framework para desarrollo web. .NET y J2EE son muchas más (y otras) cosas. > 2) Cual es el mejor material de apoyo disponible o > descargable, llamese manual, demo, etc. En la web de turbogears tienes una sección de documentación con ejemplos, tutoriales, e incluso screencast. En la portada de la web también hay un enlace al libro "Rapid Web Applications with TurboGears", que yo compré en su día y está bastante bien para empezar. Si quieres ojearlo antes de comprarlo creo que está disponible en pdf por ahí, pero si te gusta te recomendaría que lo compraras (también se puede comprar en pdf muy baratito). > 3) Que tan dificil es la curva de aprendizaje. ¿Es broma? Es Python!!! :) En serio, una vez que dominas los conceptos básicos todo es bastante natural. > La razon que me lleva a investigar sobre el tema es > que ademas debo presentar tema para mi tesis y esta > plataforma me suena muy bien. Suerte con la tesis, ya nos contarás de qué trata si te decides por usar algo relacionado con Python. > Debo comentar eso si que nunca me ha gustado el > desarrollo web, pero si se trata de Python (me > fascina) estoy dispuesto. En ese caso creo te gustará. Yo empecé a usar Turbogears porque era lo que menos se parecía al desarrollo web :) --- Carlos Galisteo http://blog.k-rolus.net PGP_key::http://k-rolus.net/~cgalisteo/cgalisteo.gpg Key_Fingerprint::F888 6FBA 9145 B5A2 C187 66D6 5B8C 027A 69AD BE65 --- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From xinxic en gmail.com Thu Jul 19 13:59:41 2007 From: xinxic en gmail.com (Xin) Date: Thu, 19 Jul 2007 13:59:41 +0200 Subject: Unittest i doctest In-Reply-To: References: <522677626fa11d6ed06d47d6e10412dc@GMail.com> <1184843746.5336.5.camel@lujuria.linkend.net> Message-ID: Muchas gracias a todos. Les estoy echando una ojeada. Xin ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From lasizoillo en gmail.com Thu Jul 19 15:43:31 2007 From: lasizoillo en gmail.com (lasizoillo) Date: Thu, 19 Jul 2007 15:43:31 +0200 Subject: Turbogears In-Reply-To: <920193.69448.qm@web34308.mail.mud.yahoo.com> References: <920193.69448.qm@web34308.mail.mud.yahoo.com> Message-ID: <49414f570707190643o6fd09565oaeb4ea652472d173@mail.gmail.com> Buenas: El 19/07/07, FERNANDO VILLARROEL escribió: > Hola amigos, este post junto con enviarles un fuerte > abrazo a todos, tiene por objeto tambien conocer un > poco sobre vuestro Know How de turbogears, en > particular: > > 1) Que opinion o que ventajas o desventajas ofrece > ante plataformas como .net o J2EE. > No voy a volver a escribir otra vez la comparativa que te adjunta Chema, pero no he cambiado mucho de opinion. Por temas de trabajo he tenido que volver al lado oscuro Javero, y aunque me tienta más que hace un par de meses, sigue sin convencerme. Por suerte, ahora hay muchos frameworks que eligen anotaciones en vez de tochos infumables de XML para la configuración. Lo cual hace que sean menos incomodos. Pero todavia falta quitar mucha burocracia para que se parezca al tipico enfoque que se suele adoptar con lenguajes interpretados. (Menos burocaria no implica descontrol, sino un control más facil de llevar a cabo). Sinceramente, creo que aunque Turbogears (o Catalyst, o Ruby on Rails, o...) no desplacen a J2EE en la empresa, si que consiguen que J2EE tenga en cuenta que los programadores tambien necesitan que se les haga la vida mas facil. Creo que ahi esta la gran diferencia entre J2EE y TurboGears, y por suerte J2EE esta mejorando. Un pequeño ejemplo de enfoque Kid (plantilla de TG) frente a taglibs (J2EE): http://kid-templating.org/language.html#match-templates-py-match ¿Con qué prefieres trabajar? > 2) Cual es el mejor material de apoyo disponible o > descargable, llamese manual, demo, etc. > http://docs.turbogears.org/1.0 http://groups.google.es/groups/dir?lnk=srgmt&q=turbogears (grupos para mantenerse al dia) Existe un libro, que puede estar bien para empezar, pero no para más adelante. La primera version (no se si hay otra) tiene muchos errores tipograficos. > 3) Que tan dificil es la curva de aprendizaje. > Tal como te comenta Chema, tienes un monton de dependencias a aprender para poder sacarle partido a la cosa. Uno de los primeros problemas es el empezar a elegir entre varios componentes (orm, sistema de plantillas, ...) a la hora de empezar. Otros (como cherrypy) vienen impuestos y no se elige entre varios. Otras veces, la falta de madurez del entorno te pondra en situaciones de las que solo te sacara ver los fuentes de TG (y a lo mejor subir algun parche). > Bueno y si alguien tiene alguna opinion adicional se > las agradecere mucho. > El futuro de Turbogears es el WSGI. Y usar pylons como base. http://www.wsgi.org/wsgi http://pylonshq.com/ WSGI creo que va a ser muy importante en python. Asi que llevo unos dias mirando pylons. De todas formas, creo que una inmersion en pylons, ahora mismo, es dolorosa por necesidad. Asi que no te la voy a recomendar, a no ser que hayas avanzado tanto que ya solo te quede hablar de TG 2.0. http://trac.turbogears.org/roadmap Pylons 1.0 no existe todavia :-/ > La razon que me lleva a investigar sobre el tema es > que ademas debo presentar tema para mi tesis y esta > plataforma me suena muy bien. > Lo bueno de estudiar un sistema de desarrollo abierto es la trasparencia. Puedes ver publicas las decisiones de diseño (listas de correo, logs de irc, ...) y las distintas versiones que se han desarrollado. http://trac.turbogears.org/browser/tags 0.5.x version muy inmadura de un pegamento de varias librerias de python 0.8.x version mas estable de la anterior 0.9.x version con un monton de herramientas propias (ver toolbox) 1.x Estabilizacion de la version 0.9.x 2.x ¿Que nos espera? WSGI, ToscaWidgets (devolver herramientas independientes a la comunidad y eliminar complejidad al core del framework), ... > Debo comentar eso si que nunca me ha gustado el > desarrollo web, pero si se trata de Python (me > fascina) estoy dispuesto. > Entonces te seguira pateando las tripas. Porque por mucho python que haya, y mucho widget te abstraiga de hacer incluso js, algo siempre queda. Asi que lo mejor es que trates de olvidar que lo odias y le des una opcion ;-) Por cierto, para tus propias cosas te recomiendo basarte en jQuery antes que en Mochikit. De todas formas, con cualquiera de los dos, odiaras menos el javascript y puede que incluso lo ames. > Reitero mis mas coordiales saludos a todos y espero > vuestros valiosos comentarios. Saludos, y mis mas sinceras disculpas por no ser capaz de ofrecer comentarios valiosos ;-) Javi From hfoffani en gmail.com Thu Jul 19 16:49:16 2007 From: hfoffani en gmail.com (Hernan M Foffani) Date: Thu, 19 Jul 2007 16:49:16 +0200 Subject: Unittest i doctest In-Reply-To: <522677626fa11d6ed06d47d6e10412dc@GMail.com> References: <522677626fa11d6ed06d47d6e10412dc@GMail.com> Message-ID: <11fab4bc0707190749p60288457hce568cd8bafd6cdb@mail.gmail.com> > Ayer descubrí unittest i doctest. > > Como he podido estar perdiendo el tiempo haciendo pruebas y > volviéndolas a hacer cada vez que cambiaba algo del código... > > Ahora, hago las pruebas con clases unittest i las agrupo en los > paquetes para poder comprobar con una sola instrucción que el código no > ha sufrido ningún percance por algún cambio. > > Vosotros los usáis? > De que forma lo hacéis? Son diferentes. unittest tiene un enfoque mas tradicional, por decirlo de alguna forma. doctest es documentación ejecutable. A mí en particular me gusta mas éste último, sobre todo para proyectos pequeños o personales. Pero es algo muy subjetivo. En mi caso uso doctest sólo para cambiar de aires: estoy todo el día con nUnit/jUnit. > Teneis alguna técnica para ejecutarlos a la vez? No entiendo a qué te refieres con esto. Saludos, -H. From jvicentevilla en yahoo.es Thu Jul 19 16:56:51 2007 From: jvicentevilla en yahoo.es (vicente villaveces) Date: Thu, 19 Jul 2007 16:56:51 +0200 (CEST) Subject: =?iso-8859-1?q?Re:=20=20Soluci=F3n=20a=20filtrar=20base=20de?= =?iso-8859-1?q?=20datos=20con=20una=20variable?= In-Reply-To: <2c9fb0dd0707190120o6ceec8c8y714b6c425b1e8c44@mail.gmail.com> References: <2c9fb0dd0707190120o6ceec8c8y714b6c425b1e8c44@mail.gmail.com> Message-ID: <20070719145651.64885.qmail@web27313.mail.ukl.yahoo.com> Chema Cortes escribió: El 19/07/07, Javier Castrillo escribió: > On 18/07/07, vicente villaveces wrote: > > > > #for r in db.query("""SELECT * FROM estudiantes where cedu = "cedula" """).dictresult(): > > Me parece que es así: > > for r in db.query("""SELECT * FROM estudiantes where cedu = %s """ , > (cedula)).dictresult(): Sería así, o casi, si el módulo usado siguiera la DB-API2. ...y digo lo de casi porque los parámetros tienen que pasarse como tupla (sería (cedula,) ) Con el módulo pg de pygresql no queda más remedio que construir la query SQL completa: sql="SELECT cedu,nomb,edad FROM estudiantes where cedu = '%s'" % cedula for r in db.query(sql).dictresult(): ... > Saludos, Gracias a los Sres. Chema Cortes, Juan Jose Rojo, Javier Castillo y a toda la comundad de la lista. He podido resolver el problema con las sugerencias hechas por el Sr. Chema Cortes, anexo el codigo final completo, para que sirva de ayuda a otros que esten en el camino. #!/usr/bin/env python ####################################################### # runs on the server, reads form input, prints html ####################################################### import cgi, sys, pg import cgitb; cgitb.enable () form = cgi.FieldStorage() if not (form.has_key("cedula")): print "

Error

" print "Por favor ingrese su cedula." db = pg.connect('datos', 'localhost', 5432, user= 'postgres', passwd= 'jose123456') print "content-type: text/html" # plus blank line ########## html = """ solbecas

SALUDOS

Esta página ha sido realizada con la metodologia Server-side Scripting, en el lenguaje de programación Python, en respuesta a un formulario enviado desde otra página realizada con Html


%s

HR>""" if not form.has_key('cedula'): print html % ("Ingrese su número de cedula por favor") else: print html % ("Su número de cédula, %s." % form['cedula'].value) print """

""" cedula = form.getvalue("cedula") print cedula print "
" sql="SELECT cedu,nomb,edad FROM estudiantes where cedu = '%s'" % cedula for r in db.query(sql).dictresult(): print '''''' % r print "
BASE DATOS ESTUDIANTES
CEDULA NOMBRE EDAD
%(cedu)s %(nomb)s %(edad)s

" print 'fin del script ' Gracias. Jose Vicente Villaveces. "Que viva el software libre y los hombres que lo liberan" _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From minoztro en gmail.com Thu Jul 19 17:08:47 2007 From: minoztro en gmail.com (Milton Galo Patricio Inostroza Aguilera) Date: Thu, 19 Jul 2007 11:08:47 -0400 Subject: Combobox en TreeView In-Reply-To: <469F29B4.3090301@ehas.org> References: <1b781d4d0707171309u560f98ecscbda38c6a5f4707@mail.gmail.com> <172699c50707181334lefe8297oc91d795da036cd85@mail.gmail.com> <469F29B4.3090301@ehas.org> Message-ID: <172699c50707190808l5e028148gd6643b50477f1a80@mail.gmail.com> El 19/07/07, Arnau Sanchez escribió: > Milton Galo Patricio Inostroza Aguilera escribió: > > > El 17/07/07, Lozada escribió: > >> Hola todos, tengo un TreeView con un Combobox en una celda, con el > >> cual tengo dos dudas, la primera es como hacer para que sea visible ya > >> que solo es visible cuando le doy click a la celda donde esta, cuando > > > > Esa duda la tengo hace ya unos ocho meses :-( > > Aunque no os puedo dar la solución (creo que no se puede hacer, pero no estoy > seguro), os aconsejaría que os subscribierais a la lista de pygtk (en > inglés): > > http://www.daa.com.au/mailman/listinfo/pygtk > > Y luego volváis con la solución aquí :-) > > No tiene mucho tráfico, y ahí, entre otros, escriben Johan Dahlin (mantenedor > actual de pygtk) y John Finlay (documentador), sería raro que no os dieran > respuesta. Done it :-)...lo de mucho tráfico es relativo tengo cerca de 1466 correos sin revisar de esa lista. Ahora esperemos, quizás tengamos suerte y nos contestan, salu2!! > > Saludos > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Milton Inostroza Aguilera From jpavonruiz en yahoo.es Thu Jul 19 18:37:01 2007 From: jpavonruiz en yahoo.es (Juan Pavon Ruiz) Date: Thu, 19 Jul 2007 18:37:01 +0200 (CEST) Subject: Descompilar un *.exe creado con py2exe? In-Reply-To: <20070419113409.5EC95148868C@devnull.aditel.org> References: <20070419113409.5EC95148868C@devnull.aditel.org> Message-ID: <140877.77112.qm@web53105.mail.re2.yahoo.com> Saludos a tod en s, hace unas semanas tuve un problema con el pc. Borré por accidente (por despiste) la partición que no debía... He perdido las fuentes más recientes de mi aplicación, y sólo me queda una carpeta con un .exe (resultado de py2exe) que guardé en mi llave USB. Quiero descompilar ese .exe y recuperar el código fuente, pero no veo como. Ha una solución que es de pago, pero no estoy muy largo de euros... ¿Sabe alguien qué camino debería de tomar para salir de este tunel? Gracias. Pasen un buen verano! --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From gerardo en computo-industrial.com.mx Thu Jul 19 18:20:31 2007 From: gerardo en computo-industrial.com.mx (Gerardo Juarez) Date: Thu, 19 Jul 2007 12:20:31 -0400 (EDT) Subject: filtrar base de datos con una variable In-Reply-To: <753522.13677.qm@web27307.mail.ukl.yahoo.com> References: <753522.13677.qm@web27307.mail.ukl.yahoo.com> Message-ID: Si pones con "cedula" o cedula sin comillas es mas o menos lo mismo: se supone que habra una *columna* con ese nombre. Prueba con la consola y veras que con "" dice que no existe un atributo con ese nombre y sin comillas da un conjunto vacio (0 registros). La razon es que las comillas "" se usan para otra cosa en SQL. Si quieres una cadena constante usa '' y ademas, debes poner como ya lo indicaron, %s, de modo que seria: for r in db.query("""SELECT * FROM estudiantes where cedu = '%s' """ % (cedula,)).dictresult(): Creo que tambien se podria: for r in db.query("""SELECT * FROM estudiantes where cedu = '%s' """, cedula).dictresult(): Las comillas simples no se requieren si tienes una interfaz que implemente el DB-API 2.0. saludos Gerardo ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From flaper87 en gmail.com Thu Jul 19 20:12:19 2007 From: flaper87 en gmail.com (Flaper87) Date: Thu, 19 Jul 2007 14:12:19 -0400 Subject: Descompilar un *.exe creado con py2exe? In-Reply-To: <140877.77112.qm@web53105.mail.re2.yahoo.com> References: <20070419113409.5EC95148868C@devnull.aditel.org> <140877.77112.qm@web53105.mail.re2.yahoo.com> Message-ID: En GNU/Linux puedes hacerle un "unzip archivo.exe" y con eso basta. :-D El día 19/07/07, Juan Pavon Ruiz escribió: > > Saludos a tod en s, > hace unas semanas tuve un problema con el pc. Borré por accidente (por > despiste) la partición que no debía... > He perdido las fuentes más recientes de mi aplicación, y sólo me queda una > carpeta con un .exe (resultado de py2exe) que guardé en mi llave USB. > Quiero descompilar ese .exe y recuperar el código fuente, pero no veo > como. > Ha una solución que es de pago, pero no estoy muy largo de euros... > > ¿Sabe alguien qué camino debería de tomar para salir de este tunel? > > Gracias. Pasen un buen verano! > > > --------------------------------- > > Sé un Mejor Amante del Cine > ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Flavio Percoco Premoli, A.K.A. [Flaper87] http://www.flaper87.com Usuario Linux registrado #436538 Geek by nature, Linux by choice, Debian of course. Key Fingerprint: CFC0 C67D FF73 463B 7E55 CF43 25D1 E75B E2DB 15C7 From xinxic en gmail.com Thu Jul 19 20:27:33 2007 From: xinxic en gmail.com (Xin) Date: Thu, 19 Jul 2007 20:27:33 +0200 Subject: Unittest i doctest In-Reply-To: <11fab4bc0707190749p60288457hce568cd8bafd6cdb@mail.gmail.com> References: <522677626fa11d6ed06d47d6e10412dc@GMail.com> <11fab4bc0707190749p60288457hce568cd8bafd6cdb@mail.gmail.com> Message-ID: <998b6f1cf7e4645777a0182b68040d75@GMail.com> El 19/07/2007, a les 16:49, en/na Hernan M Foffani va escriure: >> Teneis alguna técnica para ejecutarlos a la vez? > > No entiendo a qué te refieres con esto. Me referia al código usado para que los tests se ejecuten en cascada. En mi caso, al final hago lo siguiente: 1.- Creo unos ficheros de test_loquesea.py con algunos TestCase i le añado este main para que haga todas los test con un verbosity adecuado > if __name__ == '__main__': > """ > Funció principal (main) > """ > tr = unittest.TextTestRunner(verbosity=3) > unittest.main(testRunner=tr) 2.- En cada módulo creo un fichero tests.py que importa todos los módulos de test i le añado el mismo main. Así se ejecutan todos los tests de los mòdulos > from test_pepe import * > from test_sara import * > from test_tico import * > from test_etc import * 3.- En los paquetes raiz el fichero tests.py también importo los ficheros de test de los subpaquetes. I le pongo el mismo main. > from subpaquete_1.tests import * > from subpaquete_2.tests import * > from subpaquete_3.tests import * Salut Xin From fcoco en cilsa.org Thu Jul 19 20:25:59 2007 From: fcoco en cilsa.org (Federico Coco) Date: Thu, 19 Jul 2007 15:25:59 -0300 Subject: Uso de smtplib Message-ID: <469FACB7.4060601@cilsa.org> Como se asigna el parametro from para que tome la direccion con formato "NOMBRE " -- FEDERICO COCO SISTEMAS CILSA INT-119 From fvillarroel en yahoo.com Thu Jul 19 22:05:42 2007 From: fvillarroel en yahoo.com (FERNANDO VILLARROEL) Date: Thu, 19 Jul 2007 13:05:42 -0700 (PDT) Subject: Uso de smtplib In-Reply-To: <469FACB7.4060601@cilsa.org> References: <469FACB7.4060601@cilsa.org> Message-ID: <373539.87249.qm@web34306.mail.mud.yahoo.com> --- Federico Coco wrote: > Como se asigna el parametro from para que tome la > direccion con formato > "NOMBRE " Aca tienes un ejemplo http://docs.python.org/lib/SMTP-example.html Espero te sirva. > > -- > > FEDERICO COCO > SISTEMAS CILSA > INT-119 > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ____________________________________________________________________________________ Get the Yahoo! toolbar and be alerted to new email wherever you're surfing. http://new.toolbar.yahoo.com/toolbar/features/mail/index.php From kh_alatar en telefonica.net Thu Jul 19 21:55:35 2007 From: kh_alatar en telefonica.net (Alatar) Date: Thu, 19 Jul 2007 21:55:35 +0200 Subject: Uso de smtplib In-Reply-To: <469FACB7.4060601@cilsa.org> References: <469FACB7.4060601@cilsa.org> Message-ID: <5F8CB17A-1E1C-4F48-8582-B7F43810CB06@telefonica.net> Tal y como tú mismo lo has puesto. Por ejemplo: ... ... msg = MIMEMultipart('related') msg['From'] = 'nombre ' ... ... Saludos, Alatar El 19/07/2007, a las 20:25, Federico Coco escribió: > Como se asigna el parametro from para que tome la direccion con > formato "NOMBRE " > > -- > > FEDERICO COCO > SISTEMAS CILSA > INT-119 > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From lozadarg en gmail.com Thu Jul 19 23:46:12 2007 From: lozadarg en gmail.com (Lozada) Date: Thu, 19 Jul 2007 15:46:12 -0600 Subject: Combobox en TreeView Message-ID: <1b781d4d0707191446j42058088h71c430ead63fb74d@mail.gmail.com> > > > El 17/07/07, Lozada escribió: > > >> Hola todos, tengo un TreeView con un Combobox en una celda, con el > > >> cual tengo dos dudas, la primera es como hacer para que sea visible ya > > >> que solo es visible cuando le doy click a la celda donde esta, cuando > > > > > > Esa duda la tengo hace ya unos ocho meses :-( > > > > Aunque no os puedo dar la solución (creo que no se puede hacer, pero no estoy > > seguro), os aconsejaría que os subscribierais a la lista de pygtk (en > > inglés): > > > > http://www.daa.com.au/mailman/listinfo/pygtk Se agradece de todas formas > > > > Y luego volváis con la solución aquí :-) > > > > No tiene mucho tráfico, y ahí, entre otros, escriben Johan Dahlin (mantenedor > > actual de pygtk) y John Finlay (documentador), sería raro que no os dieran > > respuesta. > > Done it :-)...lo de mucho tráfico es relativo tengo cerca de 1466 > correos sin revisar de esa lista. También ya revise iba apostear el problema pero ya lo habias hecho > > Ahora esperemos, quizás tengamos suerte y nos contestan, salu2!! Que la suerte nos acompañe... Saludos y gracias por su atención. por cierto alguien sabe como se hace un combo.get_active_iter() al combo que esta en la celda? From jpavonruiz en yahoo.es Fri Jul 20 00:32:54 2007 From: jpavonruiz en yahoo.es (Juan Pavon Ruiz) Date: Fri, 20 Jul 2007 00:32:54 +0200 (CEST) Subject: Descompilar un *.exe creado con py2exe? In-Reply-To: <20070719200115.4A80114053B2@devnull.aditel.org> References: <20070719200115.4A80114053B2@devnull.aditel.org> Message-ID: <718928.58900.qm@web53109.mail.re2.yahoo.com> En GNU/Linux puedes hacerle un "unzip archivo.exe" y con eso basta. :-D Me da el siguiente error: "unzip ARCHIVO.exe" End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. note: ARCHIVO.exe may be a plain executable, not an archive unzip: cannot find zipfile directory in one of ARCHIVO.exe or ARCHIVO.exe.zip, and cannot find ARCHIVO.exe.ZIP, period. Parece que no se trata del mismo tipo de ejecutable. --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From cabrerachaparro en gmail.com Fri Jul 20 17:03:37 2007 From: cabrerachaparro en gmail.com (Daniel Cabrera) Date: Fri, 20 Jul 2007 10:03:37 -0500 Subject: XQuery Message-ID: <8565ad90707200803j1592f326ncac8f494317db0fb@mail.gmail.com> Hola, Saben de alguna herramienta en Python o alguna librería que me permita trabajar XQuery. Saludos -- Daniel Cabrera Chaparro Noticias Interesantes de Linux en http://comulinux.blogspot.com/ From hfoffani en gmail.com Fri Jul 20 17:21:37 2007 From: hfoffani en gmail.com (Hernan M Foffani) Date: Fri, 20 Jul 2007 17:21:37 +0200 Subject: Unittest i doctest In-Reply-To: <998b6f1cf7e4645777a0182b68040d75@GMail.com> References: <522677626fa11d6ed06d47d6e10412dc@GMail.com> <11fab4bc0707190749p60288457hce568cd8bafd6cdb@mail.gmail.com> <998b6f1cf7e4645777a0182b68040d75@GMail.com> Message-ID: <11fab4bc0707200821r21078c85gbe6a7d539f7cf89f@mail.gmail.com> > >> Teneis alguna técnica para ejecutarlos a la vez? > > > > No entiendo a qué te refieres con esto. > > Me referia al código usado para que los tests se ejecuten en cascada. Ah. Eso. > En mi caso, al final hago lo siguiente: > ... Yo divido la ejecución de los tests en dos: test unitario (por módulo) o todo junto. -H. From oscar-listas en naiandei.net Fri Jul 20 20:30:08 2007 From: oscar-listas en naiandei.net (Oscar Curero) Date: Fri, 20 Jul 2007 20:30:08 +0200 Subject: El retorno de los sockets Message-ID: <200707202030.13926.oscar-listas@naiandei.net> Hola, Estoy haciendo un conector tcp/ip para una aplicación (just for fun, nada serio) y me estoy liando con una parte de los sockets. Como información adicional, la maquina remota es una zSeries que usa big endian, con lo cual tendré que usar socket.htons(). El problema concreto es que no sé como enviar un determinado dato: el valor hexadecimal 40 (0x40). Según el manual de la aplicación servidor, el dato que envío es de un (1) byte de longitud. Mi pregunta es: ¿Como tengo que enviar el valor hexadecimal 40 (0x40) para que sólo ocupe 1 byte? Creo que se me está escapando algo tan básico que no lo estoy viendo... Una tabla de equivalencias: 64 (dec) = 40 (hex) = 100 (oct) = @ (chr) Por ejemplo: - Si pongo socket.send("64") Estoy enviando el valor 64, representación decimal de 0x40 que ocupa dos bytes ¿no? - Si pongo socket.send("100") Estoy enviando el valor 100, representación octal de 0x40 que ocupa tres bytes ¿no? ¿Como lo hacéis vosotros? merci!, -- Oscar Curero - Linux user: 306877 -- GPG keyID: 0xE0EA0B24 -- From a.porrua en gmail.com Fri Jul 20 23:02:51 2007 From: a.porrua en gmail.com (tny) Date: Fri, 20 Jul 2007 23:02:51 +0200 Subject: El retorno de los sockets In-Reply-To: <200707202030.13926.oscar-listas@naiandei.net> References: <200707202030.13926.oscar-listas@naiandei.net> Message-ID: <1184965371.14384.7.camel@skynet> El vie, 20-07-2007 a las 20:30 +0200, Oscar Curero escribió: > Hola, > > Estoy haciendo un conector tcp/ip para una aplicación (just for fun, nada > serio) y me estoy liando con una parte de los sockets. Como información > adicional, la maquina remota es una zSeries que usa big endian, con lo cual > tendré que usar socket.htons(). > > El problema concreto es que no sé como enviar un determinado dato: el valor > hexadecimal 40 (0x40). Según el manual de la aplicación servidor, el dato que > envío es de un (1) byte de longitud. Mi pregunta es: ¿Como tengo que enviar > el valor hexadecimal 40 (0x40) para que sólo ocupe 1 byte? Creo que se me > está escapando algo tan básico que no lo estoy viendo... > > Una tabla de equivalencias: > > 64 (dec) = 40 (hex) = 100 (oct) = @ (chr) > > Por ejemplo: > > - Si pongo socket.send("64") > Estoy enviando el valor 64, representación decimal de 0x40 que ocupa dos bytes > ¿no? > > - Si pongo socket.send("100") > Estoy enviando el valor 100, representación octal de 0x40 que ocupa tres bytes > ¿no? > > ¿Como lo hacéis vosotros? > merci!, me da la impresión de que no has mirao na de na... como dijo Perogruyo lo que es (texto) es (texto)... si pones socket.send("en un lugar de la mancha...") mandas el quijote si pones socket.send("@") mandas un byte que vale 64 con poco esfuerzo encontrarás algo para convertir valores (de 0 a 255) en caracteres... si te apetece mandar números más grandes no es muy complicado que te hagas tu propia función, y si lo que quieres en enviar otro tipo de dato, python te ofrece varios modulos para serializar... ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Fri Jul 20 22:49:46 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Fri, 20 Jul 2007 22:49:46 +0200 Subject: El retorno de los sockets In-Reply-To: <200707202030.13926.oscar-listas@naiandei.net> References: <200707202030.13926.oscar-listas@naiandei.net> Message-ID: <46A11FEA.6040104@ehas.org> Oscar Curero escribió: > El problema concreto es que no sé como enviar un determinado dato: el valor > hexadecimal 40 (0x40). Según el manual de la aplicación servidor, el dato que > envío es de un (1) byte de longitud. Mi pregunta es: ¿Como tengo que enviar > el valor hexadecimal 40 (0x40) para que sólo ocupe 1 byte? Creo que se me > está escapando algo tan básico que no lo estoy viendo... Un ordinal del tipo "carácter sin signo" (unsigned char: 0 <= i < 256) se puede pasar a cadena con la función "chr": dato = chr(0x40) print dato, len(dato) # "@", 1 sck.write(dato) Lo operación contraria es "ord": print ord("a") # -> 97 (tipo int) print chr(97) # -> "a" (tipo str) http://docs.python.org/lib/built-in-funcs.html Para un uso más genérico tienes el módulo struct (que a pesar de su nombre, no tiene nada que ver con los struct/record de otros lenguajes): http://docs.python.org/lib/module-struct.html Pregunta si tienes dudas con él Saludos From oscar-listas en naiandei.net Fri Jul 20 23:48:04 2007 From: oscar-listas en naiandei.net (Oscar Curero) Date: Fri, 20 Jul 2007 23:48:04 +0200 Subject: El retorno de los sockets In-Reply-To: <1184965371.14384.7.camel@skynet> References: <200707202030.13926.oscar-listas@naiandei.net> <1184965371.14384.7.camel@skynet> Message-ID: <200707202348.06709.oscar-listas@naiandei.net> tny vàreu escriure: > El vie, 20-07-2007 a las 20:30 +0200, Oscar Curero escribió: > > Hola, > > > > Estoy haciendo un conector tcp/ip para una aplicación (just for fun, nada > > serio) y me estoy liando con una parte de los sockets. Como información > > adicional, la maquina remota es una zSeries que usa big endian, con lo > > cual tendré que usar socket.htons(). > > > > El problema concreto es que no sé como enviar un determinado dato: el > > valor hexadecimal 40 (0x40). Según el manual de la aplicación servidor, > > el dato que envío es de un (1) byte de longitud. Mi pregunta es: ¿Como > > tengo que enviar el valor hexadecimal 40 (0x40) para que sólo ocupe 1 > > byte? Creo que se me está escapando algo tan básico que no lo estoy > > viendo... > > > > Una tabla de equivalencias: > > > > 64 (dec) = 40 (hex) = 100 (oct) = @ (chr) > > > > Por ejemplo: > > > > - Si pongo socket.send("64") > > Estoy enviando el valor 64, representación decimal de 0x40 que ocupa dos > > bytes ¿no? > > > > - Si pongo socket.send("100") > > Estoy enviando el valor 100, representación octal de 0x40 que ocupa tres > > bytes ¿no? > > > > ¿Como lo hacéis vosotros? > > merci!, > > me da la impresión de que no has mirao na de na... > como dijo Perogruyo lo que es (texto) es (texto)... > si pones socket.send("en un lugar de la mancha...") mandas el quijote > si pones socket.send("@") mandas un byte que vale 64 > con poco esfuerzo encontrarás algo para convertir valores (de 0 a 255) > en caracteres... Ahora lo entendí. Uff qué vergüenza... mira que no darme cuenta de algo tan básico. gracias -- Oscar Curero - Linux user: 306877 -- GPG keyID: 0xE0EA0B24 -- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From oscar-listas en naiandei.net Fri Jul 20 23:50:15 2007 From: oscar-listas en naiandei.net (Oscar Curero) Date: Fri, 20 Jul 2007 23:50:15 +0200 Subject: El retorno de los sockets In-Reply-To: <46A11FEA.6040104@ehas.org> References: <200707202030.13926.oscar-listas@naiandei.net> <46A11FEA.6040104@ehas.org> Message-ID: <200707202350.17480.oscar-listas@naiandei.net> Arnau Sanchez vàreu escriure: > Oscar Curero escribió: > > El problema concreto es que no sé como enviar un determinado dato: el > > valor hexadecimal 40 (0x40). Según el manual de la aplicación servidor, > > el dato que envío es de un (1) byte de longitud. Mi pregunta es: ¿Como > > tengo que enviar el valor hexadecimal 40 (0x40) para que sólo ocupe 1 > > byte? Creo que se me está escapando algo tan básico que no lo estoy > > viendo... > > Un ordinal del tipo "carácter sin signo" (unsigned char: 0 <= i < 256) se > puede pasar a cadena con la función "chr": > > dato = chr(0x40) > print dato, len(dato) > # "@", 1 > sck.write(dato) > > Lo operación contraria es "ord": > > print ord("a") # -> 97 (tipo int) > print chr(97) # -> "a" (tipo str) > > http://docs.python.org/lib/built-in-funcs.html > > Para un uso más genérico tienes el módulo struct (que a pesar de su nombre, > no tiene nada que ver con los struct/record de otros lenguajes): > > http://docs.python.org/lib/module-struct.html > Qué curioso. Había llegado hasta el módulo struct, pero como no acababa de entender el problema, tampoco acababa de entender la solución (es decir, la utilidad del módulo). Ahora ya si, es bastante sencillo pero muy útil. gracias, -- Oscar Curero - Linux user: 306877 -- GPG keyID: 0xE0EA0B24 -- From correo182 en gmail.com Sat Jul 21 02:43:25 2007 From: correo182 en gmail.com (Leonardo .) Date: Fri, 20 Jul 2007 21:43:25 -0300 Subject: =?iso-8859-1?q?Problema_de_Ejecuci=F3n?= Message-ID: Hola a todos. Tengo una duda respecto a un programa o a un bloque del mismo. El bloque es el siguiente: import random lista = ['Argentina','Brasil','Chile','Bolivia','Venezuela','Colombia'] random.choice(lista) Lo anterior lo ejecuto en el interprete o python-shell y funciona prefectamente, pero si lo guardo en un archivo y luego lo ejecuto la pantalla no muestra nada. A que puede deberse. From correo182 en gmail.com Sat Jul 21 03:00:32 2007 From: correo182 en gmail.com (Leonardo) Date: Fri, 20 Jul 2007 22:00:32 -0300 Subject: =?iso-8859-1?q?Problema_de_Ejecuci=F3n?= Message-ID: Hola a todos. Tengo una duda respecto a un programa o a un bloque del mismo. El bloque es el siguiente: import random lista = ['Argentina','Brasil','Chile','Bolivia','Venezuela','Colombia'] random.choice(lista) Lo anterior lo ejecuto en el interprete o python-shell y funciona prefectamente, pero si lo guardo en un archivo y luego lo ejecuto la pantalla no muestra nada. A que puede deberse. From victoredier en yahoo.com Sat Jul 21 03:08:35 2007 From: victoredier en yahoo.com (Victor Edier) Date: Fri, 20 Jul 2007 18:08:35 -0700 (PDT) Subject: =?iso-8859-1?Q?Re=3A_=5BPython-es=5D_Problema_de_Ejecuci=F3n?= Message-ID: <710924.86550.qm@web30806.mail.mud.yahoo.com> >>> import random >>> >>> lista = ['Argentina','Brasil','Chile','Bolivia','Venezuela','Colombia'] >>> random.choice(lista) 'Argentina' >>> En el shell la evaluación de cada linea excepto asignaciones e import se muestra en pantalla así el resultado devuelto por random.choice(lista) se muestra en pantalla, pero en un archivo. import random lista = ['Argentina','Brasil','Chile','Bolivia','Venezuela','Colombia'] print random.choice(lista) necesitamos enviar a la pantalla con print ¡¡¡¡¡¡¡¡¡Good luck for every body!!!!!!!!!El bloque es el siguiente: import random lista = ['Argentina','Brasil','Chile','Bolivia','Venezuela','Colombia'] random.choice(lista) Lo anterior lo ejecuto en el interprete o python-shell y funciona prefectamente, pero si lo guardo en un archivo y luego lo ejecuto la pantalla no muestra nada. A que puede deberse. _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! Regístrate ya - http://correo.espanol.yahoo.com/ From gagsl-py2 en yahoo.com.ar Sat Jul 21 15:52:40 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Sat, 21 Jul 2007 10:52:40 -0300 Subject: Descompilar un *.exe creado con py2exe? In-Reply-To: <718928.58900.qm@web53109.mail.re2.yahoo.com> References: <20070719200115.4A80114053B2@devnull.aditel.org> <718928.58900.qm@web53109.mail.re2.yahoo.com> Message-ID: En Thu, 19 Jul 2007 19:32:54 -0300, Juan Pavon Ruiz escribió: > En GNU/Linux puedes hacerle un "unzip archivo.exe" y con eso basta. :-D > > Me da el siguiente error: > > "unzip ARCHIVO.exe" > > End-of-central-directory signature not found. Either this file is not > a zipfile, or it constitutes one disk of a multi-part archive. In the > latter case the central directory and zipfile comment will be found on > the last disk(s) of this archive. Mmm, deberias poder abrirlo, tal vez con otra aplicacion... De cualquier forma, en el .exe estan los .pyc, no los fuentes. Asi que una vez que descomprimas el .exe, te va a quedar el problema de descompilar los .pyc. Que se podria llegar a hacer, habia un proyecto decompyle pero no se esta manteniendo y creo que solo llega hasta python 2.3 Digamos que descompilar codigo python no es taaaaaaaaaaaan dificil como en otros lenguajes: en el .pyc estan disponibles los nombres de las variables -incluso las locales-, los docstring de las funciones, y mucha mas informacion que en otros lenguajes se pierde luego de compilar. Pero igual, pasar del bytecode a algo "entendible" de alto nivel, no es tan facil, y menos ahora que como estructura intermedia se esta usando un AST que se puede manipular y optimizar antes de generar realmente el codigo. Asi que yo realmente recomendaria un programa para recuperacion de datos. Aun despues de reformatear y reparticionar el disco, se puede recuperar la informacion. Por ejemplo R-Studio http://www.data-recovery-software.net - yo lo use con un disco ya desahuciado y recupero absolutamente todo. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rbaquerizo en ehas.org Sat Jul 21 17:06:49 2007 From: rbaquerizo en ehas.org (Reynaldo Baquerizo Micheline) Date: Sat, 21 Jul 2007 15:06:49 +0000 Subject: tutorial de plug-ins en python Message-ID: <46A22109.2040209@ehas.org> Buenas, En referencia a un hilo sobre plugins en python encontré este tutorial http://lucumr.pocoo.org/blogarchive/python-plugin-system La referencia fue extraída de http://en.wikipedia.org/wiki/Plugin) Saludos From rolandojtorres en gmail.com Sun Jul 22 06:11:18 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Sat, 21 Jul 2007 23:11:18 -0500 Subject: Descompilar un *.exe creado con py2exe? In-Reply-To: References: <20070719200115.4A80114053B2@devnull.aditel.org> <718928.58900.qm@web53109.mail.re2.yahoo.com> Message-ID: <6a39a1d0707212111w59b737bbl1acdadb7d86e9b68@mail.gmail.com> Yo he usado testdisk y me recupero particiones enteras con archivos y todo. El 21/07/07, Gabriel Genellina escribió: > En Thu, 19 Jul 2007 19:32:54 -0300, Juan Pavon Ruiz > escribió: > > > En GNU/Linux puedes hacerle un "unzip archivo.exe" y con eso basta. :-D > > > > Me da el siguiente error: > > > > "unzip ARCHIVO.exe" > > > > End-of-central-directory signature not found. Either this file is not > > a zipfile, or it constitutes one disk of a multi-part archive. In the > > latter case the central directory and zipfile comment will be found on > > the last disk(s) of this archive. > > Mmm, deberias poder abrirlo, tal vez con otra aplicacion... De cualquier > forma, en el .exe estan los .pyc, no los fuentes. Asi que una vez que > descomprimas el .exe, te va a quedar el problema de descompilar los .pyc. > Que se podria llegar a hacer, habia un proyecto decompyle pero no se esta > manteniendo y creo que solo llega hasta python 2.3 > Digamos que descompilar codigo python no es taaaaaaaaaaaan dificil como en > otros lenguajes: en el .pyc estan disponibles los nombres de las variables > -incluso las locales-, los docstring de las funciones, y mucha mas > informacion que en otros lenguajes se pierde luego de compilar. Pero > igual, pasar del bytecode a algo "entendible" de alto nivel, no es tan > facil, y menos ahora que como estructura intermedia se esta usando un AST > que se puede manipular y optimizar antes de generar realmente el codigo. > > Asi que yo realmente recomendaria un programa para recuperacion de datos. > Aun despues de reformatear y reparticionar el disco, se puede recuperar la > informacion. Por ejemplo R-Studio http://www.data-recovery-software.net - > yo lo use con un disco ya desahuciado y recupero absolutamente todo. > > -- > Gabriel Genellina > -- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Sun Jul 22 13:07:50 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sun, 22 Jul 2007 13:07:50 +0200 Subject: =?ISO-8859-1?Q?Re=3A_=5BPython-es=5D_verificar_firma_de_?= =?ISO-8859-1?Q?procesos_en_ejecuci=F3n=2E?= In-Reply-To: References: <469DEE98.5030609@ehas.org> Message-ID: <46A33A86.1080102@ehas.org> Josu Rodriguez escribió: > Los procesos, o ejecutables, pueden llevar una firma digital (RSA), para > poder asegurar que: > [...] Perdón, se me olvidó contestar, gracias por la explicación. Ahora entiendo por qué no me sonaba (mantengo una distancia prudencial con todo Windows) Supongo que ya has mirado esto, por si acaso: http://www.python.net/crew/mhammond/win32/ Si tienes DLL que implementen la función que pides, puedes llamarla con ctypes: http://python.net/crew/theller/ctypes/ Pero como imagino que todo esto ya lo sabías, no es de gran ayuda... Saludos From joana_mendaro en hotmail.com Sun Jul 22 17:25:11 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Sun, 22 Jul 2007 15:25:11 +0000 Subject: validar informacion Message-ID: Hola chicos!! Necesito hacer un programa donde me compruebe que las variables introducidas son las correctas es decir, si son string o numeros . A mi se me ha ocurrida esta forma de hacerlo pero seguro que alguien me puede ayudar a mejorarla, muchas gracias. Seria la funcion validar informacion de toda la vida. def validarInformacionContrasena(self,clave, pwd1, pwd2): lista=list(clave) for i in range(len(lista)-1): if type(lista[i])!='int': return 'no valida' if type(lista[-1])!='str': return 'no valida' lista=list(pwd1) for i in range(len(lista)): if type(lista[i])!='int'or type(lista[i])!='str': return 'no valida' lista=list(pwd2) for i in range(len(lista)): if type(lista[i])!='int'or type(lista[i])!='str': return 'no valida' _________________________________________________________________ Coches nuevos, coches de ocasión, coches de Km 0 [1]Si piensas en cambiar de coche, MSN Motor. References 1. http://g.msn.com/8HMBESES/2746??PS=47575 From joana_mendaro en hotmail.com Sun Jul 22 13:42:19 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Sun, 22 Jul 2007 11:42:19 +0000 Subject: validar informacion Message-ID: Hola chicos: estoy haciendo un programa que me valide una informacion que yo le doy, seria validarInformacion(clave,pwd1,pwd1) las 3 puede sner del tipo varchar y si no lo son devolvera que no estan en el formato correcto, a mi se me ha ocurrido esta manera pero seguro que alguien ha hecho alguna vez algo parecido y esta mejor(que no es dificil) def validarInformacionContrasena(self,clave, pwd1, pwd2): lista=list(clave) for i in range(len(lista)-1): if type(lista[i])!='int': return 'no valida' if type(lista[-1])!='str': return 'no valida' lista=list(pwd1) for i in range(len(lista)): if type(lista[i])!='int'or type(lista[i])!='str': return 'no valida' lista=list(pwd2) for i in range(len(lista)): if type(lista[i])!='int'or type(lista[i])!='str': return 'no valida' si me podeis ayudar os lo agradeceria _________________________________________________________________ Ofertas y reservas para viajar por todo el mundo. [1]Organiza y contrata tus viajes aquí. References 1. http://g.msn.com/8HMBESES/2749??PS=47575 From joana_mendaro en hotmail.com Sun Jul 22 17:25:25 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Sun, 22 Jul 2007 15:25:25 +0000 Subject: validar informacion Message-ID: Hola chicos!! Necesito hacer un programa donde me compruebe que las variables introducidas son las correctas es decir, si son string o numeros . A mi se me ha ocurrida esta forma de hacerlo pero seguro que alguien me puede ayudar a mejorarla, muchas gracias. Seria la funcion validar informacion de toda la vida. def validarInformacionContrasena(self,clave, pwd1, pwd2): lista=list(clave) for i in range(len(lista)-1): if type(lista[i])!='int': return 'no valida' if type(lista[-1])!='str': return 'no valida' lista=list(pwd1) for i in range(len(lista)): if type(lista[i])!='int'or type(lista[i])!='str': return 'no valida' lista=list(pwd2) for i in range(len(lista)): if type(lista[i])!='int'or type(lista[i])!='str': return 'no valida' _________________________________________________________________ Excursiones y escapadas a sitios mágicos. [1]No te lo pierdas en MSN Entretenimiento References 1. http://g.msn.com/8HMBESES/2734??PS=47575 From rafaelcantos en hotmail.com Sun Jul 22 15:49:35 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Sun, 22 Jul 2007 13:49:35 +0000 Subject: arboles y pygtk Message-ID: Hola a todos. Estoy trabajando con pygtk y minidom. Mi duda es que no sé como hacer una vista de árbol (treeview) a partir de un arbol de xml almacenado en un fichero. Me explico. Tengo un fichero xml, que lógicamente es un árbol. yo quiero mostrarlo por pantalla, en forma de árbol, y poder trabajar sobre él. En el tutorial de pygtk he visto que para la vista de árbol se usa treview y eso, pero no sé si tengo que cargarlo con alguna función propia de pygtk o simplemente se puede usarlos métodos de pygtk con el árbol del fichero xml. Saludos. Rafa PD: sé que no me he explicado muy bien, así que si no me entendéis, lo explico con algun ejemplo. _________________________________________________________________ Grandes éxitos, superhéroes, imitaciones, cine y TV... http://es.msn.kiwee.com/ Lo mejor para tu móvil. From jrvilda en gmail.com Sun Jul 22 22:36:49 2007 From: jrvilda en gmail.com (Josu Rodriguez) Date: Sun, 22 Jul 2007 22:36:49 +0200 Subject: =?UTF-8?Q?Re:__verificar_firma_de_procesos_en_ejecuci=C3=B3n.?= In-Reply-To: References: <469DEE98.5030609@ehas.org> Message-ID: Bueno, no he consegido encontrar nada para realizarlo con python , pero por si a alguien le sirve, existe una herramienta llamada signtool, con la que podremos verificar la firma. Es de microsoft, y esta en el sdk de .net framework. Tambien puedes necesitar capicom.dll. result=os.popen('signtool.exe verify /a '+proceso).read() Para sacar los procesos en ejecucion, por ejemplo, podemos usar : strComputer = "." objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator ") objSWbemServices = objWMIService.ConnectServer (strComputer,"root\cimv2") colItems = objSWbemServices.ExecQuery("SELECT * FROM CIM_ProcessExecutable") El día 19/07/07, Josu Rodriguez < jrvilda en gmail.com> escribió: > > Los procesos, o ejecutables, pueden llevar una firma digital (RSA), para > poder asegurar que: > > 1.Pertenece a la empresa de software que dice ser. > 2.Asegurar que el proceso no a sido modificado desde su firmado en la > organizacion que lo a creado a tu ordenador. > > Gracias a este sistema, en caso de que un proceso hubiese sido modificado > por algun tipo de virus, la firma digital no se podria verificar, ya que el > calculo del hash no corresponde. > Un ejemplo de ello, son los procesos de microsoft, que casi todos, llevan > la firma de microsoft. > > Esto se puede comprobar de forma facil, con el process explorer de > sysinternals ahora de microsoft. Selecionando un proceso, propiedades y en > la lengueta imagen, verificar. > Veremos como en la misma lengueta debajo de nombre aparece verificado o no > pendiente de verifiar. > Tambien haciendo click derecho en el ejecutable veremos la lengueta firmas > digitales, y poder seguir todos los certificados. > > El día 18/07/07, Arnau Sanchez escribió: > > > > Josu Rodriguez escribió: > > > > > ¿Alguien sabe alguna función para verificar las firmas de los procesos > > en > > > ejecución? > > > > Perdona la ignorancia, pero... ¿qué es la firma de un proceso? > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > > > > -- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Josu Rodriguez Vilda > > Visita http://www.ivanfl.com/jrvilda > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Josu Rodriguez Vilda Visita http://www.ivanfl.com/jrvilda ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From carles en pina.cat Sun Jul 22 20:52:06 2007 From: carles en pina.cat (Carles Pina i Estany) Date: Sun, 22 Jul 2007 20:52:06 +0200 Subject: closures Message-ID: <20070722185206.GA12025@pinux.info> Hola, Estoy intentando entender las closures. En la Wikipedia (http://en.wikipedia.org/wiki/Closure_(computer_science) (al principio) puedo ver de qué se trata. Entiendo que es que el comportamiento de una función está determinado, en parte, por el comportamiento de datos/código externo de esta función. Básicamente, que puede acceder fuera de la función. Leo aquí (ojo, del año 2003): http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/67618 Que python no tiene closures completas como Ruby por este motivo: ----- But in Python, the inner function only has access to the _object_, not to the original variable which refers to the object ----- Así, en Python hay closures "parciales"? He entendido bien que las clsorues son algo tan simple como que una función pueda acceder a datos de fuera de la función, de quien llama la función? Gracias! -- Carles Pina i Estany GPG id: 0x8CBDAE64 http://pinux.info Manresa - Barcelona From arnau en ehas.org Mon Jul 23 01:14:12 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Mon, 23 Jul 2007 01:14:12 +0200 Subject: validar informacion In-Reply-To: References: Message-ID: <46A3E4C4.8020602@ehas.org> joana salgado gomez escribió: > def validarInformacionContrasena(self,clave, pwd1, pwd2): > lista=list(clave) > for i in range(len(lista)-1): > if type(lista[i])!='int': > return 'no valida' > if type(lista[-1])!='str': > return 'no valida' > lista=list(pwd1) > for i in range(len(lista)): > if type(lista[i])!='int'or type(lista[i])!='str': > return 'no valida' > lista=list(pwd2) > for i in range(len(lista)): > if type(lista[i])!='int'or type(lista[i])!='str': > return 'no valida' Y con esto la filosofía Python cae a la lona tras encajar un duro golpe ;-) Ahora en serio, lo haces como si fuera un lenguaje de bajo nivel (tipo C) pero afortunadamente las cosas en Python se pueden hacer de otra forma. Vamos por partes: > lista=list(clave) ¿Por qué pasarlo a lista? una cadena se puede iterar sin ningún problema (aunque no hace falta en este caso). Ejemplo: for c in clave: print "caracter:", c > for i in range(len(lista)): Las listas (o lo que sea) no se iteran así (mírate el tutorial!): for elemento in lista: print "elemento:", elemento > if type(lista[i])!='int': Eso nunca va a funcionar, los tipos son int/str/float, a secas, si lo pones entre comillas no es más que una vulgar cadena. De todas formas, tampoco deberías hacer esa comparación. > return 'no valida' Uf, definitivamente devolver cadenas no es las forma más adecuada de indicar si una función ha ido bien. Python es un lenguaje que funciona con excepciones, deberías usarlas: raise ValueError, "he tenido este problema". En un nivel superior de la aplicación (en el nivel que te interese, tampoco tiene que ser el inmediatamente superior) capturas la excepción y la tratas como sea conveniente. Una propuesta usando expresiones regulares: import re def validarInformacionContrasena(clave, pwd1, pwd2): def validar(s, regexp, errmsg): if not re.match(regexp, s): raise ValueError, "Error validando '%s': %s"%(errmsg, s) validar(clave, "\d*[A-Za-z]$", "clave") validar(pwd1, "\w+$", "pwd1") validar(pwd2, "\w+$", "pwd2") La validación de "clave" que aparece en tu código e sun poco rara, se permiten sólo dígitos en los primeros caracteres y sólo letras en el último ¿seguro que la clave debe tener esa (extraña) forma? Si no te gustan las expresiones regulares (aunque *deberías* usarlas en un problema de este tipo) podrías jugar con las variables string.ascii_letters y string.digits, aunque saldría un poco más largo. From pepe en diselpro.com Sun Jul 22 22:54:48 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Sun, 22 Jul 2007 22:54:48 +0200 Subject: Problema de =?ISO-8859-1?Q?Ejecuci=F3n?= In-Reply-To: References: Message-ID: <46A3C418.4010705@diselpro.com> Te falta el print. print random.choice(lista) Salud. From jpavonruiz en yahoo.es Sun Jul 22 12:29:50 2007 From: jpavonruiz en yahoo.es (Juan Pavon Ruiz) Date: Sun, 22 Jul 2007 12:29:50 +0200 (CEST) Subject: Descompilar un *.exe creado con py2exe? In-Reply-To: <20070722052710.BAA531440B57@devnull.aditel.org> References: <20070722052710.BAA531440B57@devnull.aditel.org> Message-ID: <941564.88320.qm@web53104.mail.re2.yahoo.com> From: "Gabriel Genellina" Mmm, deberias poder abrirlo, tal vez con otra aplicacion... De cualquier forma, en el .exe estan los .pyc, no los fuentes. Asi que una vez que descomprimas el .exe, te va a quedar el problema de descompilar los .pyc. Que se podria llegar a hacer, habia un proyecto decompyle pero no se esta manteniendo y creo que solo llega hasta python 2.3 Digamos que descompilar codigo python no es taaaaaaaaaaaan dificil como en otros lenguajes: en el .pyc estan disponibles los nombres de las variables -incluso las locales-, los docstring de las funciones, y mucha mas informacion que en otros lenguajes se pierde luego de compilar. Pero igual, pasar del bytecode a algo "entendible" de alto nivel, no es tan facil, y menos ahora que como estructura intermedia se esta usando un AST que se puede manipular y optimizar antes de generar realmente el codigo. Asi que yo realmente recomendaria un programa para recuperacion de datos. Aun despues de reformatear y reparticionar el disco, se puede recuperar la informacion. Por ejemplo R-Studio http://www.data-recovery-software.net - yo lo use con un disco ya desahuciado y recupero absolutamente todo. -- Gabriel Genellina ------------------------------ From: " Rolando José Torres Sánchez " Yo he usado testdisk y me recupero particiones enteras con archivos y todo. Sí, conozco testdisk y photorec... en mi caso no fue que borré la partición, sino su contenido. De hecho he llegado a recuperar partes de la fuente. Como decía el exe ha sido creado con py2exe y la carpeta que creó se compone de los siguientes elementos: tcl - (dosier) Miaplicación.exe _bsddb.pyd bz2.pyd library.zip MSVCR71.dll python25.dll select.pyd _socket.pyd _ssl.pyd tcl84.dll tk84.dllel dosier _tkinter.pyd unicodedata.pyd w9xpopen.exe Yo había pensado que descomprimiendo Miaplicación.exe me encontraría con un pyc, y luego podría intentar algo con Decompyle (visto que no llega a la 2.5). Pero ¿Cómo descomprimir ese exe? ¿Qué herramienta? (Miaplicación.exe tiene el mismo peso que tenía Miaplicación.py) . Luego en Library.zip encuentro algunos .pyc , pero ni rastro de Miaplicación.py (pyc) . Así, pienso, que lo que busco está detrás de Miaplicación.exe. --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From pych3m4 en gmail.com Mon Jul 23 05:47:14 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 23 Jul 2007 05:47:14 +0200 Subject: closures In-Reply-To: <20070722185206.GA12025@pinux.info> References: <20070722185206.GA12025@pinux.info> Message-ID: <2c9fb0dd0707222047k3554511cvfdaf1e6fdfae3f0c@mail.gmail.com> El 22/07/07, Carles Pina i Estany escribió: > Estoy intentando entender las closures. En la Wikipedia (http://en.wikipedia.org/wiki/Closure_(computer_science) (al principio) puedo ver de > qué se trata. Entiendo que es que el comportamiento de una función está > determinado, en parte, por el comportamiento de datos/código externo de > esta función. Básicamente, que puede acceder fuera de la función. Umm! Dicho así parece otra cosa de lo que es. Una función nunca debería acceder "fuera" de sus dominios bajo ninguna circunstancia. Normalmente, las funciones se definen en el mismo entorno donde se ejecutan; pero hay ocasiones en las que no ocurre así, como en el caso de las funciones anidadas donde una función se define dentro del entorno local de otra. En este caso, la función anidada se ejecutará en el entorno donde se ha definido, fuera de los ojos del resto del programa. Ésto es lo que se conoce por "clausura". Así, podemos definir "clausura" como el entorno donde se define una función y que sólo va a ser "visible" por esta función. Y por "entorno", en python, debería entenderse el conjunto de objetos de los que contamos con alguna "referencia" a ellos (en otros lenguajes se hablan de otras cosas como stacks, heaps, etc). > Leo aquí (ojo, del año 2003): > http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/67618 > Que python no tiene closures completas como Ruby por este motivo: > ----- > But in Python, the inner function only has access to the _object_, not > to the original variable which refers to the object > ----- > > Así, en Python hay closures "parciales"? He entendido bien que las > clsorues son algo tan simple como que una función pueda acceder a datos > de fuera de la función, de quien llama la función? ¡ÉSO ES PECADO! LLámalas, si quieres, clausuras "parciales"; pero, al fin y al cabo, son clausuras. No siempre es buena idea permitir que las funciones anidadas alteren variables que no sean suyas. ¿Qué problema hay en encapsular la función, junto a las variable a las que accede dentro de una clase (function wrapper)? def make_counter(start): class counter: def __init__(self,start): self._start=start def __call__(self,inc): self._start+=inc return self._start return counter(start) c=make_counter(0) print c(3) print c(2) Y si no, con generadores e iteradores seguro que también iría bien. def make_counter2(start): while True: inc=(yield start) if inc is not None: start+=inc c=make_counter2(0) c.next() print c.send(3) print c.send(2) Una versión "forzada", que viene a emular lo que se entendería por clausura "completa": def make_counter(start): def counter(inc): global start start+=inc return start counter.func_globals.clear() counter.func_globals.update(locals()) return counter c=make_counter(0) print c(3) print c(2) Una versión más moderada que usa atributos de función: def make_counter(start): def counter(inc): f.start+=inc return f.start f.start=start return counter Y la versión de libro: def make_counter(start): s=[start] def counter(inc): s[0]+=inc return s[0] return counter From joana_mendaro en hotmail.com Mon Jul 23 10:15:01 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Mon, 23 Jul 2007 08:15:01 +0000 Subject: validar informacion In-Reply-To: <46A3E4C4.8020602@ehas.org> References: <46A3E4C4.8020602@ehas.org> Message-ID: Gracias por tus cpnsejos y tu ayuda. Por cierto cual seria la expresion regular si solo quiseira validar numeros??? ______________________________________________________________ From: Arnau Sanchez Reply-To: La lista de python en castellano To: La lista de python en castellano Subject: Re: [Python-es] validar informacion Date: Mon, 23 Jul 2007 01:14:12 +0200 >joana salgado gomez escribió: > >> def validarInformacionContrasena(self,clave, pwd1, pwd2): >> lista=list(clave) >> for i in range(len(lista)-1): >> if type(lista[i])!='int': >> return 'no valida' >> if type(lista[-1])!='str': >> return 'no valida' >> lista=list(pwd1) >> for i in range(len(lista)): >> if type(lista[i])!='int'or type(lista[i])!='str': >> return 'no valida' >> lista=list(pwd2) >> for i in range(len(lista)): >> if type(lista[i])!='int'or type(lista[i])!='str': >> return 'no valida' > >Y con esto la filosofía Python cae a la lona tras encajar un duro >golpe ;-) > >Ahora en serio, lo haces como si fuera un lenguaje de bajo nivel >(tipo C) pero afortunadamente las cosas en Python se pueden hacer de >otra forma. Vamos por partes: > > > lista=list(clave) > >¿Por qué pasarlo a lista? una cadena se puede iterar sin ningún >problema (aunque no hace falta en este caso). Ejemplo: > >for c in clave: > print "caracter:", c > > > for i in range(len(lista)): > >Las listas (o lo que sea) no se iteran así (mírate el tutorial!): > >for elemento in lista: > print "elemento:", elemento > > > if type(lista[i])!='int': > >Eso nunca va a funcionar, los tipos son int/str/float, a secas, si >lo pones entre comillas no es más que una vulgar cadena. De todas >formas, tampoco deberías hacer esa comparación. > > > return 'no valida' > >Uf, definitivamente devolver cadenas no es las forma más adecuada de >indicar si una función ha ido bien. Python es un lenguaje que >funciona con excepciones, deberías usarlas: raise ValueError, "he >tenido este problema". > >En un nivel superior de la aplicación (en el nivel que te interese, >tampoco tiene que ser el inmediatamente superior) capturas la >excepción y la tratas como sea conveniente. > >Una propuesta usando expresiones regulares: > >import re >def validarInformacionContrasena(clave, pwd1, pwd2): > def validar(s, regexp, errmsg): > if not re.match(regexp, s): > raise ValueError, "Error validando '%s': %s"%(errmsg, >s) > validar(clave, "\d*[A-Za-z]$", "clave") > validar(pwd1, "\w+$", "pwd1") > validar(pwd2, "\w+$", "pwd2") > >La validación de "clave" que aparece en tu código e sun poco rara, >se permiten sólo dígitos en los primeros caracteres y sólo letras en >el último ¿seguro que la clave debe tener esa (extraña) forma? > >Si no te gustan las expresiones regulares (aunque *deberías* usarlas >en un problema de este tipo) podrías jugar con las variables >string.ascii_letters y string.digits, aunque saldría un poco más >largo. > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Acepta el reto MSN Premium: Envía hasta 500 megas diarios de fotos desde Hotmail. [1]Descárgalo y pruébalo 2 meses gratis. References 1. http://g.msn.com/8HMAESES/2743??PS=47575 From joana_mendaro en hotmail.com Mon Jul 23 10:46:02 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Mon, 23 Jul 2007 08:46:02 +0000 Subject: validar informacion In-Reply-To: <46A3E4C4.8020602@ehas.org> References: <46A3E4C4.8020602@ehas.org> Message-ID: me he mirado las expresiones regulares, y si a esta funcion le cambio el regexp, Esto me validaris solo numeros, ¿no? validar(clave, "\d+$", "clave") y esto otro solo letras ¿no? validar(clave, "\D+$", "clave") Gracias muchas gracias es justo lo que necesitaba. ______________________________________________________________ From: Arnau Sanchez Reply-To: La lista de python en castellano To: La lista de python en castellano Subject: Re: [Python-es] validar informacion Date: Mon, 23 Jul 2007 01:14:12 +0200 >joana salgado gomez escribió: > >> def validarInformacionContrasena(self,clave, pwd1, pwd2): >> lista=list(clave) >> for i in range(len(lista)-1): >> if type(lista[i])!='int': >> return 'no valida' >> if type(lista[-1])!='str': >> return 'no valida' >> lista=list(pwd1) >> for i in range(len(lista)): >> if type(lista[i])!='int'or type(lista[i])!='str': >> return 'no valida' >> lista=list(pwd2) >> for i in range(len(lista)): >> if type(lista[i])!='int'or type(lista[i])!='str': >> return 'no valida' > >Y con esto la filosofía Python cae a la lona tras encajar un duro >golpe ;-) > >Ahora en serio, lo haces como si fuera un lenguaje de bajo nivel >(tipo C) pero afortunadamente las cosas en Python se pueden hacer de >otra forma. Vamos por partes: > > > lista=list(clave) > >¿Por qué pasarlo a lista? una cadena se puede iterar sin ningún >problema (aunque no hace falta en este caso). Ejemplo: > >for c in clave: > print "caracter:", c > > > for i in range(len(lista)): > >Las listas (o lo que sea) no se iteran así (mírate el tutorial!): > >for elemento in lista: > print "elemento:", elemento > > > if type(lista[i])!='int': > >Eso nunca va a funcionar, los tipos son int/str/float, a secas, si >lo pones entre comillas no es más que una vulgar cadena. De todas >formas, tampoco deberías hacer esa comparación. > > > return 'no valida' > >Uf, definitivamente devolver cadenas no es las forma más adecuada de >indicar si una función ha ido bien. Python es un lenguaje que >funciona con excepciones, deberías usarlas: raise ValueError, "he >tenido este problema". > >En un nivel superior de la aplicación (en el nivel que te interese, >tampoco tiene que ser el inmediatamente superior) capturas la >excepción y la tratas como sea conveniente. > >Una propuesta usando expresiones regulares: > >import re >def validarInformacionContrasena(clave, pwd1, pwd2): > def validar(s, regexp, errmsg): > if not re.match(regexp, s): > raise ValueError, "Error validando '%s': %s"%(errmsg, >s) > validar(clave, "\d*[A-Za-z]$", "clave") > validar(pwd1, "\w+$", "pwd1") > validar(pwd2, "\w+$", "pwd2") > >La validación de "clave" que aparece en tu código e sun poco rara, >se permiten sólo dígitos en los primeros caracteres y sólo letras en >el último ¿seguro que la clave debe tener esa (extraña) forma? > >Si no te gustan las expresiones regulares (aunque *deberías* usarlas >en un problema de este tipo) podrías jugar con las variables >string.ascii_letters y string.digits, aunque saldría un poco más >largo. > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Éxitos, grandes clásicos y novedades. [1]Un millón de canciones en MSN Music. References 1. http://g.msn.com/8HMBESES/2755??PS=47575 From carles en pina.cat Mon Jul 23 12:49:11 2007 From: carles en pina.cat (Carles Pina i Estany) Date: Mon, 23 Jul 2007 12:49:11 +0200 Subject: closures In-Reply-To: <2c9fb0dd0707222047k3554511cvfdaf1e6fdfae3f0c@mail.gmail.com> References: <20070722185206.GA12025@pinux.info> <2c9fb0dd0707222047k3554511cvfdaf1e6fdfae3f0c@mail.gmail.com> Message-ID: <20070723104910.GA4410@pinux.info> Hola, On Jul/23/2007, Chema Cortes wrote: > El 22/07/07, Carles Pina i Estany escribió: > > >Estoy intentando entender las closures. En la Wikipedia > >(http://en.wikipedia.org/wiki/Closure_(computer_science) (al principio) > >puedo ver de > >qué se trata. Entiendo que es que el comportamiento de una función está > >determinado, en parte, por el comportamiento de datos/código externo de > >esta función. Básicamente, que puede acceder fuera de la función. > > Umm! Dicho así parece otra cosa de lo que es. Una función nunca > debería acceder "fuera" de sus dominios bajo ninguna circunstancia. ok, así el tema de closura es válido, útil para definir el entorno que la función puede acceder (ya que al final accede fuera de su entorno, de forma limitada) > Normalmente, las funciones se definen en el mismo entorno donde se > ejecutan; pero hay ocasiones en las que no ocurre así, como en el caso > de las funciones anidadas donde una función se define dentro del > entorno local de otra. En este caso, la función anidada se ejecutará > en el entorno donde se ha definido, fuera de los ojos del resto del > programa. Ésto es lo que se conoce por "clausura". ok, me lo habia parecido entender. Gracias > Así, podemos definir "clausura" como el entorno donde se define una > función y que sólo va a ser "visible" por esta función. Y por > "entorno", en python, debería entenderse el conjunto de objetos de los > que contamos con alguna "referencia" a ellos (en otros lenguajes se > hablan de otras cosas como stacks, heaps, etc). "cojonudo"! > >Leo aquí (ojo, del año 2003): > >http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/67618 > >Que python no tiene closures completas como Ruby por este motivo: > >----- > >But in Python, the inner function only has access to the _object_, not > >to the original variable which refers to the object > >----- > > > >Así, en Python hay closures "parciales"? He entendido bien que las > >clsorues son algo tan simple como que una función pueda acceder a datos > >de fuera de la función, de quien llama la función? > > ¡ÉSO ES PECADO! sí, sé que es pecado y que rompe totalmente la estructura del programa :-) No lo escribí porqué hablaba de closures y no de diseño :-) > Una versión "forzada", que viene a emular lo que se entendería por > clausura "completa": > > def make_counter(start): > def counter(inc): > global start > start+=inc > return start > counter.func_globals.clear() > counter.func_globals.update(locals()) > return counter > > c=make_counter(0) > print c(3) > print c(2) vale, claro al 100% Aunque es un concepto que no me gusta mucho. Me imagino que algun dia veré un caso que me simplificará mucho la vida :-) Parece que con generadores, paso de argumentos, etc. casi siempre puedo hacer lo mismo... 1000 gracias. Estuve bastante rato los últimos dias para averiguar esto y no me quedaba al 100% claro. -- Carles Pina i Estany GPG id: 0x8CBDAE64 http://pinux.info Manresa - Barcelona From gagsl-py2 en yahoo.com.ar Mon Jul 23 13:10:47 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Mon, 23 Jul 2007 08:10:47 -0300 Subject: Descompilar un *.exe creado con py2exe? Message-ID: Hola (Uf, primero no veia el texto de tu mensaje, y despues me costó responder citandolo - es que escribiste todo tu mensaje DEBAJO de una firma, con lo que quedo como si lo tuyo fuera parte de la firma original...) [Juan Pavon Ruiz] > Como decía el exe ha sido creado con py2exe y la carpeta que creó se > compone de los siguientes elementos: > tcl - (dosier) > Miaplicación.exe > _bsddb.pyd [mas otros .pyd y .dll] >Yo había pensado que descomprimiendo Miaplicación.exe me encontraría con > un pyc, y luego podría intentar algo con Decompyle(visto que no llega a > la 2.5). >Pero ¿Cómo descomprimir ese exe? ¿Qué herramienta? > (Miaplicación.exe tiene el mismo peso que tenía Miaplicación.py) . > Luego en Library.zip encuentro algunos .pyc , pero ni rastro de > Miaplicación.py (pyc) . Así, pienso, que lo que busco está detrás de > Miaplicación.exe. Ah, ok, ya entiendo. Hay opciones para que py2exe genere un .exe con todos esos .pyd/.pyc/.dll ya incorporados dentro, usando el formato de un .zip, pero no es tu caso. Por otro lado, igual que cuando uno ejecuta un script directamente no se genera su .pyc (sí se generan para modulos importados), el .pyc del script principal no lo vas a encontrar junto con los demas. Pero está, aunque es un poco trabajoso recuperarlo. Esta guardado como un recurso dentro del .exe; para recuperarlo necesitas un programa que te deje inspeccionar el contenido de un .exe (por ejemplo, PE Explorer; es pago pero con la version demo de 30 dias alcanza y sobra). Abriendo Miaplicacion.exe con el PE Explorer, yendo a View -> Resources, vas a encontrar uno de tipo "PYTHONSCRIPT", id=1. Lo guardamos usando la opcion "Save resource as" con el nombre por defecto, "pythonscript_1.res". Ahora bien, ahi dentro hay varias cosas: 16 bytes de encabezado (empezando con 12345678 en hexa, leido en big endian), seguido del nombre del archivo, seguido de un byte en cero, seguido de un bloque de datos, terminando con dos bytes en 0. El bloque de datos es una lista de bloques de codigo, "marshaleada" usando marshal.dumps. De esa lista, lo que nos interesa es el ultimo elemento (el codigo de la aplicacion). Como supongo que ya te perdiste con todo esto :) ahi va un script que te genera el .pyc en base al resource ya extraido desde dentro del .exe: --- comienza res2pyc.py --- """ res2pyc - extrae el .pyc del programa principal almacenado por py2exe Primero hay que extraer el resource "PYTHONSCRIPT" desde dentro del .exe y dejarlo en "pythonscript_1.res". Es la inversa de lo que hace build_exe.py, dentro de py2exe """ import struct, marshal data = open("pythonscript_1.res","rb").read() magic, _, _, lenbytes = struct.unpack("iiii", data[:16]) assert magic==0x78563412 i = 16 while data[i]!='\000': i += 1 # saltear nombre del archivo nombre = data[16:i] code_bytes = data[i+1:i+lenbytes+1] assert data[i+lenbytes+1:]=='\000\000' # code_bytes es el resultado de "marshalear" una lista code_objects = marshal.loads(code_bytes) assert isinstance(code_objects, list) assert len(code_objects)>1 # el ultimo item de la lista, es el codigo de la aplicacion codeobject = code_objects[-1] # genero el .pyc - basado en py_compile.py import py_compile cfile = nombre+'.pyc' fc = open(cfile, 'wb') fc.write(py_compile.MAGIC) py_compile.wr_long(fc, 0) marshal.dump(codeobject, fc) fc.flush() fc.close() py_compile.set_creator_type(cfile) --- fin res2pyc.py --- Ahora te queda descompilar el .pyc -> .py, pero esa es otra historia. Suerte! -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Mon Jul 23 14:02:33 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Mon, 23 Jul 2007 14:02:33 +0200 Subject: validar informacion In-Reply-To: References: Message-ID: <46A498D9.2020007@ehas.org> joana salgado gomez escribió: > me he mirado las expresiones regulares, y si a esta funcion le cambio > el regexp, > > Esto me validaris solo numeros, ¿no? > > validar(clave, "\d+$", "clave") Correcto (y además con el + indicas que al menos tiene que haber uno) > y esto otro solo letras ¿no? > > validar(clave, "\D+$", "clave") no, \D es lo contrario de \d, así que acepta todo excepto números, eso incluye muchos más caracteres que las letras. Si realmente solo quieres letras ascii (mayúsculas y minúsculas): "[A-Za-z]+$" > raise ValueError, "Error validando '%s': %s"%(errmsg, Un comentario sobre esto: a veces es interesante crearse excepciones propias para no confundirlas con las que te pueda generar un error en el código. Si te interesa, mírate esto: http://docs.python.org/tut/node10.html#SECTION0010500000000000000000 From javielinux en gmail.com Mon Jul 23 14:23:19 2007 From: javielinux en gmail.com (=?ISO-8859-1?Q?Javier_P=E9rez_Pacheco?=) Date: Mon, 23 Jul 2007 14:23:19 +0200 Subject: Pygtk y Gtk.Dialog Message-ID: <9778fd0a0707230523t7f8a403fp331f12eec6d228d3@mail.gmail.com> Hola a todos: Estoy intentando hacer una cosilla, a ver si me puedo explicar bien. Tengo que ejecutar un proceso que tarda un rato y durante ese proceso quiero poner un dialogo (que tendrá una barra de progreso) desde que empieza hasta que termina Saco el diálogo pero al poner dialog.run() me saca la ventana y hasta que no le doy a un botón o a la "X" de cerrar, no empieza a realizar el proceso. A final cierra bien La cosa es que quiero que se ejecute directamente, o sea, salga la ventana y empiece a correr sin tener que tocar nada. He estado mirando la propiedad "modal" de Gtk.Dialog, pero nada de nada. También he intentado hacerlo con dialog.show() en lugar de run() para mostrarlo y que no tenga que esperar al resultado de vuelta, pero tampoco ¿alguien me puede ayudar? gracias a todos From pych3m4 en gmail.com Mon Jul 23 14:42:55 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 23 Jul 2007 14:42:55 +0200 Subject: closures In-Reply-To: <20070723104910.GA4410@pinux.info> References: <20070722185206.GA12025@pinux.info> <2c9fb0dd0707222047k3554511cvfdaf1e6fdfae3f0c@mail.gmail.com> <20070723104910.GA4410@pinux.info> Message-ID: <2c9fb0dd0707230542k5f45e220u765c8c17e8b2e704@mail.gmail.com> El 23/07/07, Carles Pina i Estany escribió: > Aunque es un concepto que no me gusta mucho. Me imagino que algun dia > veré un caso que me simplificará mucho la vida :-) > > Parece que con generadores, paso de argumentos, etc. casi siempre puedo > hacer lo mismo... En una entrevista a Yukihiro Matsumoto, el creador de ruby, reconocía que las clausuras "verdaderas" no daban muchas más ventajas que si se copiara internamente las variables, que si las había incluído en ruby era por ser fiel a la cultura Lisp: http://www.artima.com/intv/closures2.html (al final de la entrevista) Te puedo asegurar que hay cierto abuso de las cláusulas. Si cuentas con un lenguaje de programación orientado a objetos, lo lógico es emplear la abstracción de datos para encapsular los datos junto con las funciones que los procesan. Y si crees que tiene que haber algo que sólo sea posible con cláusulas, te aconsejo que te mires los "contextos" de ejecución de python 2.5 y que te olvidarás de la cláusulas: http://docs.python.org/whatsnew/pep-343.html PD: ...pero si quieres ver otros mundos, lua tiene claúsulas de verdad y se parece mucho a python. Las emplea en las corutinas; pero también carece de otras alternativas como tiene python. function make_counter(start) return function (inc) start=start+inc return start end end c=make_counter(0) print(c(3)) print(c(2)) From foxandxss en gmail.com Mon Jul 23 22:58:40 2007 From: foxandxss en gmail.com (Jesus Rodriguez) Date: Mon, 23 Jul 2007 20:58:40 +0000 Subject: Pygtk y Gtk.Dialog In-Reply-To: <9778fd0a0707230523t7f8a403fp331f12eec6d228d3@mail.gmail.com> References: <9778fd0a0707230523t7f8a403fp331f12eec6d228d3@mail.gmail.com> Message-ID: <2a1edb210707231358g23fc111csda7554a062a70508@mail.gmail.com> Hola Javi, no tenia ni idea de como hacerlo, pero vamos, tu hiciste tirititran y como buen gaditano pues me he buscado la vida para ayudarte :P Aqui te dejo un código de prueba: import pygtk import gtk class Base: def __init__(self): self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.dialog = gtk.Dialog(title="Dialogo") self.button = gtk.Button("Prueba") self.button.connect("clicked", self.clicked) self.dialog.connect("show", self.mostrar) self.window.add(self.button) self.button.show() self.window.show() def main(self): gtk.main() def clicked(self, widget): self.dialog.show() def mostrar(self, widget): print "Hola" if __name__ == "__main__": blah = Base() blah.main() La idea está en usar la señal "show" de gtk.Widget (que es de donde viene gtk.Dialog) y así cuando la ventana se abra, se lanzará ese evento. Espero que sea de ayuda. From gagsl-py2 en yahoo.com.ar Mon Jul 23 23:08:22 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Mon, 23 Jul 2007 18:08:22 -0300 Subject: closures References: <20070722185206.GA12025@pinux.info> <2c9fb0dd0707222047k3554511cvfdaf1e6fdfae3f0c@mail.gmail.com> <20070723104910.GA4410@pinux.info> <2c9fb0dd0707230542k5f45e220u765c8c17e8b2e704@mail.gmail.com> Message-ID: En Mon, 23 Jul 2007 09:42:55 -0300, Chema Cortes escribió: > El 23/07/07, Carles Pina i Estany escribió: >> >> Parece que con generadores, paso de argumentos, etc. casi siempre puedo >> hacer lo mismo... > > En una entrevista a Yukihiro Matsumoto, el creador de ruby, reconocía > que las clausuras "verdaderas" no daban muchas más ventajas que si se > copiara internamente las variables, que si las había incluído en ruby > era por ser fiel a la cultura Lisp: > > http://www.artima.com/intv/closures2.html (al final de la entrevista) > > > Te puedo asegurar que hay cierto abuso de las cláusulas. Si cuentas > con un lenguaje de programación orientado a objetos, lo lógico es > emplear la abstracción de datos para encapsular los datos junto con > las funciones que los procesan. Claro, algunos sostienen que las clausuras son los objetos del pobre (se comportan como un objeto con un unico metodo, __call__ en terminos pythonescos). Y otros sostienen que los objetos son las clausuras del pobre (una clausura puede tener multiples formas de despachar mensajes, no solo la única que te provee un lenguaje orientado a objetos). En este mensaje hay una famosa historia corta sobre el tema y aca hay una traducción . Aunque no me gusta mucho como quedó, asi que aca va otro intento (las metidas de pata de esta traduccion son mías): """ El venerable maestro Qc Na paseaba con su discípulo, Anton. Con la esperanza de interesar a su maestro en una discusión, Anton dijo: "Maestro, he oído que los objetos son una muy buena cosa, ¿es eso cierto?". Qc Na miró con lástima a su discípulo y respondió: "Alumno tonto, los objetos son nada más que las clausuras del pobre". Regañado, Anton se separó de su maestro y volvió a su celda, con la intención de estudiar clausuras. Cuidadosamente leyo la serie completa de artículos "Lambda: The Ultimate..." y sus parientes, e implementó un pequeño intérprete Scheme con un sistema de objetos basado en clausuras. Aprendió mucho, y se dispuso a informar a su maestro de su progreso. En su siguiente caminata con Qc Na, Anton quiso impresionar a su maestro diciendo "Maestro, he estudiado el tema con gran detenimiento, y ahora entiendo que los objetos son verdaderamente las clausuras del pobre". Qc Na respondió golpeando a Anton con su bastón, diciendo "¿Cuándo aprenderás? Las clausuras son los objetos del pobre". Y en ese momento, Anton logró la iluminación. """ (Original por Anton van Straaten). -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rbaquerizo en ehas.org Tue Jul 24 04:02:42 2007 From: rbaquerizo en ehas.org (Reynaldo Baquerizo Micheline) Date: Mon, 23 Jul 2007 21:02:42 -0500 Subject: Problema de =?ISO-8859-1?Q?Ejecuci=F3n?= In-Reply-To: References: Message-ID: <46A55DC2.50202@ehas.org> Leonardo escribió: > Hola a todos. > > Tengo una duda respecto a un programa o a un bloque del mismo. > > El bloque es el siguiente: > > import random > > lista = ['Argentina','Brasil','Chile','Bolivia','Venezuela','Colombia'] > random.choice(lista) > > Lo anterior lo ejecuto en el interprete o python-shell y funciona > prefectamente, pero si lo guardo en un archivo y luego lo ejecuto la > pantalla no muestra nada. > Porque te falta imprimir en pantalla print random.choice(lista) -- From javielinux en gmail.com Tue Jul 24 09:25:43 2007 From: javielinux en gmail.com (=?ISO-8859-1?Q?Javier_P=E9rez_Pacheco?=) Date: Tue, 24 Jul 2007 09:25:43 +0200 Subject: Pygtk y Gtk.Dialog In-Reply-To: <2a1edb210707231358g23fc111csda7554a062a70508@mail.gmail.com> References: <9778fd0a0707230523t7f8a403fp331f12eec6d228d3@mail.gmail.com> <2a1edb210707231358g23fc111csda7554a062a70508@mail.gmail.com> Message-ID: <9778fd0a0707240025x250ad643yd0f84ca6e68e2fe9@mail.gmail.com> gracias jesus, jejeje Bueno, la cosa funciona, es más a mi tb me funcionaba, pero es que me he dado cuenta de una cosa. Empiezo desde el principio. He creado una serie de scripts para Nautilus (explorados de gnome) que hacen unas procedimientos que son rutinarios. Podeis verlos aqui http://nautilus-scripts.javielinux.com/ La cosa es que me gustaría ponerle una barra de progreso mientras hace el trabajo, pero me está costando más de lo esperado. Estoy usando un Thread que lanzo al principio y que debería de sacar el dialogo y hacer el update de la barra de progreso. El problema es que durante el proceso hago llamadas a comandos de linux (imagemagick, trabajo con audio, etc) que me parece que son muy pesados y el Thread no me hace demasiado caso, se queda como pillado. Segun la defincion de Thread, estos son hilos que se ejecutan dentro del mismo proceso, y me parece que es por ello por lo que no me funciona el invento. Ya no se que pensar ¿sabéis de que puede ser? dejo aqui el codigo del Thread class MyThread(threading.Thread): def __init__(self): super(MyThread, self).__init__() self.d = gtk.Dialog("Dialogo") self.d.set_border_width(4) self.d.set_modal(False) self.pbar = gtk.ProgressBar() self.d.vbox.pack_start(self.pbar, False, False, 0) self.pbar.show() self.d.show_all() self.d.run() self.quit = False def update(self): self.pbar.pulse() return False def close(self): self.quit = True self.d.destroy() def run(self): while not self.quit: gobject.idle_add(self.update) El día 23/07/07, Jesus Rodriguez escribió: > > Hola Javi, no tenia ni idea de como hacerlo, pero vamos, tu hiciste > tirititran y como buen gaditano pues me he buscado la vida para ayudarte > :P > > Aqui te dejo un código de prueba: > > import pygtk > import gtk > > class Base: > def __init__(self): > self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) > self.dialog = gtk.Dialog(title="Dialogo") > self.button = gtk.Button("Prueba") > self.button.connect("clicked", self.clicked) > self.dialog.connect("show", self.mostrar) > self.window.add(self.button) > self.button.show() > self.window.show() > > def main(self): > gtk.main() > > def clicked(self, widget): > self.dialog.show() > > def mostrar(self, widget): > print "Hola" > > if __name__ == "__main__": > blah = Base() > blah.main() > > > La idea está en usar la señal "show" de gtk.Widget (que es de donde viene > gtk.Dialog) y así cuando la ventana se abra, se lanzará ese evento. > > Espero que sea de ayuda. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From foxandxss en gmail.com Tue Jul 24 10:36:34 2007 From: foxandxss en gmail.com (Jesus Rodriguez) Date: Tue, 24 Jul 2007 08:36:34 +0000 Subject: Pygtk y Gtk.Dialog In-Reply-To: <9778fd0a0707240025x250ad643yd0f84ca6e68e2fe9@mail.gmail.com> References: <9778fd0a0707230523t7f8a403fp331f12eec6d228d3@mail.gmail.com> <2a1edb210707231358g23fc111csda7554a062a70508@mail.gmail.com> <9778fd0a0707240025x250ad643yd0f84ca6e68e2fe9@mail.gmail.com> Message-ID: <2a1edb210707240136s6965869we2c48a0980d8a619@mail.gmail.com> Hola, conozco tus scripts :P Sobre tu problema, a falta de ver el código completo, te aconsejaría que intentes ver de donde viene el problema. Yo normalmente en estos casos, suelo hacer pruebas en un fichero nuevo. En este caso podrias lanzar un Thread mientras lanzas algun proceso con fork donde uses imagemagick y ver si funciona bien para ir descartando fallos. Siento no ayudar mucho más, la clase del thread parece correcta, pero puede no estar ahi el fallo. Un saludo. From rafaelcantos en hotmail.com Tue Jul 24 11:08:09 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Tue, 24 Jul 2007 09:08:09 +0000 Subject: Pygtx y xml Message-ID: Hola de nuevo a todos. hace unos días hice una preguntilla por aquí, pero no tuvo respuesta, así que vuelvo a plantearla: ¿Cómo conecto un arbol de un fichero xml a un treeView para poder mostrarlo? Estoy usando minidom. Saludos. Rafa _________________________________________________________________ Grandes éxitos, superhéroes, imitaciones, cine y TV... http://es.msn.kiwee.com/ Lo mejor para tu móvil. From javielinux en gmail.com Tue Jul 24 12:16:22 2007 From: javielinux en gmail.com (=?ISO-8859-1?Q?Javier_P=E9rez_Pacheco?=) Date: Tue, 24 Jul 2007 12:16:22 +0200 Subject: Pygtk y Gtk.Dialog In-Reply-To: <2a1edb210707240136s6965869we2c48a0980d8a619@mail.gmail.com> References: <9778fd0a0707230523t7f8a403fp331f12eec6d228d3@mail.gmail.com> <2a1edb210707231358g23fc111csda7554a062a70508@mail.gmail.com> <9778fd0a0707240025x250ad643yd0f84ca6e68e2fe9@mail.gmail.com> <2a1edb210707240136s6965869we2c48a0980d8a619@mail.gmail.com> Message-ID: <9778fd0a0707240316t15760d49pd035dfea036bae71@mail.gmail.com> He realiazado bastante pruebas. Lo único que hago es lanzar el Thread antes de empezar a realizar los comandos de linux (que debería de mostrar el dialogo) y cerrarlo al final (que cierra el dialogo) La cosa es que la ventana sale sólo si pongo d.run() y tengo que darle a la "X" para que empiece el proceso. Si pongo d.show() no sale la ventana Te pongo un programa de prueba a ver si puedes ver el fallo. Debe de salir la ventana de dialogo mientras escribe los 50 números, y sólo sale si pongo d.run() no se cual puede ser el problema al poner show() #!/usr/bin/env python # -*- coding: latin-1 -*- import gtk import os import string import threading import time import gobject class MyThread(threading.Thread): def __init__(self): super(MyThread, self).__init__() self.d = gtk.Dialog("Dialogo") self.d.set_border_width(4) self.d.set_modal(False) self.pbar = gtk.ProgressBar() self.d.vbox.pack_start(self.pbar, False, False, 0) self.pbar.show() self.d.show_all() #self.d.show() self.d.run() self.quit = False def update(self): self.pbar.pulse() return False def close(self): self.quit = True self.d.destroy() def run(self): while not self.quit: gobject.idle_add(self.update) t = MyThread() t.start() i = 0 while i<50: print str(i) i = i + 1 time.sleep(0.1) t.close() El día 24/07/07, Jesus Rodriguez escribió: > > Hola, conozco tus scripts :P > > Sobre tu problema, a falta de ver el código completo, te aconsejaría que > intentes ver de donde viene el problema. Yo normalmente en estos casos, > suelo hacer pruebas en un fichero nuevo. En este caso podrias lanzar un > Thread mientras lanzas algun proceso con fork donde uses imagemagick y ver > si funciona bien para ir descartando fallos. > > Siento no ayudar mucho más, la clase del thread parece correcta, pero > puede > no estar ahi el fallo. > > > Un saludo. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From arnau en ehas.org Tue Jul 24 12:44:01 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 24 Jul 2007 12:44:01 +0200 Subject: Pygtk y Gtk.Dialog In-Reply-To: <9778fd0a0707240316t15760d49pd035dfea036bae71@mail.gmail.com> References: <9778fd0a0707230523t7f8a403fp331f12eec6d228d3@mail.gmail.com> <2a1edb210707231358g23fc111csda7554a062a70508@mail.gmail.com> <9778fd0a0707240025x250ad643yd0f84ca6e68e2fe9@mail.gmail.com> <2a1edb210707240136s6965869we2c48a0980d8a619@mail.gmail.com> <9778fd0a0707240316t15760d49pd035dfea036bae71@mail.gmail.com> Message-ID: <46A5D7F1.4090801@ehas.org> Javier Pérez Pacheco escribió: > He realiazado bastante pruebas. Lo único que hago es lanzar el Thread antes > de empezar a realizar los comandos de linux (que debería de mostrar el > dialogo) y cerrarlo al final (que cierra el dialogo) > > La cosa es que la ventana sale sólo si pongo d.run() y tengo que darle a la > "X" para que empiece el proceso. Si pongo d.show() no sale la ventana > > Te pongo un programa de prueba a ver si puedes ver el fallo. Debe de salir > la ventana de dialogo mientras escribe los 50 números, y sólo sale si pongo > d.run() > > no se cual puede ser el problema al poner show() Veo un problema fundamental, ¿en ningún punto llamas a gtk.main()? Mírate esto: http://faq.pygtk.org/index.py?req=show&file=faq20.006.htp http://www.daa.com.au/pipermail/pygtk/2003-August/005626.html No obstante, el otro día leyendo ese mismo FAQ encontré lo que parece la mejor alternativa para estos casos, usar generadores: http://faq.pygtk.org/index.py?req=show&file=faq23.020.htp No lo he probado, pero parecen la solución definitiva. Saludos From jjrojoc en hotmail.com Tue Jul 24 12:59:33 2007 From: jjrojoc en hotmail.com (=?iso-8859-1?B?SnVhbiBKb3PpIFJvam8=?=) Date: Tue, 24 Jul 2007 10:59:33 +0000 Subject: Pygtk y Gtk.Dialog In-Reply-To: <9778fd0a0707240316t15760d49pd035dfea036bae71@mail.gmail.com> References: <9778fd0a0707240316t15760d49pd035dfea036bae71@mail.gmail.com> Message-ID: Has probado a utilizar un gtk.Window con un evento que se ejecute nada mas crear la ventana en vez de un gtk.Dialog? Los dialogs por default solo responden a unas señales predeterminadas. El diálogo no corre hasta que le haces un .run(), >From: "Javier Pérez Pacheco" >Reply-To: La lista de python en castellano >To: "La lista de python en castellano" >Subject: Re: [Python-es] Pygtk y Gtk.Dialog >Date: Tue, 24 Jul 2007 12:16:22 +0200 > >He realiazado bastante pruebas. Lo único que hago es lanzar el Thread antes >de empezar a realizar los comandos de linux (que debería de mostrar el >dialogo) y cerrarlo al final (que cierra el dialogo) > >La cosa es que la ventana sale sólo si pongo d.run() y tengo que darle a la >"X" para que empiece el proceso. Si pongo d.show() no sale la ventana > >Te pongo un programa de prueba a ver si puedes ver el fallo. Debe de salir >la ventana de dialogo mientras escribe los 50 números, y sólo sale si pongo >d.run() > >no se cual puede ser el problema al poner show() > >#!/usr/bin/env python ># -*- coding: latin-1 -*- > >import gtk >import os >import string >import threading >import time >import gobject > >class MyThread(threading.Thread): > def __init__(self): > super(MyThread, self).__init__() > > self.d = gtk.Dialog("Dialogo") > self.d.set_border_width(4) > self.d.set_modal(False) > > self.pbar = gtk.ProgressBar() > > self.d.vbox.pack_start(self.pbar, False, False, 0) > > self.pbar.show() > > self.d.show_all() > > #self.d.show() > self.d.run() > > self.quit = False > > def update(self): > self.pbar.pulse() > return False > > > def close(self): > self.quit = True > self.d.destroy() > > def run(self): > while not self.quit: > gobject.idle_add(self.update) > >t = MyThread() >t.start() >i = 0 >while i<50: > print str(i) > i = i + 1 > time.sleep(0.1) > >t.close() > >El día 24/07/07, Jesus Rodriguez escribió: >> >>Hola, conozco tus scripts :P >> >>Sobre tu problema, a falta de ver el código completo, te aconsejaría que >>intentes ver de donde viene el problema. Yo normalmente en estos casos, >>suelo hacer pruebas en un fichero nuevo. En este caso podrias lanzar un >>Thread mientras lanzas algun proceso con fork donde uses imagemagick y ver >>si funciona bien para ir descartando fallos. >> >>Siento no ayudar mucho más, la clase del thread parece correcta, pero >>puede >>no estar ahi el fallo. >> >> >>Un saludo. >>_______________________________________________ >>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 _________________________________________________________________ Un amor, una aventura, compañía para un viaje. Regístrate gratis en MSN Amor & Amistad. http://match.msn.es/match/mt.cfm?pg=channel&tcid=162349 From jpavonruiz en yahoo.es Tue Jul 24 13:03:38 2007 From: jpavonruiz en yahoo.es (Juan Pavon Ruiz) Date: Tue, 24 Jul 2007 13:03:38 +0200 (CEST) Subject: Descompilar un *.exe creado con py2exe? In-Reply-To: <20070724021507.782A7143FF96@devnull.aditel.org> References: <20070724021507.782A7143FF96@devnull.aditel.org> Message-ID: <47181.46802.qm@web53110.mail.re2.yahoo.com> [Gabriel Genellina] >Hay opciones para que py2exe genere un .exe con > todos >esos .pyd/.pyc/.dll ya incorporados dentro, usando el formato de un > .zip, >pero no es tu caso. ¿Cómo? Estoy interesado para la próxima vez que utilice py2exe. [...] > Ahora te queda descompilar el .pyc -> .py, pero esa es otra historia. He seguido los pasos que me indicó. Pero el resultado no es un Miaplicación.pyc sino Miaplicación.zip.pyc . No he conseguido abrirlo, ni con 'unzip' ni con 'decompyle'. He preguntado a google, pero no encuentro prácticamente nada al respecto. Por cierto, en estos dos últimos días he logrado recuperar fragmentos de la fuente. Tras el gran desastre, utilicé 'photorec' y gravé el resultado en dvd's (eran unos 20gigas).Al principio, no se porqué no encontré nada, y lo dejé. He vuelto a utilizar 'find', y después de varias busquedas... y más, empezaron a aparecer pedacitos del código. Creo que he recuperado alrededor de un 90% del mismo, aunque hay un cierto desorden. No por ello, mi interés de aclarar esta duda de cómo descompilar un *.exe creado con py2exe continua. Muchas gracias. --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From rafaelcantos en hotmail.com Tue Jul 24 13:45:07 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Tue, 24 Jul 2007 11:45:07 +0000 Subject: pygtk y xml In-Reply-To: <20070724111554.D35CA1445C15@devnull.aditel.org> References: <20070724111554.D35CA1445C15@devnull.aditel.org> Message-ID: Hola. perdonad, que me he confundido en el asunto y es pygtk, no pygtx. Saludos y gracias. Rafa >Hola de nuevo a todos. hace unos días hice una preguntilla por aquí, pero >no >tuvo respuesta, así que vuelvo a plantearla: > >¿Cómo conecto un arbol de un fichero xml a un treeView para poder >mostrarlo? > >Estoy usando minidom. >Saludos. > >Rafa > >_________________________________________________________________ _________________________________________________________________ Acepta el reto MSN Premium: Protección para tus hijos en internet. Descárgalo y pruébalo 2 meses gratis. http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_proteccioninfantil From arnau en ehas.org Tue Jul 24 14:01:05 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 24 Jul 2007 14:01:05 +0200 Subject: Pygtk y Gtk.Dialog In-Reply-To: <46A5D7F1.4090801@ehas.org> References: <9778fd0a0707230523t7f8a403fp331f12eec6d228d3@mail.gmail.com> <2a1edb210707231358g23fc111csda7554a062a70508@mail.gmail.com> <9778fd0a0707240025x250ad643yd0f84ca6e68e2fe9@mail.gmail.com> <2a1edb210707240136s6965869we2c48a0980d8a619@mail.gmail.com> <9778fd0a0707240316t15760d49pd035dfea036bae71@mail.gmail.com> <46A5D7F1.4090801@ehas.org> Message-ID: <46A5EA01.8060800@ehas.org> Arnau Sanchez escribió: > No obstante, el otro día leyendo ese mismo FAQ encontré lo que parece la > mejor alternativa para estos casos, usar generadores: > > http://faq.pygtk.org/index.py?req=show&file=faq23.020.htp Me contesto: he hecho un pequeño programa de muestra con la idea del FAQ, y efectivamente, creo que los generadores son de largo la mejor solución (mantra: threads are evil). En el ejemplo que os paso no utilizo clases (las odio cordialmente), pero sería trivial hacerlo en OOP: #!/usr/bin/python import gobject import time import gtk def task(bar, ntasks, dialog): ntask = 0 while ntask < ntasks: print "debug:", ntask time.sleep(0.1) # simula un trabajo pesado ntask += 1 fraction = float(ntask)/ntasks bar.set_fraction(fraction) bar.set_text("%d%%"%int(100.0*fraction)) yield True dialog.destroy() yield False def on_button_clicked(widget, entry): def _on_dialog_response(widget, response, tag): if response == gtk.RESPONSE_REJECT: gobject.source_remove(tag) widget.destroy() def _on_dialog_delete_event(widget, event, tag): gobject.source_remove(tag) buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT) bar = gtk.ProgressBar() dialog = gtk.Dialog(buttons=buttons, flags=gtk.DIALOG_MODAL) dialog.vbox.pack_start(bar, False, False) ntasks = int(entry.get_text()) tag = gobject.idle_add(task(bar, ntasks, dialog).next) dialog.connect("response", _on_dialog_response, tag) dialog.connect("delete-event", _on_dialog_delete_event, tag) dialog.show_all() window = gtk.Window() box = gtk.HBox() entry = gtk.Entry() label = gtk.Label("Cantidad de trabajo") entry.set_text("50") button = gtk.Button("Pulsa para abrir una barra de progreso") for widget in label, entry, button: box.pack_start(widget) button.connect("clicked", on_button_clicked, entry) window.connect("delete-event", lambda w, e: gtk.main_quit()) window.add(box) window.show_all() gtk.main() From kernel.no.found en gmail.com Tue Jul 24 14:03:43 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Tue, 24 Jul 2007 14:03:43 +0200 Subject: Pygtx y xml Message-ID: <117d6e170707240503sef907c8x9f9fffdb4acbabb6@mail.gmail.com> Rafael, no se como funcionaran los TreeView, debes mirarte la documentacion, pero de minidom se trata de obtener ir leyendo los hijos del documento root (raiz) myxml.documentElement.childNodes y iterar sobre ellos a la vez que obtienes el valor de sus atributos MyNodo.getAttribute("nombre") y añadirlo con el metodo del treeview de gtk que ya es otro mundo. si te quedan dudas postea, y si aportas un poco de codigo para situar mejor, se agradece. lo que estoy seguro que nadie va a hacer es escribirte el programa. -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com From javielinux en gmail.com Tue Jul 24 14:03:50 2007 From: javielinux en gmail.com (=?ISO-8859-1?Q?Javier_P=E9rez_Pacheco?=) Date: Tue, 24 Jul 2007 14:03:50 +0200 Subject: Pygtk y Gtk.Dialog In-Reply-To: References: <9778fd0a0707240316t15760d49pd035dfea036bae71@mail.gmail.com> Message-ID: <9778fd0a0707240503r19b32056pce7bf05379b84b0a@mail.gmail.com> Parece que FUNCIONA. Aqui está la prueba que he realizado. Sin thread ni nada, usando la forma que comenta Arnau, con generadores, o eso creo ;-) He creado una clase MyProgressBar y sólo tenemos que llamarla. La cosa es que la tarea está dentro de la clase (función do_task), pero creo que para ver la idea vale ¿que os parece? #!/usr/bin/env python # -*- coding: latin-1 -*- import gtk import os import string import threading import time import gobject class MyProgressBar(): def __init__(self): pass def do_task (self, data): i = 0 while i<50: print str(i) i = i + 1 time.sleep(0.1) self.pbar.pulse() yield True self.d.destroy() yield False def start (self, data): self.d = gtk.Window(gtk.WINDOW_TOPLEVEL) self.d.set_title("Proceso") self.d.set_border_width(10) self.pbar = gtk.ProgressBar() self.d.add(self.pbar) self.pbar.show() self.d.show_all() task = self.do_task("hola") gobject.idle_add(task.next) w = gtk.Window(gtk.WINDOW_TOPLEVEL) w.set_title("Prueba de barra de progreso") w.set_border_width(20) w.connect("destroy", gtk.main_quit) pb = MyProgressBar() bAccept = gtk.Button("Aceptar", gtk.STOCK_OK) bAccept.connect("clicked", pb.start) w.add(bAccept) w.show_all() gtk.main() El día 24/07/07, Juan José Rojo escribió: > > Has probado a utilizar un gtk.Window con un evento que se ejecute nada mas > crear la ventana en vez de un gtk.Dialog? > Los dialogs por default solo responden a unas señales predeterminadas. > > El diálogo no corre hasta que le haces un .run(), > > > >From: "Javier Pérez Pacheco" > >Reply-To: La lista de python en castellano > >To: "La lista de python en castellano" > >Subject: Re: [Python-es] Pygtk y Gtk.Dialog > >Date: Tue, 24 Jul 2007 12:16:22 +0200 > > > >He realiazado bastante pruebas. Lo único que hago es lanzar el Thread > antes > >de empezar a realizar los comandos de linux (que debería de mostrar el > >dialogo) y cerrarlo al final (que cierra el dialogo) > > > >La cosa es que la ventana sale sólo si pongo d.run() y tengo que darle a > la > >"X" para que empiece el proceso. Si pongo d.show() no sale la ventana > > > >Te pongo un programa de prueba a ver si puedes ver el fallo. Debe de > salir > >la ventana de dialogo mientras escribe los 50 números, y sólo sale si > pongo > >d.run() > > > >no se cual puede ser el problema al poner show() > > > >#!/usr/bin/env python > ># -*- coding: latin-1 -*- > > > >import gtk > >import os > >import string > >import threading > >import time > >import gobject > > > >class MyThread(threading.Thread): > > def __init__(self): > > super(MyThread, self).__init__() > > > > self.d = gtk.Dialog("Dialogo") > > self.d.set_border_width(4) > > self.d.set_modal(False) > > > > self.pbar = gtk.ProgressBar() > > > > self.d.vbox.pack_start(self.pbar, False, False, 0) > > > > self.pbar.show() > > > > self.d.show_all() > > > > #self.d.show() > > self.d.run() > > > > self.quit = False > > > > def update(self): > > self.pbar.pulse() > > return False > > > > > > def close(self): > > self.quit = True > > self.d.destroy() > > > > def run(self): > > while not self.quit: > > gobject.idle_add(self.update) > > > >t = MyThread() > >t.start() > >i = 0 > >while i<50: > > print str(i) > > i = i + 1 > > time.sleep(0.1) > > > >t.close() > > > >El día 24/07/07, Jesus Rodriguez escribió: > >> > >>Hola, conozco tus scripts :P > >> > >>Sobre tu problema, a falta de ver el código completo, te aconsejaría que > >>intentes ver de donde viene el problema. Yo normalmente en estos casos, > >>suelo hacer pruebas en un fichero nuevo. En este caso podrias lanzar un > >>Thread mientras lanzas algun proceso con fork donde uses imagemagick y > ver > >>si funciona bien para ir descartando fallos. > >> > >>Siento no ayudar mucho más, la clase del thread parece correcta, pero > >>puede > >>no estar ahi el fallo. > >> > >> > >>Un saludo. > >>_______________________________________________ > >>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 > > _________________________________________________________________ > Un amor, una aventura, compañía para un viaje. Regístrate gratis en MSN > Amor > & Amistad. http://match.msn.es/match/mt.cfm?pg=channel&tcid=162349 > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From javielinux en gmail.com Tue Jul 24 14:05:50 2007 From: javielinux en gmail.com (=?ISO-8859-1?Q?Javier_P=E9rez_Pacheco?=) Date: Tue, 24 Jul 2007 14:05:50 +0200 Subject: Pygtk y Gtk.Dialog In-Reply-To: <46A5EA01.8060800@ehas.org> References: <9778fd0a0707230523t7f8a403fp331f12eec6d228d3@mail.gmail.com> <2a1edb210707231358g23fc111csda7554a062a70508@mail.gmail.com> <9778fd0a0707240025x250ad643yd0f84ca6e68e2fe9@mail.gmail.com> <2a1edb210707240136s6965869we2c48a0980d8a619@mail.gmail.com> <9778fd0a0707240316t15760d49pd035dfea036bae71@mail.gmail.com> <46A5D7F1.4090801@ehas.org> <46A5EA01.8060800@ehas.org> Message-ID: <9778fd0a0707240505p1b528b19w158a1e47bf19b9ed@mail.gmail.com> jejeje Bueno, yo lo he realizado con una clase, lo hemos mandado los dos a la vez ;-) voy a mirar tu código, pero creo q es mas o menos lo mismo gracias 2007/7/24, Arnau Sanchez : > > Arnau Sanchez escribió: > > > No obstante, el otro día leyendo ese mismo FAQ encontré lo que parece la > > mejor alternativa para estos casos, usar generadores: > > > > http://faq.pygtk.org/index.py?req=show&file=faq23.020.htp > > Me contesto: he hecho un pequeño programa de muestra con la idea del FAQ, > y > efectivamente, creo que los generadores son de largo la mejor solución > (mantra: > threads are evil). En el ejemplo que os paso no utilizo clases (las odio > cordialmente), pero sería trivial hacerlo en OOP: > > #!/usr/bin/python > import gobject > import time > import gtk > > def task(bar, ntasks, dialog): > ntask = 0 > while ntask < ntasks: > print "debug:", ntask > time.sleep(0.1) # simula un trabajo pesado > ntask += 1 > fraction = float(ntask)/ntasks > bar.set_fraction(fraction) > bar.set_text("%d%%"%int(100.0*fraction)) > yield True > dialog.destroy() > yield False > > def on_button_clicked(widget, entry): > def _on_dialog_response(widget, response, tag): > if response == gtk.RESPONSE_REJECT: > gobject.source_remove(tag) > widget.destroy() > def _on_dialog_delete_event(widget, event, tag): > gobject.source_remove(tag) > buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT) > bar = gtk.ProgressBar() > dialog = gtk.Dialog(buttons=buttons, flags=gtk.DIALOG_MODAL) > dialog.vbox.pack_start(bar, False, False) > ntasks = int(entry.get_text()) > tag = gobject.idle_add(task(bar, ntasks, dialog).next) > dialog.connect("response", _on_dialog_response, tag) > dialog.connect("delete-event", _on_dialog_delete_event, tag) > dialog.show_all() > > window = gtk.Window() > box = gtk.HBox() > entry = gtk.Entry() > label = gtk.Label("Cantidad de trabajo") > entry.set_text("50") > button = gtk.Button("Pulsa para abrir una barra de progreso") > for widget in label, entry, button: > box.pack_start(widget) > button.connect("clicked", on_button_clicked, entry) > window.connect("delete-event", lambda w, e: gtk.main_quit()) > window.add(box) > window.show_all() > gtk.main() > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From jjrojoc en hotmail.com Tue Jul 24 14:33:26 2007 From: jjrojoc en hotmail.com (=?iso-8859-1?B?SnVhbiBKb3PpIFJvam8=?=) Date: Tue, 24 Jul 2007 12:33:26 +0000 Subject: Pygtx y xml In-Reply-To: <117d6e170707240503sef907c8x9f9fffdb4acbabb6@mail.gmail.com> References: <117d6e170707240503sef907c8x9f9fffdb4acbabb6@mail.gmail.com> Message-ID: Respecto a los treeviews puedes ver: http://pytpv.svn.sourceforge.net/viewvc/pytpv/trunk/src/pytpv_test/tree.py?view=markup Es la manera más sencilla que he podido hacer para crearlos, si tienes alguna duda, pregunta. En cuanto a gtk.TreeStore, que es lo que tú andas buscando, no he trabajado con él, pero tal y como está mi código, simplemente cambiando ListStore por TreeStore lo conviertes en un árbol, en teoría no hay que hacer nada más, ahora lo que sí tienes que hacer es mirar los ejemplos para insertar los datos. Espero te ayude. >From: "Juan José Alonso." >Reply-To: La lista de python en castellano >To: python-es en aditel.org >Subject: [Python-es] RE: Pygtx y xml >Date: Tue, 24 Jul 2007 14:03:43 +0200 > >Rafael, no se como funcionaran los TreeView, debes mirarte la >documentacion, >pero de minidom se trata de obtener ir leyendo los hijos del documento root >(raiz) myxml.documentElement.childNodes y iterar sobre ellos a la vez que >obtienes el valor de sus atributos MyNodo.getAttribute("nombre") y añadirlo >con el metodo del treeview de gtk que ya es otro mundo. > >si te quedan dudas postea, y si aportas un poco de codigo para situar >mejor, >se agradece. lo que estoy seguro que nadie va a hacer es escribirte el >programa. > >-- >Juan José Alonso. KarlsBerg. >eMail: kernel.no.found en gmail.com >MSN: kernel.no.found en gmail.com >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Descarga gratis la Barra de Herramientas de MSN http://www.msn.es/usuario/busqueda/barra?XAPID=2031&DI=1055&SU=http%3A//www.hotmail.com&HL=LINKTAG1OPENINGTEXT_MSNBH From marcelo.schiavone en gmail.com Tue Jul 24 16:56:40 2007 From: marcelo.schiavone en gmail.com (marcelo schiavone) Date: Tue, 24 Jul 2007 11:56:40 -0300 Subject: web service Message-ID: <931b28a60707240756y527fbec0oc64a77f7aac2ee50@mail.gmail.com> Hola, estoy usando un cliente python para comunicarme con un servidor java, y me da el siguiente error: File "MyContext/ws1/transaccion.py", line 8, in buscarAfi cod=server.buscarConNumeroSoloUno(parameters=str('nro_documento')) File "/usr/lib/python2.4/site-packages/SOAPpy/Client.py", line 453, in __call__ return self.__r_call(*args, **kw) File "/usr/lib/python2.4/site-packages/SOAPpy/Client.py", line 475, in __r_call self.__hd, self.__ma) File "/usr/lib/python2.4/site-packages/SOAPpy/Client.py", line 389, in __call raise p faultType: : {'exception': : {'stackTrace': : {'frame': ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']}}}> He estado tratando de hacerlo funcionar con python pero no ha habido caso, y el servidor funciona bien, porque hemos hecho el cliente en PHP y Java y ha funcionado correctamente. El cliente python es asi: import SOAPpy server = SOAPpy.SOAPProxy("http://servidor/webservice/wsdl/afiliado/buscarConNumero") def consulta(numero_documento): msg=server.buscarConNumeroSoloUno(parameters=str('numero_documento')) print msg Gracias Saludos From lasizoillo en gmail.com Wed Jul 25 00:18:51 2007 From: lasizoillo en gmail.com (lasizoillo) Date: Wed, 25 Jul 2007 00:18:51 +0200 Subject: web service In-Reply-To: <931b28a60707240756y527fbec0oc64a77f7aac2ee50@mail.gmail.com> References: <931b28a60707240756y527fbec0oc64a77f7aac2ee50@mail.gmail.com> Message-ID: <49414f570707241518s4d596b3eh6ba909fc31ca9521@mail.gmail.com> Buenas: Viendo la excepcion java.lang.NullPointerException... ...mmmm no parece un problema muy de python. Prueba algun monitor de web service o sniffer para ver que es lo que llega realmente al web service. Y comparalo con los otros lenguajes en los que implementaste el cliente. Pero sinceramente no entiendo la siguiente linea: msg=server.buscarConNumeroSoloUno(parameters=str('numero_documento')) ¿numero_documento no deberia ser una variable en vez de una cadena fija? Puede ser que sea por eso que el servidor se hace un lio y retorno una excepcion. Saludos: Javi El 24/07/07, marcelo schiavone escribió: > Hola, estoy usando un cliente python para comunicarme con un servidor > java, y me da el siguiente error: > > File "MyContext/ws1/transaccion.py", line 8, in buscarAfi > cod=server.buscarConNumeroSoloUno(parameters=str('nro_documento')) > File "/usr/lib/python2.4/site-packages/SOAPpy/Client.py", line 453, > in __call__ > return self.__r_call(*args, **kw) > File "/usr/lib/python2.4/site-packages/SOAPpy/Client.py", line 475, > in __r_call > self.__hd, self.__ma) > File "/usr/lib/python2.4/site-packages/SOAPpy/Client.py", line 389, in __call > raise p > faultType: : {'exception': > : {'stackTrace': > : {'frame': ['', > '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', > '', '', '', '', '', '', '', '', '', '', '']}}}> > > > He estado tratando de hacerlo funcionar con python pero no ha habido > caso, y el servidor funciona bien, porque hemos hecho el cliente en > PHP y Java y ha funcionado correctamente. > El cliente python es asi: > import SOAPpy > > server = SOAPpy.SOAPProxy("http://servidor/webservice/wsdl/afiliado/buscarConNumero") > > def consulta(numero_documento): > msg=server.buscarConNumeroSoloUno(parameters=str('numero_documento')) > print msg > > > Gracias > Saludos > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From gagsl-py2 en yahoo.com.ar Wed Jul 25 00:33:47 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Tue, 24 Jul 2007 19:33:47 -0300 Subject: Descompilar un *.exe creado con py2exe? References: <20070724021507.782A7143FF96@devnull.aditel.org> <47181.46802.qm@web53110.mail.re2.yahoo.com> Message-ID: En Tue, 24 Jul 2007 08:03:38 -0300, Juan Pavon Ruiz escribió: >> Hay opciones para que py2exe genere un .exe con >> todos >> esos .pyd/.pyc/.dll ya incorporados dentro, usando el formato de un >> .zip, >> pero no es tu caso. > ¿Cómo? Estoy interesado para la próxima vez que utilice py2exe. Poniendo zipfile=None en el setup.py, mas la opcion --bundle 1 al ejecutarlo (pero esto es de memoria, asi que habria que consultar la ayuda) > He seguido los pasos que me indicó. Pero el resultado no es un > Miaplicación.pyc sino Miaplicación.zip.pyc . > No he conseguido abrirlo, ni con 'unzip' ni con 'decompyle'. > He preguntado a google, pero no encuentro prácticamente nada al respecto. Deberia haberse llamado Miaplicacion.exe.pyc en realidad... Y se puede ejecutar con Python? Poniendo python Miaplicacion.exe.pyc El codigo que mandé tenia unos cuantos assert como para verificar que lo que iba haciendo estaba bien, asi que confío en que lo que extrajo del exe es lo que realmente hay. > Por cierto, en estos dos últimos días he logrado recuperar fragmentos de > la fuente. Tras el gran desastre, utilicé 'photorec' y gravé el > resultado en dvd's (eran unos 20gigas).Al principio, no se porqué no > encontré nada, y lo dejé. He vuelto a utilizar 'find', y después de > varias busquedas... y más, empezaron a aparecer pedacitos del código. > Creo que he recuperado alrededor de un 90% del mismo, aunque hay un > cierto desorden. Eso seguro es mucho mejor que intentar descompilar el ejecutable... A un compañero mío le paso eso mismo, perdio los fuentes, pero despues de un par de dias de luchar con el decompyle le resulto mejor tomar unos fuentes viejos, y seguir las notas de los problemas que habia ido corrigiendo para rehacerlo. Al final dijo que le quedo mejor que el original. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Wed Jul 25 01:39:42 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 25 Jul 2007 01:39:42 +0200 Subject: web service In-Reply-To: <931b28a60707240756y527fbec0oc64a77f7aac2ee50@mail.gmail.com> References: <931b28a60707240756y527fbec0oc64a77f7aac2ee50@mail.gmail.com> Message-ID: <2c9fb0dd0707241639x1c7291f4s420f0568ee8a2c43@mail.gmail.com> El 24/07/07, marcelo schiavone escribió: > El cliente python es asi: > import SOAPpy > > server = SOAPpy.SOAPProxy("http://servidor/webservice/wsdl/afiliado/buscarConNumero") > > def consulta(numero_documento): > msg=server.buscarConNumeroSoloUno(parameters=str('numero_documento')) > print msg Como te dice lasizoillo, este código no tiene mucho sentido, no haces bien la conversión a string del argumento. ¿Qué tipos de parámetros espera recibir el servidor? Por si te sirve, en DiveIntoPython se explica cómo crear servicios web con soappy y cómo depurarlos. Tienes versión en castellano en: http://almacen.gulic.org/diveintopython-5.4-es/soap_web_services/index.html From jboris.bsm en gmail.com Wed Jul 25 05:13:33 2007 From: jboris.bsm en gmail.com (=?ISO-8859-1?Q?Jos=E9_Boris_Bellido_Santa_Mar=EDa?=) Date: Tue, 24 Jul 2007 23:13:33 -0400 Subject: web service In-Reply-To: <2c9fb0dd0707241639x1c7291f4s420f0568ee8a2c43@mail.gmail.com> References: <931b28a60707240756y527fbec0oc64a77f7aac2ee50@mail.gmail.com> <2c9fb0dd0707241639x1c7291f4s420f0568ee8a2c43@mail.gmail.com> Message-ID: <24ed9e840707242013o1ba41b8fqab419614dfc7e848@mail.gmail.com> marcelo schiavone revisaste Dive Into PYthon, en ese libro hay un capitulo sobre como consumiur web services, yo lo hice algunas vez pero no recuerdo donde deje los scripts de prueba, revisa ese libro, yo lo tengo PDF Saludos -- José Boris Bellido Santa María Se libre, usa software libre -------------------------------------------- http://boris.arcamo.org/ jboris.bsm en gmail.com - boris en arcamo.org Linux User #419610 http://counter.li.org/ From fvillarroel en yahoo.com Wed Jul 25 16:17:14 2007 From: fvillarroel en yahoo.com (FERNANDO VILLARROEL) Date: Wed, 25 Jul 2007 07:17:14 -0700 (PDT) Subject: web service In-Reply-To: <24ed9e840707242013o1ba41b8fqab419614dfc7e848@mail.gmail.com> References: <24ed9e840707242013o1ba41b8fqab419614dfc7e848@mail.gmail.com> Message-ID: <162610.27718.qm@web34310.mail.mud.yahoo.com> Hola me puedes postear el libro en PDF. Te lo agradeceria mucho. Saludos. Fernando --- José Boris Bellido Santa María wrote: > marcelo schiavone revisaste Dive Into PYthon, en ese > libro hay un > capitulo sobre como consumiur web services, yo lo > hice algunas vez > pero no recuerdo donde deje los scripts de prueba, > revisa ese libro, > yo lo tengo PDF > Saludos > > -- > José Boris Bellido Santa María > Se libre, usa software libre > -------------------------------------------- > http://boris.arcamo.org/ > jboris.bsm en gmail.com - boris en arcamo.org > Linux User #419610 http://counter.li.org/ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ____________________________________________________________________________________ Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games. http://sims.yahoo.com/ From joana_mendaro en hotmail.com Wed Jul 25 18:42:26 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Wed, 25 Jul 2007 16:42:26 +0000 Subject: comparar dos fechas Message-ID: hola chicos!! necisto comparar dos fechas en python. para ello tengo las fechas en formato dd/mm/aaaa(las tengo como un string), supongo que alguien habra implementado alguna vez esta funcion para definir si una fecha es mayor o menor a la otra. Si alguien me puede ayudar, muchas gracias _________________________________________________________________ Ofertas y reservas para viajar por todo el mundo. [1]Organiza y contrata tus viajes aquí. References 1. http://g.msn.com/8HMAESES/2749??PS=47575 From jcanto en hispasec.com Wed Jul 25 18:56:55 2007 From: jcanto en hispasec.com (Julio Canto) Date: Wed, 25 Jul 2007 18:56:55 +0200 Subject: comparar dos fechas In-Reply-To: References: Message-ID: <46A780D7.40309@hispasec.com> joana salgado gomez escribió: > > hola chicos!! > necisto comparar dos fechas en python. > para ello tengo las fechas en formato dd/mm/aaaa(las tengo como un > string), supongo que alguien habra implementado alguna vez esta > funcion para definir si una fecha es mayor o menor a la otra. Si es solo para ver si es mayor o menor, con ordenarlo en formato AAAAMMDD te sobra :) Un saludo, JC From xinxic en gmail.com Wed Jul 25 19:19:53 2007 From: xinxic en gmail.com (Xin) Date: Wed, 25 Jul 2007 19:19:53 +0200 Subject: comparar dos fechas In-Reply-To: <46A780D7.40309@hispasec.com> References: <46A780D7.40309@hispasec.com> Message-ID: <46d17268d176189c01ae37e760bfce64@GMail.com> El 25/07/2007, a les 18:56, en/na Julio Canto va escriure: > joana salgado gomez escribió: >> >> hola chicos!! >> necisto comparar dos fechas en python. >> para ello tengo las fechas en formato dd/mm/aaaa(las tengo como un >> string), supongo que alguien habra implementado alguna vez esta >> funcion para definir si una fecha es mayor o menor a la otra. > Si es solo para ver si es mayor o menor, con ordenarlo en formato > AAAAMMDD te sobra :) > Un saludo, > JC I con la tupla también. From jpavonruiz en yahoo.es Wed Jul 25 19:52:01 2007 From: jpavonruiz en yahoo.es (Juan Pavon Ruiz) Date: Wed, 25 Jul 2007 19:52:01 +0200 (CEST) Subject: Descompilar un *.exe creado con py2exe? In-Reply-To: <20070725173239.A26B71440B40@devnull.aditel.org> References: <20070725173239.A26B71440B40@devnull.aditel.org> Message-ID: <607377.60486.qm@web53107.mail.re2.yahoo.com> [Gabriel Genellina] >Deberia haberse llamado Miaplicacion.exe.pyc en realidad... >Y se puede ejecutar con Python? Poniendo python >Miaplicacion.exe.pyc >El codigo que mandé tenia unos cuantos assert como para verificar >que lo >que iba haciendo estaba bien, asi que confío en que lo que extrajo del >exe >es lo que realmente hay. Sí, el código que mandó trabajó bien. A pesar de que dió como resultado Miaplicación.zip.pyc (pienso que debido a la compilación de py2exe), funciona correctamente poniendo python Miaplicación.zip.pyc . El siguiente paso imagino que sería trabajarlo con "decompyle". Yo no lo voy a hacer porque al parecer no funciona con python2.5 . Y después de todo... pues eso... ¡Qué ya tengo las fuentes!!! :D Muchas gracias a todos, en especial a Gabriel Genellina. --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From pych3m4 en gmail.com Wed Jul 25 23:53:27 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 25 Jul 2007 23:53:27 +0200 Subject: comparar dos fechas In-Reply-To: References: Message-ID: <2c9fb0dd0707251453v7fc3cbbdwe3170e1b1f61b717@mail.gmail.com> El 25/07/07, joana salgado gomez escribió: > > hola chicos!! > necisto comparar dos fechas en python. > para ello tengo las fechas en formato dd/mm/aaaa(las tengo como un > string), supongo que alguien habra implementado alguna vez esta > funcion para definir si una fecha es mayor o menor a la otra. > > Si alguien me puede ayudar, muchas gracias def cmp_date(d1,d2): def tr(d): return d.split('/')[::-1] return cmp(tr(d1),tr(d2)) Si pensabas pasarlos luego a tipo datetime, sería mejor hacer la conversión antes de la comparación: from datetime import datetime from time import strptime def to_datetime(s): return datetime(*strptime(s, "%d/%m/%Y")[0:6]) d1=to_datetime(s1) d2=to_datetime(s2) if d1 References: <24ed9e840707242013o1ba41b8fqab419614dfc7e848@mail.gmail.com> <162610.27718.qm@web34310.mail.mud.yahoo.com> Message-ID: <2c9fb0dd0707251457g730c152ew9680105b575188f0@mail.gmail.com> El 25/07/07, FERNANDO VILLARROEL escribió: > Hola me puedes postear el libro en PDF. > > Te lo agradeceria mucho. Mírate esta dirección: http://almacen.gulic.org/diveintopython-5.4-es/index.html From seldoncypher en gmail.com Thu Jul 26 00:22:19 2007 From: seldoncypher en gmail.com (=?ISO-8859-1?Q?V=EDctor_Mart=EDnez?=) Date: Thu, 26 Jul 2007 00:22:19 +0200 Subject: Scripts para S60 Message-ID: Hola, Me gustaría a ver si alguien que posea un móvil de la Serie 60 con el intérprete de python me cuente que scripts usa. Tengo un N70 y es como si no acabara de ver las posibilidades(más allá de todo el tema de internet). ¿Qué teneis puesto? Saludos, Víctor From arnau en ehas.org Thu Jul 26 00:53:34 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 26 Jul 2007 00:53:34 +0200 Subject: Pygtk y Gtk.Dialog In-Reply-To: <9778fd0a0707240503r19b32056pce7bf05379b84b0a@mail.gmail.com> References: <9778fd0a0707240316t15760d49pd035dfea036bae71@mail.gmail.com> <9778fd0a0707240503r19b32056pce7bf05379b84b0a@mail.gmail.com> Message-ID: <46A7D46E.3000008@ehas.org> Javier Pérez Pacheco escribió: > Parece que FUNCIONA. Aqui está la prueba que he realizado. Sin thread ni > nada, usando la forma que comenta Arnau, con generadores, o eso creo ;-) Lo de los generadores tiene buena pinta, aunque sólo en una aplicación más compleja se puede ver si cubre todas las eventualidades. La verdad es que siempre que recurro a los threads me viene a la cabeza aquella frase sobre las expresiones regulares: "Tienes un problema y te dices, 'uhmm, ya sé, lo resolveré con expresiones regulares'. Ahora tienes dos problemas" :-) > #!/usr/bin/env python No sé la política general de otras distros, pero si no recuerdo mal, en Debian se recomienda simplemente #!/usr/bin/python. Bah, sólo un detalle. > class MyProgressBar(): Cuidado que eso de "class nombre():" sólo es válido a partir de python 2.5, para hacerlo más general quizá debieras quitar los paréntesis... > def __init__(self): > pass Supongo que alguna vez querrás hacer algo ahí, ¿no? porque si no no es necesario. > [codigo] Una cosa importante, tienes que controlar el cierre del diálogo y asegurarte que el iterador deja de trabajar (si lo cierras, verás que el iterador continúa). Fíjate en el código que mandé y las llamadas a gobject.source_remove(tag). Saludos From pych3m4 en gmail.com Thu Jul 26 04:06:57 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 26 Jul 2007 04:06:57 +0200 Subject: Scripts para S60 In-Reply-To: References: Message-ID: <2c9fb0dd0707251906t2f301e0buf0aaf1e1f0a465dd@mail.gmail.com> El 26/07/07, Víctor Martínez escribió: > Me gustaría a ver si alguien que posea un móvil de la Serie 60 con el > intérprete de python me cuente que scripts usa. Tengo un N70 y es como > si no acabara de ver las posibilidades(más allá de todo el tema de > internet). ¿Qué teneis puesto? Jesús Cea tiene un proyecto llamado pytrek que te puede dar una idea: http://www.argo.es/~jcea/programacion/pytrek.htm No te puedo dar una opinión personal ya que no terminó de convencerme del todo el python que llevan los s60. Al final, me decanté por la programación del nokia 770. Necesitaba que el móvil se sincronizara sin problemas con linux y maemo, por lo que acabé comprándome un sony-ericsson (K800i) que con python-gammu funciona perfectamente. Ahora estoy intentado usar el móvil como control remoto del PC. From dmunhiz en gmail.com Thu Jul 26 08:52:23 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Thu, 26 Jul 2007 08:52:23 +0200 Subject: comparar dos fechas In-Reply-To: <2c9fb0dd0707251453v7fc3cbbdwe3170e1b1f61b717@mail.gmail.com> References: <2c9fb0dd0707251453v7fc3cbbdwe3170e1b1f61b717@mail.gmail.com> Message-ID: <46A844A7.7010403@gmail.com> Dos preguntas, la primera es que tengo entendido que es mejor no usar en from --- import ----- mejor es usar el impor a secas para no tener posible sconflictos de variables. ¿esto es así? la segunda pregunta es, que significa el * en return datetime(*strptime(s, "%d/%m/%Y")[0:6]) ? he pasado a versión import lo que envió Chema saludos import datetime import time s1="5/04/2006" s2="4/05/2006" #compara duas datas en formato string def cmp_date(d1,d2): def tr(d): return d.split('/')[::-1] return cmp(tr(d1),tr(d2)) if cmp_date(s1,s2): print "s2 maior" else: print "s1 maior" #pasa unha data de string a tipo data (tupla) def to_datetime(s): return datetime.datetime(*time.strptime(s, "%d/%m/%Y")[0:6]) d1=to_datetime(s1) d2=to_datetime(s2) if d1 El 25/07/07, joana salgado gomez escribió: >> >> hola chicos!! >> necisto comparar dos fechas en python. >> para ello tengo las fechas en formato dd/mm/aaaa(las tengo como un >> string), supongo que alguien habra implementado alguna vez esta >> funcion para definir si una fecha es mayor o menor a la otra. >> >> Si alguien me puede ayudar, muchas gracias > > > def cmp_date(d1,d2): > def tr(d): > return d.split('/')[::-1] > return cmp(tr(d1),tr(d2)) > > > Si pensabas pasarlos luego a tipo datetime, sería mejor hacer la > conversión antes de la comparación: > > from datetime import datetime > from time import strptime > > def to_datetime(s): > return datetime(*strptime(s, "%d/%m/%Y")[0:6]) > > d1=to_datetime(s1) > d2=to_datetime(s2) > > if d1 ... > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From pepe en diselpro.com Thu Jul 26 10:38:47 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Thu, 26 Jul 2007 10:38:47 +0200 Subject: Scripts para S60 In-Reply-To: References: Message-ID: <46A85D97.5070709@diselpro.com> Hola Aquí tienes unos cuantos programas para PyS60: http://wiki.opensource.nokia.com/projects/PyS60_applications Yo tengo puestos dos de cosecha propia, PySpy y otro para buscar las keys de D+ en distintas webs ;-). Con PyS60 tienes acceso a sockets, cámara, bluetooth, información de célula, agenda, etc ... Así que es solo cuestión de imaginación encontrar aplicaciones para PyS60. Cosas que se pueden hacer mmmm. - Un detector de "jefes" mediante Bluetooth, cuando se acerca el jefe pita y pones el pantallazo del eclipse, jeje. - Registrador de datos obtenidos de aparatos de medición portátiles. - Un detonador ultra sofisticado }:-) - Un detector de llanto de bebés y con un procesamiento de la señal, determinar el tipo de llanto al estilo del whycry. http://www.whycry.com/ Y un largo etc. aunque claro, primero te tienes que topar con la necesidad y luego ver si puedes implementar la solución con PyS60. Saludos. También puedes utilizar tu N70 como mando a distancia Bluetooth para PC's o media-centers. Víctor Martínez escribió: > Hola, > Me gustaría a ver si alguien que posea un móvil de la Serie 60 con el > intérprete de python me cuente que scripts usa. Tengo un N70 y es como > si no acabara de ver las posibilidades(más allá de todo el tema de > internet). ¿Qué teneis puesto? > > Saludos, > Víctor > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Thu Jul 26 10:48:24 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 26 Jul 2007 10:48:24 +0200 Subject: comparar dos fechas In-Reply-To: <46A844A7.7010403@gmail.com> References: <2c9fb0dd0707251453v7fc3cbbdwe3170e1b1f61b717@mail.gmail.com> <46A844A7.7010403@gmail.com> Message-ID: <2c9fb0dd0707260148g5b38c636sacaf2946d03b4d75@mail.gmail.com> El 26/07/07, dmunhiz escribió: > Dos preguntas, la primera es que tengo entendido que es mejor no usar en > from --- import ----- > mejor es usar el impor a secas para no tener posible sconflictos de > variables. ¿esto es así? Lo desaconsejable es usar el 'from modulo import *' ya que no controlas qué es lo que se está importando desde el módulo. La importación "explícita" de elemento, tal como la puse, tiene más control sobre qué se importa, ayudando a simplificar las referencias a los objetos importados. En concreto, el "from datetime import datetime" está totalmente aceptado ya que 'datetime' está considera un tipo de datos común más. > la segunda pregunta es, que significa el * en > return datetime(*strptime(s, "%d/%m/%Y")[0:6]) > ? Es un modo de "desempaquetar" la tupla que devuelve strptime entre los argumentos que espera el constructor de datetime. En el tutorial de python se habla algo de ello, pero mejor mira en la documentación el tema de las llamadas extendidas a funciones: http://docs.python.org/ref/calls.html Al igual que * desempaquete tuplas, ** desempaqueta diccionarios. Entre los dos se crean las funciones con número variables de argumentos. From dmunhiz en gmail.com Thu Jul 26 11:28:54 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Thu, 26 Jul 2007 11:28:54 +0200 Subject: comparar dos fechas In-Reply-To: <2c9fb0dd0707260148g5b38c636sacaf2946d03b4d75@mail.gmail.com> References: <2c9fb0dd0707251453v7fc3cbbdwe3170e1b1f61b717@mail.gmail.com> <46A844A7.7010403@gmail.com> <2c9fb0dd0707260148g5b38c636sacaf2946d03b4d75@mail.gmail.com> Message-ID: <46A86956.8010201@gmail.com> Muchas gracias! Ahora lo tengo mas claro. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Chema Cortes escribiu: > El 26/07/07, dmunhiz escribió: >> Dos preguntas, la primera es que tengo entendido que es mejor no usar en >> from --- import ----- >> mejor es usar el impor a secas para no tener posible sconflictos de >> variables. ¿esto es así? > > Lo desaconsejable es usar el 'from modulo import *' ya que no > controlas qué es lo que se está importando desde el módulo. La > importación "explícita" de elemento, tal como la puse, tiene más > control sobre qué se importa, ayudando a simplificar las referencias a > los objetos importados. > > En concreto, el "from datetime import datetime" está totalmente > aceptado ya que 'datetime' está considera un tipo de datos común más. > > >> la segunda pregunta es, que significa el * en >> return datetime(*strptime(s, "%d/%m/%Y")[0:6]) >> ? > > Es un modo de "desempaquetar" la tupla que devuelve strptime entre los > argumentos que espera el constructor de datetime. > > En el tutorial de python se habla algo de ello, pero mejor mira en la > documentación el tema de las llamadas extendidas a funciones: > > http://docs.python.org/ref/calls.html > > Al igual que * desempaquete tuplas, ** desempaqueta diccionarios. > Entre los dos se crean las funciones con número variables de > argumentos. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From javielinux en gmail.com Thu Jul 26 13:57:42 2007 From: javielinux en gmail.com (=?ISO-8859-1?Q?Javier_P=E9rez_Pacheco?=) Date: Thu, 26 Jul 2007 13:57:42 +0200 Subject: Pygtk y Gtk.Dialog In-Reply-To: <46A7D46E.3000008@ehas.org> References: <9778fd0a0707240316t15760d49pd035dfea036bae71@mail.gmail.com> <9778fd0a0707240503r19b32056pce7bf05379b84b0a@mail.gmail.com> <46A7D46E.3000008@ehas.org> Message-ID: <9778fd0a0707260457p32b8d9edke590a2df85019fea@mail.gmail.com> gracias Arnau. Lo del cierre de del diálogo es muy importante. Muchas gracias por las indicaciones un saludo El día 26/07/07, Arnau Sanchez escribió: > > Javier Pérez Pacheco escribió: > > > Parece que FUNCIONA. Aqui está la prueba que he realizado. Sin thread ni > > nada, usando la forma que comenta Arnau, con generadores, o eso creo ;-) > > Lo de los generadores tiene buena pinta, aunque sólo en una aplicación más > compleja se puede ver si cubre todas las eventualidades. La verdad es que > siempre que recurro a los threads me viene a la cabeza aquella frase sobre > las > expresiones regulares: "Tienes un problema y te dices, 'uhmm, ya sé, lo > resolveré con expresiones regulares'. Ahora tienes dos problemas" :-) > > > #!/usr/bin/env python > > No sé la política general de otras distros, pero si no recuerdo mal, en > Debian > se recomienda simplemente #!/usr/bin/python. Bah, sólo un detalle. > > > class MyProgressBar(): > > Cuidado que eso de "class nombre():" sólo es válido a partir de python 2.5, > para > hacerlo más general quizá debieras quitar los paréntesis... > > > def __init__(self): > > pass > > Supongo que alguna vez querrás hacer algo ahí, ¿no? porque si no no es > necesario. > > > [codigo] > > Una cosa importante, tienes que controlar el cierre del diálogo y > asegurarte que > el iterador deja de trabajar (si lo cierras, verás que el iterador > continúa). > Fíjate en el código que mandé y las llamadas a gobject.source_remove(tag). > > Saludos > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From marcelo.schiavone en gmail.com Thu Jul 26 13:59:16 2007 From: marcelo.schiavone en gmail.com (marcelo schiavone) Date: Thu, 26 Jul 2007 08:59:16 -0300 Subject: web service In-Reply-To: <2c9fb0dd0707251457g730c152ew9680105b575188f0@mail.gmail.com> References: <24ed9e840707242013o1ba41b8fqab419614dfc7e848@mail.gmail.com> <162610.27718.qm@web34310.mail.mud.yahoo.com> <2c9fb0dd0707251457g730c152ew9680105b575188f0@mail.gmail.com> Message-ID: <931b28a60707260459o18a7cc9fkaeaaabba1d707b83@mail.gmail.com> Hola, gracias por las respuestas. El codigo que puse es ilustrativo, puse la palabra numero de documento pero en realidad ahi va un numero, eso funciona bien. Voy a probar un sniffer como dice lazisolillo y leer los libros y manuales recomendados, gracias. Saludos On 7/25/07, Chema Cortes wrote: > El 25/07/07, FERNANDO VILLARROEL escribió: > > Hola me puedes postear el libro en PDF. > > > > Te lo agradeceria mucho. > > Mírate esta dirección: > > http://almacen.gulic.org/diveintopython-5.4-es/index.html > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From marcelo.schiavone en gmail.com Thu Jul 26 20:54:42 2007 From: marcelo.schiavone en gmail.com (marcelo schiavone) Date: Thu, 26 Jul 2007 15:54:42 -0300 Subject: web service In-Reply-To: <2c9fb0dd0707251457g730c152ew9680105b575188f0@mail.gmail.com> References: <24ed9e840707242013o1ba41b8fqab419614dfc7e848@mail.gmail.com> <162610.27718.qm@web34310.mail.mud.yahoo.com> <2c9fb0dd0707251457g730c152ew9680105b575188f0@mail.gmail.com> Message-ID: <931b28a60707261154v51c0b91dka711a329382880ea@mail.gmail.com> Hola, ya quedó solucionado, ahora tengo un cliente python contra un servidor java. El problema era que me faltaba poner el Namespace en SOAPProxy. Ejemplo: server = SOAPpy.SOAPProxy("http://servidor/webservice/wsdl/afiliado/buscarConNumero", namespace) El PDF de esta direccion: http://almacen.gulic.org/diveintopython-5.4-es/index.html me hizo dar con el error. Gracias Saludos On 7/25/07, Chema Cortes wrote: > El 25/07/07, FERNANDO VILLARROEL escribió: > > Hola me puedes postear el libro en PDF. > > > > Te lo agradeceria mucho. > > Mírate esta dirección: > > http://almacen.gulic.org/diveintopython-5.4-es/index.html > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From carles en pina.cat Thu Jul 26 02:20:15 2007 From: carles en pina.cat (Carles Pina i Estany) Date: Thu, 26 Jul 2007 02:20:15 +0200 Subject: closures In-Reply-To: <2c9fb0dd0707230542k5f45e220u765c8c17e8b2e704@mail.gmail.com> References: <20070722185206.GA12025@pinux.info> <2c9fb0dd0707222047k3554511cvfdaf1e6fdfae3f0c@mail.gmail.com> <20070723104910.GA4410@pinux.info> <2c9fb0dd0707230542k5f45e220u765c8c17e8b2e704@mail.gmail.com> Message-ID: <20070726002015.GA11310@pinux.info> Hola, On Jul/23/2007, Chema Cortes wrote: > El 23/07/07, Carles Pina i Estany escribió: > > > >Aunque es un concepto que no me gusta mucho. Me imagino que algun dia > >veré un caso que me simplificará mucho la vida :-) > > > >Parece que con generadores, paso de argumentos, etc. casi siempre puedo > >hacer lo mismo... > > > En una entrevista a Yukihiro Matsumoto, el creador de ruby, reconocía > que las clausuras "verdaderas" no daban muchas más ventajas que si se > copiara internamente las variables, que si las había incluído en ruby > era por ser fiel a la cultura Lisp: > > http://www.artima.com/intv/closures2.html (al final de la entrevista) lo miraré, pero con lo que dices me quedo más tranquilo: entendí las clausuras pero no le veo una utilidad práctica directa en ningún caso. Repito: seguro que tienen alguna utilidad pero no veo dónde las podía haber aplicado y que me hubiesen ahorrado mucho trabajo. > Te puedo asegurar que hay cierto abuso de las cláusulas. Si cuentas ahora entiendo cosas, leía cláusulas en todos los sitios y no veía muy bien la utilidad :-) > con un lenguaje de programación orientado a objetos, lo lógico es > emplear la abstracción de datos para encapsular los datos junto con > las funciones que los procesan. genial, estoy más tranquilo :-) > Y si crees que tiene que haber algo que sólo sea posible con > cláusulas, te aconsejo que te mires los "contextos" de ejecución de > python 2.5 y que te olvidarás de la cláusulas: > > http://docs.python.org/whatsnew/pep-343.html ok! > PD: ...pero si quieres ver otros mundos, lua tiene claúsulas de verdad lo miraré, por qué no? Gracias a todos (chema y gabriel especialmente por las interesantísimas aportaciones) -- Carles Pina i Estany GPG id: 0x8CBDAE64 http://pinux.info Manresa - Barcelona From dmunhiz en gmail.com Fri Jul 27 11:51:02 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Fri, 27 Jul 2007 11:51:02 +0200 Subject: sobre el faq Message-ID: <46A9C006.1030905@gmail.com> Una pregunta a lo mejor tonta. Estos días se ha hablado del faq de python, me pregunto si no se puede completar editar el que está en la web de python? http://www.python.org/doc/faq/es/general/ o esto es simplemente la traducción de lo que está en ingles y no se puede ampliar? Saludos -- Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From kaskaras en gmail.com Fri Jul 27 12:27:46 2007 From: kaskaras en gmail.com (=?UTF-8?Q?Tom=C3=A1s_V=C3=ADrseda?=) Date: Fri, 27 Jul 2007 11:27:46 +0100 Subject: comprobar servicios de windows desde linux Message-ID: Hola a todos. Éste es mi primer envío al foro y estoy aprendiendo python. Resulta que necesito comprobar el estado de ciertos servicios de máquinas windows mediante un script hecho en python desde linux. He esatado buscando info de módulos útiles pero estos solo se encuentran para la versión windows de python. Sería algo tan sencillo como éste que he encontrado en http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/59872 --- import win32serviceutil def service_info(action, machine, service): if action == 'stop': win32serviceutil.StopService(service, machine) print '%s stopped successfully' % service elif action == 'start': win32serviceutil.StartService(service, machine) print '%s started successfully' % service elif action == 'restart': win32serviceutil.RestartService(service, machine) print '%s restarted successfully' % service elif action == 'status': if win32serviceutil.QueryServiceStatus(service, machine)[1] == 4: print "%s is running normally" % service else: print "%s is *not* running" % service if __name__ == '__main__': machine = 'cr582427-a' service = 'Zope23' action = 'start' service_info(action, machine, service) --- ¿Alguien conoce algún módulo que haga esto desde linux? No veo la solución por ningún lado. Desde ya muchas gracias y un saludo. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From cgalisteo en k-rolus.net Fri Jul 27 12:06:30 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo) Date: Fri, 27 Jul 2007 12:06:30 +0200 Subject: sobre el faq In-Reply-To: <46A9C006.1030905@gmail.com> References: <46A9C006.1030905@gmail.com> Message-ID: On Fri, 27 Jul 2007 11:51:02 +0200, dmunhiz wrote: > Estos días se ha hablado del faq de python, me pregunto si no se puede > completar editar el que está en la web de python? Como yo lo veo son dos cosas diferentes. Por un lado existe la página que comentas, que son preguntas frecuentes referentes al core de python, que no se si se puede modificar o no (supongo que estarán encantados de que alguien contribuya). Pero las faq que montamos aquí no son preguntas frecuentes sobre Python sino las preguntas frecuentes en una lista de correo concreta, cuyos temas abarcan más allá de lo que es el core del lenguaje (módulos de terceros, GUI, IDEs, metodología, reglas de cortesía de la lista... etc.), que creo que no tendrían cabida en python.org. Otra cosa es que todas las entradas interesantes del el faq al que apuntas se puedan incorporar o enlazar desde el "nuestro", cosa con la que estoy totalmente de acuerdo :) Pero como siempre es sólo mi opinión. --- Carlos Galisteo http://blog.k-rolus.net PGP_key::http://k-rolus.net/~cgalisteo/cgalisteo.gpg Key_Fingerprint::F888 6FBA 9145 B5A2 C187 66D6 5B8C 027A 69AD BE65 --- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Fri Jul 27 12:34:25 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Fri, 27 Jul 2007 12:34:25 +0200 Subject: sobre el faq In-Reply-To: <46A9C006.1030905@gmail.com> References: <46A9C006.1030905@gmail.com> Message-ID: <46A9CA31.7030402@ehas.org> dmunhiz escribió: > Una pregunta a lo mejor tonta. > Estos días se ha hablado del faq de python, me pregunto si no se puede > completar editar el que está en la web de python? > http://www.python.org/doc/faq/es/general/ > o esto es simplemente la traducción de lo que está en ingles y no se > puede ampliar? No es editable, es una traducción estática del documento original (que tampoco se modifica apenas). ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From dmunhiz en gmail.com Fri Jul 27 13:03:27 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Fri, 27 Jul 2007 13:03:27 +0200 Subject: sobre el faq In-Reply-To: <46A9CA31.7030402@ehas.org> References: <46A9C006.1030905@gmail.com> <46A9CA31.7030402@ehas.org> Message-ID: <46A9D0FF.70807@gmail.com> Gracias por las aclaraciónes, ahora comprendo que son cosas diferentes. Pues entonces tal como comenta Carlos Galisteo, pienso que sería bueno que se pusiense en el faq de la lista, una referencia al faq python. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Arnau Sanchez escribiu: > dmunhiz escribió: > >> Una pregunta a lo mejor tonta. >> Estos días se ha hablado del faq de python, me pregunto si no se puede >> completar editar el que está en la web de python? >> http://www.python.org/doc/faq/es/general/ >> o esto es simplemente la traducción de lo que está en ingles y no se >> puede ampliar? > > No es editable, es una traducción estática del documento original (que > tampoco se modifica apenas). > > > ------------------------------------------------------------------------ > > _______________________________________________ > 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 rafaelcantos en hotmail.com Fri Jul 27 13:16:45 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Fri, 27 Jul 2007 11:16:45 +0000 Subject: filechooser Message-ID: Hola. Estoy, como ya habréis imaginado por todos los correos, diseñando una interfaz con pygtk. Para crear el selector de ficheros, estoy usando filechooser, como viene en el apartado 16.6 de tutorial de pygtk: http://www.pygtk.org/pygtk2tutorial-es/sec-FileChoosers.html He probado a usar el siguiente método: chooser.set_filename(filename) como se indica en el tutorial pero me falla y me dice que no existe el atributo set_filename. ¿Por qué puede ser esto? Gracias y saludos. Rafa _________________________________________________________________ Un amor, una aventura, compañía para un viaje. Regístrate gratis en MSN Amor & Amistad. http://match.msn.es/match/mt.cfm?pg=channel&tcid=162349 From arnau en ehas.org Fri Jul 27 13:22:45 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Fri, 27 Jul 2007 13:22:45 +0200 Subject: filechooser In-Reply-To: References: Message-ID: <46A9D585.4050707@ehas.org> Rafael Cantos escribió: > He probado a usar el siguiente método: > > chooser.set_filename(filename) > > como se indica en el tutorial pero me falla y me dice que no existe el > atributo set_filename. Tienes que estar haciendo algo mal, ese método existe. Sin más información no podemos ayudarte, así que manda algo de código (a poder ser, corto y funcional: extrae la parte significativa y haz un pequeño programa) para que lo ejecutemos y veamos el problema. arnau From gagsl-py2 en yahoo.com.ar Fri Jul 27 21:38:04 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Fri, 27 Jul 2007 16:38:04 -0300 Subject: comprobar servicios de windows desde linux References: Message-ID: En Fri, 27 Jul 2007 07:27:46 -0300, Tomás Vírseda escribió: > Hola a todos. Éste es mi primer envío al foro y estoy aprendiendo python. Bienvenido entonces! > Resulta que necesito comprobar el estado de ciertos servicios de > máquinas windows mediante un script hecho en python desde linux. He > esatado buscando info de módulos útiles pero estos solo se encuentran > para la versión windows de python. Eso se haría a traves de WMI = Windows Management Instrumentation. Lei por algun lado que habia un par de implementaciones para acceder desde Linux, asi que seria cuestion de buscar. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From iferca en gmail.com Sat Jul 28 01:10:57 2007 From: iferca en gmail.com (=?ISO-8859-1?Q?Israel_Fern=E1ndez_Cabrera?=) Date: Fri, 27 Jul 2007 19:10:57 -0400 Subject: Resultado inesperado ejecutando unittests Message-ID: Hola: Estoy haciendo algunas pruebas para automatizar la corrida de unittest desde un IDE, brindando una GUI para ello pero en ese proyecto me encuentro con un problema que el código que a continuación adjunto ilustra: class PruebasDePrueba(unittest.TestCase): def testUnTest(self): a = 2 b = 1 self.assertEquals(a, b) def runTests(): loader = unittest.TestLoader() result = unittest.TestResult() suite = loader.loadTestsFromName("import_tests.PruebasDePrueba") suite.run(result) print "Errores: ", len(result.errors) print "Fallos: ", len(result.failures) if __name__ == "__main__": runTests() raw_input("Modifique el test y presione ENTER para continuar") runTests() Notas: Ya se que eso de modificar un test para que corra no está correcto, es solo un ejemplo, no se prueba nada en absoluto, es solo un ejemplo. El objetivo de este código es ilustrar como corridas consecutivas de los unittest demuestran que a pesar de que la función "runTests()" recarga los tests utilizando unittest.TestLoader en la segunda corrida al parecer no se recarga nuevamente el tests sino que se utiliza la misma instancia que se cargó la primera vez. El código ejecuta los tests en: "PruebasDePrueba(unittest.TestCase):", solicita al usuario que haga cambios en los tests (igualar las variables 'a' y 'b' de PruebasDePrueba.testUnTest) para luego ejecutarlo de nuevo. El código se comporta de la misma manera si se extrae la clase PruebasDePrueba para otro módulo. En la lista de python.org Gabriel (quien creo que también es suscriptor de python-es) me recomendó que ejecutara los tests desde un proceso diferente y que comunicara la GUI con este mediate IPC. Esa, claramente, podría ser una solución, pero me gustaría por ahora buscar una explicación a lo que me sucede y no un workaround para evitarlo. De antemano gracias S en lu2 -- ____________________ Israel Fdez. Cabrera iferca en gmail.com Linux registered user No.: 270292 [http://counter.li.org] . 0 . . . 0 0 0 0 From dpcesar en gmail.com Sat Jul 28 04:11:41 2007 From: dpcesar en gmail.com (dpcesar en gmail.com) Date: Sat, 28 Jul 2007 04:11:41 +0200 (CEST) Subject: Califica mi foto en "SEXY o NO?" Message-ID: <20070728021203.7B1F61BC1DA@ligustrum.uji.es> Me sumé a SEXY o NO! Mira mi foto en http://www.sexyono.com/r/?uid=cj3814051l SEXY o NO es una página de entretenimientos que te permite conocer gente, ver y votar fotos de gente de todos los países de habla hispana. Si subes tu foto podrás saber que tan sexy eres a los ojos de los demás y conocer gente de todas partes. Me gustaría que la conozcas, y que te suscribas gratuitamente. Para visitar la web, deberás ir a: http://www.sexyono.com Saludos, Cesar Si no deseas continuar recibiendo invitaciones de parte de tus amigos para ver sus fotos, simplemente accede en la siguiente dirección http://www.sexyono.com/unsuscribe?Email=Python-es en aditel.org Este mensaje ha sido enviado automáticamente mediante los servicios de sexyono.com a pedido del remitente. Garantizamos que su dirección de correo no ha sido agregada a ninguna lista de envios ni será compartida con terceros en ningún momento. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rafaelcantos en hotmail.com Sat Jul 28 11:21:02 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Sat, 28 Jul 2007 09:21:02 +0000 Subject: filechooser In-Reply-To: <20070728022639.5327A143DF0F@devnull.aditel.org> References: <20070728022639.5327A143DF0F@devnull.aditel.org> Message-ID: hola. Aquí pongo el código, que es una pequeña modificación sobre el ejemplo del tutorial: #!/usr/bin/env python import pygtk pygtk.require('2.0') import gtk # Comprobacion la version de pygtk if gtk.pygtk_version < (2,3,90): print "PyGtk 2.3.90 or later required for this example" raise SystemExit # Creacion de un nuevo control de seleccion de fichero seleccion = gtk.FileChooserDialog("Open..", None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) seleccion.set_default_response(gtk.RESPONSE_OK) filtro = gtk.FileFilter() # Nombre por defecto del fichero filtro.set_name("ncc") # Extension permitida para el fichero filtro.add_pattern("*.html") seleccion.add_filter(filtro) response = seleccion.run() if response == gtk.RESPONSE_OK: print seleccion.get_filename(), 'selected' elif response == gtk.RESPONSE_CANCEL: print 'Closed, no files selected' seleccion.destroy() Puede que la identación no salga bien, lo he copiado de un archivo. Saludos. Rafa Rafael Cantos escribió: > > > He probado a usar el siguiente método: > > > > chooser.set_filename(filename) > > > > como se indica en el tutorial pero me falla y me dice que no existe el > > atributo set_filename. > >Tienes que estar haciendo algo mal, ese método existe. Sin más información >no >podemos ayudarte, así que manda algo de código (a poder ser, corto y >funcional: >extrae la parte significativa y haz un pequeño programa) para que lo >ejecutemos >y veamos el problema. > >arnau _________________________________________________________________ Horóscopo, tarot, numerología... Escucha lo que te dicen los astros. http://astrocentro.msn.es/ From arnau en ehas.org Sat Jul 28 20:02:27 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sat, 28 Jul 2007 20:02:27 +0200 Subject: filechooser In-Reply-To: References: Message-ID: <46AB84B3.1040106@ehas.org> Rafael Cantos escribió: > Aquí pongo el código, que es una pequeña modificación sobre el > ejemplo del tutorial. Este... ¿y dónde está la llamada a set_filename() que falla? From gagsl-py2 en yahoo.com.ar Sun Jul 29 18:52:30 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Sun, 29 Jul 2007 13:52:30 -0300 Subject: Resultado inesperado ejecutando unittests References: Message-ID: En Fri, 27 Jul 2007 20:10:57 -0300, Israel Fernández Cabrera escribió: > Estoy haciendo algunas pruebas para automatizar la corrida de unittest > desde un IDE, brindando una GUI para ello pero en ese proyecto me > encuentro con un problema que el código que a continuación adjunto > ilustra: > > > class PruebasDePrueba(unittest.TestCase): > def testUnTest(self): > a = 2 > b = 1 > self.assertEquals(a, b) > > def runTests(): > loader = unittest.TestLoader() > result = unittest.TestResult() > suite = loader.loadTestsFromName("import_tests.PruebasDePrueba") > suite.run(result) > print "Errores: ", len(result.errors) > print "Fallos: ", len(result.failures) > > if __name__ == "__main__": > runTests() > raw_input("Modifique el test y presione ENTER para continuar") > runTests() > > > Notas: Ya se que eso de modificar un test para que corra no está > correcto, es solo un ejemplo, no se prueba nada en absoluto, es solo > un ejemplo. > > El objetivo de este código es ilustrar como corridas consecutivas de > los unittest demuestran que a pesar de que la función "runTests()" > recarga los tests utilizando unittest.TestLoader en la segunda corrida > al parecer no se recarga nuevamente el tests sino que se utiliza la > misma instancia que se cargó la primera vez. El programa que esta ejecutandose, no se entera de que el fichero fuente fue modificado. En tu caso es mas dificil aun, porque esta todo en un mismo fuente. Supongamos, para hacerlo mas facil, que los tests estan en otro modulo, llamado modulo_tests. El programa principal deberia hacer algo como `import modulo_tests` para poder usarlos. Una vez que un modulo fue importado correctamente, cuando se lo vuelve a importar, Python ya no intenta leer otra vez el fuente; simplemente se usa la referencia preexistente en sys.modules[] Para obligarlo a que lo vuelva a leer, hay que usar la funcion reload. Pero reload no es una solucion magica: el codigo nuevo del modulo se carga, PERO NADA MAS SE MODIFICA. Suponiendo que el modulo definia clases, cualquier instancia de esas clases previamente construidas, siguen siendo de la clase "vieja". No van a "ver" los metodos nuevos o modificados. Cualquier referencia importada usando `from modulo import loquesea` va a seguir teniendo el valor viejo. Por eso en mi mensaje anterior te decia que es muy dificil -si no imposible- poder recargar un modulo arbitrario y hacer que todo sigua funcionando igual, sin conocerlo intimamente a él y a todos los que pudieran estar usandolo. Un ejemplo. Supongamos que modulo.py tiene esto: A = 1 lista = [1,2,3] def mostrar_lista(): print "lista=",lista class MiClase: def nada(self): print "nada" y hacemos lo siguiente: py> import modulo py> print modulo.A 1 py> print modulo.lista [1, 2, 3] py> from modulo import A, lista py> print A 1 py> print lista [1, 2, 3] py> modulo.A is A True py> modulo.lista is lista True py> o1 = modulo.MiClase() py> o1.nada() nada py> lista.append(4) py> lista [1, 2, 3, 4] py> modulo.lista [1, 2, 3, 4] Ahora, modificamos externamente modulo.py para que quede asi: A = 3 lista = [10,20,30] def mostrar_lista(): print "lista=",lista class MiClase: def nada(self): print "algo" def nuevo(self): print "un metodo nuevo" En el mismo interprete de Python anterior, veamos si se nota el cambio: py> print modulo.A 1 py> print modulo.lista [1, 2, 3] No se enteró de las modificaciones. Usemos reload: py> reload(modulo) py> modulo.A 3 py> modulo.lista [10, 20, 30] Parece que ahora sí tomó los cambios. Pero que pasa con los demas objetos? py> lista [1, 2, 3, 4] Ooops... sigue con el valor anterior. py> o1.nada() nada py> o1.nuevo() Traceback (most recent call last): File "", line 1, in AttributeError: MiClase instance has no attribute 'nuevo' o1 sigue viendo la definicion vieja del metodo "nada", y no se dio cuenta de que existe un metodo nuevo. Pero si construyo un objeto nuevo: py> o2 = modulo.MiClase() py> o2.nada() algo py> o2.nuevo() un metodo nuevo sí usa las nuevas definiciones. Y qué paso con la variable A? py> modulo.A 3 py> A 1 Como se ve, no todo cambió. En parte se podria haber arreglado si hubiera re-ejecutado la linea `from module import A, lista` para que nuevamente "mi" A y "mi" lista coincidan con las del modulo. Pero en ese caso se pierde la modificacion que le hice a la lista. Pero eso no ayuda en el otro problema, que o1 sigue siendo de la clase "vieja". En resumen: si se modifica el codigo fuente, Python no se entera a menos que usemos reload. Y aun usando reload, hay muchos detalles a tener en cuenta que hacen que no sirva en un caso generico como el que estas planteando (un framework de testeo donde se supone que el framework no sabe mucho sobre los detalles internos de los modulos que esta testeando). Asi que no hay una forma confiable de que un programa que se esta ejecutando "vea" las modificaciones hechas a un modulo, y se comporte igual que si dicha version modificada hubiese sido la que originalmente cargó. > En la lista de python.org Gabriel (quien creo que también es > suscriptor de python-es) me recomendó que ejecutara los tests desde un > proceso diferente y que comunicara la GUI con este mediate IPC. Esa, > claramente, podría ser una solución, pero me gustaría por ahora buscar > una explicación a lo que me sucede y no un workaround para evitarlo. (Si, soy el mismo!) Lo de ejecutar en un proceso separado, mas que un "workaround", me parece una "feature". De esa forma: - los modulos testeados se ejecutan siempre en un entorno conocido y predecible - no hay "remanentes" de ejecuciones anteriores que pudieran estorbar o alterar las pruebas - el entorno de ejecucion de los tests esta aislado del entorno grafico del framework (que pasaria si los dos pretenden usar gtk.mainloop? o tu GUI usa gtk y algun test usa wxWindows, por ejemplo?) - el entorno de ejecucion de los tests se parece mas al entorno definitivo; es decir, no esta "contaminado" con las clases y demas definiciones de la GUI de testeo. La comunicacion entre ambos procesos no parece ser muy complicada. El framework solo deberia comunicar los tests que quiere que sean ejecutados; y por cada test, solo hay 3 respuestas posibles: pasa, falla, o dispara una excepcion inesperada. Y en principio eso es todo. Si quisieras poner una barra de progreso, por ejemplo, es cuestion de ir actualizandola a medida que llegan las respuestas de los tests. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From datilor en gmail.com Mon Jul 30 15:36:43 2007 From: datilor en gmail.com (Lisandro Gallo) Date: Mon, 30 Jul 2007 10:36:43 -0300 Subject: =?iso-8859-1?q?B=FAsqueda_por_expresi=F3n_regular_y_?= =?iso-8859-1?q?reemplazo_de_l=EDneas?= Message-ID: <525f5c0e0707300636g19acabddtbeb06b5e473f0a0b@mail.gmail.com> Hola gente! Antes que nada me presento, me llamo Lisandro y soy nuevo en la lista. También soy nuevo en Python, he programado unas líneas nomas pero recién me estoy metiendo con este lenguaje. Resulta que estoy queriendo armar un pequeño script que modifique un archivo de configuración, más concretamente necesito que al ingresar una cadena, si esa cadena existe en el archivo reemplace las 5 líneas debajo de la línea donde está dicha cadena, con otras líneas con cadenas que previamente ingresé. Traté de hacerlo en bash con awk y sed y la verdad que no he podido encontrarle la vuelta, así que pensé que Python podía ser una buena alternativa. ¿Les parece que se pueda hacer algo parecido en Python e integrarlo con un script en bash? Gracias de antemano Saludos From arnau en ehas.org Mon Jul 30 16:47:17 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Mon, 30 Jul 2007 16:47:17 +0200 Subject: =?ISO-8859-1?Q?B=FAsqueda_por_expresi=F3n_?= =?ISO-8859-1?Q?regular_y_reemplazo_de_l=EDneas?= In-Reply-To: <525f5c0e0707300636g19acabddtbeb06b5e473f0a0b@mail.gmail.com> References: <525f5c0e0707300636g19acabddtbeb06b5e473f0a0b@mail.gmail.com> Message-ID: <46ADF9F5.9030904@ehas.org> Lisandro Gallo escribió: > Resulta que estoy queriendo armar un pequeño script que modifique un > archivo de configuración, más concretamente necesito que al ingresar > una cadena, si esa cadena existe en el archivo reemplace las 5 líneas > debajo de la línea donde está dicha cadena > [...] > ¿Les parece que se pueda hacer algo parecido en Python e integrarlo > con un script en bash? Python es un lenguaje muy adecuado para lo que necesitas. Haz el script lo más genérico posible (para que te sirva ahora y en el futuro), y llámalo desde donde quieras. Después de estudiar con detalle el tutorial (al menos hasta el capítulo 8), deberías ser capaz de hacerlo: http://es.tldp.org/Tutoriales/Python/Tutorial-Python/ From pych3m4 en gmail.com Tue Jul 31 03:29:41 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 31 Jul 2007 03:29:41 +0200 Subject: =?ISO-8859-1?Q?Re:__B=FAsqueda_por_expre?= =?ISO-8859-1?Q?si=F3n_regular_y_reemplazo_de_l=EDneas?= In-Reply-To: <525f5c0e0707300636g19acabddtbeb06b5e473f0a0b@mail.gmail.com> References: <525f5c0e0707300636g19acabddtbeb06b5e473f0a0b@mail.gmail.com> Message-ID: <2c9fb0dd0707301829l8c64d12v9eddaf5c907ff989@mail.gmail.com> El 30/07/07, Lisandro Gallo escribió: > Resulta que estoy queriendo armar un pequeño script que modifique un > archivo de configuración, más concretamente necesito que al ingresar > una cadena, si esa cadena existe en el archivo reemplace las 5 líneas > debajo de la línea donde está dicha cadena, con otras líneas con > cadenas que previamente ingresé. Traté de hacerlo en bash con awk y > sed y la verdad que no he podido encontrarle la vuelta, así que pensé > que Python podía ser una buena alternativa. > > ¿Les parece que se pueda hacer algo parecido en Python e integrarlo > con un script en bash? Tanto awk como sed ven los ficheros como flujo de líneas de texto; las modificaciones consisten en crear un nuevo fichero a partir del original, procesando línea por línea (con preámbulos y finalizadores en el caso de awk). Para modificar el fichero "in situ", como parece ser tu caso, no hay nada en python específico. Tendrás que usar funciones de bajo nivel (posix), pero las líneas que sustituyas tendrán que ser del mismo tamaño que las que había. Una posibilidad es emplear ConfigParser; aunque no veo cómo te puede ayudar sin conocer algo más de lo que buscas; pero es, casi seguro, lo que buscas. Según tu necesidad, una solución adecuada podría ser una base de datos Berkeley. Es muy rápida y python sabe usarla muy bien: import bsddb cfg=bsddb.rnopen("MyFile.db","w") for n,s in f.iteritems(): if "Cadena" in s: f[n+1]="cadena1" f[n+2]="cadena2" f[n+3]="cadena3" f[n+4]="cadena4" f[n+5]="cadena5" break cfg.close() From ruido_electronico en yahoo.es Tue Jul 31 05:40:07 2007 From: ruido_electronico en yahoo.es (ruben gomez) Date: Tue, 31 Jul 2007 05:40:07 +0200 (CEST) Subject: latin-1 en tkinter Message-ID: <838622.57081.qm@web27209.mail.ukl.yahoo.com> Buenas: He visto algunos post en esta lista al respecto, pero no acabo de aclararme. Disculpas si me repito. El problema es con los caracteres ñ, Ç, etc. (los de latin-1 o cp1252). Internamente no dan problemas; por ejemplo, tengo un entry que escribe en un text y puedo escribirlo con éstos (supongo que es porque el archivo va con la cabecera típica # -*- coding: latin-1 -*-.) Sin embargo, en el entry hay una función que le dice al programa que si el usuario ha tecleado, por ejemplo: mañana, haga una acción; pues bien, en este momento me imprime el siguiente warning: Warning (from warnings module): File: "el archivo python" if text == 'mañana' UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal ¿Alguna idea? Gracias por adelantado --------------------------------- Sé un Mejor Amante del Cine ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!. From solisgb en gmail.com Tue Jul 31 08:21:15 2007 From: solisgb en gmail.com (Luis Solis) Date: Tue, 31 Jul 2007 08:21:15 +0200 Subject: =?iso-8859-1?q?refrescar_una_p=E1gina_de_tkinter?= Message-ID: <8d2f04c60707302321w8bdddaep481ecdec6d5d091a@mail.gmail.com> Muy buenas Tengo un formulario en tkinter que una vez iniciado un proceso va actualizando 2 o 3 label para saber por donde anda. Si minimizo la ventana y luego la vuelvo a maximizar, la pantalla refleja el estado que tenía antes de la minimización, aunque el proceso continúa. ¿Que puedo hacer para que se refresque el contenido de la pantalla? Gracias -- Luis Solís From rafaelcantos en hotmail.com Tue Jul 31 10:35:00 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Tue, 31 Jul 2007 08:35:00 +0000 Subject: Filechooser In-Reply-To: <20070731035316.46292141EA8C@devnull.aditel.org> References: <20070731035316.46292141EA8C@devnull.aditel.org> Message-ID: Hola. perdona, que con tantas pruebas había olvidado poner la llamada correctamente. Si miras ahora, podrás verla. antes ponía set_name, en lugar de set_filename. Saludos. Rafa hola. Aquí pongo el código, que es una pequeña modificación sobre el ejemplo del tutorial: #!/usr/bin/env python import pygtk pygtk.require('2.0') import gtk # Comprobacion la version de pygtk if gtk.pygtk_version < (2,3,90): print "PyGtk 2.3.90 or later required for this example" raise SystemExit # Creacion de un nuevo control de seleccion de fichero seleccion = gtk.FileChooserDialog("Open..", None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) seleccion.set_default_response(gtk.RESPONSE_OK) filtro = gtk.FileFilter() # Nombre por defecto del fichero filtro.set_filename("ncc") # Extension permitida para el fichero filtro.add_pattern("*.html") seleccion.add_filter(filtro) response = seleccion.run() if response == gtk.RESPONSE_OK: print seleccion.get_filename(), 'selected' elif response == gtk.RESPONSE_CANCEL: print 'Closed, no files selected' seleccion.destroy() >Puede que la identación no salga bien, lo he copiado de un archivo. >Saludos. > >Rafa _________________________________________________________________ Un amor, una aventura, compañía para un viaje. Regístrate gratis en MSN Amor & Amistad. http://match.msn.es/match/mt.cfm?pg=channel&tcid=162349 From arnau en ehas.org Tue Jul 31 11:32:39 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 31 Jul 2007 11:32:39 +0200 Subject: =?ISO-8859-1?Q?B=FAsqueda_por_expresi=F3n_?= =?ISO-8859-1?Q?regular_y_reemplazo_de_l=EDneas?= In-Reply-To: <2c9fb0dd0707301829l8c64d12v9eddaf5c907ff989@mail.gmail.com> References: <525f5c0e0707300636g19acabddtbeb06b5e473f0a0b@mail.gmail.com> <2c9fb0dd0707301829l8c64d12v9eddaf5c907ff989@mail.gmail.com> Message-ID: <46AF01B7.8010309@ehas.org> Chema Cortes escribió: > Para modificar el fichero "in situ", como parece ser tu caso, no hay > nada en python específico. Tendrás que usar funciones de bajo nivel > (posix), pero las líneas que sustituyas tendrán que ser del mismo > tamaño que las que había. Uhm, yo le diría que no se obsesionara con hacerlo "in situ", mucho más si está empezando con el lenguaje. Como primera aproximación, se lee el contenido del fichero en una lista, se modifica y se reescribe entero. Los ficheros de configuración suelen ser pequeños y no sería ineficiente. > Una posibilidad es emplear ConfigParser; aunque no veo cómo te puede > ayudar sin conocer algo más de lo que buscas; pero es, casi seguro, lo > que buscas. Por si acaso, ConfigParser es el módulo para trabajar con fichero de configuración tipo INI: [seccion1] key1 = value Lo que pasa es que ConfigParser es demasiado simple, y funcionalidad básica como conservar el orden de secciones y parámetros, o respetar los comentarios, se los pasa por el forro. Una alternativa a ConfigParser es ConfigObj: http://www.voidspace.org.uk/python/configobj.html El autor intentó meterlo en la librería estándar, pero a Guido no le gustan cosas tan complejas. A mi tampoco me convence el código (excesivamente verboso), pero funciona muy bien. Sabe trabajar sin secciones, te respeta el orden, los comentarios, permite secciones anidadas, dispone de un validador, etc. > Según tu necesidad, una solución adecuada podría ser una base de datos > Berkeley. Es muy rápida y python sabe usarla muy bien: Parece lo idóneo para este caso, aunque no estaría mal que lo hiciera primero "a mano" para practicar :-) From arnau en ehas.org Tue Jul 31 11:40:35 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 31 Jul 2007 11:40:35 +0200 Subject: Filechooser In-Reply-To: References: Message-ID: <46AF0393.7030300@ehas.org> Rafael Cantos escribió: > seleccion.set_default_response(gtk.RESPONSE_OK) > > filtro = gtk.FileFilter() > # Nombre por defecto del fichero > filtro.set_filename("ncc") La cosa está clara, ¿no? ¡le estás haciendo set_filename() al filtro! quien tiene el método es el diálogo: seleccion.set_filename(path) Otra cosa, set_filename() necesita el path completo, así que "ncc" no es admisible. Pero eso no es ningún problema, la ruta absoluta se encuentra fácilmente usando os.path.abspath: http://docs.python.org/lib/module-os.path.html Así que finalmente quedaría: path = os.path.abspath("ncc") seleccion.set_filename(path) From pych3m4 en gmail.com Tue Jul 31 12:49:43 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 31 Jul 2007 12:49:43 +0200 Subject: latin-1 en tkinter In-Reply-To: <838622.57081.qm@web27209.mail.ukl.yahoo.com> References: <838622.57081.qm@web27209.mail.ukl.yahoo.com> Message-ID: <2c9fb0dd0707310349w47e52816p423f9b59fa1c9b8d@mail.gmail.com> El 31/07/07, ruben gomez escribió: > He visto algunos post en esta lista al respecto, pero no acabo de aclararme. Disculpas si me repito. Aquí estamos para lo que haga falta. > El problema es con los caracteres ñ, Ç, etc. (los de latin-1 o cp1252). Internamente no dan problemas; por ejemplo, tengo un entry que escribe en un text y puedo escribirlo con éstos (supongo que es porque el archivo va con la cabecera típica # -*- coding: latin-1 -*-.) Sin embargo, en el entry hay una función que le dice al programa que si el usuario ha tecleado, por ejemplo: mañana, haga una acción; pues bien, en este momento me imprime el siguiente warning: > > Warning (from warnings module): > > File: "el archivo python" > > if text == 'mañana' > > UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal > > ¿Alguna idea? Gracias por adelantado Que yo sepa, Tk usa siempre unicode. El comentario de codificación (# -*- coding: latin-1 -*-) sólo influye en las inicialización de cadenas unicode. En tu caso: if text == 'mañana' Es una comparación entre una cadena unicode (text) y una cadena normal ('mañana'). Tienes que hacer que la comparación sea entre cadenas unicode: if text == u'mañana' Gracias al comentario de codificación, python sabe que tiene que crear la cadena unicode a partir de la cadena 'mañana' codificada en latin1. From pych3m4 en gmail.com Tue Jul 31 14:34:19 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 31 Jul 2007 14:34:19 +0200 Subject: =?ISO-8859-1?Q?Re:__B=FAsqueda_por_expre?= =?ISO-8859-1?Q?si=F3n_regular_y_reemplazo_de_l=EDneas?= In-Reply-To: <46AF01B7.8010309@ehas.org> References: <525f5c0e0707300636g19acabddtbeb06b5e473f0a0b@mail.gmail.com> <2c9fb0dd0707301829l8c64d12v9eddaf5c907ff989@mail.gmail.com> <46AF01B7.8010309@ehas.org> Message-ID: <2c9fb0dd0707310534p6029744aj9242e5e667af7628@mail.gmail.com> El 31/07/07, Arnau Sanchez escribió: > Parece lo idóneo para este caso, aunque no estaría mal que lo hiciera primero "a > mano" para practicar :-) Bueno, es que yo, aunque parezca mentira, no lo haría con python (pero está mal decirlo :-P): #!/bin/sed -f /cadena a buscar/ { p a\ Linea 1\ Linea 2\ Linea 3\ Linea 4\ Linea 5 } /cadena a buscar/,+5 d From pan_python en yahoo.com.ar Tue Jul 31 19:44:03 2007 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Tue, 31 Jul 2007 14:44:03 -0300 Subject: Error con grid en wxpython Message-ID: <46AF74E3.9060201@yahoo.com.ar> Hola! Estoy teniendo un problema con un grid, en un programa de python. Les pongo aca las partes relevantes del programa... #!/usr/bin/env python # -*- coding: ISO-8859-1 -*- # # Emision de Facturas # import wx import wx.grid from sql import * from fechas import * from forpag import * # Tabla Forma de pago import letras class p2111(wx.MDIChildFrame): def __init__(self, pmios, *args, **kwds): self.pmios = pmios[:] ... # Grid items de Facturas. self.static_line_2 = wx.StaticLine(self, -1) self.static_line_7 = wx.StaticLine(self, -1, style=wx.LI_VERTICAL) self.grid = wx.grid.Grid(self, -1, size=(1, 1)) self.static_line_8 = wx.StaticLine(self, -1, style=wx.LI_VERTICAL) self.__set_properties() self.__do_layout() # Eventos del Grid de "Items de Facturas" self.Bind(wx.grid.EVT_GRID_CMD_CELL_CHANGE, self.gridmodlinea, self.grid) def __set_properties(self): self.SetTitle("Emision Facturas") _icon = wx.EmptyIcon() _icon.CopyFromBitmap(wx.Bitmap("iconos/ft.ico", wx.BITMAP_TYPE_ANY)) self.SetIcon(_icon) ... # Grid Items de Facturas. self.grid.CreateGrid(16, 2) self.grid.EnableEditing(1) self.grid.SetRowLabelSize(0) self.grid.SetColLabelSize(20) self.grid.EnableDragColSize(0) self.grid.EnableDragRowSize(0) self.grid.SetGridLineColour(wx.Colour(192, 192, 192)) self.grid.SetSelectionMode(wx.grid.Grid.wxGridSelectRows) self.grid.SetFont(wx.Font(self.let[6][2], wx.TELETYPE, wx.NORMAL, self.let[6][3], 0, self.let[6][1])) self.grid.SetColLabelValue(0, "Descripcion") self.grid.SetColLabelValue(1, "Importe") self.grid.SetColSize(0, 455) self.grid.SetColSize(1, 95) self.grid.SetDefaultRowSize(self.let[5][4]) self.grid.SetDefaultCellFont(wx.Font(self.let[6][2], wx.TELETYPE, wx.NORMAL, self.let[6][3], 0, self.let[6][1])) def __do_layout(self): ... grid_sizer_5.Add(self.grid, 1, wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0) ... self.SetAutoLayout(True) self.SetSizer(grid_sizer_1) grid_sizer_1.Fit(self) grid_sizer_1.SetSizeHints(self) self.Layout() ############################################################################# # Eventos de Grid def gridmodlinea(self, event): # Modifica alguna linea del grid. for k in range(0,16): # Verifico que ninguno de los elementos del grid tenga un largo mayor a 4. if len(self.grid.GetCellValue(k,0)) > 4 : # (Descripcion) Mayor al largo permitido. mensa = "El renglon " + str(k+1) + " tiene un largo mayor al permitido. Por favor achique esa linea.\nGracias" self.cartelitos("Atencion",mensa) wx.SetCursor(wx.STANDARD_CURSOR) self.pasafoco('grid') return event.Skip() Ok hasta aca el programa o mejor dicho partes del programa :) El problema se me presenta cuando me posiciono en el evento de grid y empiezo a escribir algo, automaticamente al hacerlo me aparece esto en la linea de comandos donde estoy ejecutando el programa... (python:3956): Gtk-CRITICAL **: gtk_container_remove: assertion `GTK_IS_TOOLBAR (container) || widget->parent == GTK_WIDGET (container)' failed (python:3956): Gtk-CRITICAL **: gtk_container_remove: assertion `GTK_IS_TOOLBAR (container) || widget->parent == GTK_WIDGET (container)' failed La pregunta es.. esto es normal???, que estoy haciendo mal o que me falta????? Gracias!!!! Ariel From mlacunza en gmail.com Tue Jul 31 22:31:41 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Tue, 31 Jul 2007 15:31:41 -0500 Subject: Error con grid en wxpython In-Reply-To: <46AF74E3.9060201@yahoo.com.ar> References: <46AF74E3.9060201@yahoo.com.ar> Message-ID: <771741b20707311331w134243f1l98aee939a6c45b4e@mail.gmail.com> Hola, la ejecucion de tu programa se detiene? Me parece q el widget no soporta cierta funcion q estas utilizando o tiene un conflicto, te lo da en otro OS? 2007/7/31, Ariel Nardelli : > > Hola! > > Estoy teniendo un problema con un grid, en un programa de python. > > Les pongo aca las partes relevantes del programa... > > > #!/usr/bin/env python > # -*- coding: ISO-8859-1 -*- > > # > # Emision de Facturas > # > import wx > import wx.grid > from sql import * > from fechas import * > from forpag import * # Tabla Forma de pago > import letras > > class p2111(wx.MDIChildFrame): > def __init__(self, pmios, *args, **kwds): > self.pmios = pmios[:] > > ... > > # Grid items de Facturas. > self.static_line_2 = wx.StaticLine(self, -1) > self.static_line_7 = wx.StaticLine(self, -1, style=wx.LI_VERTICAL) > self.grid = wx.grid.Grid(self, -1, size=(1, 1)) > self.static_line_8 = wx.StaticLine(self, -1, style=wx.LI_VERTICAL) > > self.__set_properties() > self.__do_layout() > > # Eventos del Grid de "Items de Facturas" > self.Bind(wx.grid.EVT_GRID_CMD_CELL_CHANGE, self.gridmodlinea, > self.grid) > > def __set_properties(self): > self.SetTitle("Emision Facturas") > _icon = wx.EmptyIcon() > _icon.CopyFromBitmap(wx.Bitmap("iconos/ft.ico", wx.BITMAP_TYPE_ANY > )) > self.SetIcon(_icon) > > ... > > # Grid Items de Facturas. > self.grid.CreateGrid(16, 2) > self.grid.EnableEditing(1) > self.grid.SetRowLabelSize(0) > self.grid.SetColLabelSize(20) > self.grid.EnableDragColSize(0) > self.grid.EnableDragRowSize(0) > self.grid.SetGridLineColour(wx.Colour(192, 192, 192)) > self.grid.SetSelectionMode(wx.grid.Grid.wxGridSelectRows) > self.grid.SetFont(wx.Font(self.let[6][2], wx.TELETYPE, > wx.NORMAL, self.let[6][3], 0, self.let[6][1])) > self.grid.SetColLabelValue(0, "Descripcion") > self.grid.SetColLabelValue(1, "Importe") > self.grid.SetColSize(0, 455) > self.grid.SetColSize(1, 95) > self.grid.SetDefaultRowSize(self.let[5][4]) > self.grid.SetDefaultCellFont(wx.Font(self.let[6][2], > wx.TELETYPE, wx.NORMAL, self.let[6][3], 0, self.let[6][1])) > > > def __do_layout(self): > ... > grid_sizer_5.Add(self.grid, 1, > wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0) > ... > self.SetAutoLayout(True) > self.SetSizer(grid_sizer_1) > grid_sizer_1.Fit(self) > grid_sizer_1.SetSizeHints(self) > self.Layout() > > > > ############################################################################# > # Eventos de Grid > def gridmodlinea(self, event): # Modifica alguna linea del grid. > for k in range(0,16): > # Verifico que ninguno de los elementos del grid tenga un > largo mayor a 4. > if len(self.grid.GetCellValue(k,0)) > 4 : # (Descripcion) > Mayor al largo permitido. > mensa = "El renglon " + str(k+1) + " tiene un largo > mayor al permitido. Por favor achique esa linea.\nGracias" > self.cartelitos("Atencion",mensa) > wx.SetCursor(wx.STANDARD_CURSOR) > self.pasafoco('grid') > return > event.Skip() > > Ok hasta aca el programa o mejor dicho partes del programa :) > > El problema se me presenta cuando me posiciono en el evento de grid y > empiezo a escribir algo, automaticamente al hacerlo me aparece esto en > la linea de comandos donde estoy ejecutando el programa... > > (python:3956): Gtk-CRITICAL **: gtk_container_remove: assertion > `GTK_IS_TOOLBAR (container) || widget->parent == GTK_WIDGET (container)' > failed > > (python:3956): Gtk-CRITICAL **: gtk_container_remove: assertion > `GTK_IS_TOOLBAR (container) || widget->parent == GTK_WIDGET (container)' > failed > > > La pregunta es.. esto es normal???, que estoy haciendo mal o que me > falta????? > > Gracias!!!! > Ariel > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Saludos / Best regards Mario Lacunza Desarrollador de Sistemas - Webmaster Desarrollador 2 Estrellas VS2005 Email: mlacunza [AT] gmail [DOT] com Website: mlacunzav[DOT]cogia[DOT]net Blog: http://mlacunza.blogspot.com/ Lima - Peru