From pepe en diselpro.com Thu Mar 1 00:16:21 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Thu, 01 Mar 2007 00:16:21 +0100 Subject: porfavor quiero recibir su ayuda para aprender a programar con python In-Reply-To: <839209.6034.qm@web25301.mail.ukl.yahoo.com> References: <839209.6034.qm@web25301.mail.ukl.yahoo.com> Message-ID: <45E60D45.9050003@diselpro.com> OMAR DAVID LOPEZ CORDOBA escribió: > Estoy in teresado en aprender a programar con Python, y ya que no tengo experiencia con este lenguaje, quiciera saber si me pueden decir ¿que tipo de cosas se pueden hacer con Python? > > > --------------------------------- > > 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 > Hola. Con python puedes hacer de todo menos café y chocolate con churros. Solo tendrás que recurrir al C en contadas ocasiones siempre y cuando soluciones como pyrex o psyco no se ajusten a tus necesidades. Solo le encuentro una pega a python y es que como programador te malacostumbraras a la buena vida. Hace poco tuve que desarrollar una aplicación para teléfonos móviles y todo contento me fui a la librería a comprarme un libro de j2se y ¿Te puedes creer que no pude pasar del capítulo 4? ¡¡ menudo ladrillo de lenguaje !!. Creo que debería haber aprendido java antes que python ;-P ... por cierto, la aplicación la hice al final para la plataforma symbian con pyS60. Llevo programando en python unos dos años y pico y me sigue sorprendiendo gratamente. Saludos. From pych3m4 en gmail.com Thu Mar 1 02:46:10 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 1 Mar 2007 02:46:10 +0100 Subject: Fractales In-Reply-To: <45E5D934.7020606@argo.es> References: <45E2F8FE.8030409@telefonica.net> <45E32854.1040701@ch3m4.org> <45E5D934.7020606@argo.es> Message-ID: <2c9fb0dd0702281746h5149f4b4mb702d2c01060db21@mail.gmail.com> El 28/02/07, Jesus Cea escribió: > Chema Cortes wrote: > > Chaos es lo mejor que puedes encontrar. Con él se puede, incluso, crear > > animaciones. La documentación te servirá como guía para iniciar el > > proyecto. > > ¿URL?. Google me saca demasiado "ruido". http://www.math.uic.edu/~culler/chaos/ Sale en primera posición buscando por: python chaos fractal From pych3m4 en gmail.com Thu Mar 1 03:21:26 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 1 Mar 2007 03:21:26 +0100 Subject: Convertir ".ps" en ".gif" In-Reply-To: <6a39a1d0702281251o34147348s70f94b1e572f5f68@mail.gmail.com> References: <58463.62829.qm@web53111.mail.yahoo.com> <6a39a1d0702281251o34147348s70f94b1e572f5f68@mail.gmail.com> Message-ID: <2c9fb0dd0702281821p51eaf7b6nc83179f4e2eda78d@mail.gmail.com> El 28/02/07, Rolando José Torres Sánchez escribió: > En TCL se puede grabar el contenido de un canvas en un pequeño GIF > > canvas write -format gif > > Sin embargo eso pasa, porque existe el comando write que escribe en > contenido de canvas directamente en el archivo file.gif usando el > formato GIF o PPM. Éso ocurre porque tendrás instalado el paquete Img (del TclTk). Si lo tienes, se podría invocar directamente a través de tcl: root.tk.eval("canvas .canvas write ficherocanvas.gif -format gif") From dmunhiz en gmail.com Thu Mar 1 09:09:23 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Thu, 01 Mar 2007 09:09:23 +0100 Subject: enviar correo con python In-Reply-To: <45E5ACB3.2040807@telefonica.net> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> <45E5ACB3.2040807@telefonica.net> Message-ID: <45E68A33.5060108@gmail.com> Hola: a mi me dá el siguiente error msgTexto = MIMEText(pm_archivo_texto, 'plain', pm_encoding_cuerpo) NameError: global name 'pm_encoding_cuerpo' is not defined no se que valor darle a esta variable: pm_encoding_cuerpo Saludos Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Alatar escribió: > Hola a ambos, Omar Alberto y Roylan. > > Como veo que os interesa, os mando la rutina entera de nuevo con los > imports y un ejemplo de uso. Para hacerla me he basado en los consejos > de la lista, en algunos ejemplos encontrados en la red y en varias > horitas nocturnas de ensayos/error XD > > He de advertiros que además yo la he retocado para gestionar diferentes > encodes, porque no todos los hosts de correo (hotmail, yahoo, gmail, > etc...) utilizan el mismo. Pero no os incluyo los retoques en esta > versión para que el código sea más claro y porque todavía tengo que > efectuar algunos ajustes. Por lo demás la rutina funciona a la > perfección, salvo que al hacer el copy paste haya cometido algún error. > Por favor, si haceis vosotros copy paste, repasad las indentaciones (que > no sea ese el problema) ;) > > #---------------------- > import os > import smtplib > import string > import email > > from email.MIMEMultipart import MIMEMultipart > from email.MIMEBase import MIMEBase > from email.MIMEText import MIMEText > from email.MIMEImage import MIMEImage > from email.Utils import formatdate > from email import Encoders > > #_________________ > def mandar_mail( > pm_servidor_correo, > pm_login_usuario, > pm_login_password, > pm_emisor_nombre, > pm_emisor_correo, > pm_receptor_nombre, > pm_receptor_correo, > pm_asunto, > pm_archivo_texto, > pm_archivo_html, > pm_adjuntos = [], > pm_acuse_recibo = False, > pm_imagenes_embebidas = []): > """ > Rutina para mandar correo electrónico, permitiendo mandar el > mensaje alternativa/conjuntamente en modo texto y html, así como > con archivos adjuntos, imágenes embebidas y pudiendo solicitar > confirmación de lectura. > """ > assert type(pm_adjuntos) == list > assert type(pm_imagenes_embebidas) == list > > #Inicializamos el mensaje a mandar y vamos añadiendo partes > msgRaiz = MIMEMultipart('related') > msgRaiz['From'] = pm_emisor_nombre + ' <' + pm_emisor_correo +'>' > msgRaiz['To'] = pm_receptor_correo > msgRaiz['Subject'] = pm_asunto > msgRaiz['Date'] = formatdate(localtime = True) > msgRaiz.preamble = '' #De momento, no lo uso > msgRaiz.epilogue = '' #De momento, no lo uso > > if pm_acuse_recibo: > msgRaiz['Disposition-Notification-To'] = pm_emisor_correo > > #Se encapsulan las versiones de texto plano y html del cuerpo > #del mensaje en una parte 'alternative' para que el cliente de > #correo decida qué parte mostrar > msgAlternativo = MIMEMultipart('alternative') > msgRaiz.attach(msgAlternativo) > > #Abrimos mensaje de texto alternativo y lo añadimos > msgTexto = MIMEText(pm_archivo_texto, 'plain', pm_encoding_cuerpo) > msgAlternativo.attach(msgTexto) > > #Abrimos mensaje html alternativo y lo añadimos > msgHtml = MIMEText(pm_archivo_html, 'html', pm_encoding_cuerpo) > msgAlternativo.attach(msgHtml) > > #Añadimos las imágenes embebidas, si las hay > for imagen in pm_imagenes_embebidas: > #Cargar imagen > archivo_imagen = open(imagen, 'rb') > msgImage = MIMEImage(archivo_imagen.read()) > archivo_imagen.close() > > #Hemos de adjuntar la imagen en el content-id. > #En el archivo html se debe hacer referencia al content-id > #como fuente en el source de la imagen, por ejemplo: > # > msgImage.add_header('Content-ID', '<' + imagen + '>') > msgRaiz.attach(msgImage) > > #Añadimos los ficheros adjuntos a mandar , si los hay > for file in pm_adjuntos: > adjunto = MIMEBase('application', "octet-stream") > adjunto.set_payload(open(file, "rb").read()) > Encoders.encode_base64(adjunto) > adjunto.add_header('Content-Disposition', 'attachment; filename = > "%s"' % os.path.basename(file)) > msgRaiz.attach(adjunto) > > #Conectamos con el servidor de correo y mandamos el mensaje > servidor = smtplib.SMTP(pm_servidor_correo) > #servidor.set_debuglevel(1) > servidor.ehlo() > servidor.login(pm_login_usuario, pm_login_password) > try: > servidor.sendmail(pm_emisor_correo, pm_receptor_correo, > msgRaiz.as_string()) > servidor.quit() > resultado = True > except: > resultado = False > > return(resultado) > > #----------------------------------- > > Para el ejemplo de llamada debeis tener el mensaje en formato texto > ("mensaje_ejemplo.txt") y en formato html ("mensaje_ejemplo.html"). Y > supondremos también que quereis adjuntar un archivo en formato pdf > ("archivo_ejemplo.pdf"). Añadiremos otros literales de ejemplo para los > demás parámetros: > > pm_servidor_correo = 'smtp.telefonica.ent' > pm_login_usuario = 'tunombredeusuario$telefonica.net' > pm_login_password = 'tupassword' > pm_emisor_nombre = 'Tu Nombre en Bonito' > pm_emisor_correo = 'tucorreo en telefonica.net' > pm_receptor_nombre = 'El Nombre del Receptor en Bonito' > pm_receptor_correo = 'correodelreceptor en hotmail.com' > pm_asunto = 'El asunto del mensaje' > pm_archivo_texto = 'mensaje_ejemplo.txt' > pm_archivo_html = 'mensaje_ejemplo.html' > pm_adjuntos = ['archivo_ejemplo.pdf'] > pm_acuse_recibo = False > pm_imagenes_embebidas = [] > > La llamada sería: > > mandar_mail( pm_servidor_correo, pm_login_usuario, pm_login_password, > pm_emisor_nombre, pm_emisor_correo, pm_receptor_nombre, > pm_receptor_correo, pm_asunto, pm_archivo_texto, > pm_archivo_html, pm_adjuntos, pm_acuse_recibo, pm_imagenes_embebidas) > > Espero os sea de ayuda ( ya me contareis), > > Alatar ;) > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From cgalisteo en k-rolus.net Thu Mar 1 09:37:37 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo de Cabo) Date: Thu, 01 Mar 2007 09:37:37 +0100 Subject: porfavor quiero recibir su ayuda para aprender a programar con python In-Reply-To: <45E60D45.9050003@diselpro.com> References: <839209.6034.qm@web25301.mail.ukl.yahoo.com> <45E60D45.9050003@diselpro.com> Message-ID: <20070301093737.14xx1858n40s4sgw@k-rolus.net> Quoting Pepe Aracil : > haber aprendido java antes que python ;-P ... por cierto, la > aplicación la hice al > final para la plataforma symbian con pyS60. Vaya y cómo te ha ido, ¿tienes el código o documentación disponibles? Me compré hace poco un N70 y me gustaría trastear algo con él. --- 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 --- From dmunhiz en gmail.com Thu Mar 1 10:28:49 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Thu, 01 Mar 2007 10:28:49 +0100 Subject: enviar correo con python In-Reply-To: <45E5ACB3.2040807@telefonica.net> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> <45E5ACB3.2040807@telefonica.net> Message-ID: <45E69CD1.2020708@gmail.com> Ola, he quitado lo de la coificación ## msgTexto = MIMEText(pm_archivo_texto, 'plain', pm_encoding_cuerpo) msgTexto = MIMEText(pm_archivo_texto, 'plain') enviar envía pero me aroja este error Traceback (most recent call last): File "C:\Python24\Lib\site-packages\boa\Debugger\IsolatedDebugger.py", line 348, in execute result = getattr(ob, self.func_name)(*self.args, **self.kw) File "C:\Python24\Lib\site-packages\boa\Debugger\IsolatedDebugger.py", line 878, in set_step_over raise DebugError('No current frame') DebugError: No current frame alguien sabe a que se debe? Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Alatar escribió: > Hola a ambos, Omar Alberto y Roylan. > > Como veo que os interesa, os mando la rutina entera de nuevo con los > imports y un ejemplo de uso. Para hacerla me he basado en los consejos > de la lista, en algunos ejemplos encontrados en la red y en varias > horitas nocturnas de ensayos/error XD > > He de advertiros que además yo la he retocado para gestionar diferentes > encodes, porque no todos los hosts de correo (hotmail, yahoo, gmail, > etc...) utilizan el mismo. Pero no os incluyo los retoques en esta > versión para que el código sea más claro y porque todavía tengo que > efectuar algunos ajustes. Por lo demás la rutina funciona a la > perfección, salvo que al hacer el copy paste haya cometido algún error. > Por favor, si haceis vosotros copy paste, repasad las indentaciones (que > no sea ese el problema) ;) > > #---------------------- > import os > import smtplib > import string > import email > > from email.MIMEMultipart import MIMEMultipart > from email.MIMEBase import MIMEBase > from email.MIMEText import MIMEText > from email.MIMEImage import MIMEImage > from email.Utils import formatdate > from email import Encoders > > #_________________ > def mandar_mail( > pm_servidor_correo, > pm_login_usuario, > pm_login_password, > pm_emisor_nombre, > pm_emisor_correo, > pm_receptor_nombre, > pm_receptor_correo, > pm_asunto, > pm_archivo_texto, > pm_archivo_html, > pm_adjuntos = [], > pm_acuse_recibo = False, > pm_imagenes_embebidas = []): > """ > Rutina para mandar correo electrónico, permitiendo mandar el > mensaje alternativa/conjuntamente en modo texto y html, así como > con archivos adjuntos, imágenes embebidas y pudiendo solicitar > confirmación de lectura. > """ > assert type(pm_adjuntos) == list > assert type(pm_imagenes_embebidas) == list > > #Inicializamos el mensaje a mandar y vamos añadiendo partes > msgRaiz = MIMEMultipart('related') > msgRaiz['From'] = pm_emisor_nombre + ' <' + pm_emisor_correo +'>' > msgRaiz['To'] = pm_receptor_correo > msgRaiz['Subject'] = pm_asunto > msgRaiz['Date'] = formatdate(localtime = True) > msgRaiz.preamble = '' #De momento, no lo uso > msgRaiz.epilogue = '' #De momento, no lo uso > > if pm_acuse_recibo: > msgRaiz['Disposition-Notification-To'] = pm_emisor_correo > > #Se encapsulan las versiones de texto plano y html del cuerpo > #del mensaje en una parte 'alternative' para que el cliente de > #correo decida qué parte mostrar > msgAlternativo = MIMEMultipart('alternative') > msgRaiz.attach(msgAlternativo) > > #Abrimos mensaje de texto alternativo y lo añadimos > msgTexto = MIMEText(pm_archivo_texto, 'plain', pm_encoding_cuerpo) > msgAlternativo.attach(msgTexto) > > #Abrimos mensaje html alternativo y lo añadimos > msgHtml = MIMEText(pm_archivo_html, 'html', pm_encoding_cuerpo) > msgAlternativo.attach(msgHtml) > > #Añadimos las imágenes embebidas, si las hay > for imagen in pm_imagenes_embebidas: > #Cargar imagen > archivo_imagen = open(imagen, 'rb') > msgImage = MIMEImage(archivo_imagen.read()) > archivo_imagen.close() > > #Hemos de adjuntar la imagen en el content-id. > #En el archivo html se debe hacer referencia al content-id > #como fuente en el source de la imagen, por ejemplo: > # > msgImage.add_header('Content-ID', '<' + imagen + '>') > msgRaiz.attach(msgImage) > > #Añadimos los ficheros adjuntos a mandar , si los hay > for file in pm_adjuntos: > adjunto = MIMEBase('application', "octet-stream") > adjunto.set_payload(open(file, "rb").read()) > Encoders.encode_base64(adjunto) > adjunto.add_header('Content-Disposition', 'attachment; filename = > "%s"' % os.path.basename(file)) > msgRaiz.attach(adjunto) > > #Conectamos con el servidor de correo y mandamos el mensaje > servidor = smtplib.SMTP(pm_servidor_correo) > #servidor.set_debuglevel(1) > servidor.ehlo() > servidor.login(pm_login_usuario, pm_login_password) > try: > servidor.sendmail(pm_emisor_correo, pm_receptor_correo, > msgRaiz.as_string()) > servidor.quit() > resultado = True > except: > resultado = False > > return(resultado) > > #----------------------------------- > > Para el ejemplo de llamada debeis tener el mensaje en formato texto > ("mensaje_ejemplo.txt") y en formato html ("mensaje_ejemplo.html"). Y > supondremos también que quereis adjuntar un archivo en formato pdf > ("archivo_ejemplo.pdf"). Añadiremos otros literales de ejemplo para los > demás parámetros: > > pm_servidor_correo = 'smtp.telefonica.ent' > pm_login_usuario = 'tunombredeusuario$telefonica.net' > pm_login_password = 'tupassword' > pm_emisor_nombre = 'Tu Nombre en Bonito' > pm_emisor_correo = 'tucorreo en telefonica.net' > pm_receptor_nombre = 'El Nombre del Receptor en Bonito' > pm_receptor_correo = 'correodelreceptor en hotmail.com' > pm_asunto = 'El asunto del mensaje' > pm_archivo_texto = 'mensaje_ejemplo.txt' > pm_archivo_html = 'mensaje_ejemplo.html' > pm_adjuntos = ['archivo_ejemplo.pdf'] > pm_acuse_recibo = False > pm_imagenes_embebidas = [] > > La llamada sería: > > mandar_mail( pm_servidor_correo, pm_login_usuario, pm_login_password, > pm_emisor_nombre, pm_emisor_correo, pm_receptor_nombre, > pm_receptor_correo, pm_asunto, pm_archivo_texto, > pm_archivo_html, pm_adjuntos, pm_acuse_recibo, pm_imagenes_embebidas) > > Espero os sea de ayuda ( ya me contareis), > > Alatar ;) > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From a.porrua en gmail.com Thu Mar 1 12:48:51 2007 From: a.porrua en gmail.com (tny) Date: Thu, 01 Mar 2007 12:48:51 +0100 Subject: hacer constantes algunas variables de una funcion Message-ID: <1172749731.11801.16.camel@skynex.telecable.es> La verdad es que es algo que no necesito para nada y menos hasta el punto final... Se me ocurrió porque tenía que hacer algo parecido, pero ni tan amplio ni tan general... suponed el siguiente caso: tenemos una funcion con varias variables :) def funcion(a,b,c): return [a,b,c] #porjemplo y queremos "fabricar al vuelo" otras (aprobechando el código de esta) que acepten algunas variables como tales dejando las otras como constantes... algo así... def generador(a=None, b=None, c=None): if a==None and b!=None and c!=None: return lambda a: funcion(a,b,c) if a=!None and b==None and c!=None: return lambda b: funcion(a,b,c) if a=!None and b!=None and c==None: return lambda a: funcion(a,b,c) if a==None and b==None and c!=None: return lambda a,b: funcion(a,b,c) ... #y las demas combinaciones seguro que hay más maneras... y muchas de ellas mejores pero ahora para nota ¿como sería el cuerpo de la siguiente función? def generador(FUNCION,**PARAMETROS): ??????? que devuelva una función a la que pasarle los parametros que faltan en PARAMETROS, equivalga a llamar a FUNCION con TodoSLoSPArAMEtROs Es dificil hasta de decir... ------------ 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 Mar 1 13:15:31 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 1 Mar 2007 13:15:31 +0100 Subject: hacer constantes algunas variables de una funcion In-Reply-To: <1172749731.11801.16.camel@skynex.telecable.es> References: <1172749731.11801.16.camel@skynex.telecable.es> Message-ID: <2c9fb0dd0703010415x47a4a935rf23cef765dcc9b95@mail.gmail.com> tny escribió: > La verdad es que es algo que no necesito para nada y menos hasta el > punto final... > Se me ocurrió porque tenía que hacer algo parecido, pero ni tan amplio > ni tan general... > > suponed el siguiente caso: > > tenemos una funcion con varias variables :) > > def funcion(a,b,c): > return [a,b,c] #porjemplo > > y queremos "fabricar al vuelo" otras (aprobechando el código de esta) > que acepten algunas variables como tales dejando las otras como > constantes... >> ..... > ¿como sería el cuerpo de la siguiente función? > > def generador(FUNCION,**PARAMETROS): > ??????? > > que devuelva una función a la que pasarle los parametros que faltan en > PARAMETROS, equivalga a llamar a FUNCION con TodoSLoSPArAMEtROs Es dificil hasta de decir... No sé, se me ocurre lo siguiente: def generador(f,**params): def retf(**args): args.update(params) return f(**args) return retf ¿Es lo que buscabas? -- Chema Cortés (py en ch3m4.org) "Proudly made on earth by generic humanoid carbon units" From jpavonruiz en yahoo.es Thu Mar 1 13:12:50 2007 From: jpavonruiz en yahoo.es (Juan Pavon Ruiz) Date: Thu, 1 Mar 2007 13:12:50 +0100 (CET) Subject: Convertir ".ps" en ".gif" Message-ID: <20070301121251.18628.qmail@web53105.mail.yahoo.com> -------------------------------------------------------- > En TCL se puede grabar el contenido de un canvas en un pequeño GIF > > canvas write -format gif > > Sin embargo eso pasa, porque existe el comando write que escribe en > contenido de canvas directamente en el archivo file.gif usando el > formato GIF o PPM. -------------------------------------------------------- Éso ocurre porque tendrás instalado el paquete Img (del TclTk). Si lo tienes, se podría invocar directamente a través de tcl: root.tk.eval("canvas .canvas write ficherocanvas.gif -format gif") -------------------------------------------------------- Gracias por vuestro interés. Dejando a PIL de lado ,por el momento, puesto que además se necesitaría ghostscript. Con TCL: (En el directorio Python25 (Windows) tengo una carpeta llamada "tcl"). -¿La ultima versión de Tkimg es la 1.3? -Suponiendo que lo tengo instalado. ¿Cómo lo llamo desde python? >>> from Tkinter import * >>> root = Tkinter.Tk() >>> canvas = Tkinter.Canvas(root) >>> canvas.pack() >>> rect = canvas.create_rectangle(10,10,100,100, fill="red") -Y ejecutarlo... ¿Así?: ¿"root.tk.eval("canvas .canvas write ficherocanvas.gif -format gif")"? Gracias de nuevo. --------------------------------- 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 gagsl-py2 en yahoo.com.ar Thu Mar 1 14:25:46 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Thu, 01 Mar 2007 10:25:46 -0300 Subject: problema con llamada a software References: <000001c75800$9c4af1b0$640010ac@nombref31twj9b> <45E2CE4B.50806@ehas.org> <45E394AB.3040608@lilyphilia.net> <45E430B2.6000203@ehas.org> <45E47BA9.6040704@rvburke.com> <45E58B28.4020107@ehas.org> Message-ID: En Wed, 28 Feb 2007 11:01:12 -0300, Arnau Sanchez escribió: > Rafael Villar Burke escribió: >> Arnau Sanchez wrote: >>> Ya que sale el tema, siempre he tenido una duda respecto al uso del >>> módulo mailcap, ¿cómo obtienes el mime-type de un fichero del que sólo >>> sabes el nombre? el mime-type es un parámetro obligatorio de la >>> función findmatch. >> ¿Es posible que use file?. >> pachi en goober:~$ file -i gl.po >> gl.po: text/x-po; charset=utf-8 > > No, no, me refería a cómo puedes saber el mime-type desde el programa > python, porque no se proporciona ningún método de autodetección (y > findmatch necesita que se lo des explícitamente). Trasteando un poco con > lo devuelto por mailcap.getcaps() se podría, pero creo que debería > formar parte del módulo. Es que el uso original de mailcap (y de ahi el nombre) tiene que ver con cómo mostrar las diversas partes de un mail recibido en formato MIME multipart/*. Y ahi, el tipo MIME es lo que se conoce realmente, es mas, las partes podrian no tener ni nombre ni extension ni nada, solo su tipo y el contenido. De ahi que uno de los usos de mailcap es para "inventar" una extension al archivo, antes de invocar a la aplicacion que lo mostrará. El modulo de python es solo una cascara tipo diccionario sobre los varios archivos mailcap existentes. > Inspeccionando un poco el código Perl de las aplicaciones del paquete > mime-support parece que no usa "file", con la información del mailcap > (/etc/mailcap) tiene suficiente para relacionar una extensión con la > aplicación. Hay que recorrer la base de datos invertida, entrando por la extension y buscando el MIME type. Podría formar parte del modulo mailcap, cierto... -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From python en ammsoft.com Thu Mar 1 14:30:59 2007 From: python en ammsoft.com (Amm-Python) Date: Thu, 1 Mar 2007 14:30:59 +0100 Subject: Listados con Reportlab mediante trml2pdf In-Reply-To: AAAAAIQQJZINhhBArhGVVySOJs/EDzUA Message-ID: <001601c75c05$db186770$640010ac@nombref31twj9b> Con un report sencillo. 10000 registros = 209 segundos aprox. y un tamaño de 770kb. Con respecto a SVG, se muy poco de este tema. He mirado SVGDraw y parece sencillo. Puedes indicarme dónde encontrar algún ejemplo real de un listado en SVG, para poder evaluar si puede llegar a satisfacer mis necesidades, todo lo que encuentro son temas gráficos y de estadísticas. Gracias. > -----Mensaje original----- > De: python-es-bounces en aditel.org > [mailto:python-es-bounces en aditel.org] En nombre de Rolando > José Torres Sánchez > Enviado el: dimecres, 28 / febrer / 2007 22:31 > Para: La lista de python en castellano > Asunto: Re: [Python-es] Listados con Reportlab mediante trml2pdf > > > Los reportes se generan PDFs distintos o en el mismo PDF?? > > Lo pregunto, porque hace unos meses intentaba generar PDF > desde mapas GIS, y cuando superan los 80Mb la generacion del > archivo PDF se pone muy lenta, incluso si solo tenia la sola > malla de las coordenadas, y ninguna curva de nivel. > > El problema lo resolvi, generando SVGs en cambio de PDF, pues > los PDF finales llegaban a ocupar entre 100 y 200 Mb, > imposibles de visualizar. > > Es posible que ustedes esten generando un solo PDF con miles > de registros, y a medida que crece la cola de registros, la > generacion se vuelve cada vez mas lenta por el formato del archivo. > > Cuanto ocupa un PDF de 10000 Registros?? > > El 28/02/07, Chema Cortes escribió: > > El 27/02/07, Amm-Python escribió: > > > > > Para 500 registros 2.750s (rápido) > > > Para 1000 registros 6.063s (bien) > > > Para 2000 registros 13.797s (empieza a no gustarme) > > > Para 3000 registros 23.641s (no me gusta) > > > Para 4000 registros 35.813s (sigue sin gustarme) > > > Para 5000 registros 50.469s (esto ...) > > > > > > (Nota: No hay cabeceras ni pies de página, ni contadores de las > > > mismas, ni logotipos, etc.) > > > > > > Para mi es normal hacer un informe con 10000, 20000, 50000 > > > registros. Sobretodo informes de resúmenes anuales; seguro que no > > > sirven para nada, pero a los clientes les encantan. > > > > > > Por lo que concluyo que, o el esquema del ejemplo no es > eficiente, o > > > yo no se hacerlo mejor, o debo utilizar otra alternativa para > > > generar el pdf. > > > > > > Mientras sigo exportando datos a formato xls y/o csv. > > > > > > Hasta me estoy planteando que el cliente instale LaTex y hacer el > > > listado en dicho formato. Y antes de planteármelo seriamente, > > > pregunto, ¿con qué generáis listados de grandes volúmenes de > > > información?. > > > > No puedo darte una solución; tan sólo te confirmo que hemos > tenido los > > mismos problemas para crear ficheros pdf con tantos > registros, tanto > > en python como en java. Los ficheros que se generan son > extremadamente > > gigantes y su creación es muy lenta (más de una semana para emitir > > 30.000 certificados con un logotipo simple). > > > > Se abandonó la idea de crear estos listados vía una librería, y se > > optó por montar una "fusión de correo" con alguna herramienta > > ofimática (aunque, bien pensado, lo de usar LaTeX tampoco > es mala idea > > ;-). _______________________________________________ > > 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 > From a.porrua en gmail.com Thu Mar 1 14:40:38 2007 From: a.porrua en gmail.com (tny) Date: Thu, 01 Mar 2007 14:40:38 +0100 Subject: hacer constantes algunas variables de una funcion In-Reply-To: <2c9fb0dd0703010415x47a4a935rf23cef765dcc9b95@mail.gmail.com> References: <1172749731.11801.16.camel@skynex.telecable.es> <2c9fb0dd0703010415x47a4a935rf23cef765dcc9b95@mail.gmail.com> Message-ID: <1172756438.14392.5.camel@skynex.telecable.es> El jue, 01-03-2007 a las 13:15 +0100, Chema Cortes escribió: > tny escribió: > > La verdad es que es algo que no necesito para nada y menos hasta el > > punto final... > > Se me ocurrió porque tenía que hacer algo parecido, pero ni tan amplio > > ni tan general... > > > > suponed el siguiente caso: > > > > tenemos una funcion con varias variables :) > > > > def funcion(a,b,c): > > return [a,b,c] #porjemplo > > > > y queremos "fabricar al vuelo" otras (aprobechando el código de esta) > > que acepten algunas variables como tales dejando las otras como > > constantes... > >> ..... > > ¿como sería el cuerpo de la siguiente función? > > > > def generador(FUNCION,**PARAMETROS): > > ??????? > > > > que devuelva una función a la que pasarle los parametros que faltan en > > PARAMETROS, equivalga a llamar a FUNCION con TodoSLoSPArAMEtROs Es dificil hasta de decir... > > No sé, se me ocurre lo siguiente: > > > def generador(f,**params): > def retf(**args): > args.update(params) > return f(**args) > return retf > > > ¿Es lo que buscabas? Pues parece que no... Igual no me explique bien, o no lo comprobaste... >>> def f(a='a', b='b', c='c', d='d'): ... return [a,b,c,d] ... >>> def generador(f,**parametros): ... def retf(**args): ... args.update(parametros) ... return f(args) ... return retf ... >>> g=generador(f, a='A',b='B') >>> g(c='C',d='D') [{'a': 'A', 'c': 'C', 'b': 'B', 'd': 'D'}, 'b', 'c', 'd'] debería haber devuelto ['A','B','C','D'] De todas maneras no tiene ninguna importancia, es simple curiosidad... pero parece que van por ahí los tiros. Post-Data es un pasatiempo, simple curiosidad, no tiene ninguna importancia, ni lo necesito para nada. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Thu Mar 1 13:10:44 2007 From: py en ch3m4.org (Chema Cortes) Date: Thu, 01 Mar 2007 13:10:44 +0100 Subject: hacer constantes algunas variables de una funcion In-Reply-To: <1172749731.11801.16.camel@skynex.telecable.es> References: <1172749731.11801.16.camel@skynex.telecable.es> Message-ID: <45E6C2C4.4080405@ch3m4.org> tny escribió: > La verdad es que es algo que no necesito para nada y menos hasta el > punto final... > Se me ocurrió porque tenía que hacer algo parecido, pero ni tan amplio > ni tan general... > > suponed el siguiente caso: > > tenemos una funcion con varias variables :) > > def funcion(a,b,c): > return [a,b,c] #porjemplo > > y queremos "fabricar al vuelo" otras (aprobechando el código de esta) > que acepten algunas variables como tales dejando las otras como > constantes... >>..... > ¿como sería el cuerpo de la siguiente función? > > def generador(FUNCION,**PARAMETROS): > ??????? > > que devuelva una función a la que pasarle los parametros que faltan en > PARAMETROS, equivalga a llamar a FUNCION con TodoSLoSPArAMEtROs > Es dificil hasta de decir... No sé, se me ocurre lo siguiente: def generador(f,**params): def retf(**args): args.update(params) return f(**args) return retf ¿Es lo que buscabas? -- Chema Cortés (py en ch3m4.org) "Proudly made on earth by generic humanoid carbon units" ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From kh_alatar en telefonica.net Thu Mar 1 16:03:38 2007 From: kh_alatar en telefonica.net (Alatar) Date: Thu, 01 Mar 2007 16:03:38 +0100 Subject: =?ISO-8859-1?Q?Re=3A_=5BPython-es=5D_enviar_correo_con_?= =?ISO-8859-1?Q?python_-_c=F3digo_entero?= In-Reply-To: <45E69CD1.2020708@gmail.com> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> <45E5ACB3.2040807@telefonica.net> <45E69CD1.2020708@gmail.com> Message-ID: <45E6EB4A.6020801@telefonica.net> Saludos a todos. Vamos a ver, la culpa ha sido mía por intentar enviaros el código tan rápidamente. La verdad es que lo he hecho en un intermedio del agobio en el trabajo y aunque mi intención ha sido buena, el reultado no tanto. Disculpadme. Como no quiero haceros perder más el tiempo, os cuelgo mi programa entero en internet tal y como yo lo estoy usando: http://www.telefonica.net/web2/kumho/python/pyMail.zip Os advierto que es mi primer programa en Python y que he tenido que hacerlo a toda pastilla. Por ello debeis tener en cuenta que no está optimizado ni por asomo y que, además, faltan algunas partes por completar (acepto cualquier opinión, consejo o sugerencia). Me gustaría que si el programa resulta útil a alguien me lo dijera y me ayudara a terminarlo. Por ejemplo, podeis ver dos pestañas en la interfase que hacen referencia al mensaje en formato texto y al formato html. Sólo sirven para comprobar que hemos cargado el mensaje que realmente se desea mandar. Pero no he tenido tiempo (y todavía no sé como hacerlo) para que se vea el mensaje html tal y como lo verá el receptor. También tengo intención de poder guardar la configuración total del mensaje: asunto, destinatarios, preferencias de envío, adjuntos...etc. ¿Quizás en xml? Yo lo he hecho para realizar un envío masivo a los clientes de un gimnasio (noticias, cambios de horarios, ect...). En la carpeta destinatarios podeis ver el formato que uso para cargar todos los mails a procesar. El programa permite personalizar el mensaje (literales de sustitución) y escribe un log de todo el proceso. En fin, lo dicho, espero os sirva de ayuda y a ver si alguien se anima y me ayuda a terminarlo ;) Nos vemos. Alatar From dmunhiz en gmail.com Thu Mar 1 18:29:09 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Thu, 01 Mar 2007 18:29:09 +0100 Subject: [Python 2.5] Otros cambios en el lenguaje In-Reply-To: <45E58A9C.5050001@parcan.es> References: <45D475AB.5010802@parcan.es> <45E58A9C.5050001@parcan.es> Message-ID: <45E70D65.3020502@gmail.com> Como curiosidad sobre raise: Miguel Angel Vilella et al. en "Aprenda a pensar como un programador en python" en la página 128 dice: "Si su programa detecta una condici´on de error, puede hacer que lance (raise en ingl´es) una excepci´on." Por lo que se ve también está de acuerdo. Por cierto, me está encantando este libro. Gracias a todos los que lo han traducido. Saludos Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Juan Ignacio Rodríguez de León escribió: > Zara escribió: > >> Sólo una notilla (de gusto personal, se puede ignorar sin causar >> ningún trauma): Yo prefiero lanzar(throw) excepciones que elevarlas >> (raise). Me parece más gráfico, uno lanza una excepción como quien >> lanza una pelota en el béisbol, para que el que pueda, que la cace >> (catch) >> >> Ya sé que raise es la palabra clave en pythin, y throw en muchos otros >> lenguajes (C++, Java...), pero por lo que ya he dichoe, me parece más >> gráfico lanzarla. > > Si, traduje *raise* sin pensarmelo mucho como elevar, y la verdad es que > es mucho más expresivo lanzar. Lo tendré en cuenta para próximas > traducciones. Gracias por el comentario. > >> Primero: felicidades. Y suerte, que no salga muy llorón(a) por las >> noches, que el sueño es uno de los bienes más preciados. >> > Gracias, la verdad es que nos ha salido super tranquilito. Ya duerme > toda la noche de un tirón. Y yo que me alegro :-) > > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From david.abreu en iac.es Thu Mar 1 18:56:30 2007 From: david.abreu en iac.es (David Abreu Rodriguez) Date: Thu, 01 Mar 2007 17:56:30 +0000 Subject: lista anidada a lista simple In-Reply-To: <20070301121251.18628.qmail@web53105.mail.yahoo.com> References: <20070301121251.18628.qmail@web53105.mail.yahoo.com> Message-ID: <45E713CE.8000606@iac.es> Hola lista, seguro que es facilísimo, pero llevo un rato pensando y no se me ocurre manera de hacerlo: ¿Cómo puedo pasar de [['1','2','3'],['1','2','3']] a ['1','2','3','1','2','3'] ? gracias. From arnau en ehas.org Thu Mar 1 19:35:11 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 01 Mar 2007 19:35:11 +0100 Subject: lista anidada a lista simple In-Reply-To: <45E713CE.8000606@iac.es> References: <20070301121251.18628.qmail@web53105.mail.yahoo.com> <45E713CE.8000606@iac.es> Message-ID: <45E71CDF.9070407@ehas.org> David Abreu Rodriguez escribió: > Hola lista, > > seguro que es facilísimo, pero llevo un rato pensando y no se me ocurre > manera de hacerlo: > > ¿Cómo puedo pasar de [['1','2','3'],['1','2','3']] a > ['1','2','3','1','2','3'] ? esa pregunta me suena mucho, busca un poco en el archivo. De momento ahí va una propuesta: a = [['1','2','3'],['1','2','3']] [y for x in a for y in x] From pych3m4 en gmail.com Thu Mar 1 19:44:31 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 1 Mar 2007 19:44:31 +0100 Subject: hacer constantes algunas variables de una funcion In-Reply-To: <1172756438.14392.5.camel@skynex.telecable.es> References: <1172749731.11801.16.camel@skynex.telecable.es> <2c9fb0dd0703010415x47a4a935rf23cef765dcc9b95@mail.gmail.com> <1172756438.14392.5.camel@skynex.telecable.es> Message-ID: <2c9fb0dd0703011044o1e58f081y7a5d944e92de5b45@mail.gmail.com> El 1/03/07, tny escribió: > El jue, 01-03-2007 a las 13:15 +0100, Chema Cortes escribió: > > No sé, se me ocurre lo siguiente: > > > > > > def generador(f,**params): > > def retf(**args): > > args.update(params) > > return f(**args) > > return retf > > > > > > ¿Es lo que buscabas? > > Pues parece que no... > Igual no me explique bien, o no lo comprobaste... > > >>> def f(a='a', b='b', c='c', d='d'): > ... return [a,b,c,d] > ... > >>> def generador(f,**parametros): > ... def retf(**args): > ... args.update(parametros) > ... return f(args) no lo pusiste bien, en el retorno faltan dos asteriscos delante del args (compáralo con el código que te puse) > ... return retf > ... > >>> g=generador(f, a='A',b='B') > >>> g(c='C',d='D') > [{'a': 'A', 'c': 'C', 'b': 'B', 'd': 'D'}, 'b', 'c', 'd'] > > debería haber devuelto ['A','B','C','D'] > > De todas maneras no tiene ninguna importancia, es simple curiosidad... > pero parece que van por ahí los tiros. > > Post-Data es un pasatiempo, simple curiosidad, no tiene ninguna > importancia, ni lo necesito para nada. From faltet en carabos.com Thu Mar 1 19:54:10 2007 From: faltet en carabos.com (Francesc Altet) Date: Thu, 01 Mar 2007 19:54:10 +0100 Subject: lista anidada a lista simple In-Reply-To: <45E71CDF.9070407@ehas.org> References: <20070301121251.18628.qmail@web53105.mail.yahoo.com> <45E713CE.8000606@iac.es> <45E71CDF.9070407@ehas.org> Message-ID: <1172775250.2540.3.camel@localhost.localdomain> El dj 01 de 03 del 2007 a les 19:35 +0100, en/na Arnau Sanchez va escriure: > David Abreu Rodriguez escribió: > > > Hola lista, > > > > seguro que es facilísimo, pero llevo un rato pensando y no se me ocurre > > manera de hacerlo: > > > > ¿Cómo puedo pasar de [['1','2','3'],['1','2','3']] a > > ['1','2','3','1','2','3'] ? > > esa pregunta me suena mucho, busca un poco en el archivo. De momento ahí va una > propuesta: > > a = [['1','2','3'],['1','2','3']] > [y for x in a for y in x] otra (deben de haber miles): In [33]:b=[] In [34]:for x in a: ....: b.extend(x) ....: In [35]:b Out[35]:['1', '2', '3', '1', '2', '3'] -- 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 david.abreu en iac.es Thu Mar 1 22:50:07 2007 From: david.abreu en iac.es (David Abreu Rodriguez) Date: Thu, 01 Mar 2007 21:50:07 +0000 Subject: lista anidada a lista simple In-Reply-To: <1172775250.2540.3.camel@localhost.localdomain> References: <20070301121251.18628.qmail@web53105.mail.yahoo.com> <45E713CE.8000606@iac.es> <45E71CDF.9070407@ehas.org> <1172775250.2540.3.camel@localhost.localdomain> Message-ID: <45E74A8F.7010500@iac.es> también había buscado en la lista. si es que a veces se me va el santo al cielo y ya ni me acuerdo de como imprimir por pantalla :) Muchas gracias Francesc Altet wrote: >El dj 01 de 03 del 2007 a les 19:35 +0100, en/na Arnau Sanchez va >escriure: > > >>David Abreu Rodriguez escribió: >> >> >> >>>Hola lista, >>> >>>seguro que es facilísimo, pero llevo un rato pensando y no se me ocurre >>>manera de hacerlo: >>> >>>¿Cómo puedo pasar de [['1','2','3'],['1','2','3']] a >>>['1','2','3','1','2','3'] ? >>> >>> >>esa pregunta me suena mucho, busca un poco en el archivo. De momento ahí va una >>propuesta: >> >>a = [['1','2','3'],['1','2','3']] >>[y for x in a for y in x] >> >> > >otra (deben de haber miles): > >In [33]:b=[] >In [34]:for x in a: > ....: b.extend(x) > ....: >In [35]:b >Out[35]:['1', '2', '3', '1', '2', '3'] > > > > >------------------------------------------------------------------------ > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pepe en diselpro.com Thu Mar 1 22:55:16 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Thu, 01 Mar 2007 22:55:16 +0100 Subject: Listados con Reportlab mediante trml2pdf In-Reply-To: <000f01c75760$52e8bd90$640010ac@nombref31twj9b> References: <000f01c75760$52e8bd90$640010ac@nombref31twj9b> Message-ID: <45E74BC4.1040700@diselpro.com> Amm-Python escribió: > Buenas a todo el mundo: > > Primero lo básico: > Python 2.4.2 > Wxpython 2.6.3 > Reportlab 2.0 > trml2pdf > Windows XP > > En la aplicación que estoy desarrollando me decidí por hacer los > listados de los informes mediante Reportlab usando plantillas RML, > generando el listado en un PDF. > > El resultado "Genial". > Hago la consulta SQL a la base de datos, proceso el documento rml, lo > paso por el trml2pdf y ya está; un lindo pdf que puedo imprimir, enviar > por email, etc. > > PERO: > Llegó la hora de la verdad, al ponerlo en explotación y hacer un listado > con 6000 registros tarda una eternidad en generar el pdf. > Por las pruebas que he ido haciendo, es casi instantáneo con unos pocos > cientos de registros, tarda varios segundos cuando llegamos al millar, > pero a partir de ahí se ralentiza (2000 reg. x minuto aprox., 3000 reg. > x 4 minutos!!!!) > > Pregunto: > ¿Es normal que tarde tanto?. Lo que me llevaría a la conclusión de que > me he equivocado de herramienta y que no está pensada para grandes > documentos. > ¿Puedo hacer algo para solucionarlo? > ¿Qué otra forma de hacer "extensos" listados de informes utilizáis? > Controlando el proceso desde Python, por supuesto. > Para salir del apuro, de momento, voy tirando del pyExcelerator y los > voy generando en formato Excell. > He probado el rml2htm pero no me gusta demasiado el resultado. > > Saludos > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > Hola. ¿Has probado generar varios pdf's más pequeños y concatenarlos con alguna herramienta que lo permita? Saludos. From pepe en diselpro.com Thu Mar 1 23:10:46 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Thu, 01 Mar 2007 23:10:46 +0100 Subject: porfavor quiero recibir su ayuda para aprender a programar con python In-Reply-To: <20070301093737.14xx1858n40s4sgw@k-rolus.net> References: <839209.6034.qm@web25301.mail.ukl.yahoo.com> <45E60D45.9050003@diselpro.com> <20070301093737.14xx1858n40s4sgw@k-rolus.net> Message-ID: <45E74F66.2030907@diselpro.com> Hola Carlos. Tienes toda la información en este wiki: http://wiki.opensource.nokia.com/projects/Python_for_S60 Yo también tengo un Nokia N70 y estoy terminando un programa de video-vigilancia. El teléfono toma una foto por segundo y compara los fotogramas para detectar movimiento. Una vez detecta movimiento, toma una foto y puede guardarla en la flash o/y enviarla por por e-mail o mms, o simplemente avisa por sms o llamada perdida. Muy util si quieres vigila de forma barata una zona. Por cierto, esto no se puede hacer en java (j2me) porque las extensiones para manejar la cámara solo permite guardar la foto en un fichero jpeg y no manipularla directamente en una matriz RGB como PyS60. Salud. Carlos Galisteo de Cabo escribió: > Quoting Pepe Aracil : > >> haber aprendido java antes que python ;-P ... por cierto, la >> aplicación la hice al >> final para la plataforma symbian con pyS60. > > Vaya y cómo te ha ido, ¿tienes el código o documentación disponibles? > Me compré hace poco un N70 y me gustaría trastear algo con él. > > --- > 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 > --- > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From rolandojtorres en gmail.com Fri Mar 2 00:49:26 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Thu, 1 Mar 2007 18:49:26 -0500 Subject: Convertir ".ps" en ".gif" In-Reply-To: <20070301121251.18628.qmail@web53105.mail.yahoo.com> References: <20070301121251.18628.qmail@web53105.mail.yahoo.com> Message-ID: <6a39a1d0703011549l5867c48fqf2fb89f28f9e728f@mail.gmail.com> Excelente, eso de invocar librerias de TCL desde tkinter no lo habia probado, lo probare ahora a ver si funciona. Sin embargo el codigo para escribir gif o ppm: canvas write -format gif Funciona sin necesidad de llamar a img, pues lo probe con el TCL sin esa libreria y funciona bien, siempre y cuando la imagen del canvas no sea muy extensa. En la pocketpc funciona con gifs de 320x240. Deberias probarlo sin llamar a Tkimg1.3 a ver que pasa. Para cargar una libreria en TCL es con require El 1/03/07, Juan Pavon Ruiz escribió: > > -------------------------------------------------------- > > En TCL se puede grabar el contenido de un canvas en un pequeño GIF > > > > canvas write -format gif > > > > Sin embargo eso pasa, porque existe el comando write que escribe en > > contenido de canvas directamente en el archivo file.gif usando el > > formato GIF o PPM. > -------------------------------------------------------- > Éso ocurre porque tendrás instalado el paquete Img (del TclTk). Si lo > tienes, se podría invocar directamente a través de tcl: > > root.tk.eval("canvas .canvas write ficherocanvas.gif -format gif") > -------------------------------------------------------- > Gracias por vuestro interés. > Dejando a PIL de lado ,por el momento, puesto que además se necesitaría ghostscript. > Con TCL: (En el directorio Python25 (Windows) tengo una carpeta llamada "tcl"). > -¿La ultima versión de Tkimg es la 1.3? > -Suponiendo que lo tengo instalado. ¿Cómo lo llamo desde python? > > >>> from Tkinter import * > >>> root = Tkinter.Tk() > >>> canvas = Tkinter.Canvas(root) > >>> canvas.pack() > >>> rect = canvas.create_rectangle(10,10,100,100, fill="red") > > -Y ejecutarlo... ¿Así?: > ¿"root.tk.eval("canvas .canvas write ficherocanvas.gif -format gif")"? > > Gracias de nuevo. > > > > > > --------------------------------- > > 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 > -- 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 fpalm en ula.ve Thu Mar 1 11:34:28 2007 From: fpalm en ula.ve (Francisco Palm) Date: Thu, 1 Mar 2007 06:34:28 -0400 Subject: porfavor quiero recibir su ayuda para aprender a programar con python In-Reply-To: <45E60D45.9050003@diselpro.com> References: <839209.6034.qm@web25301.mail.ukl.yahoo.com> <45E60D45.9050003@diselpro.com> Message-ID: El 28/02/07, Pepe Aracil escribió: > Con python puedes hacer de todo menos café y chocolate con churros. Y esto es discutible, porque en cuanto tengas un robot cocinero conectado por bluetooth lo más seguro es que termines utilizando la evolución de algo como http://pyrorobotics.org/ para que te haga el café con churros. Lego Mindstorms Bluetooth interface http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/498085 Saludos F. Palm -- del Delirio al Limbo.... From rolandojtorres en gmail.com Thu Mar 1 16:19:09 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Thu, 1 Mar 2007 10:19:09 -0500 Subject: Listados con Reportlab mediante trml2pdf In-Reply-To: <001601c75c05$db186770$640010ac@nombref31twj9b> References: <001601c75c05$db186770$640010ac@nombref31twj9b> Message-ID: <6a39a1d0703010719i5028a940m2420d06d29e5fcd9@mail.gmail.com> Lo siento, pero no me referia a SVG con tus listados, sino a los planos mios. Yo no he usado reportlab ni trml2pdf, pero si me envias un ejemplo de los registros y el pdf que se genera yo trabajaria en hacer una aplicación que exporte a PDF. El 1/03/07, Amm-Python escribió: > Con un report sencillo. > 10000 registros = 209 segundos aprox. y un tamaño de 770kb. > > Con respecto a SVG, se muy poco de este tema. > He mirado SVGDraw y parece sencillo. > > Puedes indicarme dónde encontrar algún ejemplo real de un listado en > SVG, para poder evaluar si puede llegar a satisfacer mis necesidades, > todo lo que encuentro son temas gráficos y de estadísticas. > > Gracias. > > > -----Mensaje original----- > > De: python-es-bounces en aditel.org > > [mailto:python-es-bounces en aditel.org] En nombre de Rolando > > José Torres Sánchez > > Enviado el: dimecres, 28 / febrer / 2007 22:31 > > Para: La lista de python en castellano > > Asunto: Re: [Python-es] Listados con Reportlab mediante trml2pdf > > > > > > Los reportes se generan PDFs distintos o en el mismo PDF?? > > > > Lo pregunto, porque hace unos meses intentaba generar PDF > > desde mapas GIS, y cuando superan los 80Mb la generacion del > > archivo PDF se pone muy lenta, incluso si solo tenia la sola > > malla de las coordenadas, y ninguna curva de nivel. > > > > El problema lo resolvi, generando SVGs en cambio de PDF, pues > > los PDF finales llegaban a ocupar entre 100 y 200 Mb, > > imposibles de visualizar. > > > > Es posible que ustedes esten generando un solo PDF con miles > > de registros, y a medida que crece la cola de registros, la > > generacion se vuelve cada vez mas lenta por el formato del archivo. > > > > Cuanto ocupa un PDF de 10000 Registros?? > > > > El 28/02/07, Chema Cortes escribió: > > > El 27/02/07, Amm-Python escribió: > > > > > > > Para 500 registros 2.750s (rápido) > > > > Para 1000 registros 6.063s (bien) > > > > Para 2000 registros 13.797s (empieza a no gustarme) > > > > Para 3000 registros 23.641s (no me gusta) > > > > Para 4000 registros 35.813s (sigue sin gustarme) > > > > Para 5000 registros 50.469s (esto ...) > > > > > > > > (Nota: No hay cabeceras ni pies de página, ni contadores de las > > > > mismas, ni logotipos, etc.) > > > > > > > > Para mi es normal hacer un informe con 10000, 20000, 50000 > > > > registros. Sobretodo informes de resúmenes anuales; seguro que no > > > > sirven para nada, pero a los clientes les encantan. > > > > > > > > Por lo que concluyo que, o el esquema del ejemplo no es > > eficiente, o > > > > yo no se hacerlo mejor, o debo utilizar otra alternativa para > > > > generar el pdf. > > > > > > > > Mientras sigo exportando datos a formato xls y/o csv. > > > > > > > > Hasta me estoy planteando que el cliente instale LaTex y hacer el > > > > listado en dicho formato. Y antes de planteármelo seriamente, > > > > pregunto, ¿con qué generáis listados de grandes volúmenes de > > > > información?. > > > > > > No puedo darte una solución; tan sólo te confirmo que hemos > > tenido los > > > mismos problemas para crear ficheros pdf con tantos > > registros, tanto > > > en python como en java. Los ficheros que se generan son > > extremadamente > > > gigantes y su creación es muy lenta (más de una semana para emitir > > > 30.000 certificados con un logotipo simple). > > > > > > Se abandonó la idea de crear estos listados vía una librería, y se > > > optó por montar una "fusión de correo" con alguna herramienta > > > ofimática (aunque, bien pensado, lo de usar LaTeX tampoco > > es mala idea > > > ;-). _______________________________________________ > > > 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 > > > > _______________________________________________ > 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 darkrho en gmail.com Fri Mar 2 03:03:01 2007 From: darkrho en gmail.com (Rolando Espinoza La Fuente) Date: Thu, 1 Mar 2007 22:03:01 -0400 Subject: profiling python script Message-ID: <4eca3f40703011803v6378c893x6e75eaf019d83488@mail.gmail.com> Que tal, estoy buscando como analizar el rendimiento de un script (adjuntado). Probé con cProfile, hotshot hasta sysprof. Tambien psyco. Pero solo me muestran las llamadas a __main__ o algo hago mal, lo que quisiera saber es que porción de código es la que tarda más. El script lee una entrada de números de la siguiente forma: 3 2 3 3 3 9 0 El primero es el número de dígitos y los demás son los números, osea 239 y 330. Lo estoy probando con 1000000 (un millón) de dígitos y tarda poco más de 10 segundos. Alguna sugerencia? Saludos -- ./Rho http://ajayu.memi.umss.edu.bo/rho ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py2 en yahoo.com.ar Fri Mar 2 04:26:21 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Fri, 02 Mar 2007 00:26:21 -0300 Subject: Como hacer importacion ciclica References: <117d6e170702280827r7201b9dfjea5e774f795d2db2@mail.gmail.com> Message-ID: En Wed, 28 Feb 2007 13:27:12 -0300, Juan José Alonso. escribió: > Saludos, ya me ha ocurrido en varios momentos.. les comento > > Tengo un fichero donde tengo una clase Mapa(), y otro fichero donde tengo > Interfaz() > > El tema es que en el fichero de Mapa() necesito importar la clase > Interfaz > y en interfaz necesito importar Mapa() o cualquier otro del mismo fichero > > Y la primera importacion va bien, pero al hacer la 2º no me deja, he oido > algo de que es por ser una importacion ciclica En principio significa que el algo no esta del todo bien en el diseño. Pero, si solo usas una clase definida en uno en el otro y viceversa, deberia funcionar. Es decir, si en mapa.py dice `import interfaz`, y en interfaz.py dice `import mapa`, y en ambos no hay "cosas raras", deberia funcionar. Por "cosas raras" me refiero a, por ejemplo, objetos globales que se construyen en ambos modulos y necesitan una referencia al otro al momento de construirse, eso sí te traeria problemas. De cualquier modo hay dos cosas que se pueden hacer para evitarlo: - re-pensar mejor las dependencias y poner todo en a) un solo modulo, o en b) dos pero organizados diferentemente, o c) en tres (de manera que los otros dos importan este tercero). - sacar el import global y ponerlo *dentro* de los metodos/funciones que realmente lo necesitan. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py2 en yahoo.com.ar Fri Mar 2 04:13:17 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Fri, 02 Mar 2007 00:13:17 -0300 Subject: profiling python script References: <4eca3f40703011803v6378c893x6e75eaf019d83488@mail.gmail.com> Message-ID: En Thu, 01 Mar 2007 23:03:01 -0300, Rolando Espinoza La Fuente escribió: > Que tal, estoy buscando como analizar el rendimiento de un script > (adjuntado). Probé con cProfile, hotshot hasta sysprof. Tambien psyco. > > Pero solo me muestran las llamadas a __main__ o algo hago mal, lo que > quisiera saber es que porción de código es la que tarda más. La salida de hotshot te lo tendria que mostrar, usando print_stats, print_callers, etc. (Supongo que alguien habra armado alguna interfase mas "linda" para analizar esas estadisticas pero hasta ahora me alcanzo con eso). Lamentablemente no me llego el adjunto asi que no se que estas haciendo, pero en general, creas un Profile, invocas la funcion a medir usando runcall, y terminas con close(). El ejemplo de hotshot en la libreria estandar te puede servir de guia. -- 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 Fri Mar 2 09:35:55 2007 From: a.porrua en gmail.com (tny) Date: Fri, 02 Mar 2007 09:35:55 +0100 Subject: hacer constantes algunas variables de una funcion In-Reply-To: <2c9fb0dd0703011044o1e58f081y7a5d944e92de5b45@mail.gmail.com> References: <1172749731.11801.16.camel@skynex.telecable.es> <2c9fb0dd0703010415x47a4a935rf23cef765dcc9b95@mail.gmail.com> <1172756438.14392.5.camel@skynex.telecable.es> <2c9fb0dd0703011044o1e58f081y7a5d944e92de5b45@mail.gmail.com> Message-ID: <1172824555.4928.1.camel@skynex.telecable.es> El jue, 01-03-2007 a las 19:44 +0100, Chema Cortes escribió: > El 1/03/07, tny escribió: > > El jue, 01-03-2007 a las 13:15 +0100, Chema Cortes escribió: > > > > No sé, se me ocurre lo siguiente: > > > > > > > > > def generador(f,**params): > > > def retf(**args): > > > args.update(params) > > > return f(**args) > > > return retf > > > > > > > > > ¿Es lo que buscabas? > > > > Pues parece que no... > > Igual no me explique bien, o no lo comprobaste... > > > > >>> def f(a='a', b='b', c='c', d='d'): > > ... return [a,b,c,d] > > ... > > >>> def generador(f,**parametros): > > ... def retf(**args): > > ... args.update(parametros) > > ... return f(args) > > no lo pusiste bien, en el retorno faltan dos asteriscos delante del > args (compáralo con el código que te puse) > Si señor. Me quito el sombrero. ------------ 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 Mar 2 10:11:04 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Fri, 02 Mar 2007 10:11:04 +0100 Subject: porfavor quiero recibir su ayuda para aprender a programar con python In-Reply-To: <45E74F66.2030907@diselpro.com> References: <839209.6034.qm@web25301.mail.ukl.yahoo.com> <45E60D45.9050003@diselpro.com> <20070301093737.14xx1858n40s4sgw@k-rolus.net> <45E74F66.2030907@diselpro.com> Message-ID: <45E7EA28.3020007@diselpro.com> Pepe Aracil escribió: > Yo también tengo un Nokia N70 y estoy terminando un programa de > video-vigilancia. > El teléfono toma una foto por segundo y compara los fotogramas > para detectar movimiento. Una vez detecta movimiento, toma una > foto y puede guardarla en la flash o/y enviarla por por e-mail > o mms, o simplemente avisa por sms o llamada perdida. > Muy util si quieres vigila de forma barata una zona. > Voy a liberar este programa con licencia GPL en Sourceforge. El nombre será PySpy ¿Que sistema de versiones concurrentes uso CVS o SVN? Saludos. From python en ammsoft.com Fri Mar 2 10:23:05 2007 From: python en ammsoft.com (Amm-Python) Date: Fri, 2 Mar 2007 10:23:05 +0100 Subject: Listados con Reportlab mediante trml2pdf In-Reply-To: AAAAAIQQJZINhhBArhGVVySOJs/kHTUA Message-ID: <003e01c75cac$635abdd0$640010ac@nombref31twj9b> Puede ser una opción. Faltará saber como le preguntamos a reportlab cuántos registros cabrán en una página, para dividir el número de los mismos y que no haya páginas intermedias con menos registros. Es decir; una vez especificada la zona de impresión y las características de la misma, que nos devuelva cuántos registros caben. También está el tema de la numeración de las páginas, voy a mirar como se fuerza el número de la misma, debe ser fácil. Si puedo lo probaré este fin de semana, ya te diré como ha ido. Gracias. > ¿Has probado generar varios pdf's más pequeños y concatenarlos con > alguna herramienta que lo permita? > > Saludos. > > > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org http://listas.aditel.org/listinfo/python-es > From dmunhiz en gmail.com Fri Mar 2 11:11:39 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Fri, 02 Mar 2007 11:11:39 +0100 Subject: porfavor quiero recibir su ayuda para aprender a programar con python In-Reply-To: <45E7EA28.3020007@diselpro.com> References: <839209.6034.qm@web25301.mail.ukl.yahoo.com> <45E60D45.9050003@diselpro.com> <20070301093737.14xx1858n40s4sgw@k-rolus.net> <45E74F66.2030907@diselpro.com> <45E7EA28.3020007@diselpro.com> Message-ID: <45E7F85B.9040900@gmail.com> Ya nos dirás el nombre del projecto (cuando lo hagas). Tengo por casa un cacharrillo de esos y a lo mejor miro de probarlo. Saludos y gracias. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Pepe Aracil escribió: > Pepe Aracil escribió: >> Yo también tengo un Nokia N70 y estoy terminando un programa de >> video-vigilancia. >> El teléfono toma una foto por segundo y compara los fotogramas >> para detectar movimiento. Una vez detecta movimiento, toma una >> foto y puede guardarla en la flash o/y enviarla por por e-mail >> o mms, o simplemente avisa por sms o llamada perdida. >> Muy util si quieres vigila de forma barata una zona. >> > > > Voy a liberar este programa con licencia GPL en Sourceforge. El nombre > será PySpy ¿Que sistema de versiones concurrentes uso CVS o SVN? > > Saludos. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From pych3m4 en gmail.com Fri Mar 2 11:50:29 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 2 Mar 2007 11:50:29 +0100 Subject: Convertir ".ps" en ".gif" In-Reply-To: <6a39a1d0703011549l5867c48fqf2fb89f28f9e728f@mail.gmail.com> References: <20070301121251.18628.qmail@web53105.mail.yahoo.com> <6a39a1d0703011549l5867c48fqf2fb89f28f9e728f@mail.gmail.com> Message-ID: <2c9fb0dd0703020250r26675e42xa70493141b4cfc10@mail.gmail.com> El 2/03/07, Rolando José Torres Sánchez escribió: > Excelente, eso de invocar librerias de TCL desde tkinter no lo habia > probado, lo probare ahora a ver si funciona. > > Sin embargo el codigo para escribir gif o ppm: > > canvas write -format gif Tkinter tiene su particular manera de enlazar python con TclTk. Tkinter nombra a cada widget con un código numérico (atributo '_name') y crea con él una ruta al widget que funciona como un comando (atributo '_w'). El comando TCL sería algo así: root.tk.eval(canvas._w+" write file.gif -format gif") Pero no funciona. Dice que no existe la opción "write". > Funciona sin necesidad de llamar a img, pues lo probe con el TCL sin > esa libreria y funciona bien, siempre y cuando la imagen del canvas no > sea muy extensa. > En la pocketpc funciona con gifs de 320x240. > > Deberias probarlo sin llamar a Tkimg1.3 a ver que pasa. A menudo, el módulo Tkimg viene incluído en algunas distros de TCL tales como activetcl. No sé si será tu caso, pero mi conocimiento de TCL se queda aquí. Si álguien resuelve como hacerlo, me gustaría saberlo. From dmunhiz en gmail.com Fri Mar 2 13:18:05 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Fri, 02 Mar 2007 13:18:05 +0100 Subject: =?ISO-8859-1?Q?Re=3A_=5BPython-es=5D_enviar_correo_con_?= =?ISO-8859-1?Q?python_-_c=F3digo_entero?= In-Reply-To: <45E6EB4A.6020801@telefonica.net> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> <45E5ACB3.2040807@telefonica.net> <45E69CD1.2020708@gmail.com> <45E6EB4A.6020801@telefonica.net> Message-ID: <45E815FD.1050201@gmail.com> Hola Alatar: Lo he probado en ubuntu 6.10 ya que en xp no quería instalar las gtk. Uso las wx, de momento y no quiero meter ruido en los paquetes instalados. Solo tengo los que necesito. Hecho el inciso, comentar que al ejecutar tu codigo, y al intentar enviar se produce el siguiente error: /pyMail.py", line 614, in pr_mandar_mail self.pd_lista_imagenes) TypeError: mandar_mail() takes at most 13 arguments (15 given) Lo que quería saber es si es cosa de mi configuración o de que la llamada a la función está mal. Saludos y gracias. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Alatar escribió: > Saludos a todos. > > Vamos a ver, la culpa ha sido mía por intentar enviaros el código tan > rápidamente. La verdad es que lo he hecho en un intermedio del agobio en > el trabajo y aunque mi intención ha sido buena, el reultado no tanto. > Disculpadme. > > Como no quiero haceros perder más el tiempo, os cuelgo mi programa > entero en internet tal y como yo lo estoy usando: > > http://www.telefonica.net/web2/kumho/python/pyMail.zip > > Os advierto que es mi primer programa en Python y que he tenido que > hacerlo a toda pastilla. Por ello debeis tener en cuenta que no está > optimizado ni por asomo y que, además, faltan algunas partes por > completar (acepto cualquier opinión, consejo o sugerencia). > > Me gustaría que si el programa resulta útil a alguien me lo dijera y me > ayudara a terminarlo. Por ejemplo, podeis ver dos pestañas en la > interfase que hacen referencia al mensaje en formato texto y al formato > html. Sólo sirven para comprobar que hemos cargado el mensaje que > realmente se desea mandar. Pero no he tenido tiempo (y todavía no sé > como hacerlo) para que se vea el mensaje html tal y como lo verá el > receptor. > > También tengo intención de poder guardar la configuración total del > mensaje: asunto, destinatarios, preferencias de envío, adjuntos...etc. > ¿Quizás en xml? > > Yo lo he hecho para realizar un envío masivo a los clientes de un > gimnasio (noticias, cambios de horarios, ect...). En la carpeta > destinatarios podeis ver el formato que uso para cargar todos los mails > a procesar. El programa permite personalizar el mensaje (literales de > sustitución) y escribe un log de todo el proceso. > > En fin, lo dicho, espero os sirva de ayuda y a ver si alguien se anima y > me ayuda a terminarlo ;) > > Nos vemos. > > Alatar > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From manuelmalo en gmail.com Fri Mar 2 14:05:15 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Fri, 2 Mar 2007 14:05:15 +0100 Subject: Cambiar icono ventana Tkinter Message-ID: Hola a todos, alguien me podria poner un ejemplo de como se cambia el icono por defecto de una ventana de Tkinter? (el Tk rojo ese que sale) Estuve probando un codigo que encontre por internet pero me falla, es este: import Tkinter root=Tkinter.Tk() bit=Tkinter.PhotoImage(file='logo1.gif',format='gif') lb=Tkinter.Label(None,image=bit) lb.grid() root.iconwindow(lb) root.mainloop() El fallo que da es: 'can't use .13073664 as icon window: not at top level' Uso Python 2.3.5 sobre Windows XP Muchas gracias a todos From kh_alatar en telefonica.net Fri Mar 2 15:20:38 2007 From: kh_alatar en telefonica.net (Alatar) Date: Fri, 02 Mar 2007 15:20:38 +0100 Subject: =?ISO-8859-1?Q?Re=3A_=5BPython-es=5D_enviar_correo_con_?= =?ISO-8859-1?Q?python_-_c=F3digo_entero?= In-Reply-To: <45E815FD.1050201@gmail.com> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> <45E5ACB3.2040807@telefonica.net> <45E69CD1.2020708@gmail.com> <45E6EB4A.6020801@telefonica.net> <45E815FD.1050201@gmail.com> Message-ID: <45E832B6.7010007@telefonica.net> Por cierto, Daniel, espero tu opinión para poder mejorar el programa ;) De nuevo un saludo, Alatar From kh_alatar en telefonica.net Fri Mar 2 15:16:10 2007 From: kh_alatar en telefonica.net (Alatar) Date: Fri, 02 Mar 2007 15:16:10 +0100 Subject: =?ISO-8859-1?Q?Re=3A_=5BPython-es=5D_enviar_correo_con_?= =?ISO-8859-1?Q?python_-_c=F3digo_entero?= In-Reply-To: <45E815FD.1050201@gmail.com> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> <45E5ACB3.2040807@telefonica.net> <45E69CD1.2020708@gmail.com> <45E6EB4A.6020801@telefonica.net> <45E815FD.1050201@gmail.com> Message-ID: <45E831AA.5060308@telefonica.net> Descarga de nuevo el programa y vuelve a intentarlo, porque creo que se produjo un desfase entre el momento de mandar el correo y el de actualizar el código donde lo he colgado. Si descargas la versión que está ahora colgada no tiene por qué darte ningún problema (aunque piensa que, como digo el programa es operativo pero le faltan algunas cosillas). Un saludo, Alatar. Daniel Muñiz Fontoira escribió: > Hola Alatar: > Lo he probado en ubuntu 6.10 ya que en xp no quería instalar las gtk. > Uso las wx, de momento y no quiero meter ruido en los paquetes > instalados. Solo tengo los que necesito. > Hecho el inciso, comentar que al ejecutar tu codigo, y al intentar > enviar se produce el siguiente error: > /pyMail.py", line 614, in pr_mandar_mail > self.pd_lista_imagenes) > TypeError: mandar_mail() takes at most 13 arguments (15 given) > > Lo que quería saber es si es cosa de mi configuración o de que la > llamada a la función está mal. > Saludos y gracias. > > > Remitente: > Daniel Muñiz Fontoira > Eu uso software libre [1] > [1]http://www.gnu.org/philosophy/free-sw.gl.html > > > Alatar escribió: > >> Saludos a todos. >> >> Vamos a ver, la culpa ha sido mía por intentar enviaros el código tan >> rápidamente. La verdad es que lo he hecho en un intermedio del agobio en >> el trabajo y aunque mi intención ha sido buena, el reultado no tanto. >> Disculpadme. >> >> Como no quiero haceros perder más el tiempo, os cuelgo mi programa >> entero en internet tal y como yo lo estoy usando: >> >> http://www.telefonica.net/web2/kumho/python/pyMail.zip >> >> Os advierto que es mi primer programa en Python y que he tenido que >> hacerlo a toda pastilla. Por ello debeis tener en cuenta que no está >> optimizado ni por asomo y que, además, faltan algunas partes por >> completar (acepto cualquier opinión, consejo o sugerencia). >> >> Me gustaría que si el programa resulta útil a alguien me lo dijera y me >> ayudara a terminarlo. Por ejemplo, podeis ver dos pestañas en la >> interfase que hacen referencia al mensaje en formato texto y al formato >> html. Sólo sirven para comprobar que hemos cargado el mensaje que >> realmente se desea mandar. Pero no he tenido tiempo (y todavía no sé >> como hacerlo) para que se vea el mensaje html tal y como lo verá el >> receptor. >> >> También tengo intención de poder guardar la configuración total del >> mensaje: asunto, destinatarios, preferencias de envío, adjuntos...etc. >> ¿Quizás en xml? >> >> Yo lo he hecho para realizar un envío masivo a los clientes de un >> gimnasio (noticias, cambios de horarios, ect...). En la carpeta >> destinatarios podeis ver el formato que uso para cargar todos los mails >> a procesar. El programa permite personalizar el mensaje (literales de >> sustitución) y escribe un log de todo el proceso. >> >> En fin, lo dicho, espero os sirva de ayuda y a ver si alguien se anima y >> me ayuda a terminarlo ;) >> >> Nos vemos. >> >> Alatar >> _______________________________________________ >> 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 dmunhiz en gmail.com Fri Mar 2 15:35:01 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Fri, 02 Mar 2007 15:35:01 +0100 Subject: =?ISO-8859-1?Q?Re=3A_=5BPython-es=5D_enviar_correo_con_?= =?ISO-8859-1?Q?python_-_c=F3digo_entero?= In-Reply-To: <45E832B6.7010007@telefonica.net> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> <45E5ACB3.2040807@telefonica.net> <45E69CD1.2020708@gmail.com> <45E6EB4A.6020801@telefonica.net> <45E815FD.1050201@gmail.com> <45E832B6.7010007@telefonica.net> Message-ID: <45E83615.6050205@gmail.com> Una de ellas es que que me gustan mas las wx pero eso es cuestión de gustos, claro. Otra es que en la lista de destinatarios estaría bien poner una leyenda ya que por lo menos para mí no estaba claro que significa X y - . Por otro lado en preferencias sería interesante poder guardar la contraseña del servidor. A lo mejor en una tontería, pero lo del mensaje en formato texto a lo mejor se podría hacer que fuese automatico y lo sacase del html, así con hacer uno es suficiente. De momento no se me ocurre nada mas, de todos modos tengo pensado hacer uno similar pero con wx que es lo que uso. Saludos y gracias. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Alatar escribió: > Por cierto, Daniel, espero tu opinión para poder mejorar el programa ;) > > De nuevo un saludo, > Alatar > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From cgalisteo en k-rolus.net Fri Mar 2 16:16:36 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo) Date: Fri, 2 Mar 2007 16:16:36 +0100 Subject: porfavor quiero recibir su ayuda para aprender a programar con python In-Reply-To: <45E7EA28.3020007@diselpro.com> References: <839209.6034.qm@web25301.mail.ukl.yahoo.com> <45E74F66.2030907@diselpro.com> <45E7EA28.3020007@diselpro.com> Message-ID: <200703021616.36397.cgalisteo@k-rolus.net> On Friday 02 March 2007 10:11, Pepe Aracil wrote: > Voy a liberar este programa con licencia GPL en Sourceforge. El nombre > será PySpy ¿Que sistema de versiones concurrentes uso CVS o SVN? Subversion se supone que corrige alguna de las carencias de cvs y en principio se considera "más evolucionado" aunque es objeto de flames como tantas otras cosas. From kh_alatar en telefonica.net Fri Mar 2 16:47:32 2007 From: kh_alatar en telefonica.net (Alatar) Date: Fri, 02 Mar 2007 16:47:32 +0100 Subject: =?ISO-8859-1?Q?Re=3A_=5BPython-es=5D_enviar_correo_con_?= =?ISO-8859-1?Q?python_-_c=F3digo_entero?= In-Reply-To: <45E83615.6050205@gmail.com> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> <45E5ACB3.2040807@telefonica.net> <45E69CD1.2020708@gmail.com> <45E6EB4A.6020801@telefonica.net> <45E815FD.1050201@gmail.com> <45E832B6.7010007@telefonica.net> <45E83615.6050205@gmail.com> Message-ID: <45E84714.7050002@telefonica.net> Hola Daniel. Lo de la contraseña es una medida de seguridad porque por aquí trasteamos varias personas y no todas tienen por qué poder lanzar un mail masivo a todos los clientes. En cuanto a lo del mensaje de texto, yo por lo menos me encuentro con que los formatos son muy distintos a los de html (en cuanto a disposición de texto, posición de imágenes) y no me parece muy viable una generación automática. Gracias por tu opinión y, cuando hagas el programa, a ver si lo haces rular y así todos vamos mejorando los respectivos códigos. Alatar ;) Daniel Muñiz Fontoira escribió: > Una de ellas es que que me gustan mas las wx pero eso es cuestión de > gustos, claro. > Otra es que en la lista de destinatarios estaría bien poner una leyenda > ya que por lo menos para mí no estaba claro que significa X y - . > Por otro lado en preferencias sería interesante poder guardar la > contraseña del servidor. > A lo mejor en una tontería, pero lo del mensaje en formato texto a lo > mejor se podría hacer que fuese automatico y lo sacase del html, así con > hacer uno es suficiente. > De momento no se me ocurre nada mas, de todos modos tengo pensado hacer > uno similar pero con wx que es lo que uso. > Saludos y gracias. > > > Remitente: > Daniel Muñiz Fontoira > Eu uso software libre [1] > [1]http://www.gnu.org/philosophy/free-sw.gl.html > > > Alatar escribió: > >> Por cierto, Daniel, espero tu opinión para poder mejorar el programa ;) >> >> De nuevo un saludo, >> Alatar >> _______________________________________________ >> 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 carlosfvo en gmail.com Fri Mar 2 16:49:22 2007 From: carlosfvo en gmail.com (carlos villa) Date: Fri, 2 Mar 2007 10:49:22 -0500 Subject: comboxentry Message-ID: <629497540703020749q2d19a214m9428d3c3b0ffefb6@mail.gmail.com> Buenos dias me urge dejar un comboboxentry en estado de no seleccionado ninguno de los valores que contiene. tal y como aparece cuando uno corre el programa por primera ves he intentado borrar el modelo pero no funciona alguna otra idea agradeceria la ayuda. From arnau en ehas.org Fri Mar 2 17:19:47 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Fri, 02 Mar 2007 17:19:47 +0100 Subject: comboxentry In-Reply-To: <629497540703020749q2d19a214m9428d3c3b0ffefb6@mail.gmail.com> References: <629497540703020749q2d19a214m9428d3c3b0ffefb6@mail.gmail.com> Message-ID: <45E84EA3.2040906@ehas.org> carlos villa escribió: > Buenos dias me urge dejar un comboboxentry en estado de no > seleccionado ninguno de los valores que contiene. tal y como aparece > cuando uno corre el programa por primera ves he intentado borrar el > modelo pero no funciona alguna otra idea agradeceria la ayuda. está en la documentación: http://www.pygtk.org/docs/pygtk/class-gtkcombobox.html#method-gtkcombobox--set-active From ramon.araujo en solmeliacuba.com Fri Mar 2 18:12:54 2007 From: ramon.araujo en solmeliacuba.com (Ramon Araujo) Date: Fri, 02 Mar 2007 12:12:54 -0500 Subject: sobre plugin de PHP para Eclipse Message-ID: <45E85B16.1010902@solmeliacuba.com> Hola primero que nada pues recien entre a la lista... Alguien ha instalado el PDT(PHP development Tools) en Eclipse 3.2.2 ? Gracias de antemano... Ramon From kernel.no.found en gmail.com Fri Mar 2 18:45:05 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Fri, 2 Mar 2007 18:45:05 +0100 Subject: Sobre PyGame PGU Message-ID: <117d6e170703020945j742c2edep397a85ee77bdb6df@mail.gmail.com> Hola chicos, Alguien de los lectores de la lista ha usado las utilidades de la libreria complementaria a PyGame PGU ? He notado que sobre PGU mi juego funciona como a pulsos, como si de menos fps se tratara, una perdida de velocidad que sin usar pgu en mi antiguo codigo iba mas rapida aqui he tenido que aumentar velocidades en los vectores. y una funcion de mover mapa, cuando acerco el mouse al borde, con 5 pixeles antes iba rapido, ahora va a tirones y como si fuera a 1-2 pixeles de velocidad de desplazamiento... Si algun otro usuario de PyGame o PGU quiere agregarme para charlar me pueden agregar a kernel.no.found en gmail.com (MSN/Jabber/Gtalk) Un saludete pythonico. From jsemari en terra.es Fri Mar 2 19:53:33 2007 From: jsemari en terra.es (Josemari) Date: Fri, 02 Mar 2007 19:53:33 +0100 Subject: Capturar la IP =?iso-8859-1?q?din=E1mica?= Message-ID: <45E872AD.6030704@terra.es> Quiero capturar con un programa en Python la IP que me da teléfonica en mi ADSL. ¿Podrías indicarme con qué librería, módulo o sentencia puedo hacerlo? Gracias Josemari From solisgb en gmail.com Fri Mar 2 16:56:36 2007 From: solisgb en gmail.com (Luis Solis) Date: Fri, 2 Mar 2007 16:56:36 +0100 Subject: =?iso-8859-1?q?como_saber_si_est=E1_disponible_un_or?= =?iso-8859-1?q?denador_de_la_red?= Message-ID: <8d2f04c60703020756w52d079bfjfe89f8518a83caa2@mail.gmail.com> Hola soy nuevo en redes y desearía saber si un ordenador de una red, cuya IP conozco, está disponible. En windows puedo ejecutar el comando ping, ¿y en python? gracias Luis From sonajadiabolica en gmail.com Fri Mar 2 21:37:27 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Fri, 2 Mar 2007 14:37:27 -0600 Subject: =?ISO-8859-1?Q?Re:__como_saber_si_est=E1?= =?ISO-8859-1?Q?_disponible_un_ordenador_de_la_red?= In-Reply-To: <8d2f04c60703020756w52d079bfjfe89f8518a83caa2@mail.gmail.com> References: <8d2f04c60703020756w52d079bfjfe89f8518a83caa2@mail.gmail.com> Message-ID: <8d9e208f0703021237r5f4e0c16t60ce19350c36c815@mail.gmail.com> > En windows puedo ejecutar el comando ping, ¿y en python? tanto en windows como en linux existe ese comando (ping), creo que te puede servir os.system, solo que en linux, el ping continua mandando peticiones indefinidamente. Lee el man de ping si necesitas usarlo en linux, haciendo una prueba rápida me devuelve 0 si la ip responde, y 256 si no responde. saludos -- aNgel rEsendiz.! From ximo-listas en ono.com Fri Mar 2 21:35:54 2007 From: ximo-listas en ono.com (Ximo Nadal) Date: Fri, 02 Mar 2007 21:35:54 +0100 Subject: Capturar la IP =?ISO-8859-1?Q?din=E1mica?= In-Reply-To: <45E872AD.6030704@terra.es> References: <45E872AD.6030704@terra.es> Message-ID: <45E88AAA.5020201@ono.com> Josemari wrote: > Quiero capturar con un programa en Python la IP que me da teléfonica en > mi ADSL. ¿Podrías indicarme con qué librería, módulo o sentencia puedo > hacerlo? Hola: Creo que esto podria servirte . Un saludo, -- Ximo Nadal From necudeco en gmail.com Fri Mar 2 23:18:17 2007 From: necudeco en gmail.com (NeCuDeCo) Date: Fri, 2 Mar 2007 17:18:17 -0500 Subject: =?ISO-8859-1?Q?Re:__Capturar_la_IP_din=E1mica?= In-Reply-To: <45E88AAA.5020201@ono.com> References: <45E872AD.6030704@terra.es> <45E88AAA.5020201@ono.com> Message-ID: <2ccb93070703021418j3359cd96s458a5f8a77135d6e@mail.gmail.com> Podrias hacer que el cliente se conecte a algun servicio externo ( tuyo o de otro ( adsl4ever.com/ip) ) y leer la direccion IP q te devuelve. On 3/2/07, Ximo Nadal wrote: > > Josemari wrote: > > Quiero capturar con un programa en Python la IP que me da teléfonica en > > mi ADSL. ¿Podrías indicarme con qué librería, módulo o sentencia puedo > > hacerlo? > > Hola: > > Creo que esto podria servirte > . > > > Un saludo, > > -- > Ximo Nadal > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- -------------------------- NeCuDeCo Junta de Decanos de los Colegios de Notarios del Peru http://necudeco.blogsome.com http://apesol.org Your Jugdment Day is NOW sudo kills -9 $richard_penguin_signature From jpavonruiz en yahoo.es Sat Mar 3 00:49:23 2007 From: jpavonruiz en yahoo.es (Juan Pavon Ruiz) Date: Sat, 3 Mar 2007 00:49:23 +0100 (CET) Subject: Cambiar icono ventana Tkinter Message-ID: <511165.40850.qm@web53112.mail.yahoo.com> Cambia el formato de tu logo a ".ico", y prueba esto: import Tkinter root=Tkinter.Tk() bit = root.iconbitmap('MiImagen.ico') root.mainloop() Espero que te funcione. --------------------------------- 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 rafaelrp en uci.cu Sat Mar 3 03:12:36 2007 From: rafaelrp en uci.cu (Rafael =?ISO-8859-1?Q?Rodr=EDguez?= Puente) Date: Fri, 02 Mar 2007 21:12:36 -0500 Subject: ctypes Message-ID: <1172887956.16945.110.camel@localhost> Alguien sabe donde encontrar documentación de ctypes, he buscado en google pero no encuentro nada, o si tienen algún ejemplo, también será bienvenido. Lo que necesito es utlizar algún tipo de datos, especificamente punteros Gracias "El software, al igual que el sexo, es mejor cuando es libre" From pych3m4 en gmail.com Sat Mar 3 03:55:01 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Sat, 3 Mar 2007 03:55:01 +0100 Subject: ctypes In-Reply-To: <1172887956.16945.110.camel@localhost> References: <1172887956.16945.110.camel@localhost> Message-ID: <2c9fb0dd0703021855w101c1587w6cf12695004ec49c@mail.gmail.com> El 3/03/07, Rafael Rodríguez Puente escribió: > Alguien sabe donde encontrar documentación de ctypes, he buscado en > google pero no encuentro nada, o si tienen algún ejemplo, también será > bienvenido. > Lo que necesito es utlizar algún tipo de datos, especificamente punteros From pych3m4 en gmail.com Sat Mar 3 03:51:20 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Sat, 3 Mar 2007 03:51:20 +0100 Subject: Como hacer importacion ciclica In-Reply-To: <117d6e170702280827r7201b9dfjea5e774f795d2db2@mail.gmail.com> References: <117d6e170702280827r7201b9dfjea5e774f795d2db2@mail.gmail.com> Message-ID: <2c9fb0dd0703021851reeef61cu418d5473ca102b5a@mail.gmail.com> El 28/02/07, Juan José Alonso. escribió: > Saludos, ya me ha ocurrido en varios momentos.. les comento > > Tengo un fichero donde tengo una clase Mapa(), y otro fichero donde tengo > Interfaz() > > El tema es que en el fichero de Mapa() necesito importar la clase Interfaz > y en interfaz necesito importar Mapa() o cualquier otro del mismo fichero > > Y la primera importacion va bien, pero al hacer la 2º no me deja, he oido > algo de que es por ser una importacion ciclica Es un problema conocido, del que puedes ver una entrada en la FAQ: En principio, decir que no debe dar ningún problema si empiezas importando los módulos tal cuál (mediante el "import modulo"), y que fallará si intentas importar objetos por nombre (mediante el "from...import.."). Para comprender mejor lo que pasa, hay que comprender qué pasa cuando se importa un módulo y el papel del diccionario 'sys.modules'. PROCESO de importación: 1- Se comprueba si existe una clave en 'sys.modules' con el nombre del módulo. Si existe, se usa el valor de esa clave para evitar "reimportar" el módulo. Así terminaría el proceso de importación. (Es la razón por la que no debe dolernos reimportar un módulo tantas veces como queramos). 2- Si no existe ninguna clave con el nombre del módulo, se crea en 'sys.modules' una entrada nueva con el nombre del módulo como clave y se inicializa como módulo vacío (types.ModuleType). 3- Este módulo vacío se utiliza como "espacio de nombres" y se irá "poblando" de referencias a medida que se ejecute el módulo. ¿Qué pasa si durante la ejecución del módulo se importan otros módulos? 4- Si durante la ejecución del código se importan nuevos módulos, éstos módulos van a ver al primogénito como ya importado, pero en realidad todavía estará sin inicializar del todo. Habrá referencias que todavía no habránn sido creadas ya que iban en orden por detrás de las importaciones. SOLUCIONES: - la solución más simple es importar los módulos completos, evitando importar objetos sueltos. - otra solución sería reordenar las referencias para que vayan por delante de las importaciones (algo que estaría en contra de las reglas de estilo de programación python) - la más recomendable: romper las importaciones circulares cambiándo su alcance de global a local (dentro de una función, método, etc), dejando como global lo mínimo necesario para inicializar el módulo. EJEMPLO (del último caso): Supongamos tu caso, en el que interface tiene que crear un objeto mapa, y viceversa: #fichero: interface.py class Interface: def __init__(self): from mapa import Mapa self.mapa=Mapa() #fichero: mapa.py class Mapa: def __init__(self): from interface import Interface self.interface=Interface() #fichero: prueba.py from interface import Interface i=Interface() En la ejecución del fichero "prueba.py" pasará lo siguiente 1- "from interface import Interface" declara la clase Interface. No se importa el módulo Mapa todavía. En sys.modules aparece una entrada nueva con el módulo Interface como importado. 2- "i=Interface()". Se crea una nueva instancia y se procede a ejecutar el constructor. El constructor importará el módulo Mapa, el cuál ya verá al módulo Interface importado y completamente inicializado. Espero que quede claro. Conviene crearse algunos ejemplos e ir probándolos. From rbaquerizo en ehas.org Sat Mar 3 05:11:58 2007 From: rbaquerizo en ehas.org (Reynaldo Baquerizo) Date: Fri, 02 Mar 2007 23:11:58 -0500 Subject: Fractales In-Reply-To: <45E2F8FE.8030409@telefonica.net> References: <45E2F8FE.8030409@telefonica.net> Message-ID: <45E8F58E.7010702@ehas.org> Aqui tienes algo que te pueda servir; vale aclarar que no es mio. http://programmer-art.org/files/fractal.py.bz2 Alatar escribió: > Saludos. > > Mi mujer tiene que presentar un proyecto de final de carrera en el > que, en una sus partes, tiene que tratar con fractales. Yo, en un > intento de ayudarla, estoy investigando un poco el tema y viendo lo > que hay hecho en Python (cosas como Pyx, Chaos, etc...). > > El caso es que alguien le ha desaconsejado el uso de Python para esta > tarea. No obstante, como ella no tiene un nivel de programación > demasiado alto, yo le he aconsejado su uso por la claridad, facilidad > y potencia del lenguaje (aunque yo también soy bastante novato en el > mundo de Python). > > Pero como la duda existe, quisiera que la gente con más experiencia de > la lista me dijera si acierto o no al aconsejarle que use Python. > También quisiera pedir ayuda para centrarme un poco en el tema, es > decir, qué librería tendríamos que usar o cuál sería la mejor manera > de enfocar el tema. > > Finalmente y a bote pronto, ¿puede ser conveniente el uso de una > librería como pyGame para trabajos como este? > > De antemano, muchas gracias a todos, > Alatar > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From jcanto en hispasec.com Sat Mar 3 09:03:35 2007 From: jcanto en hispasec.com (Julio Canto) Date: Sat, 03 Mar 2007 09:03:35 +0100 Subject: como saber si =?ISO-8859-1?Q?est=E1_disponible?= =?ISO-8859-1?Q?_un_ordenador_de_la_red?= In-Reply-To: <8d2f04c60703020756w52d079bfjfe89f8518a83caa2@mail.gmail.com> References: <8d2f04c60703020756w52d079bfjfe89f8518a83caa2@mail.gmail.com> Message-ID: <45E92BD7.8020600@hispasec.com> Luis Solis wrote: > Hola > soy nuevo en redes y desearía saber si un ordenador de una red, cuya IP > conozco, está disponible. > En windows puedo ejecutar el comando ping, ¿y en python? Pues o bien ejecutas el ping y capturas la respuesta, o bien te curras 'tu mismo' un ping. Hay algunas librerías por ahí para descargar. En cualquier caso, si ese ordenador que conoces no responde a ICMP, el ping no ve va a servir de mucho. Un saludo, JC From xinxic en gmail.com Sat Mar 3 13:44:25 2007 From: xinxic en gmail.com (Xin Xic) Date: Sat, 3 Mar 2007 13:44:25 +0100 Subject: =?ISO-8859-1?Q?Re:__como_saber_si_est=E1_disponible_u?= =?ISO-8859-1?Q?n_ordenador_de_la_red?= In-Reply-To: <45E92BD7.8020600@hispasec.com> References: <8d2f04c60703020756w52d079bfjfe89f8518a83caa2@mail.gmail.com> <45E92BD7.8020600@hispasec.com> Message-ID: <21aab5d64efa60fea90c3249667b8f30@GMail.com> Aquí teneis un ejemplo con "nmap" para saber que ordenadores hay en una red: nmap -sP '10.145.4.*' No hagais esto. :-D nmap -sP '*.*.*.*' Salut !!! El 03/03/2007, a les 09:03, en/na Julio Canto va escriure: > Luis Solis wrote: >> Hola >> soy nuevo en redes y desearía saber si un ordenador de una red, cuya >> IP >> conozco, está disponible. >> En windows puedo ejecutar el comando ping, ¿y en python? > Pues o bien ejecutas el ping y capturas la respuesta, o bien te curras > 'tu mismo' un ping. Hay algunas librerías por ahí para descargar. En > cualquier caso, si ese ordenador que conoces no responde a ICMP, el > ping > no ve va a servir de mucho. > > Un saludo, > JC > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From minoztro en gmail.com Sun Mar 4 04:33:38 2007 From: minoztro en gmail.com (Milton Galo Patricio) Date: Sat, 3 Mar 2007 23:33:38 -0400 Subject: comboxentry In-Reply-To: <629497540703020749q2d19a214m9428d3c3b0ffefb6@mail.gmail.com> References: <629497540703020749q2d19a214m9428d3c3b0ffefb6@mail.gmail.com> Message-ID: <172699c50703031933v3ef72a2fl1cd9783811ce5a1f@mail.gmail.com> El 2/03/07, carlos villa escribió: Hola Carlos: Espero que estes utilizando pygtk...o si no me solución no te servirá :-( > Buenos dias me urge dejar un comboboxentry en estado de no > seleccionado ninguno de los valores que contiene. Bueno eso se hace con comboboxentryNombre.set_active(-1) >tal y como aparece > cuando uno corre el programa por primera ves he intentado borrar el > modelo pero no funciona alguna otra idea agradeceria la ayuda. ahora...si quieres dejar el texto del comboboxentryNombre como lo corres en un principio...es decir en blanco debes hacer lo siguiente: comboboxentryNombre.child.set_text('') y luego para que todo esto sea congruente debes hacer un comboboxentryNombre.set_active(-1) Para entender mejor tu problema, tuve que programar el combo y claro cuando le pones el set_active el valor del child del combo no cambia {es decir el item no se mueve para el usuario final}...es por eso que supongo que la solución que te doy es la correcta -- Milton Inostroza Aguilera From jsemari en terra.es Sun Mar 4 11:37:25 2007 From: jsemari en terra.es (Josemari) Date: Sun, 04 Mar 2007 11:37:25 +0100 Subject: Capturar la IP =?ISO-8859-1?Q?din=E1mica?= In-Reply-To: <45E88AAA.5020201@ono.com> References: <45E872AD.6030704@terra.es> <45E88AAA.5020201@ono.com> Message-ID: <45EAA165.5060703@terra.es> Gracias Ximo, pero esa rutina me devuelve la ip privada de mi red local. Estoy tratando de capturar la IP pública, que es dinámica que me asigna Telefónica. Saludos Josemari Ximo Nadal escribió: > Josemari wrote: >> Quiero capturar con un programa en Python la IP que me da teléfonica >> en mi ADSL. ¿Podrías indicarme con qué librería, módulo o sentencia >> puedo hacerlo? > > Hola: > > Creo que esto podria servirte > . > > > Un saludo, > From jsemari en terra.es Sun Mar 4 11:44:06 2007 From: jsemari en terra.es (Josemari) Date: Sun, 04 Mar 2007 11:44:06 +0100 Subject: Capturar la IP =?ISO-8859-1?Q?din=E1mica?= In-Reply-To: <2ccb93070703021418j3359cd96s458a5f8a77135d6e@mail.gmail.com> References: <45E872AD.6030704@terra.es> <45E88AAA.5020201@ono.com> <2ccb93070703021418j3359cd96s458a5f8a77135d6e@mail.gmail.com> Message-ID: <45EAA2F6.9060507@terra.es> Gracia Necudeco, pero será engorroso capturar la página del servidor y buscar la Ip, ya que el diseño puede cambiar. A ver si me explico mejor: Tengo un ADSL con IP dinámica, y estoy dentro de una red privada en mi casa donde tenemos varios PC's. Quiero hacer un programa que mire cada cierto tiempo (cada hora por ejemplo) la IP pública que tenga en cada momento el router ADSL y la guarde en un fichero. Para ello estaba pensando en algo parecido a como lo obtiene traceroute, que por cierto a mi no me funciona, me dice que "host desconocido" (Ubuntu 6.10). Saludos Josemari NeCuDeCo escribió: > Podrias hacer que el cliente se conecte a algun servicio externo ( > tuyo o de > otro ( adsl4ever.com/ip) ) y leer la direccion IP q te devuelve. > > > On 3/2/07, Ximo Nadal wrote: >> >> Josemari wrote: >> > Quiero capturar con un programa en Python la IP que me da >> teléfonica en >> > mi ADSL. ¿Podrías indicarme con qué librería, módulo o sentencia puedo >> > hacerlo? >> >> Hola: >> >> Creo que esto podria servirte >> . >> >> >> Un saludo, >> >> -- >> Ximo Nadal >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> > > > From pablomarmol en gmail.com Sun Mar 4 12:38:38 2007 From: pablomarmol en gmail.com (peter) Date: Sun, 4 Mar 2007 12:38:38 +0100 Subject: =?ISO-8859-1?Q?Re:__Capturar_la_IP_din=E1mica?= In-Reply-To: <45EAA2F6.9060507@terra.es> References: <45E872AD.6030704@terra.es> <45E88AAA.5020201@ono.com> <2ccb93070703021418j3359cd96s458a5f8a77135d6e@mail.gmail.com> <45EAA2F6.9060507@terra.es> Message-ID: <32ec9b10703040338gcb17c06v3ebd183d63a50d79@mail.gmail.com> El 4/03/07, Josemari escribió: > Gracia Necudeco, pero será engorroso capturar la página del servidor y > buscar la Ip, ya que el diseño puede cambiar. http://checkip.dyndns.org:8245/ Ahí sacas tu dirección "con la gorra", y los de dyndns no varían "el diseño" de ese servicio. . From jordi.f en ati.es Sun Mar 4 13:02:39 2007 From: jordi.f en ati.es (Jordi Funollet) Date: Sun, 4 Mar 2007 13:02:39 +0100 Subject: Capturar la IP =?iso-8859-1?q?din=E1mica?= In-Reply-To: <45EAA2F6.9060507@terra.es> References: <45E872AD.6030704@terra.es> <2ccb93070703021418j3359cd96s458a5f8a77135d6e@mail.gmail.com> <45EAA2F6.9060507@terra.es> Message-ID: <200703041302.39069.jordi.f@ati.es> La forma mas simple de saber la IP de tu router es visitar una página como http://checkip.dyndns.com/ A partir de aquí, parsea el resultado. Algunos programas para actualizar DNS dinámicos también pueden guardarte un registro de cambios. Yo habia usado ipcheck_ (en Python, te puede servir de ejemplo) y creo recordar que hace lo que pides. .. _ipcheck: http://ipcheck.sourceforge.net/ -- ############################## ### Jordi Funollet ### http://www.terraquis.net From arnau en ehas.org Sun Mar 4 15:59:04 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sun, 04 Mar 2007 15:59:04 +0100 Subject: Capturar la IP =?ISO-8859-1?Q?din=E1mica?= In-Reply-To: <2ccb93070703021418j3359cd96s458a5f8a77135d6e@mail.gmail.com> References: <45E872AD.6030704@terra.es> <45E88AAA.5020201@ono.com> <2ccb93070703021418j3359cd96s458a5f8a77135d6e@mail.gmail.com> Message-ID: <45EADEB8.2000302@ehas.org> NeCuDeCo escribió: > Podrias hacer que el cliente se conecte a algun servicio externo ( tuyo > o de > otro ( adsl4ever.com/ip) ) y leer la direccion IP q te devuelve. Por ejemplo. Para eso siempre uso DynDNS, no suele fallar: #!/usr/bin/python import urllib2 import sys import re URL = "http://checkip.dyndns.org:8245" data = urllib2.urlopen(URL).read() match = re.findall("Current IP Address: ([\d\.]*)", data) if not match: sys.stderr.write("Cannot parse IP: %s\n"%data) sys.exit(1) print match[0] sys.exit(0) From kernel.no.found en gmail.com Sun Mar 4 16:29:49 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Sun, 4 Mar 2007 16:29:49 +0100 Subject: Como hacer importacion ciclica Message-ID: <117d6e170703040729l7feaa48fqc213872e8b237176@mail.gmail.com> *placs* *placs* *placs* magnifica respuesta chema, no sabia bien como funcionaba esto hasta ahora. mil gracias. PD: Aver si creo el wiki dotpy. -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com From manuelmalo en gmail.com Mon Mar 5 08:27:30 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Mon, 5 Mar 2007 08:27:30 +0100 Subject: Cambiar icono ventana Tkinter In-Reply-To: <511165.40850.qm@web53112.mail.yahoo.com> References: <511165.40850.qm@web53112.mail.yahoo.com> Message-ID: No, eso tambien lo habia intentado, pero la funcion PhotoImage solo acepta los formatos gif, "pgm" y "ppm" (no conozco estos dos ultimos). Me sorprende no haber encontrado nada en internet, dejara todo el mundo el logo de Tk cuando hace sus programas en Tkinter? porque no queda demasiado estetico, que digamos... (o lo mismo casi nadie usa esta libreria) Saludos From rolandojtorres en gmail.com Mon Mar 5 11:48:54 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Mon, 5 Mar 2007 05:48:54 -0500 Subject: Cambiar icono ventana Tkinter In-Reply-To: References: <511165.40850.qm@web53112.mail.yahoo.com> Message-ID: <6a39a1d0703050248v6b2c2ecdq6e66f72e9ea53aa2@mail.gmail.com> En TCL existe la dll winico que permite hacer eso que tu quieres. http://wiki.tcl.tk/4089 Quizas podriamos invocarla como dijo Chema en el ultimo comentario acerca de "convertir ps a gif". El 5/03/07, Manuel Malo de Molina escribió: > No, eso tambien lo habia intentado, pero la funcion PhotoImage solo acepta > los formatos gif, "pgm" y "ppm" (no conozco estos dos ultimos). > > Me sorprende no haber encontrado nada en internet, dejara todo el mundo el > logo de Tk cuando hace sus programas en Tkinter? porque no queda demasiado > estetico, que digamos... (o lo mismo casi nadie usa esta libreria) > > Saludos > _______________________________________________ > 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 posy0001 en gmail.com Mon Mar 5 12:54:00 2007 From: posy0001 en gmail.com (Posy Posy001) Date: Mon, 5 Mar 2007 12:54:00 +0100 Subject: dudas Message-ID: <832900970703050354g400e426ayab9bea951a908678@mail.gmail.com> Hola soy nuevo y llevo dos dias mirando esto, y no se como arreglarlo, les paso un poco del codigo que estoy escribiendo y el error: voto=raw_input('Introduce tu voto') votof=((voto-18)*2)+5 print votof voto-->debe de ser un valor y meda este fallo cuando lo quiero ejecutar File "prueba.py", line 6, in ? votof=((voto-18)*2)+5 TypeError: unsupported operand type(s) for -: 'str' and 'int' Porq ne da este fallo y como lo puedo arreglar he provado de todo y gracias por vuestro foro lo que he leido es alucinante y epero algun dia sabes tanto como ustedes From elizundia en fitbak.com Mon Mar 5 12:58:02 2007 From: elizundia en fitbak.com (Ekaitz Lizundia) Date: Mon, 05 Mar 2007 12:58:02 +0100 Subject: dudas In-Reply-To: <832900970703050354g400e426ayab9bea951a908678@mail.gmail.com> References: <832900970703050354g400e426ayab9bea951a908678@mail.gmail.com> Message-ID: <45EC05CA.2060609@fitbak.com> Deberias de poner int(voto) creo voto=raw_input('Introduce tu voto') votof=((int(voto)-18)*2)+5 print votof Posy Posy001 escribió: > Hola soy nuevo y llevo dos dias mirando esto, y no se como arreglarlo, > les > paso un poco del codigo que estoy escribiendo y el error: > > voto=raw_input('Introduce tu voto') > votof=((voto-18)*2)+5 > print votof > > voto-->debe de ser un valor > > y meda este fallo cuando lo quiero ejecutar > > File "prueba.py", line 6, in ? > votof=((voto-18)*2)+5 > TypeError: unsupported operand type(s) for -: 'str' and 'int' > > Porq ne da este fallo y como lo puedo arreglar he provado de todo y > gracias por vuestro foro lo que he leido es alucinante y epero algun dia > sabes tanto como ustedes > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From cervera en ffn.ub.es Mon Mar 5 13:06:03 2007 From: cervera en ffn.ub.es (Pau Cervera Badia) Date: Mon, 05 Mar 2007 13:06:03 +0100 Subject: dudas In-Reply-To: <832900970703050354g400e426ayab9bea951a908678@mail.gmail.com> References: <832900970703050354g400e426ayab9bea951a908678@mail.gmail.com> Message-ID: <45EC07AB.10704@ffn.ub.es> raw_input te devuelve un string. Debes convertirlo a otro tipo que soporte sumar y multiplicar. votof = float(voto) Posy Posy001 wrote: > Hola soy nuevo y llevo dos dias mirando esto, y no se como arreglarlo, > les > paso un poco del codigo que estoy escribiendo y el error: > > voto=raw_input('Introduce tu voto') > votof=((voto-18)*2)+5 > print votof > > voto-->debe de ser un valor > > y meda este fallo cuando lo quiero ejecutar > > File "prueba.py", line 6, in ? > votof=((voto-18)*2)+5 > TypeError: unsupported operand type(s) for -: 'str' and 'int' > > Porq ne da este fallo y como lo puedo arreglar he provado de todo y > gracias por vuestro foro lo que he leido es alucinante y epero algun dia > sabes tanto como ustedes > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- Pau Cervera i Badia (e-mail cervera en ffn.ub.es) { Departament de Física Fonamental Martí i Franqués, 1 Universitat de Barcelona Planta 3, despatx 346 bis 08028 Barcelona tel: +34 934 039 708 Spain "Simple things should be simple, complex things should be possible." -- Alan Kay return http://www.ffn.ub.es/%7Ecervera/ } From manel en nosotrosmismos.org Mon Mar 5 13:07:05 2007 From: manel en nosotrosmismos.org (Manel Cebolla) Date: Mon, 05 Mar 2007 13:07:05 +0100 Subject: dudas In-Reply-To: <45EC05CA.2060609@fitbak.com> References: <832900970703050354g400e426ayab9bea951a908678@mail.gmail.com> <45EC05CA.2060609@fitbak.com> Message-ID: <20070305130705.fkqpppc9uykgss44@webmail.nosotrosmismos.org> Python posee un tipado dinámico: los tipos se establecen en tiempo de ejecución. Y además es fuertementemente tipado: una vez se adquiere un tipo sólo se puede tratar como este tipo a menos que se haga una conversión. Quoting Ekaitz Lizundia : > Deberias de poner int(voto) creo > > voto=raw_input('Introduce tu voto') > votof=((int(voto)-18)*2)+5 > print votof > > > Posy Posy001 escribió: >> Hola soy nuevo y llevo dos dias mirando esto, y no se como arreglarlo, les >> paso un poco del codigo que estoy escribiendo y el error: >> >> voto=raw_input('Introduce tu voto') >> votof=((voto-18)*2)+5 >> print votof >> >> voto-->debe de ser un valor >> >> y meda este fallo cuando lo quiero ejecutar >> >> File "prueba.py", line 6, in ? >> votof=((voto-18)*2)+5 >> TypeError: unsupported operand type(s) for -: 'str' and 'int' >> >> Porq ne da este fallo y como lo puedo arreglar he provado de todo y >> gracias por vuestro foro lo que he leido es alucinante y epero algun dia >> sabes tanto como ustedes >> _______________________________________________ >> 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 Mon Mar 5 13:15:46 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Mon, 05 Mar 2007 13:15:46 +0100 Subject: =?ISO-8859-1?Q?Re=3A_=5BPython-es=5D_enviar_correo_con_?= =?ISO-8859-1?Q?python_-_c=F3digo_entero?= In-Reply-To: <45E84714.7050002@telefonica.net> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> <45E5ACB3.2040807@telefonica.net> <45E69CD1.2020708@gmail.com> <45E6EB4A.6020801@telefonica.net> <45E815FD.1050201@gmail.com> <45E832B6.7010007@telefonica.net> <45E83615.6050205@gmail.com> <45E84714.7050002@telefonica.net> Message-ID: <45EC09F2.4000009@gmail.com> Gracias a ti. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Alatar escribió: > Hola Daniel. > > Lo de la contraseña es una medida de seguridad porque por aquí > trasteamos varias personas y no todas tienen por qué poder lanzar un > mail masivo a todos los clientes. > > En cuanto a lo del mensaje de texto, yo por lo menos me encuentro con > que los formatos son muy distintos a los de html (en cuanto a > disposición de texto, posición de imágenes) y no me parece muy viable > una generación automática. > > Gracias por tu opinión y, cuando hagas el programa, a ver si lo haces > rular y así todos vamos mejorando los respectivos códigos. > > Alatar ;) > > > Daniel Muñiz Fontoira escribió: >> Una de ellas es que que me gustan mas las wx pero eso es cuestión de >> gustos, claro. >> Otra es que en la lista de destinatarios estaría bien poner una leyenda >> ya que por lo menos para mí no estaba claro que significa X y - . >> Por otro lado en preferencias sería interesante poder guardar la >> contraseña del servidor. >> A lo mejor en una tontería, pero lo del mensaje en formato texto a lo >> mejor se podría hacer que fuese automatico y lo sacase del html, así con >> hacer uno es suficiente. >> De momento no se me ocurre nada mas, de todos modos tengo pensado hacer >> uno similar pero con wx que es lo que uso. >> Saludos y gracias. >> >> >> Remitente: >> Daniel Muñiz Fontoira >> Eu uso software libre [1] >> [1]http://www.gnu.org/philosophy/free-sw.gl.html >> >> >> Alatar escribió: >> >>> Por cierto, Daniel, espero tu opinión para poder mejorar el programa ;) >>> >>> De nuevo un saludo, >>> Alatar >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en aditel.org >>> http://listas.aditel.org/listinfo/python-es >>> >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> >> > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From manuelmalo en gmail.com Mon Mar 5 13:16:50 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Mon, 5 Mar 2007 13:16:50 +0100 Subject: Cambiar icono ventana Tkinter In-Reply-To: <511165.40850.qm@web53112.mail.yahoo.com> References: <511165.40850.qm@web53112.mail.yahoo.com> Message-ID: Vale, perdona que habia leido mal tu respuesta, tenias razon, asi si que funciona :-) La funcion photoimage no acepta .ico, pero iconbitmap si. El 3/03/07, Juan Pavon Ruiz escribió: > Cambia el formato de tu logo a ".ico", y prueba esto: > > import Tkinter > root=Tkinter.Tk() > bit = root.iconbitmap('MiImagen.ico') > root.mainloop() > > Espero que te funcione. > > > --------------------------------- > > 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 lasizoillo en gmail.com Mon Mar 5 15:13:54 2007 From: lasizoillo en gmail.com (lasizoillo) Date: Mon, 5 Mar 2007 15:13:54 +0100 Subject: hacer constantes algunas variables de una funcion In-Reply-To: <1172824555.4928.1.camel@skynex.telecable.es> References: <1172749731.11801.16.camel@skynex.telecable.es> <2c9fb0dd0703010415x47a4a935rf23cef765dcc9b95@mail.gmail.com> <1172756438.14392.5.camel@skynex.telecable.es> <2c9fb0dd0703011044o1e58f081y7a5d944e92de5b45@mail.gmail.com> <1172824555.4928.1.camel@skynex.telecable.es> Message-ID: <49414f570703050613h3aa6a090rb99d61083da598f2@mail.gmail.com> No es ninguna tonteria eso que preguntas. En muchas ocasiones puede ser muy util. Tanto, que vendrá incluido con python 2.5 http://docs.python.org/lib/module-functools.html El 2/03/07, tny escribió: > El jue, 01-03-2007 a las 19:44 +0100, Chema Cortes escribió: > > El 1/03/07, tny escribió: > > > El jue, 01-03-2007 a las 13:15 +0100, Chema Cortes escribió: > > > > > > No sé, se me ocurre lo siguiente: > > > > > > > > > > > > def generador(f,**params): > > > > def retf(**args): > > > > args.update(params) > > > > return f(**args) > > > > return retf > > > > > > > > > > > > ¿Es lo que buscabas? > > > > > > Pues parece que no... > > > Igual no me explique bien, o no lo comprobaste... > > > > > > >>> def f(a='a', b='b', c='c', d='d'): > > > ... return [a,b,c,d] > > > ... > > > >>> def generador(f,**parametros): > > > ... def retf(**args): > > > ... args.update(parametros) > > > ... return f(args) > > > > no lo pusiste bien, en el retorno faltan dos asteriscos delante del > > args (compáralo con el código que te puse) > > > > Si señor. > Me quito el sombrero. > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > From flaper87 en gmail.com Mon Mar 5 15:15:32 2007 From: flaper87 en gmail.com (Flaper87) Date: Mon, 5 Mar 2007 10:15:32 -0400 Subject: dudas In-Reply-To: <832900970703050354g400e426ayab9bea951a908678@mail.gmail.com> References: <832900970703050354g400e426ayab9bea951a908678@mail.gmail.com> Message-ID: El día 5/03/07, Posy Posy001 escribió: > > Hola soy nuevo y llevo dos dias mirando esto, y no se como arreglarlo, les > paso un poco del codigo que estoy escribiendo y el error: > > voto=raw_input('Introduce tu voto') > votof=((voto-18)*2)+5 > print votof > > voto-->debe de ser un valor > > y meda este fallo cuando lo quiero ejecutar > > File "prueba.py", line 6, in ? > votof=((voto-18)*2)+5 > TypeError: unsupported operand type(s) for -: 'str' and 'int' > > Porq ne da este fallo y como lo puedo arreglar he provado de todo y > gracias por vuestro foro lo que he leido es alucinante y epero algun dia > sabes tanto como ustedes Si voto debe ser un valor, entonces en vez de raw_inut escribe solamente input. Te quedaria asi: voto=input('Introduce tu voto') votof=((voto-18)*2)+5 print votof -- Flavio Percoco Premoli, A.K.A. [Flaper87] http://www.flaper87.com Usuario Linux registrado #436538 Key Fingerprint: CFC0 C67D FF73 463B 7E55 CF43 25D1 E75B E2DB 15C7 From flaper87 en gmail.com Mon Mar 5 22:18:00 2007 From: flaper87 en gmail.com (Flaper87) Date: Mon, 5 Mar 2007 17:18:00 -0400 Subject: capturar salida del os.system Message-ID: Saludos a todos!!! Necesito capturar la salida de un comando que estoy ejecutando con el os.system. El codigo que etoy utilizando es el siguiente os.system('acpi -b') Necesito que lo que imprime ese comando quede dentro de una variable o bien como texto de un label, pero cuando escribo: bateria = os.system('acpi -b') print bateria lo que sale es lo siguiente: Battery 1: charged, 100% 0 Donde 0 es lo que esta dentro de la variable bateria, cuando quisiera que lo que estuviese dentro de la variable fuese la linea que dice "Battery 1: charged, 100%" Alguna idea de como puedo lograrlo? -- Flavio Percoco Premoli, A.K.A. [Flaper87] http://www.flaper87.com Usuario Linux registrado #436538 Key Fingerprint: CFC0 C67D FF73 463B 7E55 CF43 25D1 E75B E2DB 15C7 From arnau en ehas.org Mon Mar 5 22:35:20 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Mon, 05 Mar 2007 22:35:20 +0100 Subject: capturar salida del os.system In-Reply-To: References: Message-ID: <45EC8D18.3040100@ehas.org> Flaper87 escribió: > Necesito capturar la salida de un comando que estoy ejecutando con el > os.system. El codigo que etoy utilizando es el siguiente > > os.system('acpi -b') > > Necesito que lo que imprime ese comando quede dentro de una variable http://listas.aditel.org/archivos/python-es/2007-February/021094.html From alberto en toscat.net Mon Mar 5 22:37:25 2007 From: alberto en toscat.net (Alberto Valverde) Date: Mon, 5 Mar 2007 22:37:25 +0100 Subject: capturar salida del os.system In-Reply-To: References: Message-ID: <0013437D-F61A-4732-90D6-4DFCD415B5EC@toscat.net> On Mar 5, 2007, at 10:18 PM, Flaper87 wrote: > Saludos a todos!!! > > Necesito capturar la salida de un comando que estoy ejecutando con el > os.system. El codigo que etoy utilizando es el siguiente > > os.system('acpi -b') > > Necesito que lo que imprime ese comando quede dentro de una > variable o bien > como texto de un label, pero cuando escribo: > > bateria = os.system('acpi -b') > print bateria > > lo que sale es lo siguiente: > > Battery 1: charged, 100% > 0 > > Donde 0 es lo que esta dentro de la variable bateria, cuando > quisiera que lo > que estuviese dentro de la variable fuese la linea que dice > "Battery 1: > charged, 100%" > > Alguna idea de como puedo lograrlo? Prueba con el módulo "commands". >>> import commands >>> commands.getstatusoutput("date") (0, 'Mon Mar 5 22:36:51 CET 2007') Alberto From jsemari en terra.es Mon Mar 5 22:52:14 2007 From: jsemari en terra.es (Josemari) Date: Mon, 05 Mar 2007 22:52:14 +0100 Subject: Capturar la IP =?ISO-8859-1?Q?din=E1mica?= In-Reply-To: <200703041302.39069.jordi.f@ati.es> References: <45E872AD.6030704@terra.es> <2ccb93070703021418j3359cd96s458a5f8a77135d6e@mail.gmail.com> <45EAA2F6.9060507@terra.es> <200703041302.39069.jordi.f@ati.es> Message-ID: <45EC910E.8070400@terra.es> Gracias Jordi, Peter, y a Arnau que me lo ha dado "mascao" Saludos Josemari > > From sonajadiabolica en gmail.com Mon Mar 5 22:51:48 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Mon, 5 Mar 2007 15:51:48 -0600 Subject: capturar salida del os.system In-Reply-To: References: Message-ID: <8d9e208f0703051351n789db49fva3cb628dfe49f795@mail.gmail.com> > > bateria = os.system('acpi -b') > print bateria > > lo que sale es lo siguiente: > > Battery 1: charged, 100% > 0 > > Donde 0 es lo que esta dentro de la variable bateria, cuando quisiera que lo > que estuviese dentro de la variable fuese la linea que dice "Battery 1: > charged, 100%" > > Alguna idea de como puedo lograrlo? os.system devuelve el código de salida del programa(un número), que es cero si el programa terminó correctamente, y un numero diferente obtuvo algún error (por ejemplo si el comando intentó entrar a algún fichero que no existe, algún parametro estuvo mal, etc). La manera fácil es con os.popen, aunque actualmente se recomienda utilizar subprocess. >>> import os >>> bateria=os.popen('acpi -b').read() Saludos -- aNgel rEsendiz.! From migueltubia en gmail.com Tue Mar 6 11:58:15 2007 From: migueltubia en gmail.com (=?ISO-8859-1?Q?Miguel_Tub=EDa?=) Date: Tue, 6 Mar 2007 11:58:15 +0100 Subject: Duda con scapy y python (ImportError) Message-ID: <7cf657b90703060258i532a39c5ya9722b2a5b7195e1@mail.gmail.com> Buenos días, tengo una duda a la hora de usar scapy desde python. Aclaro que no tengo mucha idea de Python, recién estoy empezando. Bajé un script de la web que usa scapy para modificar paquetes. Las pruebas las hago en un Debian Sarge R5. Instalo los requisitos que vienen en la web de scapy [1], y luego instalo scapy propiamente dicho (con un apt-get install scapy). El script, que en teoría debería funcionar, tiene una línea, donde da el error, que es "from scapy import *". Al hacer un "python text.py", da el error "ImportError: no module named scapy". Bien, me pregunto, si alguien ha usado scapy... ¿hay que instalar algo más? Buscando he leído de un paquete llamado python-scapy pero no lo encuentro por ninguna parte. ¿En python se debe indicar dónde está scapy? En fin, que toy perdio Gracias por la ayuda... Saludos [1] http://www.secdev.org/projects/scapy/ From migueltubia en gmail.com Tue Mar 6 12:02:06 2007 From: migueltubia en gmail.com (=?ISO-8859-1?Q?Miguel_Tub=EDa?=) Date: Tue, 6 Mar 2007 12:02:06 +0100 Subject: Duda con scapy y python (ImportError) In-Reply-To: <7cf657b90703060258i532a39c5ya9722b2a5b7195e1@mail.gmail.com> References: <7cf657b90703060258i532a39c5ya9722b2a5b7195e1@mail.gmail.com> Message-ID: <7cf657b90703060302q3ab01bf3k551fd061cb9a14d0@mail.gmail.com> Nada, me respondo en parte. Copiando el fichero scapy.py en el directorio donde tengo el script funciona... Un saludo :S El día 6/03/07, Miguel Tubía escribió: > > Buenos días, > tengo una duda a la hora de usar scapy desde python. Aclaro que no tengo > mucha idea de Python, recién estoy empezando. > Bajé un script de la web que usa scapy para modificar paquetes. Las > pruebas las hago en un Debian Sarge R5. Instalo los requisitos que vienen en > la web de scapy [1], y luego instalo scapy propiamente dicho (con un apt-get > install scapy). > El script, que en teoría debería funcionar, tiene una línea, donde da el > error, que es "from scapy import *". > Al hacer un "python text.py", da el error "ImportError: no module named > scapy". > Bien, me pregunto, si alguien ha usado scapy... ¿hay que instalar algo > más? Buscando he leído de un paquete llamado python-scapy pero no lo > encuentro por ninguna parte. ¿En python se debe indicar dónde está scapy? En > fin, que toy perdio > Gracias por la ayuda... > Saludos > > [1] http://www.secdev.org/projects/scapy/ > From elizundia en fitbak.com Tue Mar 6 15:31:25 2007 From: elizundia en fitbak.com (Ekaitz Lizundia) Date: Tue, 06 Mar 2007 15:31:25 +0100 Subject: Listbox Message-ID: <45ED7B3D.5040606@fitbak.com> Saludos a todos, Tengo una interfaz con Tkinter donde tengo 2 Listbox. Pero no me deja seleccionar los 2 a la vez. O hago seleccion del primer listbox o lo hago del segundo, pero de los 2 no me deja. ¿ Como puedo solucionar para que pueda seleccionar los 2 listbos ? No se si me explico bien.... From elizundia en fitbak.com Tue Mar 6 15:42:15 2007 From: elizundia en fitbak.com (Ekaitz Lizundia) Date: Tue, 06 Mar 2007 15:42:15 +0100 Subject: Listbox In-Reply-To: <45ED7B3D.5040606@fitbak.com> References: <45ED7B3D.5040606@fitbak.com> Message-ID: <45ED7DC7.8010208@fitbak.com> Me autorespondo: Basta con poner exportselection=0 dentro de cada listbox Ekaitz Lizundia escribió: > Saludos a todos, > > Tengo una interfaz con Tkinter donde tengo 2 Listbox. Pero no me deja > seleccionar los 2 a la vez. > O hago seleccion del primer listbox o lo hago del segundo, pero de los > 2 no me deja. ¿ Como puedo solucionar para que pueda seleccionar los 2 > listbos ? > > No se si me explico bien.... > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From posy0001 en gmail.com Tue Mar 6 17:12:42 2007 From: posy0001 en gmail.com (Posy Posy001) Date: Tue, 6 Mar 2007 17:12:42 +0100 Subject: Muchisimas gracias Message-ID: <832900970703060812y6efcda9av80e48206f0cfe7ed@mail.gmail.com> Hola me gustaria dar las gracias a toda la gente que me ha respondido mi duda sobre el python muchas gracias From gagsl-py2 en yahoo.com.ar Wed Mar 7 07:21:12 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Wed, 07 Mar 2007 03:21:12 -0300 Subject: Duda con scapy y python (ImportError) References: <7cf657b90703060258i532a39c5ya9722b2a5b7195e1@mail.gmail.com> <7cf657b90703060302q3ab01bf3k551fd061cb9a14d0@mail.gmail.com> Message-ID: En Tue, 06 Mar 2007 08:02:06 -0300, Miguel Tubía escribió: > Nada, me respondo en parte. > Copiando el fichero scapy.py en el directorio donde tengo el script > funciona... Funciona pero es un poco desprolijo... Deberias copiarlo en .../pythonX.X/site-packages En el sitio de scapy hay unas instrucciones de instalacion para OpenBSD que mas o menos se aplican, luego de instalar las dependencias, al final te dice dónde poner el scapy.py -- Gabriel Genellina ------------ 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 Mar 7 12:17:02 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Wed, 07 Mar 2007 12:17:02 +0100 Subject: no mostrar scroll horizontal en wx.grid Message-ID: <45EE9F2E.9080907@gmail.com> Hola: Tengo un wx.grid y me gustaría que no mostrase el scroll hozontal. Como puedo hacer? Gracias -- Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html From malku_mario en hotmail.com Wed Mar 7 21:40:27 2007 From: malku_mario en hotmail.com (mario alberto morales solis) Date: Wed, 07 Mar 2007 20:40:27 +0000 Subject: reemplazar datos de una cadena en orden inverso In-Reply-To: <200702230403.53481.py@ch3m4.org> References: <200702230403.53481.py@ch3m4.org> Message-ID: holaaaaaaaaaaaaaaa comunidad python... tengo un grandisimo problema.... soy el mas novato de entre los novatos que usan python y tengo ke entregar un proyecyo que funcione en linux, nos asignaron crear un procesador de textos sencillo pero hecho totalmente en python... mi pregunta es habra alguno de ustedes que tenga algun procesador de textos que me lo pueda pasar... o al menos que me diga como lo inicio o que onda porque la verdad en python estoy perdido y ese proyecto lo tengo que entregar el 15 de febrero. porfavor si alguien puede ayudarme se lo agradecere muchoo y me salvaran la vida atte: mario alberto pueden enviarme la respuesta en las siguientes direcciones de correo electronico [1]malku_mario en hotmail.com [2]riki_shi en hotmail.com [3]chockersolis en yahoo.com.mx de antemano muuuchas gracias. ______________________________________________________________ From: Chema Cortes Reply-To: La lista de python en castellano To: La lista de python en castellano Subject: Re: [Python-es] Re: reemplazar datos de una cadena en orden inverso Date: Fri, 23 Feb 2007 04:03:52 +0100 >El Martes, 20 de Febrero de 2007 23:10, Oscar de Anda escribió: > > Gracias a todos por su amable respuesta. > > > > Esta última opción, la de Luis Miguel, me parece muy interesante, lo voy > > a intentar de esa forma. > >Aunque también te recomiendo que uses esta opción, sólo funcionará si el texto >está bien formado XML. Una alternativa podría ser usar el módulo 're'. Con un >poco de pericia, se puede incluso arreglar algún que otro error en el formato >(mayúsculas mal puestas, espacios que sobran, añadir saltos de línea, etc). >Aquí va un ejemplo: > >import re > >XML="

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

" > >PAT="""(?xi) #verbose+case insensitive >### >### Patrón para dividir el texto por subtítulos >### >

.*?

#subtitulo >(?:

.*?

)* #parrafos dependientes >""" > >subtitulos=re.findall(PAT,XML) > >#cambios en el último subtitulo >s=subtitulos[-1] >subtitulos[-1]=re.sub("<(/?)h2>",r"<\1em>",s) > >#unión de todos los elementos separando en líneas cada subtítulo >XML="\n".join(subtitulos) > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ El correo electrónico más usado en el mundo [4]Haz clic aquí Prodigy/MSN Hotmail References 1. mailto:malku_mario en hotmail.com 2. mailto:riki_shi en hotmail.com 3. mailto:chockersolis en yahoo.com.mx 4. http://g.msn.com/8HMBESMX/2755??PS=47575 From ximo-listas en ono.com Wed Mar 7 22:30:39 2007 From: ximo-listas en ono.com (Ximo Nadal) Date: Wed, 07 Mar 2007 22:30:39 +0100 Subject: Capturar la IP =?ISO-8859-1?Q?din=E1mica?= In-Reply-To: <45EF2DD7.5000901@yahoo.es> References: <45E872AD.6030704@terra.es> <45E88AAA.5020201@ono.com> <45EF2DD7.5000901@yahoo.es> Message-ID: <45EF2EFF.5080800@ono.com> Josemari wrote: > Quiero capturar con un programa en Python la IP que me da teléfonica > en mi ADSL. ¿Podrías indicarme con qué librería, módulo o sentencia > puedo hacerlo? Hola: He visto que ya han aportado otras soluciones. Esta tambien puede ser interesante: import urllib2 ext_ip = urllib2.urlopen('http://whatismyip.org/').read() print ext_ip Precisamente en comp.lang.python se ha tratado el tema estos dias y un tal Sergio Correia aportaba este codigo. Saludos, -- Ximo Nadal Usando Debian GNU/Linux From gagsl-py2 en yahoo.com.ar Thu Mar 8 00:51:03 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Wed, 07 Mar 2007 20:51:03 -0300 Subject: reemplazar datos de una cadena en orden inverso References: <200702230403.53481.py@ch3m4.org> Message-ID: En Wed, 07 Mar 2007 17:40:27 -0300, mario alberto morales solis escribió: > tengo un grandisimo problema.... soy el mas novato de entre los > novatos que usan python y tengo ke entregar un proyecyo que funcione > en linux, nos asignaron crear un procesador de textos sencillo pero > hecho totalmente en python... mi pregunta es > > habra alguno de ustedes que tenga algun procesador de textos que me lo > pueda pasar... o al menos que me diga como lo inicio o que onda porque > la verdad en python estoy perdido y ese proyecto lo tengo que entregar > el 15 de febrero. Acá, sólo Python. Consultas sobre cómo construir una máquina del tiempo, en la ventanilla de al lado. Yo empezaría leyendo http://www.chochurro.com/wordpress/?p=70 (La traducción "oficial" parece estar incompleta, o basada en una version anterior del mismo documento) -- 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 Mar 8 12:39:25 2007 From: a.porrua en gmail.com (tny) Date: Thu, 08 Mar 2007 12:39:25 +0100 Subject: eficiencia de numpy.array Message-ID: <1173353965.30229.7.camel@skynex.telecable.es> Es realmente más eficiente el array de numpy que la lista de python?? Para ver si realmente me traía cuenta emplear array de numpy he hecho unas pruebas y parece que array no sale muy bien parada... >>> from numpy import array >>> import time >>> def prueba1(): antes= time.time() a=[1,2] i=0 while i<10000000: b=a[0] a[0]=a[1] a[1]=b i+=1 print time.time()-antes >>> def prueba2(): antes=time.time() a=1 aa=2 i=0 while i<10000000: b=a a=aa aa=b i+=1 print time.time()-antes >>> def prueba3(): antes= time.time() a=array([1,2]) i=0 while i<10000000: b=a[0] a[0]=a[1] a[1]=b i+=1 print time.time()-antes >>> prueba1() 6.6495859623 >>> prueba2() 4.05742502213 >>> prueba3() 13.1137928963 ... >>> print numpy.version.version 1.0rc1 >>> print sys.version 2.4.4c1 (#2, Oct 11 2006, 21:51:02) [GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)] ubunto 6.10 AthlonXP 2800+ con 512DDR ------------ 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 Mar 8 13:28:29 2007 From: flaper87 en gmail.com (Flaper87) Date: Thu, 8 Mar 2007 08:28:29 -0400 Subject: Label en el taskbar Message-ID: Saludos a todos!! Estoy haciendo una aplicacion en la cual necesito que en vez de tener un icono en el taskbar, system tray...(ya ni se como llamarlo), tenga un label como el de la hora, que muestra numeros en vez de un icono. Estoy trabajando con python 2.4, wxpython 2.6, wxglade, y en Debian Etch. -- Flavio Percoco Premoli, A.K.A. [Flaper87] http://www.flaper87.com Usuario Linux registrado #436538 Key Fingerprint: CFC0 C67D FF73 463B 7E55 CF43 25D1 E75B E2DB 15C7 From faltet en carabos.com Thu Mar 8 13:41:30 2007 From: faltet en carabos.com (Francesc Altet) Date: Thu, 08 Mar 2007 13:41:30 +0100 Subject: eficiencia de numpy.array In-Reply-To: <1173353965.30229.7.camel@skynex.telecable.es> References: <1173353965.30229.7.camel@skynex.telecable.es> Message-ID: <1173357690.2555.12.camel@localhost.localdomain> El dj 08 de 03 del 2007 a les 12:39 +0100, en/na tny va escriure: > Es realmente más eficiente el array de numpy que la lista de python?? > Para ver si realmente me traía cuenta emplear array de numpy he hecho > unas pruebas y parece que array no sale muy bien parada... Pues es como todo en este mundo: depende para qué lo quieras usar. En asignaciones puras, la lista pura de Python está muy optimizada, y las características adicionales (fancy indexing, etc) de los objectos numpy les impide llegar a las prestaciones de la listas en este caso concreto. Sin embargo, como contenedores de listas de números (o objetos) multidimensionales los objetos de numpy son más compactos (requieren menos memoria) y además, para realizar operaciones matemáticas con objetos de una cierta magnitud, mucho más rápidos. A modo de ejemplo, considera el siguiente benchmark: from numpy import array import time N = 10000 def prueba1(): a=[1,2]*1000 antes= time.time() for i in xrange(N): b = sum(a) print time.time()-antes def prueba3(): a=array([1,2]*1000) antes= time.time() for i in xrange(N): b = a.sum() print time.time()-antes prueba1() prueba3() que, al correrlo en mi máquina da: 2.69558286667 0.320109128952 o sea, que numpy puede hacer las sumas 10x más rápido. En fin, que hay que conocer los defectos y las partes positivas de los objetos que usas si es que quieres sacarles el máximo rendimiento. Por cierto, en tu código original, es más rápido hacer el siguiente tipo de asignación: a[1], a[0] = a[0], a[1] que el paso por una variable temporal: b=a[0] a[0]=a[1] a[1]=b Saludos! -- 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 a.porrua en gmail.com Thu Mar 8 14:20:32 2007 From: a.porrua en gmail.com (tny) Date: Thu, 08 Mar 2007 14:20:32 +0100 Subject: eficiencia de numpy.array In-Reply-To: <1173357690.2555.12.camel@localhost.localdomain> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> Message-ID: <1173360032.32764.5.camel@skynex.telecable.es> El jue, 08-03-2007 a las 13:41 +0100, Francesc Altet escribió: El dj 08 de 03 del 2007 a les 12:39 +0100, en/na tny va escriure: > > Es realmente más eficiente el array de numpy que la lista de python?? > > Para ver si realmente me traía cuenta emplear array de numpy he hecho > > unas pruebas y parece que array no sale muy bien parada... > > Pues es como todo en este mundo: depende para qué lo quieras usar. > En asignaciones puras, la lista pura de Python está muy optimizada, y > las características adicionales (fancy indexing, etc) de los objectos > numpy les impide llegar a las prestaciones de la listas en este caso > concreto. > > Sin embargo, como contenedores de listas de números (o objetos) > multidimensionales los objetos de numpy son más compactos (requieren > menos memoria) y además, para realizar operaciones matemáticas con > objetos de una cierta magnitud, mucho más rápidos. > ... Gracias por la aclaración. Pues tengo entre manos muchas operaciones matemáticas, y con listas de un buen tamaño, pero no son operaciones como sum que pueda realizar la propia lista, y la memoria que ocupe no es, en este caso, importante así que me voy a decantar por las listas de python. ------------ 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 Mar 8 15:16:02 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 8 Mar 2007 15:16:02 +0100 Subject: eficiencia de numpy.array In-Reply-To: <1173360032.32764.5.camel@skynex.telecable.es> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> Message-ID: <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> El 8/03/07, tny escribió: > Pues tengo entre manos muchas operaciones matemáticas, y con listas de > un buen tamaño, pero no son operaciones como sum que pueda realizar la > propia lista, y la memoria que ocupe no es, en este caso, importante así > que me voy a decantar por las listas de python. Resulta extraño que preguntes sobre "eficiencia", para que luego digas que no vas a tener problemas con lo que ocupe la lista :-P De todos modos, el numpy está pensado por y para matemáticos. Aunque no sea por "efectividad", deberías mirarlo desde el punto de vista matemático. Los arrays del numpy aceptan tuplas como índices multidimensionales, así como el rebanado "extendido" ("extended slice"). Como ejemplo del primer caso (índices multidimensionales), una forma rápida de obtener todos los elementos de un array mayores de 100: a[a>100] (con 'a>100' se obtiene un array de booleanos) Como ejemplo de slicing extendiddo, si tienes una matriz n-dimensional, sumar una columna a otra sería: a[...,i]+=a[...,j] Pero hay mucho más, como el cálculo matricial, FFT, LinearAlgebra,... From a.porrua en gmail.com Thu Mar 8 15:43:13 2007 From: a.porrua en gmail.com (tny) Date: Thu, 08 Mar 2007 15:43:13 +0100 Subject: eficiencia de numpy.array In-Reply-To: <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> Message-ID: <1173364993.4938.5.camel@skynex.telecable.es> El jue, 08-03-2007 a las 15:16 +0100, Chema Cortes escribió: > El 8/03/07, tny escribió: > > > Pues tengo entre manos muchas operaciones matemáticas, y con listas de > > un buen tamaño, pero no son operaciones como sum que pueda realizar la > > propia lista, y la memoria que ocupe no es, en este caso, importante así > > que me voy a decantar por las listas de python. > > Resulta extraño que preguntes sobre "eficiencia", para que luego digas > que no vas a tener problemas con lo que ocupe la lista :-P > Si hay que escoger entre consumo de recursos y velocidad me quedo con la velocidad, en este caso. Estoy haciendo unas librerías para cifrado... Cuando las terminé le echaré un ojo a numpy. Aunque tengo un montón de cosas que me apetece ir mirando, (pygame, c, cgi,css,...), todo será cuestión de organizar el tiempo. > De todos modos, el numpy está pensado por y para matemáticos. Aunque > no sea por "efectividad", deberías mirarlo desde el punto de vista > matemático. Los arrays del numpy aceptan tuplas como índices > multidimensionales, así como el rebanado "extendido" ("extended > slice"). > > Como ejemplo del primer caso (índices multidimensionales), una forma > rápida de obtener todos los elementos de un array mayores de 100: > > a[a>100] > > (con 'a>100' se obtiene un array de booleanos) > > Como ejemplo de slicing extendiddo, si tienes una matriz > n-dimensional, sumar una columna a otra sería: > > a[...,i]+=a[...,j] > > > Pero hay mucho más, como el cálculo matricial, FFT, LinearAlgebra,... > _______________________________________________ > 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 faltet en carabos.com Thu Mar 8 16:31:36 2007 From: faltet en carabos.com (Francesc Altet) Date: Thu, 08 Mar 2007 16:31:36 +0100 Subject: eficiencia de numpy.array In-Reply-To: <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> Message-ID: <1173367896.2555.55.camel@localhost.localdomain> El dj 08 de 03 del 2007 a les 15:16 +0100, en/na Chema Cortes va escriure: > El 8/03/07, tny escribió: > > > Pues tengo entre manos muchas operaciones matemáticas, y con listas de > > un buen tamaño, pero no son operaciones como sum que pueda realizar la > > propia lista, y la memoria que ocupe no es, en este caso, importante así > > que me voy a decantar por las listas de python. > > Resulta extraño que preguntes sobre "eficiencia", para que luego digas > que no vas a tener problemas con lo que ocupe la lista :-P > > De todos modos, el numpy está pensado por y para matemáticos. Aunque > no sea por "efectividad", deberías mirarlo desde el punto de vista > matemático. Bueno, no estoy de acuerdo con eso de que numpy esté por y para matemáticos, al menos en el sentido 'estricto' de matemático. Yo como máximo diría que está hecho por 'calculistas' para 'calculistas'. Y sin embargo, con esta última afirmación tampoco estaria haciendo del todo justicia a NumPy. Aparte de los calculistas, numpy brilla con luz propia en otros aspectos como por ejemplo como contenedores de datos complejos (que a posteriori pueden ser usados en 'cálculos' tradicionales o no) con mucha eficiencia o el tema de hacer ordenaciones a velocidades de C y con un consumo muy eficiente de memoria. Cuando digo contenedores 'complejos' me refiero al hecho de que numpy no sólo es capaz de almacenar arrays homogéneos (todos los componentes son del mismo tipo), sino también heterogéneos (los componentes pueden ser de tipos diferentes, tipo tabla SQL) e incluso heterogéneos con varios niveles de anidamiento. Esto es algo que ya se empezó a introducir en numarray pero que se ha integrado y mejorado sustancialmente en NumPy. Todo esto hace de NumPy una libreria de uso yo diria que básico en bastantes campos diferentes de los de 'calculismo'. Por poner un ejemplo, uno muy importante puede ser el de las bases de datos. De vez en cuando aparece gente en las listas preguntando por qué los interfaces de python suelen ser tan lentos cuando hacen consultas a bases de datos cuyo conjunto de resultados es muy grande. La respuesta es precisamente que Python no puede crear contenedores complejos (descarto pues el módulo array) para grandes cantidades de datos de una manera rápida y eficiente. NumPy los tiene, como tiene también capacidades óptimas de ordenación de dichos contenedores. Así pues, seguramente en el futuro próximo veremos un acercamiento a NumPy por parte de los programadores responsables de dichos interfaces para base de datos. Hacerlo les puede suponer grandes ventajas y reducir, casi en su totalidad, la brecha que existe entre las prestaciones que logran actualmente (me refiero siempre al caso de resultados cantidades de información) y las que se obtienen con programas hechos directamente en C. > Los arrays del numpy aceptan tuplas como índices > multidimensionales, así como el rebanado "extendido" ("extended > slice"). Como ejemplo del primer caso (índices multidimensionales), una forma > rápida de obtener todos los elementos de un array mayores de 100: > > a[a>100] > > (con 'a>100' se obtiene un array de booleanos) > > Como ejemplo de slicing extendiddo, si tienes una matriz > n-dimensional, sumar una columna a otra sería: > > a[...,i]+=a[...,j] Bueno, para ser exactos, habría que decir que Python implementa, desde hace algunas versiones (2.3) el rebanado 'extendido', aunque sólo para objetos unidimensionales, como se puede apreciar en: http://www.python.org/doc/2.3.5/whatsnew/section-slices.html > Pero hay mucho más, como el cálculo matricial, FFT, LinearAlgebra,... Correcto. Pero también hay que decir que existe una corriente ahora mismo dentro de la comunidad de NumPy de empezar a mover parte del código que se puede considerar estrictamente 'calculista' fuera de NumPy para meterlo en SciPy. De esta manera se conseguiria un paquete muy compacto (NumPy) que hace relativamente pocas cosas pero que las hace muy bien y que, *muy importante*, sea fácil de instalar, y la parte más complicada y más de cálculo en el sentido científico ponerla en SciPy, cuyo tamaño es mucho mayor y *bastante* más difícil de instalar, sobretodo si quiere obtener soporte de cálculo de muy altas prestaciones (BLAS, LAPACK, etc.). Saludos, -- 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 pepe en diselpro.com Thu Mar 8 18:23:26 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Thu, 08 Mar 2007 18:23:26 +0100 Subject: eficiencia de numpy.array In-Reply-To: <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> Message-ID: <45F0468E.8030207@diselpro.com> >> (con 'a>100' se obtiene un array de booleanos) Y esto como se implementa en python ??? ¿Sobreescribiendo el método __cmp__ del objeto array? Saludos. Chema Cortes escribió: > El 8/03/07, tny escribió: > >> Pues tengo entre manos muchas operaciones matemáticas, y con listas de >> un buen tamaño, pero no son operaciones como sum que pueda realizar la >> propia lista, y la memoria que ocupe no es, en este caso, importante así >> que me voy a decantar por las listas de python. > > Resulta extraño que preguntes sobre "eficiencia", para que luego digas > que no vas a tener problemas con lo que ocupe la lista :-P > > De todos modos, el numpy está pensado por y para matemáticos. Aunque > no sea por "efectividad", deberías mirarlo desde el punto de vista > matemático. Los arrays del numpy aceptan tuplas como índices > multidimensionales, así como el rebanado "extendido" ("extended > slice"). > > Como ejemplo del primer caso (índices multidimensionales), una forma > rápida de obtener todos los elementos de un array mayores de 100: > > a[a>100] > > (con 'a>100' se obtiene un array de booleanos) > > Como ejemplo de slicing extendiddo, si tienes una matriz > n-dimensional, sumar una columna a otra sería: > > a[...,i]+=a[...,j] > > > Pero hay mucho más, como el cálculo matricial, FFT, LinearAlgebra,... > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Thu Mar 8 19:15:30 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 8 Mar 2007 19:15:30 +0100 Subject: eficiencia de numpy.array In-Reply-To: <1173367896.2555.55.camel@localhost.localdomain> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <1173367896.2555.55.camel@localhost.localdomain> Message-ID: <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> El 8/03/07, Francesc Altet escribió: > El dj 08 de 03 del 2007 a les 15:16 +0100, en/na Chema Cortes va > escriure: > > De todos modos, el numpy está pensado por y para matemáticos. Aunque > > no sea por "efectividad", deberías mirarlo desde el punto de vista > > matemático. > > Bueno, no estoy de acuerdo con eso de que numpy esté por y para > matemáticos, al menos en el sentido 'estricto' de matemático. Yo como > máximo diría que está hecho por 'calculistas' para 'calculistas'. Y sin > embargo, con esta última afirmación tampoco estaria haciendo del todo > justicia a NumPy. Totalmente de acuerdo, si por "calculista" se entiende lo que es un "NumberCruncher". Que numpy se emplea en más ámbitos que las matemáticas puras es clara muestra el que estamos hablándolo ahora mismo dos físicos :-D > Aparte de los calculistas, numpy brilla con luz propia en otros aspectos > como por ejemplo como contenedores de datos complejos (que a posteriori > pueden ser usados en 'cálculos' tradicionales o no) con mucha eficiencia > o el tema de hacer ordenaciones a velocidades de C y con un consumo muy > eficiente de memoria. Aún así, desde que descubrí las "tablas" del lua no quiero otra cosa. Me gustaría que mucho que python tuviera ese grado de simpleza y toque "minimalista" que tiene lua; pero, en cambio, sólo veo interfaces cada vez más y más complejos, sin comprender con claridad las ventajas que puedan proporcionar. > Cuando digo contenedores 'complejos' me refiero al > hecho de que numpy no sólo es capaz de almacenar arrays homogéneos > (todos los componentes son del mismo tipo), sino también heterogéneos > (los componentes pueden ser de tipos diferentes, tipo tabla SQL) e > incluso heterogéneos con varios niveles de anidamiento. Esto es algo que > ya se empezó a introducir en numarray pero que se ha integrado y > mejorado sustancialmente en NumPy. Todo esto hace de NumPy una libreria > de uso yo diria que básico en bastantes campos diferentes de los de > 'calculismo'. No he visto cómo hacer estos contenedores heterogéneos. ¿Puedes poner algún ejemplo? (por ejemplo, mezclar float y complex). > > Los arrays del numpy aceptan tuplas como índices > > multidimensionales, así como el rebanado "extendido" ("extended > > slice"). Como ejemplo del primer caso (índices multidimensionales), una forma > > rápida de obtener todos los elementos de un array mayores de 100: > > Bueno, para ser exactos, habría que decir que Python implementa, desde > hace algunas versiones (2.3) el rebanado 'extendido', aunque sólo para > objetos unidimensionales, como se puede apreciar en: > > http://www.python.org/doc/2.3.5/whatsnew/section-slices.html En realidad, sólo se introdujo el "interface" de los slices. A parte de numpy, sólo está implementado en algún módulo que ahora no recuerdo. Pero, por defecto, no se pueden usar como índices otra cosa que números enteros. De hecho, en python 2.5 se ha tenido que introducir un nuevo interface (__index__) que necesitaba numpy para poder tener índices no enteros (eg: float). > > Pero hay mucho más, como el cálculo matricial, FFT, LinearAlgebra,... > > Correcto. Pero también hay que decir que existe una corriente ahora > mismo dentro de la comunidad de NumPy de empezar a mover parte del > código que se puede considerar estrictamente 'calculista' fuera de NumPy > para meterlo en SciPy. De esta manera se conseguiria un paquete muy > compacto (NumPy) que hace relativamente pocas cosas pero que las hace > muy bien y que, *muy importante*, sea fácil de instalar, y la parte más > complicada y más de cálculo en el sentido científico ponerla en SciPy, > cuyo tamaño es mucho mayor y *bastante* más difícil de instalar, > sobretodo si quiere obtener soporte de cálculo de muy altas prestaciones > (BLAS, LAPACK, etc.). Muy interesante. Esperemos que no se demore tanto como el libro de numpy ;-) From pych3m4 en gmail.com Thu Mar 8 19:24:39 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 8 Mar 2007 19:24:39 +0100 Subject: eficiencia de numpy.array In-Reply-To: <45F0468E.8030207@diselpro.com> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <45F0468E.8030207@diselpro.com> Message-ID: <2c9fb0dd0703081024r5d123c82jcfc31271facb4478@mail.gmail.com> El 8/03/07, Pepe Aracil escribió: > >> (con 'a>100' se obtiene un array de booleanos) > > Y esto como se implementa en python ??? > ¿Sobreescribiendo el método __cmp__ del objeto array? No hay que hacer nada. Es algo que ya te proporciona el objeto array. Pero supongo que tu pregunta es más curiosidad que otra cosa. El método que se encarga de esta "magia" es __gt__ (greater than). El __cmp__ retorna siempre uno de los tres valores posibles: (-1, 0, 1). Con a>100 lo que se retorna un array de las mismas dimensiones (shape) que el original, pero sustituyendo cada elemento por el resultado del test >100. Es similar a la función map(), pero que funciona con arrays multidimensionales. From faltet en carabos.com Thu Mar 8 19:25:36 2007 From: faltet en carabos.com (Francesc Altet) Date: Thu, 08 Mar 2007 19:25:36 +0100 Subject: eficiencia de numpy.array In-Reply-To: <45F0468E.8030207@diselpro.com> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <45F0468E.8030207@diselpro.com> Message-ID: <1173378336.2555.74.camel@localhost.localdomain> El dj 08 de 03 del 2007 a les 18:23 +0100, en/na Pepe Aracil va escriure: > >> (con 'a>100' se obtiene un array de booleanos) > > Y esto como se implementa en python ??? > ¿Sobreescribiendo el método __cmp__ del objeto array? No. El __cmp__ no sirve porque en una comparación (a.__cmp__(b)), éste sólo devuelve un número (negativo si a < b, cero si 'a == b' o positivo si 'a > b'). Lo que se usa para sobrecargar en este caso son la comparaciones 'enriquecidas' (rich comparisons), como el __le__, __eq__, __gt__, etc. Éstos operadores, al revés que __cmp__, sí que pueden devolver objetos generales. Se introdujeron en Python 2.1, seguramente debido a las necesidades de la comunidad calculista (alrededor de Numeric, por aquel entonces). Además de los operadores de comparaciones enriquecidas, NumPy también soporta los operadores __and__ y __or__, de manera que se puede hacer: a[(a > 10) & (a < 100)] que selecciona los valores comprendidos entre 10 y 100. Por desgracia, y como habrás observado, __and__ se mapea al operador bit-a-bit '&' y __or__ al '|' (también bit-a-bit), mientras que los operadores lógicos ('and' y 'or') no se pueden sobrecargar actualmente. Así que esto nos impide hacer cosas como: a[a > 10 and a < 100] que seria mucho más lógico. Existen intentos de añadir la posibilidad de sobrecargar los operadores lógicos, pero la cosa no es sencilla, como se puede ver en el PEP 335, y en este thread: http://mail.python.org/pipermail/python-dev/2004-September/048763.html Saludos, -- 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 cervera en ffn.ub.es Thu Mar 8 19:42:10 2007 From: cervera en ffn.ub.es (Pau Cervera Badia) Date: Thu, 08 Mar 2007 19:42:10 +0100 Subject: eficiencia de numpy.array In-Reply-To: <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> References: <1173353965.30229.7.camel@skynex.telecable.es><1173357690.2555.1 2.camel@localhost.localdomain><1173360032.32764.5.camel@skynex.telecable.es ><2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com><1173367896.2 555.55.camel@localhost.localdomain> <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> Message-ID: <45F05902.3030605@ffn.ub.es> Ahora que habláis de esto, he conseguido usar numpy para calcular valores propios de matrices con el linalg, pero voy un poco a ciegas porqué no encuentro la documentación de forma fácil y me tengo que apañar con el help y lo que hay en la web de scipy. Sabéis de algo más user-friendly? (Soy muy novato en el numpy, un par de días.) Gracias, Y un poco off-topic: el linalg va bien para matrices sparse? Chema Cortes wrote: > El 8/03/07, Francesc Altet escribió: >> El dj 08 de 03 del 2007 a les 15:16 +0100, en/na Chema Cortes va >> escriure: >> > De todos modos, el numpy está pensado por y para matemáticos. Aunque >> > no sea por "efectividad", deberías mirarlo desde el punto de vista >> > matemático. >> >> Bueno, no estoy de acuerdo con eso de que numpy esté por y para >> matemáticos, al menos en el sentido 'estricto' de matemático. Yo como >> máximo diría que está hecho por 'calculistas' para 'calculistas'. Y sin >> embargo, con esta última afirmación tampoco estaria haciendo del todo >> justicia a NumPy. > > Totalmente de acuerdo, si por "calculista" se entiende lo que es un > "NumberCruncher". Que numpy se emplea en más ámbitos que las > matemáticas puras es clara muestra el que estamos hablándolo ahora > mismo dos físicos :-D > > >> Aparte de los calculistas, numpy brilla con luz propia en otros aspectos >> como por ejemplo como contenedores de datos complejos (que a posteriori >> pueden ser usados en 'cálculos' tradicionales o no) con mucha eficiencia >> o el tema de hacer ordenaciones a velocidades de C y con un consumo muy >> eficiente de memoria. > > Aún así, desde que descubrí las "tablas" del lua no quiero otra cosa. > Me gustaría que mucho que python tuviera ese grado de simpleza y toque > "minimalista" que tiene lua; pero, en cambio, sólo veo interfaces cada > vez más y más complejos, sin comprender con claridad las ventajas que > puedan proporcionar. > > >> Cuando digo contenedores 'complejos' me refiero al >> hecho de que numpy no sólo es capaz de almacenar arrays homogéneos >> (todos los componentes son del mismo tipo), sino también heterogéneos >> (los componentes pueden ser de tipos diferentes, tipo tabla SQL) e >> incluso heterogéneos con varios niveles de anidamiento. Esto es algo que >> ya se empezó a introducir en numarray pero que se ha integrado y >> mejorado sustancialmente en NumPy. Todo esto hace de NumPy una libreria >> de uso yo diria que básico en bastantes campos diferentes de los de >> 'calculismo'. > > No he visto cómo hacer estos contenedores heterogéneos. ¿Puedes poner > algún ejemplo? (por ejemplo, mezclar float y complex). > >> > Los arrays del numpy aceptan tuplas como índices >> > multidimensionales, así como el rebanado "extendido" ("extended >> > slice"). Como ejemplo del primer caso (índices multidimensionales), >> una forma >> > rápida de obtener todos los elementos de un array mayores de 100: >> >> Bueno, para ser exactos, habría que decir que Python implementa, desde >> hace algunas versiones (2.3) el rebanado 'extendido', aunque sólo para >> objetos unidimensionales, como se puede apreciar en: >> >> http://www.python.org/doc/2.3.5/whatsnew/section-slices.html > > En realidad, sólo se introdujo el "interface" de los slices. A parte > de numpy, sólo está implementado en algún módulo que ahora no > recuerdo. Pero, por defecto, no se pueden usar como índices otra cosa > que números enteros. De hecho, en python 2.5 se ha tenido que > introducir un nuevo interface (__index__) que necesitaba numpy para > poder tener índices no enteros (eg: float). > > >> > Pero hay mucho más, como el cálculo matricial, FFT, LinearAlgebra,... >> >> Correcto. Pero también hay que decir que existe una corriente ahora >> mismo dentro de la comunidad de NumPy de empezar a mover parte del >> código que se puede considerar estrictamente 'calculista' fuera de NumPy >> para meterlo en SciPy. De esta manera se conseguiria un paquete muy >> compacto (NumPy) que hace relativamente pocas cosas pero que las hace >> muy bien y que, *muy importante*, sea fácil de instalar, y la parte más >> complicada y más de cálculo en el sentido científico ponerla en SciPy, >> cuyo tamaño es mucho mayor y *bastante* más difícil de instalar, >> sobretodo si quiere obtener soporte de cálculo de muy altas prestaciones >> (BLAS, LAPACK, etc.). > > Muy interesante. Esperemos que no se demore tanto como el libro de > numpy ;-) > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- Pau Cervera i Badia (e-mail cervera en ffn.ub.es) { Departament de Física Fonamental Martí i Franqués, 1 Universitat de Barcelona Planta 3, despatx 346 bis 08028 Barcelona tel: +34 934 039 708 Spain "Simple things should be simple, complex things should be possible." -- Alan Kay return http://www.ffn.ub.es/%7Ecervera/ } From rbaquerizo en ehas.org Thu Mar 8 19:52:06 2007 From: rbaquerizo en ehas.org (Reynaldo Baquerizo) Date: Thu, 08 Mar 2007 13:52:06 -0500 Subject: eficiencia de numpy.array In-Reply-To: <45F05902.3030605@ffn.ub.es> References: <1173353965.30229.7.camel@skynex.telecable.es><1173357690.2555.1 2.camel@localhost.localdomain><1173360032.32764.5.camel@skynex.telecable.es ><2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com><1173367896.2 555.55.camel@localhost.localdomain> <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> <45F05902.3030605@ffn.ub.es> Message-ID: <45F05B56.80305@ehas.org> Algo de documentación podrías conseguirlo de MathWorks pues hay funciones bastantes similares a las de Matlab. Pau Cervera Badia escribió: > Ahora que habláis de esto, he conseguido usar numpy para calcular > valores propios de matrices con el linalg, pero voy un poco a ciegas > porqué no encuentro la documentación de forma fácil y me tengo que > apañar con el help y lo que hay en la web de scipy. Sabéis de algo más > user-friendly? (Soy muy novato en el numpy, un par de días.) > > Gracias, > > Y un poco off-topic: el linalg va bien para matrices sparse? > > Chema Cortes wrote: >> El 8/03/07, Francesc Altet escribió: >>> El dj 08 de 03 del 2007 a les 15:16 +0100, en/na Chema Cortes va >>> escriure: >>> > De todos modos, el numpy está pensado por y para matemáticos. Aunque >>> > no sea por "efectividad", deberías mirarlo desde el punto de vista >>> > matemático. >>> >>> Bueno, no estoy de acuerdo con eso de que numpy esté por y para >>> matemáticos, al menos en el sentido 'estricto' de matemático. Yo como >>> máximo diría que está hecho por 'calculistas' para 'calculistas'. Y sin >>> embargo, con esta última afirmación tampoco estaria haciendo del todo >>> justicia a NumPy. >> >> Totalmente de acuerdo, si por "calculista" se entiende lo que es un >> "NumberCruncher". Que numpy se emplea en más ámbitos que las >> matemáticas puras es clara muestra el que estamos hablándolo ahora >> mismo dos físicos :-D >> >> >>> Aparte de los calculistas, numpy brilla con luz propia en otros >>> aspectos >>> como por ejemplo como contenedores de datos complejos (que a posteriori >>> pueden ser usados en 'cálculos' tradicionales o no) con mucha >>> eficiencia >>> o el tema de hacer ordenaciones a velocidades de C y con un consumo muy >>> eficiente de memoria. >> >> Aún así, desde que descubrí las "tablas" del lua no quiero otra cosa. >> Me gustaría que mucho que python tuviera ese grado de simpleza y toque >> "minimalista" que tiene lua; pero, en cambio, sólo veo interfaces cada >> vez más y más complejos, sin comprender con claridad las ventajas que >> puedan proporcionar. >> >> >>> Cuando digo contenedores 'complejos' me refiero al >>> hecho de que numpy no sólo es capaz de almacenar arrays homogéneos >>> (todos los componentes son del mismo tipo), sino también heterogéneos >>> (los componentes pueden ser de tipos diferentes, tipo tabla SQL) e >>> incluso heterogéneos con varios niveles de anidamiento. Esto es algo >>> que >>> ya se empezó a introducir en numarray pero que se ha integrado y >>> mejorado sustancialmente en NumPy. Todo esto hace de NumPy una libreria >>> de uso yo diria que básico en bastantes campos diferentes de los de >>> 'calculismo'. >> >> No he visto cómo hacer estos contenedores heterogéneos. ¿Puedes poner >> algún ejemplo? (por ejemplo, mezclar float y complex). >> >>> > Los arrays del numpy aceptan tuplas como índices >>> > multidimensionales, así como el rebanado "extendido" ("extended >>> > slice"). Como ejemplo del primer caso (índices >>> multidimensionales), una forma >>> > rápida de obtener todos los elementos de un array mayores de 100: >>> >>> Bueno, para ser exactos, habría que decir que Python implementa, desde >>> hace algunas versiones (2.3) el rebanado 'extendido', aunque sólo para >>> objetos unidimensionales, como se puede apreciar en: >>> >>> http://www.python.org/doc/2.3.5/whatsnew/section-slices.html >> >> En realidad, sólo se introdujo el "interface" de los slices. A parte >> de numpy, sólo está implementado en algún módulo que ahora no >> recuerdo. Pero, por defecto, no se pueden usar como índices otra cosa >> que números enteros. De hecho, en python 2.5 se ha tenido que >> introducir un nuevo interface (__index__) que necesitaba numpy para >> poder tener índices no enteros (eg: float). >> >> >>> > Pero hay mucho más, como el cálculo matricial, FFT, LinearAlgebra,... >>> >>> Correcto. Pero también hay que decir que existe una corriente ahora >>> mismo dentro de la comunidad de NumPy de empezar a mover parte del >>> código que se puede considerar estrictamente 'calculista' fuera de >>> NumPy >>> para meterlo en SciPy. De esta manera se conseguiria un paquete muy >>> compacto (NumPy) que hace relativamente pocas cosas pero que las hace >>> muy bien y que, *muy importante*, sea fácil de instalar, y la parte más >>> complicada y más de cálculo en el sentido científico ponerla en SciPy, >>> cuyo tamaño es mucho mayor y *bastante* más difícil de instalar, >>> sobretodo si quiere obtener soporte de cálculo de muy altas >>> prestaciones >>> (BLAS, LAPACK, etc.). >> >> Muy interesante. Esperemos que no se demore tanto como el libro de >> numpy ;-) >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> >> > From malku_mario en hotmail.com Thu Mar 8 19:57:07 2007 From: malku_mario en hotmail.com (mario alberto morales solis) Date: Thu, 08 Mar 2007 18:57:07 +0000 Subject: FW: Re: Re: reemplazar datos de una cadena en orden inverso Message-ID: ______________________________________________________________ > > holaaaaaaaaaaaaaaa comunidad python... > > tengo un grandisimo problema.... soy el mas novato de entre los > novatos que usan python y tengo ke entregar un proyecyo que >funcione > en linux, nos asignaron crear un procesador de textos sencillo pero > hecho totalmente en python... mi pregunta es > habra alguno de ustedes que tenga algun procesador de textos que me lo pueda pasar... o al menos que me diga como lo inicio o que onda porque la verdad en python estoy perdido y ese proyecto lo tengo que entregar > el 15 de marzo del 2007. > porfavor si alguien puede ayudarme se lo agradecere muchoo y me salvaran la vida > atte: mario alberto > pueden enviarme la respuesta en las siguientes direcciones de correo electronico > [1]malku_mario en hotmail.com > [2]riki_shi en hotmail.com > [3]chockersolis en yahoo.com.mx > de antemano muuuchas gracias. ______________________________________________________________ _________________________________________________________________ Comparte archivos de manera inmediata con Windows Live Messenger en Prodigy/MSN [1]Haz clic aquí References 1. http://g.msn.com/8HMBESMX/2731??PS=47575 From malku_mario en hotmail.com Thu Mar 8 19:57:44 2007 From: malku_mario en hotmail.com (mario alberto morales solis) Date: Thu, 08 Mar 2007 18:57:44 +0000 Subject: FW: Re: Re: reemplazar datos de una cadena en orden inverso Message-ID: ______________________________________________________________ From: "mario alberto morales solis" Reply-To: La lista de python en castellano To: python-es en aditel.org Subject: Re: [Python-es] Re: reemplazar datos de una cadena en orden inverso Date: Wed, 07 Mar 2007 20:40:27 +0000 > > holaaaaaaaaaaaaaaa comunidad python... > > tengo un grandisimo problema.... soy el mas novato de entre los > novatos que usan python y tengo ke entregar un proyecyo que >funcione > en linux, nos asignaron crear un procesador de textos sencillo >pero > hecho totalmente en python... mi pregunta es > > habra alguno de ustedes que tenga algun procesador de textos que >me lo > pueda pasar... o al menos que me diga como lo inicio o que onda >porque > la verdad en python estoy perdido y ese proyecto lo tengo que >entregar > el 15 de febrero. > > > porfavor si alguien puede ayudarme se lo agradecere muchoo y me > salvaran la vida > > atte: mario alberto > > pueden enviarme la respuesta en las siguientes direcciones de >correo > electronico > > [1]malku_mario en hotmail.com > > [2]riki_shi en hotmail.com > > [3]chockersolis en yahoo.com.mx > > de antemano muuuchas gracias. > >______________________________________________________________ > > From: Chema Cortes > Reply-To: La lista de python en castellano > > To: La lista de python en castellano > Subject: Re: [Python-es] Re: reemplazar datos de una cadena en > orden inverso > Date: Fri, 23 Feb 2007 04:03:52 +0100 > >El Martes, 20 de Febrero de 2007 23:10, Oscar de Anda >escribió: > > > Gracias a todos por su amable respuesta. > > > > > > Esta última opción, la de Luis Miguel, me parece muy > interesante, lo voy > > > a intentar de esa forma. > > > >Aunque también te recomiendo que uses esta opción, sólo >funcionará > si el texto > >está bien formado XML. Una alternativa podría ser usar el >módulo > 're'. Con un > >poco de pericia, se puede incluso arreglar algún que otro >error en > el formato > >(mayúsculas mal puestas, espacios que sobran, añadir saltos de > línea, etc). > >Aquí va un ejemplo: > > > >import re > > > > >XML="

subtitulo1

parrafo

parrafo1

parrafo2 p>

subtitulo2

parrafo3

subtitulo3

" > > > >PAT="""(?xi) #verbose+case insensitive > >### > >### Patrón para dividir el texto por subtítulos > >### > >

.*?

#subtitulo > >(?:

.*?

)* #parrafos dependientes > >""" > > > >subtitulos=re.findall(PAT,XML) > > > >#cambios en el último subtitulo > >s=subtitulos[-1] > >subtitulos[-1]=re.sub("<(/?)h2>",r"<\1em>",s) > > > >#unión de todos los elementos separando en líneas cada >subtítulo > >XML="\n".join(subtitulos) > > > >_______________________________________________ > >Python-es mailing list > >Python-es en aditel.org > >http://listas.aditel.org/listinfo/python-es > >_________________________________________________________________ > > El correo electrónico más usado en el mundo [4]Haz clic aquí > Prodigy/MSN Hotmail > >References > > 1. mailto:malku_mario en hotmail.com > 2. mailto:riki_shi en hotmail.com > 3. mailto:chockersolis en yahoo.com.mx > 4. http://g.msn.com/8HMBESMX/2755??PS=47575 >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Ya tienes la ultima versión de Messenger: Windows Live Messenger en Prodigy/MSN (V.8) [1]Haz clic aquí References 1. http://g.msn.com/8HMBESMX/2734??PS=47575 From pepe en diselpro.com Thu Mar 8 20:06:23 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Thu, 08 Mar 2007 20:06:23 +0100 Subject: eficiencia de numpy.array In-Reply-To: <1173378336.2555.74.camel@localhost.localdomain> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <45F0468E.8030207@diselpro.com> <1173378336.2555.74.camel@localhost.localdomain> Message-ID: <45F05EAF.1070702@diselpro.com> Ok. gracias Francesc y Chema. Mi curiosidad se ha satisfecho plenamente ;-) Ya tengo otra cosa más que añadir a mi discurso cuando predico a los infieles X-DDD Salud. Francesc Altet escribió: > El dj 08 de 03 del 2007 a les 18:23 +0100, en/na Pepe Aracil va > escriure: >> >> (con 'a>100' se obtiene un array de booleanos) >> >> Y esto como se implementa en python ??? >> ¿Sobreescribiendo el método __cmp__ del objeto array? > > No. El __cmp__ no sirve porque en una comparación (a.__cmp__(b)), éste > sólo devuelve un número (negativo si a < b, cero si 'a == b' o positivo > si 'a > b'). > > Lo que se usa para sobrecargar en este caso son la comparaciones > 'enriquecidas' (rich comparisons), como el __le__, __eq__, __gt__, etc. > Éstos operadores, al revés que __cmp__, sí que pueden devolver objetos > generales. Se introdujeron en Python 2.1, seguramente debido a las > necesidades de la comunidad calculista (alrededor de Numeric, por aquel > entonces). > > Además de los operadores de comparaciones enriquecidas, NumPy también > soporta los operadores __and__ y __or__, de manera que se puede hacer: > > a[(a > 10) & (a < 100)] > > que selecciona los valores comprendidos entre 10 y 100. > > Por desgracia, y como habrás observado, __and__ se mapea al operador > bit-a-bit '&' y __or__ al '|' (también bit-a-bit), mientras que los > operadores lógicos ('and' y 'or') no se pueden sobrecargar actualmente. > Así que esto nos impide hacer cosas como: > > a[a > 10 and a < 100] > > que seria mucho más lógico. > > Existen intentos de añadir la posibilidad de sobrecargar los operadores > lógicos, pero la cosa no es sencilla, como se puede ver en el PEP 335, y > en este thread: > > http://mail.python.org/pipermail/python-dev/2004-September/048763.html > > > Saludos, > > > > ------------------------------------------------------------------------ > > _______________________________________________ > 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 faltet en carabos.com Thu Mar 8 20:12:58 2007 From: faltet en carabos.com (Francesc Altet) Date: Thu, 08 Mar 2007 20:12:58 +0100 Subject: eficiencia de numpy.array In-Reply-To: <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <1173367896.2555.55.camel@localhost.localdomain> <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> Message-ID: <1173381178.2555.104.camel@localhost.localdomain> El dj 08 de 03 del 2007 a les 19:15 +0100, en/na Chema Cortes va escriure: > El 8/03/07, Francesc Altet escribió: > > El dj 08 de 03 del 2007 a les 15:16 +0100, en/na Chema Cortes va > > escriure: > > > De todos modos, el numpy está pensado por y para matemáticos. Aunque > > > no sea por "efectividad", deberías mirarlo desde el punto de vista > > > matemático. > > > > Bueno, no estoy de acuerdo con eso de que numpy esté por y para > > matemáticos, al menos en el sentido 'estricto' de matemático. Yo como > > máximo diría que está hecho por 'calculistas' para 'calculistas'. Y sin > > embargo, con esta última afirmación tampoco estaria haciendo del todo > > justicia a NumPy. > > Totalmente de acuerdo, si por "calculista" se entiende lo que es un > "NumberCruncher". Que numpy se emplea en más ámbitos que las > matemáticas puras es clara muestra el que estamos hablándolo ahora > mismo dos físicos :-D Bueno, no sé si yo me puedo continuar llamando físico después de abandonar el ramo hace ya casi veinte años, aunque para un informático de carrera obsesionado con el 'intrusismo' laboral seguro que continúo siendo un 'físico', lo cual no deja de ser un consuelo ;) > > Aparte de los calculistas, numpy brilla con luz propia en otros aspectos > > como por ejemplo como contenedores de datos complejos (que a posteriori > > pueden ser usados en 'cálculos' tradicionales o no) con mucha eficiencia > > o el tema de hacer ordenaciones a velocidades de C y con un consumo muy > > eficiente de memoria. > > Aún así, desde que descubrí las "tablas" del lua no quiero otra cosa. > Me gustaría que mucho que python tuviera ese grado de simpleza y toque > "minimalista" que tiene lua; pero, en cambio, sólo veo interfaces cada > vez más y más complejos, sin comprender con claridad las ventajas que > puedan proporcionar. Le tengo que echar un vistazo a lua. Un poco de promiscuidad de vez en cuando (aunque sea en términos de lenguaje ;) no le viene mal a nadie. > > Cuando digo contenedores 'complejos' me refiero al > > hecho de que numpy no sólo es capaz de almacenar arrays homogéneos > > (todos los componentes son del mismo tipo), sino también heterogéneos > > (los componentes pueden ser de tipos diferentes, tipo tabla SQL) e > > incluso heterogéneos con varios niveles de anidamiento. Esto es algo que > > ya se empezó a introducir en numarray pero que se ha integrado y > > mejorado sustancialmente en NumPy. Todo esto hace de NumPy una libreria > > de uso yo diria que básico en bastantes campos diferentes de los de > > 'calculismo'. > > No he visto cómo hacer estos contenedores heterogéneos. ¿Puedes poner > algún ejemplo? (por ejemplo, mezclar float y complex). Cómo no: In [38]:dtype=numpy.dtype([('campo flotante', 'float64'), ('campo complejo', 'complex128')]) In [39]:recarray = numpy.empty(3, dtype) In [40]:recarray Out[40]: array([ (-3.0229727440451393e-39, (6.7512155807143104e-314 +7.6721912170850867e+218j)), (2.87301221173249e+161, (1.9424519928790708e-313 +1.9297170390665241e-110j)), (3.6490903000155174e+233, (3.275323060872541e-313 +3.6297756754403919e+228j))], dtype=[('campo flotante', ' > > Los arrays del numpy aceptan tuplas como índices > > > multidimensionales, así como el rebanado "extendido" ("extended > > > slice"). Como ejemplo del primer caso (índices multidimensionales), una forma > > > rápida de obtener todos los elementos de un array mayores de 100: > > > > Bueno, para ser exactos, habría que decir que Python implementa, desde > > hace algunas versiones (2.3) el rebanado 'extendido', aunque sólo para > > objetos unidimensionales, como se puede apreciar en: > > > > http://www.python.org/doc/2.3.5/whatsnew/section-slices.html > > En realidad, sólo se introdujo el "interface" de los slices. A parte > de numpy, sólo está implementado en algún módulo que ahora no > recuerdo. Pero, por defecto, no se pueden usar como índices otra cosa > que números enteros. Seguro? In [49]:l = range(10) In [50]:l Out[50]:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [51]:l[2:6:3] Out[51]:[2, 5] > De hecho, en python 2.5 se ha tenido que > introducir un nuevo interface (__index__) que necesitaba numpy para > poder tener índices no enteros (eg: float). Bueno, realmente la principal razón para introducir __index__ (de hecho lo hizo el propio Travis Oliphant, el principal autor de NumPy) fue para soportar escalares de NumPy. Un escalar de NumPy se obtiene al recuperar un elemento sin dimensiones de un array. Por ejemplo: In [56]:a=numpy.arange(10) In [57]:scalar=a[1] In [58]:scalar Out[58]:1 In [59]:type(scalar) Out[59]: In [60]:isinstance(scalar, int) Out[60]:True Estos escalares, heredaban de los enteros python y se comportaban como enteros a todos los efectos (con más características, pero esto no viene al caso ahora). Sin embargo, Python no dejaba usar en los 'rebanados' a objectos que no fueran enteros (o enteros largos) de raza 'pura'. La solución que ideó Travis fue que los objectos que querian ser tratados en pie de igualdad con los enteros de raza 'pura' habrian de declarar el método especial __index__: def __index__(self): .... return obj donde obj fuera un entero de raza 'pura'. Realmente, el hecho de que ahora se permitan a los 'floats' actuar como índices no estaba dentro de los deseos de Travis (de hecho, él lo consideraba como 'undesirable behaviour'), aunque parece que finalmente se ha hecho así (no sé las razones, la verdad). > > > Pero hay mucho más, como el cálculo matricial, FFT, LinearAlgebra,... > > > > Correcto. Pero también hay que decir que existe una corriente ahora > > mismo dentro de la comunidad de NumPy de empezar a mover parte del > > código que se puede considerar estrictamente 'calculista' fuera de NumPy > > para meterlo en SciPy. De esta manera se conseguiria un paquete muy > > compacto (NumPy) que hace relativamente pocas cosas pero que las hace > > muy bien y que, *muy importante*, sea fácil de instalar, y la parte más > > complicada y más de cálculo en el sentido científico ponerla en SciPy, > > cuyo tamaño es mucho mayor y *bastante* más difícil de instalar, > > sobretodo si quiere obtener soporte de cálculo de muy altas prestaciones > > (BLAS, LAPACK, etc.). > > Muy interesante. Esperemos que no se demore tanto como el libro de numpy ;-) El libro de NumPy ya está a la venta desde hace más de un año! http://www.tramy.us/guidetoscipy.html :) Saludos, -- 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 faltet en carabos.com Thu Mar 8 20:19:21 2007 From: faltet en carabos.com (Francesc Altet) Date: Thu, 08 Mar 2007 20:19:21 +0100 Subject: eficiencia de numpy.array In-Reply-To: <1173381178.2555.104.camel@localhost.localdomain> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <1173367896.2555.55.camel@localhost.localdomain> <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> <1173381178.2555.104.camel@localhost.localdomain> Message-ID: <1173381561.2555.108.camel@localhost.localdomain> El dj 08 de 03 del 2007 a les 20:12 +0100, en/na Francesc Altet va escriure: Vaya, repasando mi mensaje veo que me dejé una línea sin pegar para el ejemplo de campos anidados en tablas :P Aqui va: In [44]:tipo_anidado = numpy.dtype([('x', 'f4'),('y', 'f4'), ('nested', [('i', 'i2'),('j','i2')])]) > Con campos anidados: > > In [45]:recarray_anidado = numpy.empty(3, tipo_anidado) > In [46]:recarray_anidado > Out[46]: > array([(-2.8664755518548191e-05, -2.8664755518548191e-05, (0, 0)), > (4.7263799313282515e-34, -2.1512736566364765e-05, (91, 0)), > (5.330029341254113e-34, nan, (40, 0))], > dtype=[('x', ' ' In [47]:recarray_anidado['nested'] Out[47]: > array([(0, 0), (91, 0), (40, 0)], > dtype=[('i', ' In [48]:recarray_anidado['nested']['i'] > Out[48]:array([ 0, 91, 40], dtype=int16) -- 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 faltet en carabos.com Thu Mar 8 20:33:35 2007 From: faltet en carabos.com (Francesc Altet) Date: Thu, 08 Mar 2007 20:33:35 +0100 Subject: eficiencia de numpy.array In-Reply-To: <45F05902.3030605@ffn.ub.es> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.1 2.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es > <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <1173367896.2 555.55.camel@localhost.localdomain> <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> <45F05902.3030605@ffn.ub.es> Message-ID: <1173382415.2555.120.camel@localhost.localdomain> El dj 08 de 03 del 2007 a les 19:42 +0100, en/na Pau Cervera Badia va escriure: > Ahora que habláis de esto, he conseguido usar numpy para calcular > valores propios de matrices con el linalg, pero voy un poco a ciegas > porqué no encuentro la documentación de forma fácil y me tengo que > apañar con el help y lo que hay en la web de scipy. Sabéis de algo más > user-friendly? (Soy muy novato en el numpy, un par de días.) Como he mencionado antes, el libro de NumPy es una fuente inagotable de información: http://www.tramy.us/guidetoscipy.html En particular, he visto una sección entera dedicada a linalg, con ejemplos y demás. Es muy recomendable comprar el libro (y de paso se anima a Travis a continuar con su labor de primera clase al frente de NumPy). En la web de scipy seguro que encuentras información adicional. Prueba a Googlear un poco: 'linalg tutorial site:scipy.org' > Gracias, > > Y un poco off-topic: el linalg va bien para matrices sparse? Pues si, bastante off-topic, pero sirve para demostrar que gente que trabaja a diario con NumPy como yo no tiene ni pajolera idea de ese tipo de preguntas, o sea, que no sólo los 'calculistas' como Pau usan NumPy ;) En serio, lo mejor es que te suscribas a la lista de scipy y preguntes allí. Seguro que te salen unos cuantos 'numbercrunchings' dispuestos a solucionarte tus dudas. Salutacions, -- 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 fabiognome en gmail.com Fri Mar 9 00:02:47 2007 From: fabiognome en gmail.com (Fabio Estaban Duran Verdugo) Date: Thu, 8 Mar 2007 20:02:47 -0300 Subject: Listados con Reportlab mediante trml2pdf In-Reply-To: <2c9fb0dd0702281056t7ad877betddb48dbb6ba1df57@mail.gmail.com> References: <002301c75a86$6ad4ffd0$640010ac@nombref31twj9b> <2c9fb0dd0702281056t7ad877betddb48dbb6ba1df57@mail.gmail.com> Message-ID: yo pienso y creo que la mejor solución que puede haber hoy en dia para generar reportes es html... de hecho hice unas pruebas que resultaron ser satisfactorias cree una base de datos que como maximo cree 7 tablas y varios campos e inserte 30000 registros a cada tabla. me base en este codigo que escribi que inserta los campos y genera el reporte. para esto utilice a postgres como base de datos, python-pyscopg para conectarme este fue el primer modulo de prueba que hice o sea prueba 1. la base de datos se llama prueba tiene la tabla test y los campos numero y palabra. en 25 segundos me inserto los 30 mil registros los rescato y los genero en un reporte bajo una maquina amd3000+ 1.8ghz 512 ram, (incluyo tambien que en esos 25 abrio firefox, o sea se genero en menos tiempo) con los join para las otras 7 tablas se demoro 36 segundos (todo cronometrado), ademas agrego que todos los que saben programar deberian saber html que es la base de todo programador, o mejor dicho el primer lenguaje que deberia aprenderse, creo que el que no sabe html deberia aprender ya! from psycopg import connect import subprocess import sys class prueba: def __init__(self, conexion=None): self.cnx=conexion self.cursor = self.cnx.cursor() for i in range (1, 30000): sql=("insert into test (numero, palabra)values (%s, 'hola')")%i self.cursor.execute(sql) self.show() def imprime(self): self.cadena = '' self.cadena +='' self.cadena += '' self.cursor.execute ('select * from test') records = self.cursor.fetchall() for record in records: self.cadena += '' self.cadena += '' %(record[0], record[1]) self.cadena += '' def show(self): self.imprime() f = open("reporte.html", "w") f.write(self.cadena) f.close() if sys.platform == "win32": subprocess.Popen('explorer reporte.html', shell=True) else: subprocess.Popen('firefox reporte.html', shell=True) if __name__ == "__main__": cnx = connect("dbname=prueba") cnx.autocommit() d = prueba(cnx) El día 28/02/07, Chema Cortes escribió: > > El 27/02/07, Amm-Python escribió: > > > Para 500 registros 2.750s (rápido) > > Para 1000 registros 6.063s (bien) > > Para 2000 registros 13.797s (empieza a no gustarme) > > Para 3000 registros 23.641s (no me gusta) > > Para 4000 registros 35.813s (sigue sin gustarme) > > Para 5000 registros 50.469s (esto ...) > > > > (Nota: No hay cabeceras ni pies de página, ni contadores de las mismas, > > ni logotipos, etc.) > > > > Para mi es normal hacer un informe con 10000, 20000, 50000 registros. > > Sobretodo informes de resúmenes anuales; seguro que no sirven para nada, > > pero a los clientes les encantan. > > > > Por lo que concluyo que, o el esquema del ejemplo no es eficiente, o yo > > no se hacerlo mejor, o debo utilizar otra alternativa para generar el > > pdf. > > > > Mientras sigo exportando datos a formato xls y/o csv. > > > > Hasta me estoy planteando que el cliente instale LaTex y hacer el > > listado en dicho formato. Y antes de planteármelo seriamente, pregunto, > > ¿con qué generáis listados de grandes volúmenes de información?. > > No puedo darte una solución; tan sólo te confirmo que hemos tenido los > mismos problemas para crear ficheros pdf con tantos registros, tanto > en python como en java. Los ficheros que se generan son extremadamente > gigantes y su creación es muy lenta (más de una semana para emitir > 30.000 certificados con un logotipo simple). > > Se abandonó la idea de crear estos listados vía una librería, y se > optó por montar una "fusión de correo" con alguna herramienta > ofimática (aunque, bien pensado, lo de usar LaTeX tampoco es mala idea > ;-). > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From gagsl-py2 en yahoo.com.ar Fri Mar 9 02:34:51 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Thu, 08 Mar 2007 22:34:51 -0300 Subject: eficiencia de numpy.array References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <1173367896.2555.55.camel@localhost.localdomain> Message-ID: En Thu, 08 Mar 2007 12:31:36 -0300, Francesc Altet escribió: > Cuando digo contenedores 'complejos' me refiero al > hecho de que numpy no sólo es capaz de almacenar arrays homogéneos > (todos los componentes son del mismo tipo), sino también heterogéneos > (los componentes pueden ser de tipos diferentes, tipo tabla SQL) e > incluso heterogéneos con varios niveles de anidamiento. Esto es algo que Epa, esto no lo sabia. Yo pensaba que seguian siendo arrays homogeneos. Voy a darle una mirada (yo sigo usando Numeric para Python 2.3) -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py2 en yahoo.com.ar Fri Mar 9 02:40:35 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Thu, 08 Mar 2007 22:40:35 -0300 Subject: Listados con Reportlab mediante trml2pdf References: <002301c75a86$6ad4ffd0$640010ac@nombref31twj9b> <2c9fb0dd0702281056t7ad877betddb48dbb6ba1df57@mail.gmail.com> Message-ID: En Thu, 08 Mar 2007 20:02:47 -0300, Fabio Estaban Duran Verdugo escribió: > ademas agrego que todos los que saben programar deberian saber html que > es > la base de todo programador, o mejor dicho el primer lenguaje que deberia > aprenderse, creo que el que no sabe html deberia aprender ya! Bueno tampoco la pavada... :) -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From lasizoillo en gmail.com Fri Mar 9 11:04:02 2007 From: lasizoillo en gmail.com (lasizoillo) Date: Fri, 9 Mar 2007 11:04:02 +0100 Subject: Listados con Reportlab mediante trml2pdf In-Reply-To: References: <002301c75a86$6ad4ffd0$640010ac@nombref31twj9b> <2c9fb0dd0702281056t7ad877betddb48dbb6ba1df57@mail.gmail.com> Message-ID: <49414f570703090204t430c6317k9e7aefe0a71b230e@mail.gmail.com> Buenas: Interesante el tema, aunque ya que estamos hablando de optimización, me gustaria hacer una aportacion. > > from psycopg import connect > import subprocess > import sys > > class prueba: > def __init__(self, conexion=None): > self.cnx=conexion > self.cursor = self.cnx.cursor() > for i in range (1, 30000): > sql=("insert into test (numero, palabra)values (%s, 'hola')")%i > self.cursor.execute(sql) > > self.show() > > def imprime(self): > self.cadena = '' > self.cadena +='' > self.cadena += '
' self.cadena += '%s, %s
' > self.cursor.execute ('select * from test') > records = self.cursor.fetchall() > for record in records: > self.cadena += '' > self.cadena += '' %(record[0], record[1]) > self.cadena += '' Cadena acabara conteniendo todo el reporte en memoria. Esto se puede evitar con el uso de iteradores: def imprime(self): yield '...
' > self.cadena += '%s, %s
' self.cursor.execute ('select * from test') records = self.cursor.fetchall() for record in records: yield '' %(record[0], record[1]) yield '
%s, %s
---' Ademas evitamos crear/destruir objetos constantemente. Por cada suma de cadenas, generamos un objeto cadena intermedio, que liberamos despues con la siguiente creacion de objeto cadena intermedio, ... Un derroche en la gestión de memoria. > > def show(self): > self.imprime() > f = open("reporte.html", "w") > f.write(self.cadena) > f.close() > if sys.platform == "win32": > subprocess.Popen('explorer reporte.html', shell=True) > else: > subprocess.Popen('firefox reporte.html', shell=True) > def show(self): generador = self.imprime() f = open("reporte.html", "w") for dato in generador: f.write(dato) f.close() if sys.platform == "win32": subprocess.Popen('explorer reporte.html', shell=True) else: subprocess.Popen('firefox reporte.html', shell=True) > if __name__ == "__main__": > cnx = connect("dbname=prueba") > cnx.autocommit() > d = prueba(cnx) > > El día 28/02/07, Chema Cortes escribió: > > > > El 27/02/07, Amm-Python escribió: > > > > > Para 500 registros 2.750s (rápido) > > > Para 1000 registros 6.063s (bien) > > > Para 2000 registros 13.797s (empieza a no gustarme) > > > Para 3000 registros 23.641s (no me gusta) > > > Para 4000 registros 35.813s (sigue sin gustarme) > > > Para 5000 registros 50.469s (esto ...) > > > > > > (Nota: No hay cabeceras ni pies de página, ni contadores de las mismas, > > > ni logotipos, etc.) > > > > > > Para mi es normal hacer un informe con 10000, 20000, 50000 registros. > > > Sobretodo informes de resúmenes anuales; seguro que no sirven para nada, > > > pero a los clientes les encantan. > > > > > > Por lo que concluyo que, o el esquema del ejemplo no es eficiente, o yo > > > no se hacerlo mejor, o debo utilizar otra alternativa para generar el > > > pdf. > > > > > > Mientras sigo exportando datos a formato xls y/o csv. > > > > > > Hasta me estoy planteando que el cliente instale LaTex y hacer el > > > listado en dicho formato. Y antes de planteármelo seriamente, pregunto, > > > ¿con qué generáis listados de grandes volúmenes de información?. > > > > No puedo darte una solución; tan sólo te confirmo que hemos tenido los > > mismos problemas para crear ficheros pdf con tantos registros, tanto > > en python como en java. Los ficheros que se generan son extremadamente > > gigantes y su creación es muy lenta (más de una semana para emitir > > 30.000 certificados con un logotipo simple). > > > > Se abandonó la idea de crear estos listados vía una librería, y se > > optó por montar una "fusión de correo" con alguna herramienta > > ofimática (aunque, bien pensado, lo de usar LaTeX tampoco es mala idea > > ;-). > > _______________________________________________ > > 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 pych3m4 en gmail.com Fri Mar 9 11:38:16 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 9 Mar 2007 11:38:16 +0100 Subject: eficiencia de numpy.array In-Reply-To: <1173381178.2555.104.camel@localhost.localdomain> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <1173367896.2555.55.camel@localhost.localdomain> <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> <1173381178.2555.104.camel@localhost.localdomain> Message-ID: <2c9fb0dd0703090238r11136886le0e42cb858d645db@mail.gmail.com> El 8/03/07, Francesc Altet escribió: > El dj 08 de 03 del 2007 a les 19:15 +0100, en/na Chema Cortes va > escriure: > > No he visto cómo hacer estos contenedores heterogéneos. ¿Puedes poner > > algún ejemplo? (por ejemplo, mezclar float y complex). > > Cómo no: > > In [38]:dtype=numpy.dtype([('campo flotante', 'float64'), ('campo > complejo', 'complex128')]) Muchas gracias por lo ejemplos. Encontré, depués, algunos ejemplos más en la web de numpy. > > En realidad, sólo se introdujo el "interface" de los slices. A parte > > de numpy, sólo está implementado en algún módulo que ahora no > > recuerdo. Pero, por defecto, no se pueden usar como índices otra cosa > > que números enteros. > > Seguro? > > In [49]:l = range(10) > In [50]:l > Out[50]:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] > In [51]:l[2:6:3] > Out[51]:[2, 5] Bueno, me refería a que no se puede accesar a través de una tupla o que no permite usar Ellipsis. Creo que ahora se puede resolver bastante bien mediante compresión de listas, pero no es lo mismo. (En realidad, a partir del python 2.3 se abandonó el método __getslice__ frente al uso de objetos slice() que se pasaban al __getitem__ directamente). > El libro de NumPy ya está a la venta desde hace más de un año! > > http://www.tramy.us/guidetoscipy.html Estaba esperando su liberación allá por el 2010 :-P Lo ví algo caro para ser en formato electrónico; pero, ya que lo recomiendas con tanto ahínco, lo acabo de encargar. From gagsl-py2 en yahoo.com.ar Fri Mar 9 12:04:21 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Fri, 09 Mar 2007 08:04:21 -0300 Subject: Listados con Reportlab mediante trml2pdf References: <002301c75a86$6ad4ffd0$640010ac@nombref31twj9b> <2c9fb0dd0702281056t7ad877betddb48dbb6ba1df57@mail.gmail.com> <49414f570703090204t430c6317k9e7aefe0a71b230e@mail.gmail.com> Message-ID: En Fri, 09 Mar 2007 07:04:02 -0300, lasizoillo escribió: > Interesante el tema, aunque ya que estamos hablando de optimización, > me gustaria hacer una aportacion. Ya que estamos, tambien me meto. En lugar de iterar manualmente, podemos usar writelines: > def show(self): > generador = self.imprime() > f = open("reporte.html", "w") > for dato in generador: > f.write(dato) > f.close() def show(self): f = open("reporte.html", "w") f.writelines(self.imprime()) f.close() O con python 2.5, garantizando el cierre del archivo: from __future__ import with_statement def show(self): with open("reporte.html", "w") as f: f.writelines(self.imprime()) -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From faltet en carabos.com Fri Mar 9 16:40:39 2007 From: faltet en carabos.com (faltet en carabos.com) Date: Fri, 9 Mar 2007 15:40:39 +0000 Subject: eficiencia de numpy.array In-Reply-To: <2c9fb0dd0703090238r11136886le0e42cb858d645db@mail.gmail.com> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <1173367896.2555.55.camel@localhost.localdomain> <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> <1173381178.2555.104.camel@localhost.localdomain> <2c9fb0dd0703090238r11136886le0e42cb858d645db@mail.gmail.com> Message-ID: <20070309154039.GA16907@xot.carabos.com> On Fri, Mar 09, 2007 at 11:38:16AM +0100, Chema Cortes wrote: > >> En realidad, sólo se introdujo el "interface" de los slices. A parte > >> de numpy, sólo está implementado en algún módulo que ahora no > >> recuerdo. Pero, por defecto, no se pueden usar como índices otra cosa > >> que números enteros. > > > >Seguro? > > > >In [49]:l = range(10) > >In [50]:l > >Out[50]:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] > >In [51]:l[2:6:3] > >Out[51]:[2, 5] > > Bueno, me refería a que no se puede accesar a través de una tupla o > que no permite usar Ellipsis. Creo que ahora se puede resolver > bastante bien mediante compresión de listas, pero no es lo mismo. > Ya, pero si no recuerdo mal estabamos hablando de 'extended slicing', y si yo lo entiendo bien, ese concepto se refiere tan solo al hecho de que se le puede pasar un parametro de 'paso' ('step, 'stride') a los rebanados, y es precisamente esa capacidad la que se anyadio en Python 2.3 para los objectos 'puros' de python (listas, tuplas, etc). La siguiente URL es bastante explicita al respecto: http://www.python.org/doc/2.3.5/whatsnew/section-slices.html Respecto a las Ellipsis estas solo tienen sentido si trabajas con objetos que entiendan el concepto de multidimensionalidad, asi que dificilmente los objetos 'puros' de Python lo podrian soportar. Saludos, Francesc From pych3m4 en gmail.com Sat Mar 10 03:22:39 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Sat, 10 Mar 2007 03:22:39 +0100 Subject: eficiencia de numpy.array In-Reply-To: <20070309154039.GA16907@xot.carabos.com> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <1173367896.2555.55.camel@localhost.localdomain> <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> <1173381178.2555.104.camel@localhost.localdomain> <2c9fb0dd0703090238r11136886le0e42cb858d645db@mail.gmail.com> <20070309154039.GA16907@xot.carabos.com> Message-ID: <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> El 9/03/07, faltet en carabos.com escribió: > On Fri, Mar 09, 2007 at 11:38:16AM +0100, Chema Cortes wrote: > > Bueno, me refería a que no se puede accesar a través de una tupla o > > que no permite usar Ellipsis. Creo que ahora se puede resolver > > bastante bien mediante compresión de listas, pero no es lo mismo. > > > > Ya, pero si no recuerdo mal estabamos hablando de 'extended slicing', y > si yo lo entiendo bien, ese concepto se refiere tan solo al hecho de que > se le puede pasar un parametro de 'paso' ('step, 'stride') a los > rebanados, y es precisamente esa capacidad la que se anyadio en Python > 2.3 para los objectos 'puros' de python (listas, tuplas, etc). La > siguiente URL es bastante explicita al respecto: > > http://www.python.org/doc/2.3.5/whatsnew/section-slices.html Siendo "legalistas", se debe recurrir a la "sintaxis" oficial del python: http://docs.python.org/ref/slicings.html Podrás ver cómo se definen slicing simple y extendido. Con el python 2.3, el slicing simple pasó de usar "short_slicing" a "long_slicing" (cambio que, por cierto, no se refleja en la documentación). Si lees en el primer párrafo, te indica que para evitar ambigüedades de sintaxis entre slicing simple y extendido se permite añadir una coma al final de los argumentos del extendido. Creo que es la mejor prueba para comprobar que las listas todavía NO tienen slicing extendido. From flaper87 en gmail.com Sat Mar 10 05:11:23 2007 From: flaper87 en gmail.com (Flaper87) Date: Sat, 10 Mar 2007 00:11:23 -0400 Subject: Fwd: Label en el taskbar In-Reply-To: References: Message-ID: Saludos a todos!! Estoy haciendo una aplicacion en la cual necesito que en vez de tener un icono en el taskbar, system tray...(ya ni se como llamarlo), tenga un label como el de la hora, que muestra numeros en vez de un icono. Estoy trabajando con python 2.4, wxpython 2.6, wxglade, y en Debian Etch. -- Flavio Percoco Premoli, A.K.A. [Flaper87] http://www.flaper87.com Usuario Linux registrado #436538 Key Fingerprint: CFC0 C67D FF73 463B 7E55 CF43 25D1 E75B E2DB 15C7 From faltet en carabos.com Sat Mar 10 08:52:32 2007 From: faltet en carabos.com (Francesc Altet) Date: Sat, 10 Mar 2007 08:52:32 +0100 Subject: eficiencia de numpy.array In-Reply-To: <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <1173367896.2555.55.camel@localhost.localdomain> <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> <1173381178.2555.104.camel@localhost.localdomain> <2c9fb0dd0703090238r11136886le0e42cb858d645db@mail.gmail.com> <20070309154039.GA16907@xot.carabos.com> <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> Message-ID: <1173513152.2546.12.camel@localhost.localdomain> El ds 10 de 03 del 2007 a les 03:22 +0100, en/na Chema Cortes va escriure: > El 9/03/07, faltet en carabos.com escribió: > > On Fri, Mar 09, 2007 at 11:38:16AM +0100, Chema Cortes wrote: > > > Bueno, me refería a que no se puede accesar a través de una tupla o > > > que no permite usar Ellipsis. Creo que ahora se puede resolver > > > bastante bien mediante compresión de listas, pero no es lo mismo. > > > > > > > Ya, pero si no recuerdo mal estabamos hablando de 'extended slicing', y > > si yo lo entiendo bien, ese concepto se refiere tan solo al hecho de que > > se le puede pasar un parametro de 'paso' ('step, 'stride') a los > > rebanados, y es precisamente esa capacidad la que se anyadio en Python > > 2.3 para los objectos 'puros' de python (listas, tuplas, etc). La > > siguiente URL es bastante explicita al respecto: > > > > http://www.python.org/doc/2.3.5/whatsnew/section-slices.html > > Siendo "legalistas", se debe recurrir a la "sintaxis" oficial del python: > > http://docs.python.org/ref/slicings.html > > Podrás ver cómo se definen slicing simple y extendido. Con el python > 2.3, el slicing simple pasó de usar "short_slicing" a "long_slicing" > (cambio que, por cierto, no se refleja en la documentación). Si lees > en el primer párrafo, te indica que para evitar ambigüedades de > sintaxis entre slicing simple y extendido se permite añadir una coma > al final de los argumentos del extendido. Creo que es la mejor prueba > para comprobar que las listas todavía NO tienen slicing extendido. Vaya, pues parece que, en efecto, hay ciertos malentendidos con la definición de rebanados extendidos. En fin, yo tampoco me quiero 'rebanar' demasiado la cabeza con esto ni ser más papista que el Papa. De todas maneras ya me parecia raro que insistieras tanto con el tema, y es que tenias tus buenas razones ;) Saludos -- 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 malku_mario en hotmail.com Sun Mar 11 01:32:24 2007 From: malku_mario en hotmail.com (mario alberto morales solis) Date: Sun, 11 Mar 2007 00:32:24 +0000 Subject: Problemas para crear procesador de texto con entorno grafico Message-ID: ______________________________________________________________ > > holaaaaaaaaaaaaaaa comunidad python... > > tengo un grandisimo problema.... soy el mas novato de entre los > novatos que usan python y tengo ke entregar un proyecyo que >funcione > en linux, nos asignaron crear un procesador de textos sencillo >pero > hecho totalmente en python... mi pregunta es > > habra alguno de ustedes que tenga algun procesador de textos que >me lo > pueda pasar... o al menos que me diga como lo inicio o que onda >porque > la verdad en python estoy perdido y ese proyecto lo tengo que >entregar > el 15 de febrero. > > > porfavor si alguien puede ayudarme se lo agradecere muchoo y me > salvaran la vida > > atte: mario alberto > > pueden enviarme la respuesta en las siguientes direcciones de >correo > electronico > > [1]malku_mario en hotmail.com > > [2]riki_shi en hotmail.com > > [3]chockersolis en yahoo.com.mx > > de antemano muuuchas gracias. > >______________________________________________________________ > > From: Chema Cortes > Reply-To: La lista de python en castellano > > To: La lista de python en castellano > Subject: Re: [Python-es] Re: reemplazar datos de una cadena en > orden inverso > Date: Fri, 23 Feb 2007 04:03:52 +0100 > >El Martes, 20 de Febrero de 2007 23:10, Oscar de Anda >escribió: > > > Gracias a todos por su amable respuesta. > > > > > > Esta última opción, la de Luis Miguel, me parece muy > interesante, lo voy > > > a intentar de esa forma. > > > >Aunque también te recomiendo que uses esta opción, sólo >funcionará > si el texto > >está bien formado XML. Una alternativa podría ser usar el >módulo > 're'. Con un > >poco de pericia, se puede incluso arreglar algún que otro >error en > el formato > >(mayúsculas mal puestas, espacios que sobran, añadir saltos de > línea, etc). > >Aquí va un ejemplo: > > > >import re > > > > >XML="

subtitulo1

parrafo

parrafo1

parrafo2 p>

subtitulo2

parrafo3

subtitulo3

" > > > >PAT="""(?xi) #verbose+case insensitive > >### > >### Patrón para dividir el texto por subtítulos > >### > >

.*?

#subtitulo > >(?:

.*?

)* #parrafos dependientes > >""" > > > >subtitulos=re.findall(PAT,XML) > > > >#cambios en el último subtitulo > >s=subtitulos[-1] > >subtitulos[-1]=re.sub("<(/?)h2>",r"<\1em>",s) > > > >#unión de todos los elementos separando en líneas cada >subtítulo > >XML="\n".join(subtitulos) > > > >_______________________________________________ > >Python-es mailing list > >Python-es en aditel.org > >http://listas.aditel.org/listinfo/python-es > >_________________________________________________________________ > > El correo electrónico más usado en el mundo [4]Haz clic aquí > Prodigy/MSN Hotmail > >References > > 1. mailto:malku_mario en hotmail.com > 2. mailto:riki_shi en hotmail.com > 3. mailto:chockersolis en yahoo.com.mx > 4. http://g.msn.com/8HMBESMX/2755??PS=47575 >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Windows Live Spaces en Prodigy/MSN [1]Haz clic aquí La red más grande en México y el mundo. References 1. http://g.msn.com/8HMAESMX/2743??PS=47575 From malku_mario en hotmail.com Sun Mar 11 01:38:07 2007 From: malku_mario en hotmail.com (mario alberto morales solis) Date: Sun, 11 Mar 2007 00:38:07 +0000 Subject: FW: Problemas para crear procesador de texto con entornografico Message-ID: ______________________________________________________________ From: "mario alberto morales solis" Reply-To: La lista de python en castellano To: python-es en aditel.org Subject: [Python-es] Problemas para crear procesador de texto con entornografico Date: Sun, 11 Mar 2007 00:32:24 +0000 > > >______________________________________________________________ > > > > > holaaaaaaaaaaaaaaa comunidad python... > > > > tengo un grandisimo problema.... soy el mas novato de entre >los > > novatos que usan python y tengo ke entregar un proyecyo que > >funcione > > en linux, nos asignaron crear un procesador de textos >sencillo > >pero > > hecho totalmente en python... mi pregunta es > > > > habra alguno de ustedes que tenga algun procesador de >textos > que > >me lo > > pueda pasar... o al menos que me diga como lo inicio o que >onda > >porque > > la verdad en python estoy perdido y ese proyecto lo tengo >que > >entregar > > el 15 de febrero. > > > > > > porfavor si alguien puede ayudarme se lo agradecere muchoo >y me > > salvaran la vida > > > > atte: mario alberto > > > > pueden enviarme la respuesta en las siguientes direcciones >de > >correo > > electronico > > > > [1]malku_mario en hotmail.com > > > > [2]riki_shi en hotmail.com > > > > [3]chockersolis en yahoo.com.mx > > > > de antemano muuuchas gracias. > > > >______________________________________________________________ > > > > From: Chema Cortes > > Reply-To: La lista de python en castellano > > > > To: La lista de python en castellano > > > Subject: Re: [Python-es] Re: reemplazar datos de una >cadena > en > > orden inverso > > Date: Fri, 23 Feb 2007 04:03:52 +0100 > > >El Martes, 20 de Febrero de 2007 23:10, Oscar de Anda > >escribió: > > > > Gracias a todos por su amable respuesta. > > > > > > > > Esta última opción, la de Luis Miguel, me parece muy > > interesante, lo voy > > > > a intentar de esa forma. > > > > > >Aunque también te recomiendo que uses esta opción, sólo > >funcionará > > si el texto > > >está bien formado XML. Una alternativa podría ser usar >el > >módulo > > 're'. Con un > > >poco de pericia, se puede incluso arreglar algún que >otro > >error en > > el formato > > >(mayúsculas mal puestas, espacios que sobran, añadir >saltos > de > > línea, etc). > > >Aquí va un ejemplo: > > > > > >import re > > > > > > > > > >XML="

subtitulo1

parrafo

parrafo1

parrafo2 > p>

subtitulo2

parrafo3

subtitulo3

" > > > > > >PAT="""(?xi) #verbose+case insensitive > > >### > > >### Patrón para dividir el texto por subtítulos > > >### > > >

.*?

#subtitulo > > >(?:

.*?

)* #parrafos dependientes > > >""" > > > > > >subtitulos=re.findall(PAT,XML) > > > > > >#cambios en el último subtitulo > > >s=subtitulos[-1] > > >subtitulos[-1]=re.sub("<(/?)h2>",r"<\1em>",s) > > > > > >#unión de todos los elementos separando en líneas cada > >subtítulo > > >XML="\n".join(subtitulos) > > > > > >_______________________________________________ > > >Python-es mailing list > > >Python-es en aditel.org > > >http://listas.aditel.org/listinfo/python-es > > > > >_________________________________________________________________ > > > > El correo electrónico más usado en el mundo [4]Haz clic >aquí > > Prodigy/MSN Hotmail > > > >References > > > > 1. mailto:malku_mario en hotmail.com > > 2. mailto:riki_shi en hotmail.com > > 3. mailto:chockersolis en yahoo.com.mx > > 4. http://g.msn.com/8HMBESMX/2755??PS=47575 > >_______________________________________________ > >Python-es mailing list > >Python-es en aditel.org > >http://listas.aditel.org/listinfo/python-es > >_________________________________________________________________ > > Windows Live Spaces en Prodigy/MSN [1]Haz clic aquí La red más >grande > en México y el mundo. > >References > > 1. http://g.msn.com/8HMAESMX/2743??PS=47575 >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ Windows Live Spaces en Prodigy/MSN [1]Haz clic aquí La red más grande en México y el mundo. References 1. http://g.msn.com/8HMAESMX/2743??PS=47575 From mlacunza en gmail.com Sun Mar 11 01:48:05 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Sat, 10 Mar 2007 19:48:05 -0500 Subject: FW: Problemas para crear procesador de texto con entornografico In-Reply-To: References: Message-ID: <771741b20703101648u2f81688bx85ce5e9829ac431e@mail.gmail.com> Hola, En primer lugar inicia un nuevo hilo para escribir tu pregunta. Segundo creo q nadie te hara la tarea... te has puesto a investigar? estudiaste python o q? Si en la primera vez no te respondieron... sera por algo. Bajate la demo de wxpython alli hay algo como lo q buscas. Saludos, El día 10/03/07, mario alberto morales solis escribió: > > > ______________________________________________________________ > > From: "mario alberto morales solis" > Reply-To: La lista de python en castellano > To: python-es en aditel.org > Subject: [Python-es] Problemas para crear procesador de texto con > entornografico > Date: Sun, 11 Mar 2007 00:32:24 +0000 > > > > > >______________________________________________________________ > > > > > > > > holaaaaaaaaaaaaaaa comunidad python... > > > > > > tengo un grandisimo problema.... soy el mas novato de > entre > >los > > > novatos que usan python y tengo ke entregar un proyecyo > que > > >funcione > > > en linux, nos asignaron crear un procesador de textos > >sencillo > > >pero > > > hecho totalmente en python... mi pregunta es > > > > > > habra alguno de ustedes que tenga algun procesador de > >textos > > que > > >me lo > > > pueda pasar... o al menos que me diga como lo inicio o > que > >onda > > >porque > > > la verdad en python estoy perdido y ese proyecto lo tengo > >que > > >entregar > > > el 15 de febrero. > > > > > > > > > porfavor si alguien puede ayudarme se lo agradecere > muchoo > >y me > > > salvaran la vida > > > > > > atte: mario alberto > > > > > > pueden enviarme la respuesta en las siguientes > direcciones > >de > > >correo > > > electronico > > > > > > [1]malku_mario en hotmail.com > > > > > > [2]riki_shi en hotmail.com > > > > > > [3]chockersolis en yahoo.com.mx > > > > > > de antemano muuuchas gracias. > > > > > > >______________________________________________________________ > > > > > > From: Chema Cortes > > > Reply-To: La lista de python en castellano > > > > > > To: La lista de python en castellano > > > > > Subject: Re: [Python-es] Re: reemplazar datos de una > >cadena > > en > > > orden inverso > > > Date: Fri, 23 Feb 2007 04:03:52 +0100 > > > >El Martes, 20 de Febrero de 2007 23:10, Oscar de Anda > > >escribió: > > > > > Gracias a todos por su amable respuesta. > > > > > > > > > > Esta última opción, la de Luis Miguel, me parece > muy > > > interesante, lo voy > > > > > a intentar de esa forma. > > > > > > > >Aunque también te recomiendo que uses esta opción, > sólo > > >funcionará > > > si el texto > > > >está bien formado XML. Una alternativa podría ser usar > >el > > >módulo > > > 're'. Con un > > > >poco de pericia, se puede incluso arreglar algún que > >otro > > >error en > > > el formato > > > >(mayúsculas mal puestas, espacios que sobran, añadir > >saltos > > de > > > línea, etc). > > > >Aquí va un ejemplo: > > > > > > > >import re > > > > > > > > > > > > > > > >XML="

subtitulo1

parrafo

parrafo1

parrafo2 > > > p>

subtitulo2

parrafo3

subtitulo3

" > > > > > > > >PAT="""(?xi) #verbose+case insensitive > > > >### > > > >### Patrón para dividir el texto por subtítulos > > > >### > > > >

.*?

#subtitulo > > > >(?:

.*?

)* #parrafos dependientes > > > >""" > > > > > > > >subtitulos=re.findall(PAT,XML) > > > > > > > >#cambios en el último subtitulo > > > >s=subtitulos[-1] > > > >subtitulos[-1]=re.sub("<(/?)h2>",r"<\1em>",s) > > > > > > > >#unión de todos los elementos separando en líneas cada > > >subtítulo > > > >XML="\n".join(subtitulos) > > > > > > > >_______________________________________________ > > > >Python-es mailing list > > > >Python-es en aditel.org > > > >http://listas.aditel.org/listinfo/python-es > > > > > > > > >_________________________________________________________________ > > > > > > El correo electrónico más usado en el mundo [4]Haz clic > >aquí > > > Prodigy/MSN Hotmail > > > > > >References > > > > > > 1. mailto:malku_mario en hotmail.com > > > 2. mailto:riki_shi en hotmail.com > > > 3. mailto:chockersolis en yahoo.com.mx > > > 4. http://g.msn.com/8HMBESMX/2755??PS=47575 > > >_______________________________________________ > > >Python-es mailing list > > >Python-es en aditel.org > > >http://listas.aditel.org/listinfo/python-es > > > >_________________________________________________________________ > > > > Windows Live Spaces en Prodigy/MSN [1]Haz clic aquí La red más > >grande > > en México y el mundo. > > > >References > > > > 1. http://g.msn.com/8HMAESMX/2743??PS=47575 > >_______________________________________________ > >Python-es mailing list > >Python-es en aditel.org > >http://listas.aditel.org/listinfo/python-es > _________________________________________________________________ > > Windows Live Spaces en Prodigy/MSN [1]Haz clic aquí La red más grande > en México y el mundo. > > References > > 1. http://g.msn.com/8HMAESMX/2743??PS=47575 > _______________________________________________ > 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 eaburtolemilio en gmail.com Sun Mar 11 04:33:17 2007 From: eaburtolemilio en gmail.com (emilio aburto) Date: Sat, 10 Mar 2007 23:33:17 -0400 Subject: Como instalar un modulo Message-ID: <5926c4f00703101933paefbf37r40f9a1aa03168180@mail.gmail.com> Hola,soy nuevo en la lista y quisiera saber si me pueden ayudar, he querido instalar el modulo PythonSudoku con la intención de hacer un programa con entorno gráfico para resolver sudokus, pero al intentar instalarlo me pide editar algunos archivos .cfg y no se que rutas ponerle, por favor ayúdenme, no es urgente pero se los agradecería mucho, uso windows 98 y tengo python 2.5 instalado. Gracias de antemano From morillas en gmail.com Sun Mar 11 07:46:31 2007 From: morillas en gmail.com (Luis Miguel Morillas) Date: Sun, 11 Mar 2007 07:46:31 +0100 Subject: Como instalar un modulo In-Reply-To: <5926c4f00703101933paefbf37r40f9a1aa03168180@mail.gmail.com> References: <5926c4f00703101933paefbf37r40f9a1aa03168180@mail.gmail.com> Message-ID: <68d25cbc0703102246k1ee90df2r514ba9536f37afbb@mail.gmail.com> http://pythonsudoku.svn.sourceforge.net/viewvc/pythonsudoku/pythonsudoku/trunk/INSTALL?revision=393&view=markup El 11/03/07, emilio aburto escribió: > Hola,soy nuevo en la lista y quisiera saber si me pueden ayudar, he querido > instalar el modulo PythonSudoku con la > intención de hacer un programa con entorno gráfico para resolver sudokus, > pero al intentar instalarlo me pide editar algunos archivos .cfg y no se que > rutas ponerle, por favor ayúdenme, no es urgente pero se los agradecería > mucho, uso windows 98 y tengo python 2.5 instalado. Gracias de antemano > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Saludos, -- Luis Miguel From elizundia en fitbak.com Mon Mar 12 10:33:22 2007 From: elizundia en fitbak.com (Ekaitz Lizundia) Date: Mon, 12 Mar 2007 10:33:22 +0100 Subject: Python 2.5 y Sqlite Message-ID: <45F51E62.3060008@fitbak.com> Saludos a todos, tengo una duda. Python 2.5 trae consigo sqlite o hay que instalarlo separado ??? Y la misma pregunta para pythonce 2.5, trae pysqlite incorporado o hay que instalarlo tambien ?? Gracias From jileon en parcan.es Mon Mar 12 15:25:46 2007 From: jileon en parcan.es (Juan Ignacio Rodriguez de Leon) Date: Mon, 12 Mar 2007 14:25:46 +0000 Subject: Python 2.5 y Sqlite In-Reply-To: <45F51E62.3060008@fitbak.com> References: <45F51E62.3060008@fitbak.com> Message-ID: <45F562EA.9070509@parcan.es> Ekaitz Lizundia escribió: > Saludos a todos, > > tengo una duda. Python 2.5 trae consigo sqlite o hay que instalarlo > separado ??? Viene incluido ya en la instalación. > Y la misma pregunta para pythonce 2.5, trae pysqlite incorporado o hay > que instalarlo tambien ?? ¿pythonce es Python for Microsoft Windows CE? En ese caso, es de suponer que si, pero no se puedo asegurar porque en la página del proyecto hacen mención a otras librerías que son importantes, como curses, bsddb o popen2. ¿Alguien que lo tenga instalado? > Gracias > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From elizundia en fitbak.com Mon Mar 12 15:35:51 2007 From: elizundia en fitbak.com (Ekaitz Lizundia) Date: Mon, 12 Mar 2007 15:35:51 +0100 Subject: Python 2.5 y Sqlite In-Reply-To: <45F562EA.9070509@parcan.es> References: <45F51E62.3060008@fitbak.com> <45F562EA.9070509@parcan.es> Message-ID: <45F56547.9020402@fitbak.com> Muchas gracias Juan Ignacio Rodriguez de Leon escribió: > Ekaitz Lizundia escribió: >> Saludos a todos, >> >> tengo una duda. Python 2.5 trae consigo sqlite o hay que instalarlo >> separado ??? > > Viene incluido ya en la instalación. > >> Y la misma pregunta para pythonce 2.5, trae pysqlite incorporado o >> hay que instalarlo tambien ?? > > ¿pythonce es Python for Microsoft Windows CE? > > En ese caso, es de suponer que si, pero no se puedo asegurar porque en > la página del proyecto hacen mención a otras librerías que son > importantes, como curses, bsddb o popen2. > > ¿Alguien que lo tenga instalado? > > > > >> Gracias >> _______________________________________________ >> 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 dmunhiz en gmail.com Mon Mar 12 18:27:59 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Mon, 12 Mar 2007 18:27:59 +0100 Subject: sendmail a multiples destinatarios Message-ID: <45F58D9F.2000409@gmail.com> Hola: Supongo que la respuesta es sencilla pero no he encontrado nada al respecto. Gracias a Alatar que ha puesto su codigo voy tirando pero quisiera enviar un correo con el sendmail a multiples destinatarios y no se como hacerlo exactamente Actualmente envia a uno solo servidor.sendmail(pm_emisor_correo, pm_receptor_correo, msgRaiz.as_string()) donde pm_receptor_correo ="correo en correo.com" Gracias -- Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html From juatman_2000 en yahoo.es Mon Mar 12 19:07:15 2007 From: juatman_2000 en yahoo.es (Juan M.) Date: Mon, 12 Mar 2007 19:07:15 +0100 Subject: Re-encarnacion de SPE References: <45F58D9F.2000409@gmail.com> Message-ID: <008501c764d1$45611040$5c8be050@equipo> Pensaba que Stany nos había abandonado, pero ha vuelto con una nueva versión de SPE y manteniendo vivo el proyecto Pyxides para unificar y/o colaboración entre todos los IDEs de Python. Si quereis colaborar probando la nueva versión, se encuentra en: http://pythonide.blogspot.com/ Hasta pronto. :-) P.D. Hoy he estado probando el IDE / RAD de GamBas 1.9.47, es genial, un buen ejemplo a seguir. ;-) ______________________________________________ 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 cgalisteo en k-rolus.net Mon Mar 12 18:52:49 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo de Cabo) Date: Mon, 12 Mar 2007 18:52:49 +0100 Subject: sendmail a multiples destinatarios In-Reply-To: <45F58D9F.2000409@gmail.com> References: <45F58D9F.2000409@gmail.com> Message-ID: <20070312185249.kpk93zmmrk4koo4w@k-rolus.net> Quoting Daniel Muñiz Fontoira : > Gracias a Alatar que ha puesto su codigo voy tirando pero quisiera > enviar un correo con el sendmail a multiples destinatarios y no se como > hacerlo exactamente > Actualmente envia a uno solo > > servidor.sendmail(pm_emisor_correo, pm_receptor_correo, msgRaiz.as_string()) Prueba con algo como: pm_receptor_correo = ['cuenta1 en dominio.com','cuenta2 en dominio.com'] servidor.sendmail(pm_emisor_correo, pm_receptor_correo, msgRaiz.as_string()) --- 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 --- From ingcomrbr en gmail.com Mon Mar 12 19:12:24 2007 From: ingcomrbr en gmail.com (Ramon Becerra Reynoso) Date: Mon, 12 Mar 2007 12:12:24 -0600 Subject: MatliPlot o GNUplot Message-ID: Necesito incluir unas graficas sencillas en un sistema que estoy desarrollando en PyGTK , cual de estas librerias me recomiendan y como instalarlas en Windows. Saludos. From msg82mx en gmail.com Tue Mar 13 07:00:52 2007 From: msg82mx en gmail.com (sick) Date: Tue, 13 Mar 2007 00:00:52 -0600 Subject: ejecutable - binario etc etc Message-ID: <9d4b33970703122300rdd12f3dheb8865783ce6dc24@mail.gmail.com> Hola todos buenas!!! =) oigan una pregunta tengo un pequeño programita hecho en python, pero tengo una duda .-¿existe la posibilidad de hacer un "ejecutable" - "binario" o algo asi a partir de un programa de python, pero para linux? ya lei que en windows ya se puede hacer, tambien ya lei que python es un lenguaje interpretado.- ¿pero que podria hacer, para que mi programa hecho en python lo pudiera ejecutar como otros binarios en linux (./algo_aqui)? y sin la necesidad de estar moviendo librerias etc etc. ya busque info, pero no llego a nada, y la verdad se me hace extraño que en windows ya se puede y en linux no... 1000 gracias por su orientacion buen dia From gagsl-py2 en yahoo.com.ar Tue Mar 13 07:23:03 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Tue, 13 Mar 2007 03:23:03 -0300 Subject: ejecutable - binario etc etc References: <9d4b33970703122300rdd12f3dheb8865783ce6dc24@mail.gmail.com> Message-ID: En Tue, 13 Mar 2007 03:00:52 -0300, sick escribió: > oigan una pregunta tengo un pequeño programita hecho en python, pero > tengo > una duda .-¿existe la posibilidad de hacer un "ejecutable" - "binario" o > algo asi a partir de un programa de python, pero para linux? http://wiki.python.org/moin/Freeze -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From elizundia en fitbak.com Tue Mar 13 09:04:05 2007 From: elizundia en fitbak.com (Ekaitz Lizundia) Date: Tue, 13 Mar 2007 09:04:05 +0100 Subject: PythonCe 2.5 Message-ID: <45F65AF5.7080107@fitbak.com> Hola a todos, ¿¿ alguien sabe que version de Python debo de instalar en un PDA con el sistema Windows Mobile 5 ?? Hay pythonCe 2.5, 2.4 y 2.3. En el PDA con windows2003 instale Pythonce 2.3 y funcionaba bien, ¿ Funcionaria 2.3 en el PDA con WM5 ? Gracias de antemano From dmunhiz en gmail.com Tue Mar 13 09:29:18 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Tue, 13 Mar 2007 09:29:18 +0100 Subject: sendmail a multiples destinatarios In-Reply-To: <20070312185249.kpk93zmmrk4koo4w@k-rolus.net> References: <45F58D9F.2000409@gmail.com> <20070312185249.kpk93zmmrk4koo4w@k-rolus.net> Message-ID: <45F660DE.8000501@gmail.com> Muchas Gracias, ha funcionado perfecto! Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Carlos Galisteo de Cabo escribió: > Quoting Daniel Muñiz Fontoira : > > >> Gracias a Alatar que ha puesto su codigo voy tirando pero quisiera >> enviar un correo con el sendmail a multiples destinatarios y no se como >> hacerlo exactamente >> Actualmente envia a uno solo >> >> servidor.sendmail(pm_emisor_correo, pm_receptor_correo, >> msgRaiz.as_string()) > > Prueba con algo como: > > pm_receptor_correo = ['cuenta1 en dominio.com','cuenta2 en dominio.com'] > > servidor.sendmail(pm_emisor_correo, pm_receptor_correo, > msgRaiz.as_string()) > > --- > 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 > --- > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From ialdazabal en ehu.es Tue Mar 13 09:42:16 2007 From: ialdazabal en ehu.es (Inigo Aldazabal Mensa) Date: Tue, 13 Mar 2007 09:42:16 +0100 Subject: MatliPlot o GNUplot In-Reply-To: References: Message-ID: <200703130942.16585.ialdazabal@ehu.es> El Monday, 12 de March de 2007 19:12, Ramon Becerra Reynoso escribió: > Necesito incluir unas graficas sencillas en un sistema que estoy > desarrollando en PyGTK , cual de estas librerias me recomiendan y como > instalarlas en Windows. Saludos. Con Matplotlib las gráficas te quedarán con mucha mejor pinta ya que las renderiza mucho mejor que gnuplot. Gnuplot es mas ligero, eso sí, pero no se qué tal irá en windows. Para matplotlib en windows basta con instalar numpy y matplotlib http://matplotlib.sourceforge.net/installing.html , o bien, si no tienes python instalado, instalar python "enthough edition", que ya tiene todo (y mas) incluido http://code.enthought.com/enthon/ Además tienes un turorial exactamente sobre cómo hacer la integración matplotlib-pygtk aquí -> http://www.serpia.org/pygtk y también algún ejemplo útil en el directorio de ejemplos de matplotlib. > _______________________________________________ > 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 josefgon en gmail.com Tue Mar 13 11:09:01 2007 From: josefgon en gmail.com (Jose Francisco Gonzalez) Date: Tue, 13 Mar 2007 11:09:01 +0100 Subject: =?iso-8859-1?q?Tama=F1o_en_bytes_de_un_diccionario?= Message-ID: <24be9e680703130309y2977c938v71a1b0964408cbaa@mail.gmail.com> En un archivo aparte de otros datos quiero grabar un diccionario por lo que para grabarlo estoy usando el modulo pickle para convertirlo a str y grabarlo, lo que pasa es que para leer el archivo necesitaria saber los bytes que ocupaba el diccionario para el read. ¿Como se sabe el tamaño en bytes del diccionario? ¿El modulo pickle es la mejor opcion para grabar el diccionario? Gracias -- Saludos José Francisco González From dmunhiz en gmail.com Tue Mar 13 11:11:34 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Tue, 13 Mar 2007 11:11:34 +0100 Subject: eliminar fila en wx.grid Message-ID: <45F678D6.6030604@gmail.com> Hola me gustaría saber como eliminar una fila de un wx.grid o como eliminar todas, he probado con clear pero eso lo que hace es dejarlas en blanco. Gracias -- Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html From pych3m4 en gmail.com Tue Mar 13 12:17:44 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 13 Mar 2007 12:17:44 +0100 Subject: =?ISO-8859-1?Q?Re:__Tama=F1o_en_bytes_de_un_diccionario?= In-Reply-To: <24be9e680703130309y2977c938v71a1b0964408cbaa@mail.gmail.com> References: <24be9e680703130309y2977c938v71a1b0964408cbaa@mail.gmail.com> Message-ID: <2c9fb0dd0703130417q17fb95cdjc45e245c79890ccf@mail.gmail.com> El 13/03/07, Jose Francisco Gonzalez escribió: > En un archivo aparte de otros datos quiero grabar un diccionario por lo que > para grabarlo estoy usando el modulo pickle para convertirlo a str y > grabarlo, lo que pasa es que para leer el archivo necesitaria saber los > bytes que ocupaba el diccionario para el read. > > ¿Como se sabe el tamaño en bytes del diccionario? ¿El modulo pickle es la > mejor opcion para grabar el diccionario? No entiendo para qué te hace falta el tamaño del diccionario. Si estás usando ficheros, el módulo pickle se encarga de leer y escribir los objetos; si estás trabajando con los objetos convertidos en cadenas, el tamaño de una cadena se obtiene por el método habitual: len() Hay otros módulos que emplean pickle y que te pueden servir de ayuda como el módulo 'shelve', con el que trabajas como un diccionario normal, pero con "persistencia" a través de un fichero en disco. From faltet en carabos.com Tue Mar 13 12:23:16 2007 From: faltet en carabos.com (Francesc Altet) Date: Tue, 13 Mar 2007 12:23:16 +0100 Subject: =?ISO-8859-1?Q?Tama=F1o?= en bytes de un diccionario In-Reply-To: <24be9e680703130309y2977c938v71a1b0964408cbaa@mail.gmail.com> References: <24be9e680703130309y2977c938v71a1b0964408cbaa@mail.gmail.com> Message-ID: <1173784996.2582.15.camel@localhost.localdomain> El dt 13 de 03 del 2007 a les 11:09 +0100, en/na Jose Francisco Gonzalez va escriure: > En un archivo aparte de otros datos quiero grabar un diccionario por lo que > para grabarlo estoy usando el modulo pickle para convertirlo a str y > grabarlo, lo que pasa es que para leer el archivo necesitaria saber los > bytes que ocupaba el diccionario para el read. > > ¿Como se sabe el tamaño en bytes del diccionario? Según el libro "Python: Essential Reference", los diccionarios ocupan: 24 bytes + 12*2**n bytes, donde n = log(nitems, 2) Evidentemente, esto es lo que ocupan en memoria. En disco depende mucho de qué herramienta uses para serializar. > ¿El modulo pickle es la > mejor opcion para grabar el diccionario? Al menos es una de las maneras más cómodas. Si no tienes que guardar demasiados datos (i.e. diccionarios hasta unos pocos miles de entradas), adelante. Cuidado por que el pickle te va a consumir bastante más espacio en disco que en memoria (aunque no sé decirte con precisión cuánta más). Saludos, -- 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 manuelmalo en gmail.com Tue Mar 13 12:35:41 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Tue, 13 Mar 2007 12:35:41 +0100 Subject: Variables que funcionen como punteros? Message-ID: Hola a todos, una duda mas: Existe la posibilidad en Python de que dos variables compartan la misma zona de memoria? Es decir, que funcionen como punteros en otros lenguajes. El tema es que tengo una lista en una variable y una sublista de la primera en otra, y necesito que la informacion en ambas se actualice cuando se cambia cualquiera de ellas. Gracias! From listas en soft-com.es Tue Mar 13 13:06:23 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Tue, 13 Mar 2007 13:06:23 +0100 Subject: Variables que funcionen como punteros? In-Reply-To: References: Message-ID: <45F693BF.6000809@soft-com.es> Manuel Malo de Molina escribió: > Hola a todos, una duda mas: > > Existe la posibilidad en Python de que dos variables compartan la > misma zona de memoria? Es decir, que funcionen como punteros en otros > lenguajes. > > El tema es que tengo una lista en una variable y una sublista de la > primera en otra, y necesito que la informacion en ambas se actualice > cuando se cambia cualquiera de ellas. > >>> lista1 = [1,2,3,4,5,6] >>> lista2 = lista1 >>> >>> lista1[1] = "dos" >>> lista2[2] = "tres" >>> lista1 [1, 'dos', 'tres', 4, 5, 6] >>> lista2 [1, 'dos', 'tres', 4, 5, 6] >>> Saludos, -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From marco.bustam en gmail.com Tue Mar 13 13:06:27 2007 From: marco.bustam en gmail.com (Marco Bustamante) Date: Tue, 13 Mar 2007 08:06:27 -0400 Subject: Variables que funcionen como punteros? In-Reply-To: References: Message-ID: <73a726350703130506t73ab015dn25302628522822d@mail.gmail.com> Una vez tuve un problema, que decia relación con "lo contrario", o sea yo hacia una copia de una lista a otra variable, pero al actualizar cualquiera de ellas, el resultados era que ambas se actualizaban.... en realidad no eran ambas, sino que era una sola. (esto está sin verificacion de sintaxis) a=[] a.append("loquesea") a.append(1) a.append(3) En este momento a contiene "loquesea", 1 y 3. si digo b = a comparto la misma memoria para ambas variables, luego b.append("fin") a (y b tambien) contiene "loquesea", 1, 3, "fin" ahora, para tu caso en particular, creo que es posible hacer 3 listas, una de ellas maestra (que contiene todos los elementos) y dos copias que contengan los elementos requeridos de la lista maestra. lista maestra / \ / \ copia 1 copia 2 de esta forma cuando actualices la lista maestra estarán actualizadas las dos copias. Saludos, y mucha suerte. El día 13/03/07, Manuel Malo de Molina escribió: > > Hola a todos, una duda mas: > > Existe la posibilidad en Python de que dos variables compartan la > misma zona de memoria? Es decir, que funcionen como punteros en otros > lenguajes. > > El tema es que tengo una lista en una variable y una sublista de la > primera en otra, y necesito que la informacion en ambas se actualice > cuando se cambia cualquiera de ellas. > > Gracias! > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > Atte. -- Marco Antonio Bustamante Ferrada ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From manuelmalo en gmail.com Tue Mar 13 13:16:12 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Tue, 13 Mar 2007 13:16:12 +0100 Subject: Variables que funcionen como punteros? In-Reply-To: <45F693BF.6000809@soft-com.es> References: <45F693BF.6000809@soft-com.es> Message-ID: Y para que solo sea de parte de la lista? porque si hago esto no funciona: >>> lista1 = [1,2,3,4,5,6] >>> lista2 = A[3:len(A)] >>> lista1[4] = 'cuatro' >>> lista2 [4, 5, 6] > >>> lista1 = [1,2,3,4,5,6] > >>> lista2 = lista1 > >>> > >>> lista1[1] = "dos" > >>> lista2[2] = "tres" > >>> lista1 > [1, 'dos', 'tres', 4, 5, 6] > >>> lista2 > [1, 'dos', 'tres', 4, 5, 6] > >>> > > > Saludos, > -- > ***************************************** > Oswaldo Hernández > oswaldo (@) soft-com (.) es > ***************************************** > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From pepe en diselpro.com Tue Mar 13 13:49:27 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Tue, 13 Mar 2007 13:49:27 +0100 Subject: ejecutable - binario etc etc In-Reply-To: <9d4b33970703122300rdd12f3dheb8865783ce6dc24@mail.gmail.com> References: <9d4b33970703122300rdd12f3dheb8865783ce6dc24@mail.gmail.com> Message-ID: <45F69DD7.9020209@diselpro.com> Hola cxfreeze sirve tanto para Windows como para Linux. http://www.python.net/crew/atuining/cx_Freeze/ Salud. sick escribió: > Hola todos buenas!!! =) > > oigan una pregunta tengo un pequeño programita hecho en python, pero tengo > una duda .-¿existe la posibilidad de hacer un "ejecutable" - "binario" o > algo asi a partir de un programa de python, pero para linux? > ya lei que en windows ya se puede hacer, tambien ya lei que python es un > lenguaje interpretado.- ¿pero que podria hacer, para que mi programa > hecho > en python lo pudiera ejecutar como otros binarios en linux > (./algo_aqui)? y > sin la necesidad de estar moviendo librerias etc etc. ya busque info, pero > no llego a nada, y la verdad se me hace extraño que en windows ya se > puede y > en linux no... > > > 1000 gracias por su orientacion buen dia > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From listas en soft-com.es Tue Mar 13 14:02:08 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Tue, 13 Mar 2007 14:02:08 +0100 Subject: Variables que funcionen como punteros? In-Reply-To: References: <45F693BF.6000809@soft-com.es> Message-ID: <45F6A0D0.8000002@soft-com.es> Manuel Malo de Molina escribió: > Y para que solo sea de parte de la lista? porque si hago esto no funciona: > >>>> lista1 = [1,2,3,4,5,6] >>>> lista2 = A[3:len(A)] >>>> lista1[4] = 'cuatro' >>>> lista2 > [4, 5, 6] > Al hacer lista2 = lista1[3:len(A)] estas haciendo una copia independiente por lo que pierdes las referencias a la lista original. Me da la impresion que lo que quieres es una referencia a una porcion de la lista, lo que en C seria: Int lista1[5] = .... Int *lista2; lista2 = &lista1[3] Creo que las listas no lo permiten. Desconozco si alguna de las librerias numericas o de manejo de arrays lo contemplan. Suerte -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From josefgon en gmail.com Tue Mar 13 14:55:42 2007 From: josefgon en gmail.com (Jose Francisco Gonzalez) Date: Tue, 13 Mar 2007 14:55:42 +0100 Subject: =?ISO-8859-1?Q?Re:__Tama=F1o_en_bytes_de_un_diccionario?= In-Reply-To: <1173784996.2582.15.camel@localhost.localdomain> References: <24be9e680703130309y2977c938v71a1b0964408cbaa@mail.gmail.com> <1173784996.2582.15.camel@localhost.localdomain> Message-ID: <24be9e680703130655o3c7edb7wa1dbc35ee286e364@mail.gmail.com> Ok, gracias, despues de enviar el correo cai en la solucion que dice Chema y con len(pickle.dumps(diccionario)) me devuelve la longitud de lo que se va a guardar. El diccionario es pequeño asi que con pickle como dice Francesc ya me sobra. Gracias a los dos From pych3m4 en gmail.com Tue Mar 13 15:12:33 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 13 Mar 2007 15:12:33 +0100 Subject: Variables que funcionen como punteros? In-Reply-To: <45F6A0D0.8000002@soft-com.es> References: <45F693BF.6000809@soft-com.es> <45F6A0D0.8000002@soft-com.es> Message-ID: <2c9fb0dd0703130712r24126f3dn267949d3e3d7fb4@mail.gmail.com> El 13/03/07, Oswaldo Hernández escribió: > Manuel Malo de Molina escribió: > > Y para que solo sea de parte de la lista? porque si hago esto no funciona: > > > >>>> lista1 = [1,2,3,4,5,6] > >>>> lista2 = A[3:len(A)] > >>>> lista1[4] = 'cuatro' > >>>> lista2 > > [4, 5, 6] > > > > Al hacer lista2 = lista1[3:len(A)] estas haciendo una copia independiente por lo que pierdes las > referencias a la lista original. > > Me da la impresion que lo que quieres es una referencia a una porcion de la lista, lo que en C seria: > Int lista1[5] = .... > Int *lista2; > lista2 = &lista1[3] > > Creo que las listas no lo permiten. Desconozco si alguna de las librerias numericas o de manejo de > arrays lo contemplan. Sería una locura. Por ejemplo, ¿qué significaría ésto?: del lista1[3] a) que se borra el elemento 3 de lista1, y que el 4 pasa a ser el primero de lista2 b) que se borra el elemento 3 de lista1 y el elemento correspondiente de todas las listas que enlanza con lista1 y que tuvieran ese elemento. Si encima entramos en las listas anidadas (listas recursivas), todavía sería peor su interpretación. Sobre estos temas, recuperaría un hilo que tuvimos hace tiempos: http://listas.aditel.org/archivos/python-es/2002-August/006046.html From jileon en parcan.es Tue Mar 13 15:33:03 2007 From: jileon en parcan.es (Juan Ignacio Rodriguez de Leon) Date: Tue, 13 Mar 2007 14:33:03 +0000 Subject: MatliPlot o GNUplot In-Reply-To: References: Message-ID: <45F6B61F.4000603@parcan.es> Ramon Becerra Reynoso escribió: > Necesito incluir unas graficas sencillas en un sistema que estoy > desarrollando en PyGTK , cual de estas librerias me recomiendan y como > instalarlas en Windows. Saludos. Aparte de las soluciones ya habituales, gnuplot, PIL, etc está esta otra asymptote http://asymptote.sourceforge.net/ que tiene buena pinta. Es un lenguaje de programación propio, más que una librería, pero se puede integrar con python. Y es multiplataforma. From arnau en ehas.org Tue Mar 13 15:42:48 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 13 Mar 2007 15:42:48 +0100 Subject: Variables que funcionen como punteros? In-Reply-To: <2c9fb0dd0703130712r24126f3dn267949d3e3d7fb4@mail.gmail.com> References: <45F693BF.6000809@soft-com.es> <45F6A0D0.8000002@soft-com.es> <2c9fb0dd0703130712r24126f3dn267949d3e3d7fb4@mail.gmail.com> Message-ID: <45F6B868.9080506@ehas.org> Chema Cortes escribió: > El 13/03/07, Oswaldo Hernández escribió: >> Manuel Malo de Molina escribió: >> > Y para que solo sea de parte de la lista? porque si hago esto no >> funciona: >> > >> >>>> lista1 = [1,2,3,4,5,6] >> >>>> lista2 = A[3:len(A)] >> >>>> lista1[4] = 'cuatro' >> >>>> lista2 >> > [4, 5, 6] >> > >> >> Al hacer lista2 = lista1[3:len(A)] estas haciendo una copia >> independiente por lo que pierdes las >> referencias a la lista original. >> >> Me da la impresion que lo que quieres es una referencia a una porcion >> de la lista, lo que en C seria: >> Int lista1[5] = .... >> Int *lista2; >> lista2 = &lista1[3] >> >> Creo que las listas no lo permiten. Desconozco si alguna de las >> librerias numericas o de manejo de >> arrays lo contemplan. > > Sería una locura. Por ejemplo, ¿qué significaría ésto?: > > del lista1[3] > > a) que se borra el elemento 3 de lista1, y que el 4 pasa a ser el > primero de lista2 > b) que se borra el elemento 3 de lista1 y el elemento correspondiente > de todas las listas que enlanza con lista1 y que tuvieran ese > elemento. > > Si encima entramos en las listas anidadas (listas recursivas), todavía > sería peor su interpretación. Primero, decir que Chema tiene razón, si las listas permitieran lo que pides, su comportamiento sería imprevisible. Por otro lado, si no tienes inconveniente en usar arrays, con ese tipo de objetos sí se puede hacer: > import numpy > a = numpy.array([0,1,2,3]) > b = a[1:] > a[1] = 10 > a array([ 0, 10, 2, 3]) > b array([10, 2, 3]) Pero claro, un array no es una lista. Por último, en mi opinión, en un lenguaje interpretado deberías hacerlo de otra forma: mantén sólo un objeto (en este caso, la lista) y de ahí sacas la información que necesites mediante funciones o métodos (si es que esa lista forma parte de una clase). Ejemplo simple, para acceder a elementos individuales de la "lista a[3:5]", podrías hacer: >a=[0,1,2,3,4,5,6,7] >b = lambda i: a[3:5][i] >b(0) 3 >a[3] = "tres" >b(0) "tres" De nuevo, no es una lista de verdad, pero puede servir. arnau From dmunhiz en gmail.com Tue Mar 13 16:55:07 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Tue, 13 Mar 2007 16:55:07 +0100 Subject: eliminar fila en wx.grid In-Reply-To: <45F678D6.6030604@gmail.com> References: <45F678D6.6030604@gmail.com> Message-ID: <45F6C95B.2050008@gmail.com> Me respondo a mi mismo. self.grdDestinatarios.DeleteRows(0,self.grdDestinatarios.GetNumberRows()) WxGrid::GetNumberRows* int* *GetNumberRows*() wxGrid::DeleteRows* bool* *DeleteRows*(*int */pos = 0/, *int */numRows = 1/, *bool */updateLabels = TRUE/) Daniel Muñiz Fontoira escribió: > Hola me gustaría saber como eliminar una fila de un wx.grid > o como eliminar todas, he probado con clear pero eso lo que hace es > dejarlas en blanco. > Gracias > > From ialdazabal en ehu.es Tue Mar 13 17:40:57 2007 From: ialdazabal en ehu.es (Inigo Aldazabal Mensa) Date: Tue, 13 Mar 2007 17:40:57 +0100 Subject: MatliPlot o GNUplot In-Reply-To: <45F6B61F.4000603@parcan.es> References: <45F6B61F.4000603@parcan.es> Message-ID: <200703131740.57881.ialdazabal@ehu.es> El Tuesday, 13 de March de 2007 15:33, Juan Ignacio Rodriguez de Leon escribió: > Ramon Becerra Reynoso escribió: > > Necesito incluir unas graficas sencillas en un sistema que estoy > > desarrollando en PyGTK , cual de estas librerias me recomiendan y como > > instalarlas en Windows. Saludos. > > Aparte de las soluciones ya habituales, gnuplot, PIL, etc está esta otra > > asymptote > http://asymptote.sourceforge.net/ > > que tiene buena pinta. Es un lenguaje de programación propio, más que > una librería, pero se puede integrar con python. Y es multiplataforma. Esta no la conocía. Parece que genera eps. ¿Sabéis si se puede integrar fácil un eps en PyGTK? Me refiero para poder visualizarlo. Estuve buscando un poco, pero no encontré nada evidente a primera vista. Parecía complicado ¿o no? > > > _______________________________________________ > 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 josepgimbernat en cdgir.com Tue Mar 13 15:32:43 2007 From: josepgimbernat en cdgir.com (Josep Cdgir) Date: Tue, 13 Mar 2007 15:32:43 +0100 Subject: eliminar fila en wx.grid Message-ID: <200703131532.43377.josepgimbernat@cdgir.com> con DeleteRows puedes borrar una o más lineas del grid para eliminar todas las filas puedes hacer: numfilas=self.grid1.GetNumberRows() for x in range(numfilas): self.grid1.DeleteRows(0,1) _____________________________________________________________________ Mensaje analizado y protegido por Telefonica Empresas From eaburtolemilio en gmail.com Tue Mar 13 21:42:19 2007 From: eaburtolemilio en gmail.com (emilio aburto) Date: Tue, 13 Mar 2007 16:42:19 -0400 Subject: Como instalar un modulo Message-ID: <5926c4f00703131342t2607532bj407b6a4c0aa9c89@mail.gmail.com> > > http://pythonsudoku.svn.sourceforge.net/viewvc/pythonsudoku/pythonsudoku/trunk/INSTALL?revision=393&view=markup > > El 11/03/07, emilio aburto > escribió: > >* Hola,soy nuevo en la lista y quisiera saber si me pueden ayudar, he querido > *>* instalar el modulo PythonSudoku con la > *>* intención de hacer un programa con entorno gráfico para resolver sudokus, > *>* pero al intentar instalarlo me pide editar algunos archivos .cfg y no se que > *>* rutas ponerle, por favor ayúdenme, no es urgente pero se los agradecería > *>* mucho, uso windows 98 y tengo python 2.5 instalado. Gracias de antemano > *>* _______________________________________________ > *>* Python-es mailing list > *>* Python-es en aditel.org > *>* http://listas.aditel.org/listinfo/python-es > *>* > * > > -- > Saludos, > > -- > > Luis Miguel > > Muchas Gracias, Luis Miguel, pero ese archivo lo tengo, lo que me falta es saber que poner en las variables : syscfg = /home/xose/pysdk/pysdk.cfg usercfg = /home/xose/.pysdk.cfg localedir = /home/xose/pysdk/locale fontdir = /home/xose/pysdk/data From xoseotero en yahoo.es Tue Mar 13 22:53:15 2007 From: xoseotero en yahoo.es (=?iso-8859-1?q?Xos=E9_Otero?=) Date: Tue, 13 Mar 2007 22:53:15 +0100 Subject: Como instalar un modulo In-Reply-To: <5926c4f00703101933paefbf37r40f9a1aa03168180@mail.gmail.com> References: <5926c4f00703101933paefbf37r40f9a1aa03168180@mail.gmail.com> Message-ID: <200703132253.15607.xoseotero@yahoo.es> O Domingo 11 Marzo 2007 04:33, emilio aburto escribiu: > Hola,soy nuevo en la lista y quisiera saber si me pueden ayudar, he querido > instalar el modulo PythonSudoku con > la intención de hacer un programa con entorno gráfico para resolver > sudokus, pero al intentar instalarlo me pide editar algunos archivos .cfg y > no se que rutas ponerle Python Sudoku no es un módulo, es un programa "completo". Si lo que quieres es crear/resolver sudokus desde python, crea un subdirectorio en tu proyecto llamado pythonsudoku y mete allí board.py, sudoku.py y __init__.py. En __init__.py tienes ejemplos de como usarlo. ______________________________________________ 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 jjachuf en gmail.com Wed Mar 14 03:12:05 2007 From: jjachuf en gmail.com (=?ISO-8859-1?Q?Jos=E9_Jachuf?=) Date: Tue, 13 Mar 2007 23:12:05 -0300 Subject: Autenticacion, mail y otras cosillas Message-ID: <45F759F5.5060509@gmail.com> Hola necesito que me orienten por donde encarar la solución de esta situación: Servidor IIS sobre win2003 server, al cual tengo prácticamente acceso nulo, cada cosa a instalar significa solicitudes, tiempo, documentación, etc. para una simple cosa quizá se tarde uno o dos meses. Está instalado en el servidor python 2.4.4. Ya tengo corriendo algunas cosillas en python y funcionan bien. Está configurado para ejecutar cgi´s con extensión .py. Los requerimientos son los siguientes: - Una pagina para login. Son usuarios fijos, no creo que superen los 20, había pensado en sqlite para manejar estos usuarios. - Una vez logueados se mostrará una pagina con un listado de link para descargar archivos. - Se deberá registrar archivos son descargados, usuario fecha, etc. - Quizá enviar un mail notificando de la descarga. Todavía no sé si será necesario. 1) No quiero instalar ningún framework. Por lo simple de la aplicación y por las restricciones mencionadas arriba. 2) Es urllib2 un buen punto de partida? 3) Cómo evito que copiando el link se puedan descargar los archivos sin necesidad de loguearse? Se debe interceptar y analizar la petición? Saludos Jose From dmunhiz en gmail.com Wed Mar 14 07:56:46 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Wed, 14 Mar 2007 07:56:46 +0100 Subject: eliminar fila en wx.grid In-Reply-To: <200703131532.43377.josepgimbernat@cdgir.com> References: <200703131532.43377.josepgimbernat@cdgir.com> Message-ID: <45F79CAE.6020109@gmail.com> Muchas gracias Ya me había respondido a mi mismo, como ves lo lo hice con una sola linea ;-). Me respondo a mi mismo. self.grdDestinatarios.DeleteRows(0,self.grdDestinatarios.GetNumberRows()) Referencia: WxGrid::GetNumberRows* int* *GetNumberRows*() wxGrid::DeleteRows* bool* *DeleteRows*(*int */pos = 0/, *int */numRows = 1/, *bool */updateLabels = TRUE/) Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Josep Cdgir escribió: > con DeleteRows puedes borrar una o más lineas del grid > > para eliminar todas las filas puedes hacer: > > numfilas=self.grid1.GetNumberRows() > for x in range(numfilas): > self.grid1.DeleteRows(0,1) > > _____________________________________________________________________ > Mensaje analizado y protegido por Telefonica Empresas > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From jileon en parcan.es Wed Mar 14 10:03:29 2007 From: jileon en parcan.es (Juan Ignacio Rodriguez de Leon) Date: Wed, 14 Mar 2007 09:03:29 +0000 Subject: MatliPlot o GNUplot In-Reply-To: <200703131740.57881.ialdazabal@ehu.es> References: <45F6B61F.4000603@parcan.es> <200703131740.57881.ialdazabal@ehu.es> Message-ID: <45F7BA61.4030306@parcan.es> Inigo Aldazabal Mensa escribió: >> asymptote >> http://asymptote.sourceforge.net/ > Esta no la conocía. Parece que genera eps. > > ¿Sabéis si se puede integrar fácil un eps en PyGTK? Me refiero para poder > visualizarlo. Estuve buscando un poco, pero no encontré nada evidente a > primera vista. Parecía complicado ¿o no? Hay varias formas de convertir en EPS a PNG, pero asymptote puede generar como salida PNGs, entre otras cosas (La verdad es que la documentación es un poco pobre en ese aspecto). Por ejemplo, puedes procesar este pequeño programa en asymptote: draw((0,0)--(100,100)); draw((0,0)--(100,0)--(100,100)--(0,100)--cycle); Llamarlo, por ejemplo, test.asy, y obtener un fichero test.png con la siguiente orden: asy -noV test.asy -outformat png (El flag -noV es para que no visualize el resultado) From pepe en diselpro.com Wed Mar 14 10:05:27 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Wed, 14 Mar 2007 10:05:27 +0100 Subject: PySpy para PyS60 Message-ID: <45F7BAD7.5070503@diselpro.com> Hola a todos. He liberado el script PySpy para PyS60 (Nokia + Symbian). Se trata de un sistema de video-vigilancia para teléfonos móviles. Caracteristicas: - Detecta movimiento por comparación de fotogramas, para ello pasa todos los pixels de RGB a luminancia y comparando si se ha superado un umbral con respecto al fotograma anterior, se decide si un determinado pixel a variado o no. Tanto la cantidad de pixels como el umbral son configurables. - Función de alarma, avisa cuando detecta movimiento. - Función de detección de presencia, avisa cuando no se ha detectado ningún movimiento en un periodo de tiempo configurable. Esto lo he hecho pensando en gente mayor que vive sola. Si por ejemplo no pasa por el pasillo o el salón en un máximo de 2 horas desde las 9 AM a la 1 PM, entonces emite un aviso. - Resolución de la foto, balance, flash, tipo exposición, ... configurables. - Puede emitir avisos mediante e-mail (con foto o sin foto), mms, sms, llamada perdida y almacenar las fotos en la memoria del teléfono. - Soporta varios idiomas (de momento Ingles y Español) - Permite programar tanto el inicio como el fin (hora del dia 00:00 - 23:59) de la alarma y de la detección de presencia. Podeis bajaros una copia funcional desde esta url: http://pyspy.sourceforge.net/pyspy.zip Hay un solo script pyspy_all.py que tiene algunos módulos empotrados (inline) ya que no vienen con la distribución oficial de PyS60. Bueno, si alguien quiere colaborar con el proyecto que me lo diga. Tareas pendientes: - Hacer una página web simplona y clara en Español y en Inglés. Mi inglés es pésimo, así que agradecería que alguien me eche una mano en la traducción cuando tenga la web en español terminada. - Probar el programa en otros teléfonos que no sean el nokia N70 (el que yo tengo) - Arreglar toneladas de bugs. - Hacer un programa que actúe como mando a distancia de pyspy por bluetooth. Este post es un offtopic, asi que todas las preguntas, peticiones, bugs y donaciones de un millón de euros se realicen en la página del proyecto en sourceforge. https://sourceforge.net/projects/pyspy Saludos. From dlevental en gmail.com Wed Mar 14 12:16:39 2007 From: dlevental en gmail.com (Diego Levental) Date: Wed, 14 Mar 2007 08:16:39 -0300 Subject: PySpy para PyS60 In-Reply-To: <45F7BAD7.5070503@diselpro.com> References: <45F7BAD7.5070503@diselpro.com> Message-ID: <1898b06e0703140416l51a591a7lb5c0d0e70ed60e5d@mail.gmail.com> En que telefonos se puede utilizar? (tengo uno Motorola) On 14/03/07, Pepe Aracil wrote: > > Hola a todos. > > He liberado el script PySpy para PyS60 (Nokia + Symbian). > Se trata de un sistema de video-vigilancia para teléfonos móviles. > > Caracteristicas: > > - Detecta movimiento por comparación de fotogramas, para ello pasa > todos los pixels de RGB a luminancia y comparando si se ha superado > un umbral con respecto al fotograma anterior, se decide si un > determinado pixel a variado o no. > Tanto la cantidad de pixels como el umbral son configurables. > > - Función de alarma, avisa cuando detecta movimiento. > > - Función de detección de presencia, avisa cuando no se ha detectado > ningún movimiento en un periodo de tiempo configurable. Esto lo he > hecho pensando en gente mayor que vive sola. Si por ejemplo no pasa > por el pasillo o el salón en un máximo de 2 horas desde las 9 AM a la > 1 PM, entonces emite un aviso. > > - Resolución de la foto, balance, flash, tipo exposición, ... > configurables. > > - Puede emitir avisos mediante e-mail (con foto o sin foto), mms, sms, > llamada perdida y almacenar las fotos en la memoria del teléfono. > > - Soporta varios idiomas (de momento Ingles y Español) > > - Permite programar tanto el inicio como el fin (hora del dia 00:00 - > 23:59) > de la alarma y de la detección de presencia. > > > Podeis bajaros una copia funcional desde esta url: > > http://pyspy.sourceforge.net/pyspy.zip > > Hay un solo script pyspy_all.py que tiene algunos módulos empotrados > (inline) > ya que no vienen con la distribución oficial de PyS60. > > > Bueno, si alguien quiere colaborar con el proyecto que me lo diga. > > Tareas pendientes: > > - Hacer una página web simplona y clara en Español y en Inglés. > Mi inglés es pésimo, así que agradecería que alguien me eche > una mano en la traducción cuando tenga la web en español terminada. > > - Probar el programa en otros teléfonos que no sean el nokia N70 (el > que yo tengo) > > - Arreglar toneladas de bugs. > > - Hacer un programa que actúe como mando a distancia de pyspy por > bluetooth. > > > Este post es un offtopic, asi que todas las preguntas, peticiones, bugs y > donaciones de un millón de euros se realicen en la página del proyecto > en sourceforge. > > https://sourceforge.net/projects/pyspy > > Saludos. > > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Saludos, DGL. Visita mi blog: www.diegolevental.com.ar From joselopezguerra en gmail.com Wed Mar 14 12:57:55 2007 From: joselopezguerra en gmail.com (=?ISO-8859-1?Q?Pepe_L=F3pez?=) Date: Wed, 14 Mar 2007 11:57:55 +0000 Subject: Desarrollo para PDA's Message-ID: Hola. Me estoy planteando desarrollar ciertas aplicaciones de gestión para dispositivos moviles (sobre todo pocketpc) y me gustaría que me dierais alguna indicación para comenzar. En principio, y como principales inquietudes, las siguientes: - ¿existe algún IDE especial para python y dispositivos móviles? (Distinto de boa, etc...) - ¿hay posibilidad de trabajar con interfaz gráfica en entorno desarrollo? (me explico, tipo builder, netbeans..., con componentes gráficos) ............................................................... MUCHAS GRACIAS DE ANTEMANO. From pepe en diselpro.com Wed Mar 14 12:54:26 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Wed, 14 Mar 2007 12:54:26 +0100 Subject: PySpy para PyS60 In-Reply-To: <1898b06e0703140416l51a591a7lb5c0d0e70ed60e5d@mail.gmail.com> References: <45F7BAD7.5070503@diselpro.com> <1898b06e0703140416l51a591a7lb5c0d0e70ed60e5d@mail.gmail.com> Message-ID: <45F7E272.9090508@diselpro.com> Solo teléfonos con S.O. Symbian segunda o tercera edición (Normalmente Nokia) Saludos. Diego Levental escribió: > En que telefonos se puede utilizar? (tengo uno Motorola) > > On 14/03/07, Pepe Aracil wrote: >> >> Hola a todos. >> >> He liberado el script PySpy para PyS60 (Nokia + Symbian). >> Se trata de un sistema de video-vigilancia para teléfonos móviles. >> >> Caracteristicas: >> >> - Detecta movimiento por comparación de fotogramas, para ello pasa >> todos los pixels de RGB a luminancia y comparando si se ha superado >> un umbral con respecto al fotograma anterior, se decide si un >> determinado pixel a variado o no. >> Tanto la cantidad de pixels como el umbral son configurables. >> >> - Función de alarma, avisa cuando detecta movimiento. >> >> - Función de detección de presencia, avisa cuando no se ha detectado >> ningún movimiento en un periodo de tiempo configurable. Esto lo he >> hecho pensando en gente mayor que vive sola. Si por ejemplo no pasa >> por el pasillo o el salón en un máximo de 2 horas desde las 9 AM a la >> 1 PM, entonces emite un aviso. >> >> - Resolución de la foto, balance, flash, tipo exposición, ... >> configurables. >> >> - Puede emitir avisos mediante e-mail (con foto o sin foto), mms, sms, >> llamada perdida y almacenar las fotos en la memoria del teléfono. >> >> - Soporta varios idiomas (de momento Ingles y Español) >> >> - Permite programar tanto el inicio como el fin (hora del dia 00:00 - >> 23:59) >> de la alarma y de la detección de presencia. >> >> >> Podeis bajaros una copia funcional desde esta url: >> >> http://pyspy.sourceforge.net/pyspy.zip >> >> Hay un solo script pyspy_all.py que tiene algunos módulos empotrados >> (inline) >> ya que no vienen con la distribución oficial de PyS60. >> >> >> Bueno, si alguien quiere colaborar con el proyecto que me lo diga. >> >> Tareas pendientes: >> >> - Hacer una página web simplona y clara en Español y en Inglés. >> Mi inglés es pésimo, así que agradecería que alguien me eche >> una mano en la traducción cuando tenga la web en español terminada. >> >> - Probar el programa en otros teléfonos que no sean el nokia N70 (el >> que yo tengo) >> >> - Arreglar toneladas de bugs. >> >> - Hacer un programa que actúe como mando a distancia de pyspy por >> bluetooth. >> >> >> Este post es un offtopic, asi que todas las preguntas, peticiones, bugs y >> donaciones de un millón de euros se realicen en la página del proyecto >> en sourceforge. >> >> https://sourceforge.net/projects/pyspy >> >> Saludos. >> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> > > > From joselopezguerra en gmail.com Wed Mar 14 13:46:15 2007 From: joselopezguerra en gmail.com (=?ISO-8859-1?Q?Pepe_L=F3pez?=) Date: Wed, 14 Mar 2007 12:46:15 +0000 Subject: Instalacion Boa Message-ID: Estoy intentando instalar boa-constructor 0.4.4; con python 2.5 y wxpython 2.8. Al intentar ejecutar boa me salta el siguiente error: 'module' object has no attribute 'NoteBookSizer' ¿Alguien tiene alguna solución? Supongo que será algún tipo de incompatibilidad pero, ni idea...... GRACIAS. From dmunhiz en gmail.com Wed Mar 14 16:21:56 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Wed, 14 Mar 2007 16:21:56 +0100 Subject: Instalacion Boa In-Reply-To: References: Message-ID: <45F81314.5000605@gmail.com> A mi me pasaba lo mismo y opté por instalar las wx 2.6 así todo va perfecto. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Pepe López escribió: > Estoy intentando instalar boa-constructor 0.4.4; con python 2.5 y wxpython > 2.8. > Al intentar ejecutar boa me salta el siguiente error: 'module' object > has no > attribute 'NoteBookSizer' > ¿Alguien tiene alguna solución? > Supongo que será algún tipo de incompatibilidad pero, ni idea...... > GRACIAS. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From cybermopi en gmail.com Wed Mar 14 16:32:49 2007 From: cybermopi en gmail.com (Juan Carlos) Date: Wed, 14 Mar 2007 16:32:49 +0100 Subject: PySpy para PyS60 In-Reply-To: <45F7E272.9090508@diselpro.com> References: <45F7BAD7.5070503@diselpro.com> <1898b06e0703140416l51a591a7lb5c0d0e70ed60e5d@mail.gmail.com> <45F7E272.9090508@diselpro.com> Message-ID: <141b87e50703140832x7ecddce8p6daed9f23580f1b@mail.gmail.com> Muy interesante tu proyecto.Cuenta conmigo para la traducción. From ingcomrbr en gmail.com Wed Mar 14 17:17:44 2007 From: ingcomrbr en gmail.com (Ramon Becerra Reynoso) Date: Wed, 14 Mar 2007 10:17:44 -0600 Subject: Sobre librerias graficas Message-ID: Fijense que estuve utilizando las librerias de matplotlib para el sistema que les platique para el cual las necesitaba. Pero resulta que al utilizarlas quiero compilarlas con py2exe y me dice que no estoy incluyendo correctamente las librerias __init__.pyc de matplotlib. Mi archivo de compilacion es este: from distutils.core import setup import pygtk pygtk.require("2.0") import py2exe import glob opts = { "py2exe": { "packages":"encodings", "includes": "cairo,pango,pangocairo,atk,gobject", "dll_excludes": [ "iconv.dll","intl.dll","libatk-1.0-0.dll", "libgdk_pixbuf-2.0-0.dll","libgdk-win32-2.0-0.dll", "libglib-2.0-0.dll","libgmodule-2.0-0.dll", "libgobject-2.0-0.dll","libgthread-2.0-0.dll", "libgtk-win32-2.0-0.dll","libpango-1.0-0.dll", "libpangowin32-1.0-0.dll"], } } setup( name = 'Nombre del Sistema', description = 'Descripcion del sistema', version = 'version del sistema', windows = [ { 'script': 'archivo_a_compilar.py', 'icon_resources': [( 1, "icono_principal.ico" )], } ], options = opts, data_files=[ ( "glade", glob.glob("glade/*.*")), #'handytool.glade', 'leeme.txt' ] ) Que me hara falta? o que incluyo apra que me pueda funcionar con las librerias graficas el sistema? Si no, tendre que instalar python tambien para que el sistema pueda funcionar en Windows. PD. Este archivo funciona sin mtplotlib, para compilar con py2exe, por si lo quieren copiar. From cescd en yahoo.com.mx Wed Mar 14 19:49:16 2007 From: cescd en yahoo.com.mx (Cesar Cardenas Desales) Date: Wed, 14 Mar 2007 11:49:16 -0700 (PDT) Subject: Autenticacion, mail y otras cosillas Message-ID: <20070314184916.87918.qmail@web50407.mail.re2.yahoo.com> ----- Mensaje original ---- De: José Jachuf Para: python Enviado: martes, 13 de marzo, 2007 20:12:05 Asunto: [Python-es] Autenticacion, mail y otras cosillas Hola necesito que me orienten por donde encarar la solución de esta situación: Servidor IIS sobre win2003 server, al cual tengo prácticamente acceso nulo, cada cosa a instalar significa solicitudes, tiempo, documentación, etc. para una simple cosa quizá se tarde uno o dos meses. Está instalado en el servidor python 2.4.4. Ya tengo corriendo algunas cosillas en python y funcionan bien. Está configurado para ejecutar cgi´s con extensión .py. Los requerimientos son los siguientes: - Una pagina para login. Son usuarios fijos, no creo que superen los 20, había pensado en sqlite para manejar estos usuarios. - Una vez logueados se mostrará una pagina con un listado de link para descargar archivos. - Se deberá registrar archivos son descargados, usuario fecha, etc. - Quizá enviar un mail notificando de la descarga. Todavía no sé si será necesario. 1) No quiero instalar ningún framework. Por lo simple de la aplicación y por las restricciones mencionadas arriba. 2) Es urllib2 un buen punto de partida? 3) Cómo evito que copiando el link se puedan descargar los archivos sin necesidad de loguearse? Se debe interceptar y analizar la petición? Saludos Jose _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es 1) Tendras que hacerlo con CGI 2) urllib2 sirve en general para escribir clientes web, no para servidores 3) Puedes ocultar los archivos detras de una forma, que le unica manera de descargarlos sea luego de pulsar un boton de submit. A continuacion un enlace con pequeños modulos interesantes para desarrollo CGI http://www.voidspace.org.uk/python/cgi.shtml http://www.melbpc.org.au/pcupdate/2112/2112article5.htm http://safari.oreilly.com/0596000855/python2-CHP-12-SECT-7 ___________________________________________________________ Do You Yahoo!? La mejor conexión a Internet y 2GB extra a tu correo por $100 al mes. http://net.yahoo.com.mx From jcea en argo.es Wed Mar 14 22:05:21 2007 From: jcea en argo.es (Jesus Cea) Date: Wed, 14 Mar 2007 22:05:21 +0100 Subject: eficiencia de numpy.array In-Reply-To: <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> References: <1173353965.30229.7.camel@skynex.telecable.es> <1173357690.2555.12.camel@localhost.localdomain> <1173360032.32764.5.camel@skynex.telecable.es> <2c9fb0dd0703080616k1bb1e86fx41c310bcc94179e6@mail.gmail.com> <1173367896.2555.55.camel@localhost.localdomain> <2c9fb0dd0703081015t78dabc08n619046445f8448c7@mail.gmail.com> <1173381178.2555.104.camel@localhost.localdomain> <2c9fb0dd0703090238r11136886le0e42cb858d645db@mail.gmail.com> <20070309154039.GA16907@xot.carabos.com> <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> Message-ID: <45F86391.2010206@argo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Chema Cortes wrote: >> http://www.python.org/doc/2.3.5/whatsnew/section-slices.html > > Siendo "legalistas", se debe recurrir a la "sintaxis" oficial del python: > > http://docs.python.org/ref/slicings.html > > Podrás ver cómo se definen slicing simple y extendido. Con el python > 2.3, el slicing simple pasó de usar "short_slicing" a "long_slicing" > (cambio que, por cierto, no se refleja en la documentación). Si lees > en el primer párrafo, te indica que para evitar ambigüedades de > sintaxis entre slicing simple y extendido se permite añadir una coma > al final de los argumentos del extendido. Creo que es la mejor prueba > para comprobar que las listas todavía NO tienen slicing extendido. Chema, ¿podría pedirte que pusieras un ejemplo de slicing extendido?. No capto bien su funcionamiento, y google no es de ayuda. Gracias. - -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ jabber / xmpp:jcea en jabber.org _/_/ _/_/ _/_/_/_/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRfhjkZlgi5GaxT1NAQLbywP/d0rD98waLqV08Map5LSADnU3TD36zPhA jNMCb2qaU6BQKfZDWw+u+K4k52HAPW9smnQ677/trxP0Hky6SjQ+4vPKZobIr632 OwusttaYK1Nxtl+TQ8ljFQGwBsKUkkbxg/vafaVy5hee9UG48rAGd6NPvV/kHVGE RNf4mX9c83o= =g60x -----END PGP SIGNATURE----- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jcea en argo.es Wed Mar 14 22:11:55 2007 From: jcea en argo.es (Jesus Cea) Date: Wed, 14 Mar 2007 22:11:55 +0100 Subject: PySpy para PyS60 In-Reply-To: <45F7E272.9090508@diselpro.com> References: <45F7BAD7.5070503@diselpro.com> <1898b06e0703140416l51a591a7lb5c0d0e70ed60e5d@mail.gmail.com> <45F7E272.9090508@diselpro.com> Message-ID: <45F8651B.90304@argo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 http://www.s60.com/ http://forum.nokia.com/python Pepe Aracil wrote: > Solo teléfonos con S.O. Symbian segunda o tercera edición (Normalmente > Nokia) - -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ jabber / xmpp:jcea en jabber.org _/_/ _/_/ _/_/_/_/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRfhlG5lgi5GaxT1NAQKt+QQAi5U2aYg6dV6B1P9pqbtNp3o2Fn3vW7Xn yrm20D77iELazS/mm008I+sK2zIT7+ZXnUv2+yfvjfRIPlmkNIB8QyjSPRj6Ehtl pQnt/XLUaRZfZTdrAVswP/PIyAfhPKj1beRnAQQov8ihreJkdm6B7OXdsx1UoZZU nDcOWMjW7Rg= =Fkbj -----END PGP SIGNATURE----- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jjachuf en gmail.com Wed Mar 14 23:25:42 2007 From: jjachuf en gmail.com (=?ISO-8859-1?Q?Jos=E9_Jachuf?=) Date: Wed, 14 Mar 2007 19:25:42 -0300 Subject: Autenticacion, mail y otras cosillas In-Reply-To: <20070314184916.87918.qmail@web50407.mail.re2.yahoo.com> References: <20070314184916.87918.qmail@web50407.mail.re2.yahoo.com> Message-ID: <45F87666.20303@gmail.com> Cesar Cardenas Desales escribió: > 1) Tendras que hacerlo con CGI > 2) urllib2 sirve en general para escribir clientes web, no para servidores > 3) Puedes ocultar los archivos detras de una forma, que le unica manera de descargarlos sea luego de pulsar un boton de submit. > > A continuacion un enlace con pequeños modulos interesantes para desarrollo CGI > > http://www.voidspace.org.uk/python/cgi.shtml > http://www.melbpc.org.au/pcupdate/2112/2112article5.htm > http://safari.oreilly.com/0596000855/python2-CHP-12-SECT-7 Gracias Cesar, muy buenos link. Empezaré por ese lado. From py en ch3m4.org Thu Mar 15 04:24:47 2007 From: py en ch3m4.org (Chema Cortes) Date: Thu, 15 Mar 2007 04:24:47 +0100 Subject: eficiencia de numpy.array In-Reply-To: <45F86391.2010206@argo.es> References: <1173353965.30229.7.camel@skynex.telecable.es> <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> <45F86391.2010206@argo.es> Message-ID: <200703150424.48925.py@ch3m4.org> El Miércoles, 14 de Marzo de 2007 22:05, Jesus Cea escribió: > Chema Cortes wrote: > >> http://www.python.org/doc/2.3.5/whatsnew/section-slices.html > > > > Siendo "legalistas", se debe recurrir a la "sintaxis" oficial del python: > > > > http://docs.python.org/ref/slicings.html > > > > Podrás ver cómo se definen slicing simple y extendido. Con el python > > 2.3, el slicing simple pasó de usar "short_slicing" a "long_slicing" > > (cambio que, por cierto, no se refleja en la documentación). Si lees > > en el primer párrafo, te indica que para evitar ambigüedades de > > sintaxis entre slicing simple y extendido se permite añadir una coma > > al final de los argumentos del extendido. Creo que es la mejor prueba > > para comprobar que las listas todavía NO tienen slicing extendido. > > Chema, ¿podría pedirte que pusieras un ejemplo de slicing extendido?. No > capto bien su funcionamiento, y google no es de ayuda. Gracias. Si tenemos una matriz multidimensional n x m : M[0,-1] -> último item de la primera fila M[0,] -> primera fila M[...,0] -> lista con los primeros elementos de todas las filas M[...,0:1] -> lista de rebanados de cada fila, cada rebanado con sólo el primer item de cada fila M[::2,] -> filas pares Una forma de comprobar realmente lo que pasa: class L(list): def __getitem__(self,item): try: res=super(L,self).__getitem__(item) except: res="¡¡¡ERROR!!!" print "__getitem__(%r)"%(item,),res return res def __getslice__(self,*args): res=super(L,self).__getslice__(*args) print "__getslice__%r"%(args,),res return res l=L(range(10)) l --> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] l[0] --> __getitem__(0) 0 l[0,] --> __getitem__((0,)) ¡¡¡ERROR!!! l[0,1] --> __getitem__((0, 1)) ¡¡¡ERROR!!! l[3:8] --> __getslice__(3, 8) [3, 4, 5, 6, 7] l[3:8:2] --> __getitem__(slice(3, 8, 2)) [3, 5, 7] l[3:8,] --> __getitem__((slice(3, 8, None),)) ¡¡¡ERROR!!! l[slice(3,8)] --> __getitem__(slice(3, 8, None)) [3, 4, 5, 6, 7] l[...] --> __getitem__(Ellipsis) ¡¡¡ERROR!!! ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From manuelmalo en gmail.com Thu Mar 15 08:31:29 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Thu, 15 Mar 2007 08:31:29 +0100 Subject: Sobre librerias graficas In-Reply-To: References: Message-ID: A mi con matplotlib me funciono esto (tendrias que añadirle lo de gtk): from distutils.core import setupimport py2exefrom distutils.filelist import findallimport osimport matplotlibmatplotlibdatadir = matplotlib.get_data_path()matplotlibdata = findall(matplotlibdatadir)matplotlibdata_files = []for f in matplotlibdata: dirname = os.path.join('matplotlibdata', f[len(matplotlibdatadir)+1:]) matplotlibdata_files.append((os.path.split(dirname)[0], [f]))setup( console=['test.py'], options={ 'py2exe': { 'packages' : ['matplotlib', 'pytz'], } }, data_files=matplotlibdata_files) Sacado de la web de py2exe: http://www.py2exe.org/index.cgi/MatPlotLib Pero ojo si usas tambien numpy/numeric o scipy, dan muchisimos problemas. Un saludo, Manuel From manuelmalo en gmail.com Thu Mar 15 08:32:48 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Thu, 15 Mar 2007 08:32:48 +0100 Subject: Sobre librerias graficas In-Reply-To: References: Message-ID: Vaya, salio todo descentrado y las filas cortadas. Sera mejor que lo copies directamente de la web de py2exe. El día 15/03/07, Manuel Malo de Molina escribió: > > A mi con matplotlib me funciono esto (tendrias que añadirle lo de gtk):from distutils.core import setup import py2exe from distutils.filelist import findall import os import matplotlib matplotlibdatadir = matplotlib.get_data_path( ) matplotlibdata = findall(matplotlibdatadir) matplotlibdata_files = [] for f in matplotlibdata: dirname = os.path. join('matplotlibdata', f[len (matplotlibdatadir)+1:] ) matplotlibdata_files.append((os .path.split(dirname)[ 0], [f])) setup( console=['test.py'], options={ 'py2exe': { 'packages' : ['matplotlib' , 'pytz'], } }, data_files=matplotlibdata_files ) > > > > Sacado de la web de py2exe: http://www.py2exe.org/index.cgi/MatPlotLib > > Pero ojo si usas tambien numpy/numeric o scipy, dan muchisimos problemas. > > > Un saludo, > Manuel From pepe en diselpro.com Thu Mar 15 10:22:40 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Thu, 15 Mar 2007 10:22:40 +0100 Subject: PySpy para PyS60 In-Reply-To: <141b87e50703140832x7ecddce8p6daed9f23580f1b@mail.gmail.com> References: <45F7BAD7.5070503@diselpro.com> <1898b06e0703140416l51a591a7lb5c0d0e70ed60e5d@mail.gmail.com> <45F7E272.9090508@diselpro.com> <141b87e50703140832x7ecddce8p6daed9f23580f1b@mail.gmail.com> Message-ID: <45F91060.2060105@diselpro.com> Gracias :) Juan Carlos escribió: > Muy interesante tu proyecto.Cuenta conmigo para la traducción. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From jjachuf en gmail.com Thu Mar 15 14:08:10 2007 From: jjachuf en gmail.com (=?ISO-8859-1?Q?Jos=E9_Jachuf?=) Date: Thu, 15 Mar 2007 10:08:10 -0300 Subject: Autenticacion, mail y otras cosillas In-Reply-To: <20070314184916.87918.qmail@web50407.mail.re2.yahoo.com> References: <20070314184916.87918.qmail@web50407.mail.re2.yahoo.com> Message-ID: <45F9453A.2030104@gmail.com> > 3) Puedes ocultar los archivos detras de una forma, que le unica manera de descargarlos sea luego de pulsar un boton de submit. Es posible, una vez determinado que archivos descargar, crear un .zip con estos en memoria o de forma temporal en disco y luego descargarlo. Si fuera desde la memoria me parece mejor. Saludos Jose From joana_mendaro en hotmail.com Thu Mar 15 14:54:49 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Thu, 15 Mar 2007 13:54:49 +0000 Subject: problema de ejecucion Message-ID: Hola chic en s: Estoy ejecutando este programa en python para que desde este se llame a otro que tengo en mi pc y se ejecute. import sys, popen2 from commands import * def lematizarTexto (texto): cmd='C:\FreeLing-1.4\indexdict.exe C:\FreeLing-1.4\data\es\newdict.db References: Message-ID: <2c9fb0dd0703151012t6f7fd2b6i93391dcfec898c09@mail.gmail.com> El 15/03/07, joana salgado gomez escribió: > Hola chic en s: > Estoy ejecutando este programa en python para que desde este se llame a otro > que tengo en mi pc y se ejecute. > > import sys, popen2 > from commands import * > def lematizarTexto (texto): > cmd='C:\FreeLing-1.4\indexdict.exe > C:\FreeLing-1.4\data\es\newdict.db > > p1,p2,p3=popen2.popen3(cmd) > print p3.read() > > Cuando lo ejecuto me da un error que dice: > > Error 21 while creating database C:\FreeLing-1.4\data\es > > > Porque puede ser?? Será porque '\n' que va en '\newdict.db' lo interpreta como un salto de línea. Usa cadenas "raw": cmd=r'C:\FreeLing-1.4\indexdict.exe C:\FreeLing-1.4\data\es\newdict.db References: <2c9fb0dd0703151012t6f7fd2b6i93391dcfec898c09@mail.gmail.com> Message-ID: el error a cambiado al ponerle la r por delante ahora es: Error 2 while creating database C:\FreeLing-1.4\data\es\newdicc.db Aunque creo que la primera vez que lo he ejecutado con la r si ha dado el resultado, al volverlo intentar me lanza este nuevo error!!! ______________________________________________________________ From: "Chema Cortes" Reply-To: La lista de python en castellano To: "La lista de python en castellano" Subject: Re: [Python-es] problema de ejecucion Date: Thu, 15 Mar 2007 18:12:21 +0100 >El 15/03/07, joana salgado gomez >escribió: >>Hola chic en s: >>Estoy ejecutando este programa en python para que desde este se >>llame a otro >>que tengo en mi pc y se ejecute. >> >>import sys, popen2 >>from commands import * >>def lematizarTexto (texto): >> cmd='C:\FreeLing-1.4\indexdict.exe >>C:\FreeLing-1.4\data\es\newdict.db >>> >> >> p1,p2,p3=popen2.popen3(cmd) >> print p3.read() >> >>Cuando lo ejecuto me da un error que dice: >> >>Error 21 while creating database C:\FreeLing-1.4\data\es >> >> >>Porque puede ser?? > >Será porque '\n' que va en '\newdict.db' lo interpreta como un salto >de línea. > >Usa cadenas "raw": > > cmd=r'C:\FreeLing-1.4\indexdict.exe > C:\FreeLing-1.4\data\es\newdict.db > > >(fíjate bien que después del '=' va una 'r') >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ 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 joana_mendaro en hotmail.com Thu Mar 15 20:28:53 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Thu, 15 Mar 2007 19:28:53 +0000 Subject: FW: error con una funcion Message-ID: ______________________________________________________________ From: "joana salgado gomez" Reply-To: La lista de python en castellano To: python-es en aditel.org Subject: [Python-es] problema de ejecucion Date: Thu, 15 Mar 2007 13:54:49 +0000 >Hola chic en s: >Estoy ejecutando este programa en python para que desde este se >llame a otro que tengo en mi pc y se ejecute. > >import sys, popen2 >from commands import * >def lematizarTexto (texto): > cmd=r 'C:\FreeLing-1.4\indexdict.exe C:\FreeLing-1.4\data\es\newdict.db > > p1,p2,p3=popen2.popen3(cmd) > print p3.read() > >Cuando lo ejecuto me da un error que dice: > >Error 2 while creating database C:\FreeLing-1.4\data\es\newdict.db > > >Porque puede ser?? > >_________________________________________________________________ >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_pro teccioninfantil > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es _________________________________________________________________ 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 fredy9 en menta.net Thu Mar 15 21:10:45 2007 From: fredy9 en menta.net (Fredy Cabre) Date: Thu, 15 Mar 2007 21:10:45 +0100 Subject: Archivo corrupto Message-ID: <000001c7673e$0c917100$6402a8c0@portfredy> Resulta que tengo una rutina para descargar desde internet una serie de archivos que estan comprimidos. Una vez descargado y descomprimido el archivo lo borra del servidor de internet: s.retrbinary('RETR '+file, open(file, 'wb').write) fic_zip_recib=fic_zip_recib+1 comp1=os.path.getsize(file) comp2=s.size(file) if comp1==comp2: zfobj = zipfile.ZipFile(file) for name in zfobj.namelist(): outfile = open(name, 'wb') outfile.write(zfobj.read(name)) fich_Env=fich_Env+1 outfile.close() zfobj.close() s.delete(file) os.remove(file) El problema es que a veces no se si es porque se corta la conexion o que, pero el proceso da error y siempre es porque se queda un archivo corrupto en el servidor que no se deja borrar. Alguien sabe como se podria evitar este problema?? -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.441 / Virus Database: 268.18.11/723 - Release Date: 15/03/2007 11:27 ------------ 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 Fri Mar 16 10:46:39 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Fri, 16 Mar 2007 09:46:39 +0000 Subject: problemon con tildes Message-ID: hola [1]lister en s: Estoy ejecutando este programa. Lo que hace es ejecutar un archivo .exe que se encuentra en windows y crear una base de datos llamada mynewdict.db a partir de la informacion que se encuentra en dicc.txt. import sys, popen2 from commands import * def lematizarTexto (texto): cmd=r'C:/FreeLing-1.4/indexdict.exe C:/FreeLing-1.4/data/es/dict.db References: Message-ID: <45FB1EAF.9090402@gmail.com> una solucion es que escribas esto al inicio del tu programas como encabezado # -*- coding: UTF8 -*- esto es para hacer referencia que estaras trabajando con UTF8, o sea para conseguir acentos ñ, y demas... te quedaria # -*- coding:UTF8 -*- import sys, popen2 from commands import * def lematizarTexto (texto): cmd=r'C:/FreeLing-1.4/indexdict.exe C:/FreeLing-1.4/data/es/dict.db > hola [1]lister en s: > > Estoy ejecutando este programa. Lo que hace es ejecutar un archivo > .exe que se encuentra en windows y crear una base de datos llamada > mynewdict.db a partir de la informacion que se encuentra en dicc.txt. > > import sys, popen2 > from commands import * > def lematizarTexto (texto): > cmd=r'C:/FreeLing-1.4/indexdict.exe > C:/FreeLing-1.4/data/es/dict.db p1,p2,p3=popen2.popen3(cmd) > print p3.read() > > El error lanzado es el siguiente: Unexpected duplicate key adorarás at > line 3023 > > Entiendo que el error viene porque hay dos adorarás en el archivo.txt > una con tilde y otra sin tilde. Como puedo hacer para que lo > diferencie y no lo considere la misma palabra?? > _________________________________________________________________ > > Busca a la vez en Internet, en directorios, en enciclopedias... > [2]Atrévete con el nuevo MSN Search > > References > > 1. mailto:lister en s > 2. http://g.msn.com/8HMBESES/2740??PS=47575 > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From gagsl-py2 en yahoo.com.ar Sat Mar 17 10:53:32 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Sat, 17 Mar 2007 06:53:32 -0300 Subject: problema de ejecucion References: <2c9fb0dd0703151012t6f7fd2b6i93391dcfec898c09@mail.gmail.com> Message-ID: En Thu, 15 Mar 2007 15:00:00 -0300, joana salgado gomez escribió: > el error a cambiado al ponerle la r por delante ahora es: > > Error 2 while creating database C:\FreeLing-1.4\data\es\newdicc.db > > Aunque creo que la primera vez que lo he ejecutado con la r si ha dado > el resultado, al volverlo intentar me lanza este nuevo error!!! Y ejecutando exactamente lo mismo desde la linea de comandos, da el mismo error? -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py2 en yahoo.com.ar Sat Mar 17 11:06:34 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Sat, 17 Mar 2007 07:06:34 -0300 Subject: problemon con tildes References: Message-ID: En Fri, 16 Mar 2007 06:46:39 -0300, joana salgado gomez escribió: > Estoy ejecutando este programa. Lo que hace es ejecutar un archivo > .exe que se encuentra en windows y crear una base de datos llamada > mynewdict.db a partir de la informacion que se encuentra en dicc.txt. > > import sys, popen2 > from commands import * > def lematizarTexto (texto): > cmd=r'C:/FreeLing-1.4/indexdict.exe > C:/FreeLing-1.4/data/es/dict.db p1,p2,p3=popen2.popen3(cmd) > print p3.read() > > El error lanzado es el siguiente: Unexpected duplicate key adorarás at > line 3023 > > Entiendo que el error viene porque hay dos adorarás en el archivo.txt > una con tilde y otra sin tilde. Como puedo hacer para que lo > diferencie y no lo considere la misma palabra?? El error aparentemente lo genera el .exe, no Python, asi que tendrias que ver en la documentacion de ese programa cómo hacerlo. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From mlacunza en gmail.com Sat Mar 17 20:34:26 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Sat, 17 Mar 2007 14:34:26 -0500 Subject: Reportes modificables Message-ID: <771741b20703171234x6c5424c9i2d0b5c367f0466fc@mail.gmail.com> Holas, Quisiera su ayuda para resolver este tema: estoy migrando una App q esta hecha en VB6+Crystal Report+Generacion de .DOC. La generacion de los .DOCs se usa para personalizar ciertos formatos, estos tienen cabeceras y pie de pagina predefinidos, pero en el cuerpo del texto los usuarios a mano pueden incluir Campos de Formularios, los cuales pueden ser leidos y llenados con datos (q vienen de la BD) x VB a traves de COM y del modelo de objetos q expone Word. Dado q la nueva App esta hecha con Python+wxPython+Firebird y debe ser multiplataforma,tengo q reemplazar esta funcionalidad de ser posible con algo independiente. No se si Reportlab u otra tool me podria ayudar... me parece q no... Estaba pensando en algo como usar el control richtext de wxPython para guardar los formatos predefinidos por el user y grabarlo en RTF, pero no se si se puedan grabar tablas, y demas cosas complejas. Alguien ha tenido q ver un tema como este como para q me indique el camino a seguir? Gracias, -- 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 alexis.roda.villalonga en gmail.com Sat Mar 17 22:12:58 2007 From: alexis.roda.villalonga en gmail.com (Alexis Roda Villalonga) Date: Sat, 17 Mar 2007 22:12:58 +0100 Subject: Reportes modificables In-Reply-To: <771741b20703171234x6c5424c9i2d0b5c367f0466fc@mail.gmail.com> References: <771741b20703171234x6c5424c9i2d0b5c367f0466fc@mail.gmail.com> Message-ID: <5f4eef560703171412t75f6987ke8876e7d0d6927d2@mail.gmail.com> Has considerado la posibilidad de utilizar OpenOffice ? La especificación del formato de sus documentos es abierta, puedes controlarlo desde python con algo parecido al COM (pyuno) y es multiplataforma. Saludos From carles en pina.cat Sun Mar 18 16:33:47 2007 From: carles en pina.cat (Carles Pina i Estany) Date: Sun, 18 Mar 2007 16:33:47 +0100 Subject: Reportes modificables In-Reply-To: <5f4eef560703171412t75f6987ke8876e7d0d6927d2@mail.gmail.com> References: <771741b20703171234x6c5424c9i2d0b5c367f0466fc@mail.gmail.com> <5f4eef560703171412t75f6987ke8876e7d0d6927d2@mail.gmail.com> Message-ID: <20070318153347.GA6510@pinux.info> Hola, On Mar/17/2007, Alexis Roda Villalonga wrote: > Has considerado la posibilidad de utilizar OpenOffice ? La yo he hecho una cosa parecida (estoy haciendo) con openoffice y pyuno. Genial! pero no conocia reportlab, que se nombró antes. Pinta muy bien también. -- Carles Pina i Estany GPG id: 0x8CBDAE64 http://pinux.info Manresa - Barcelona From mlacunza en gmail.com Sun Mar 18 17:09:48 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Sun, 18 Mar 2007 11:09:48 -0500 Subject: Reportes modificables In-Reply-To: <20070318153347.GA6510@pinux.info> References: <771741b20703171234x6c5424c9i2d0b5c367f0466fc@mail.gmail.com> <5f4eef560703171412t75f6987ke8876e7d0d6927d2@mail.gmail.com> <20070318153347.GA6510@pinux.info> Message-ID: <1174234188.5226.10.camel@laptop> El dom, 18-03-2007 a las 16:33 +0100, Carles Pina i Estany escribió: > Hola, > > On Mar/17/2007, Alexis Roda Villalonga wrote: > > Has considerado la posibilidad de utilizar OpenOffice ? La > > yo he hecho una cosa parecida (estoy haciendo) con openoffice y pyuno. > Genial! > > pero no conocia reportlab, que se nombró antes. Pinta muy bien también. > Hola, si claro con OOo seria la misma logica q cuando la App trabaja con VB +Word, pero yo quiero q la nueva App en Python sea independiente (si es posible) de una herramienta externa para este trabajo.Basicamente porque el user debe poder modificar el texto del documento (ya sea un RTF u otro formato q permita edicion) y queria hacerlo todo con algun componente de Python (wxPython) de ser unicamente. Gracias! -- Mario Lacunza ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From minoztro en gmail.com Sun Mar 18 17:59:54 2007 From: minoztro en gmail.com (Milton Galo Patricio) Date: Sun, 18 Mar 2007 12:59:54 -0400 Subject: =?iso-8859-1?q?=5BSQLObject=5D_dudas_con_relaci=F3n_?= =?iso-8859-1?q?one_to_many_relationships?= Message-ID: <172699c50703180959w4627d24eqecbb6c7d28158a03@mail.gmail.com> estimad en s: Soy muy nuevo en esto de SQLObject {he empezado recién hoy}, y ya tengo una duda con el funcionamiento de las relaciones de uno es a mucho, a continuación los describo la estructura de mis tablas y la forma en la que estoy procediendo: Lo primero es levantar todo por la consola interactiva de python >>> from sqlobject import * >>> import sys, os >>> db_archivo=os.path.abspath('ejemplo.db') >>> conexion='sqlite:%s'%(db_archivo) >>> conexion_real=connectionForURI(conexion) >>> sqlhub.processConnection=conexion_real >>> class Persona(SQLObject): ... primer_nombre=StringCol() ... inicial=StringCol(length=1,default=None) ... apellido=StringCol() ... direccion=MultipleJoin('Direccion') ... >>> >>> Persona.createTable() >>> Persona(primer_nombre='Milton',inicial='m',apellido='Inostroza') hasta este momento ningún problema, ahora procedo a crear la clase Direccion: >>> class Direccion(SQLObject): ... calle=StringCol() ... ciudad=StringCol() ... estado=StringCol() ... persona=ForeignKey('Persona') ... >>> Direccion.createTable() entonces ahora le asigno una dirección a una persona, esto lo hago de la siguiente manera >>> Direccion(calle='gomez carreño',ciudad='iquique',estado='iquique',persona=1) todo lo hace bien...pero se me ocurrio luego asignar una direccion a una persona que no existe {sinceramente esperaba algún error} >>> Direccion(calle='gomez carreño',ciudad='iquique',estado='iquique',persona=7) y simplemente la agrega sin problemas. Acá esta mi rompe cabezas....supuestamente si la clave de persona igual a 7 no existe como persona el registro de la dirección no debe porque ser registrado, e incluso yo diría que me debiera dar un error de integridad...alguien me puede ayudar con mi duda?...algún link que leer {estoy en la documentación oficial de SQLObject}....o será porque estoy usando sqlite?, tendrá un comportamiento distinto en postgresql? salu2, -- Milton Inostroza Aguilera From elizundia en fitbak.com Mon Mar 19 10:17:26 2007 From: elizundia en fitbak.com (Ekaitz Lizundia) Date: Mon, 19 Mar 2007 10:17:26 +0100 Subject: Error Tkinter Message-ID: <45FE5526.8020005@fitbak.com> Buenos dias a todos, acabo de instalar PythonCe 2.5 en mi PDA con WM5. La ultima version trae incluido el Tkinter. Bien. Si pongo import Tkinter no da ningun error. Ahora estoy intentando abrir una aplicacion y me sale este error: root=Tk() Can't find a usable init.tcl in the following directories: ... This probably means that Tcl wasn't installed properly. Tengo el init.tcl en uno de los directorios que me pide. Asi que no se por que me da ese error. ¿Alguien me podria ayudar ? Gracias From elizundia en fitbak.com Mon Mar 19 16:18:26 2007 From: elizundia en fitbak.com (Ekaitz Lizundia) Date: Mon, 19 Mar 2007 16:18:26 +0100 Subject: Conectar IP Message-ID: <45FEA9C2.2040503@fitbak.com> Saludos a todos, estoy utilizando Sqlite y necesito conectar con una base de datos. Tengo la IP del portatil donde esta la base de datos en C:\ C:\Prueba.db (IP=xx.xx.xx.xx) ahora necesito conectarme a esa base de datos desde otro ordenador que esta en la misma red que el portatil de la BD con=sqlite.connect(AQUI NO SE QUE PONER) Gracias From fidita48 en hotmail.com Mon Mar 19 20:52:05 2007 From: fidita48 en hotmail.com (=?iso-8859-1?B?SWRvaWEgVmlsbGFjaeFuIFrhcmF0ZQ==?=) Date: Mon, 19 Mar 2007 20:52:05 +0100 Subject: Error Message-ID: Hola a [1]tod en s: Pos era para saber si alguno sabria porque me sale este mensaje cada vez que hago un programa en python,lo estoy haciendo bajo windows.Luego lo que es el programa en si el resultado me lo saca bien pero siempre me da ese error cuando pongo: from mod_python import apache. Por ejemplo: from mod_python import apache def handler(req): req.content_type = 'text/plain' req.write("Hello World!") return apache.OK Y me da este error: Traceback (most recent call last): File "C:/Archivos de programa/Apache Group/Apache2/htdocs/mywebdir/web1.py", line 1, in from mod_python import apache File "C:\Python25\lib\site-packages\mod_python\apache.py", line 30, in import _apache ImportError: No module named _apache Gracias. _________________________________________________________________ Tu horóscopo diario, semanal y gratuito. [2]Cartas, tarot y predicciones en MSN Horóscopo References 1. mailto:tod en s 2. http://g.msn.com/8HMAESES/2728??PS=47575 From fernandoaguada en sbcglobal.net Mon Mar 19 22:30:54 2007 From: fernandoaguada en sbcglobal.net (Fernando Aguada (AT&T)) Date: Mon, 19 Mar 2007 18:30:54 -0300 Subject: Consulta sobre bibliografia en castellano para el desarrollo de aplicaciones cliente-servidor Message-ID: <002b01c76a6f$15823f40$ca00a8c0@FERNANDOA> Hola, saben donde puedo conseguir bibliografia en castellano para el desarrollo de aplicaciones cliente/servidor en python? Saludos From santiagopessat.py en gmail.com Tue Mar 20 04:54:25 2007 From: santiagopessat.py en gmail.com (Santiago Pessat) Date: Tue, 20 Mar 2007 04:54:25 +0100 Subject: Conectar IP In-Reply-To: <45FEA9C2.2040503@fitbak.com> References: <45FEA9C2.2040503@fitbak.com> Message-ID: <2816d3cc0703192054medd4562jacae5eb1c2c01eb4@mail.gmail.com> proba poner el nombre del host de la maquina seguido del directorio por ejemplo sqlite.connect(kunvanchaII/directorio/base.db) creo q asi anda.. esa es la estructura q utiliza Turbogears... Exitos Santiago From joana_mendaro en hotmail.com Tue Mar 20 11:20:55 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Tue, 20 Mar 2007 10:20:55 +0000 Subject: (sin asunto) Message-ID: supongo que sera una tonteria pero: como se si una letra esta escrita en minisculas o mayusculas por ejemplo: la letra 'a' _________________________________________________________________ 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 joana_mendaro en hotmail.com Tue Mar 20 11:21:14 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Tue, 20 Mar 2007 10:21:14 +0000 Subject: mayusculas y minusculas Message-ID: supongo que sera una tonteria pero: como se si una letra esta escrita en minisculas o mayusculas por ejemplo: la letra 'a' _________________________________________________________________ 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 manuelmalo en gmail.com Tue Mar 20 11:28:35 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Tue, 20 Mar 2007 11:28:35 +0100 Subject: mayusculas y minusculas In-Reply-To: References: Message-ID: No se si habra alguna funcion especifica en Python, en otros lenguajes lo normal es compararlo 'a pelo' con los caracteres, recuerda que los string admiten funcion comparaciones de menor y mayor: x = 'n' if x>='A' and x<='Z' print 'Mayuscula' elif x>='a' and x<='z' print 'Minuscula' El 20/03/07, joana salgado gomez escribió: > > supongo que sera una tonteria pero: > como se si una letra esta escrita en minisculas o mayusculas por > ejemplo: > > la letra 'a' > > _________________________________________________________________ > > 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 > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From listas en soft-com.es Tue Mar 20 11:34:21 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Tue, 20 Mar 2007 11:34:21 +0100 Subject: mayusculas y minusculas In-Reply-To: References: Message-ID: <45FFB8AD.7050204@soft-com.es> joana salgado gomez escribió: > > supongo que sera una tonteria pero: > como se si una letra esta escrita en minisculas o mayusculas por > ejemplo: > > la letra 'a' > >>> "a".isupper() False Saludos -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From fquintana en codesyntax.com Tue Mar 20 11:35:36 2007 From: fquintana en codesyntax.com (Nando Quintana) Date: Tue, 20 Mar 2007 11:35:36 +0100 Subject: mayusculas y minusculas In-Reply-To: References: Message-ID: <1174386937.5099.0.camel@localhost> aupi: letra.lower() == letra Agur, Nando. El mar, 20-03-2007 a las 11:28 +0100, Manuel Malo de Molina escribió: > No se si habra alguna funcion especifica en Python, en otros lenguajes > lo normal es compararlo 'a pelo' con los caracteres, recuerda que los > string admiten funcion comparaciones de menor y mayor: > > x = 'n' > if x>='A' and x<='Z' > print 'Mayuscula' > elif x>='a' and x<='z' > print 'Minuscula' > > > El 20/03/07, joana salgado gomez escribió: > > > > supongo que sera una tonteria pero: > > como se si una letra esta escrita en minisculas o mayusculas por > > ejemplo: > > > > la letra 'a' > > > > _________________________________________________________________ > > > > 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 > > _______________________________________________ > > 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 mlarreategi en codesyntax.com Tue Mar 20 11:36:49 2007 From: mlarreategi en codesyntax.com (Mikel Larreategi) Date: Tue, 20 Mar 2007 11:36:49 +0100 Subject: mayusculas y minusculas In-Reply-To: References: Message-ID: <45FFB941.1010901@codesyntax.com> Manuel Malo de Molina(e)k dio: > No se si habra alguna funcion especifica en Python, en otros lenguajes > lo normal es compararlo 'a pelo' con los caracteres, recuerda que los > string admiten funcion comparaciones de menor y mayor: > > x = 'n' > if x>='A' and x<='Z' > print 'Mayuscula' > elif x>='a' and x<='z' > print 'Minuscula' > Pues sí, hay una forma más sencilla en Python:: >>> b = 'b' >>> B = 'B' >>> b.isupper() False >>> b.islower() True >>> B.isupper() True >>> B.islower() False >>> Saludos, Mikel -- Mikel Larreategi mlarreategi en codesyntax.com CodeSyntax Azitaingo Industrialdea 3 K E-20600 Eibar Tel: (+34) 943 82 17 80 From joana_mendaro en hotmail.com Tue Mar 20 11:45:17 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Tue, 20 Mar 2007 10:45:17 +0000 Subject: mayusculas y minusculas In-Reply-To: <45FFB941.1010901@codesyntax.com> References: <45FFB941.1010901@codesyntax.com> Message-ID: Eskerrikasko Mikel. ______________________________________________________________ From: Mikel Larreategi Reply-To: La lista de python en castellano To: La lista de python en castellano Subject: Re: [Python-es] mayusculas y minusculas Date: Tue, 20 Mar 2007 11:36:49 +0100 >Manuel Malo de Molina(e)k dio: > > No se si habra alguna funcion especifica en Python, en otros lenguajes > > lo normal es compararlo 'a pelo' con los caracteres, recuerda que los > > string admiten funcion comparaciones de menor y mayor: > > > > x = 'n' > > if x>='A' and x<='Z' > > print 'Mayuscula' > > elif x>='a' and x<='z' > > print 'Minuscula' > > > >Pues sí, hay una forma más sencilla en Python:: > > >>> b = 'b' > >>> B = 'B' > >>> b.isupper() >False > >>> b.islower() >True > >>> B.isupper() >True > >>> B.islower() >False > >>> > > >Saludos, > > >Mikel > >-- >Mikel Larreategi >mlarreategi en codesyntax.com > >CodeSyntax >Azitaingo Industrialdea 3 K >E-20600 Eibar >Tel: (+34) 943 82 17 80 >_______________________________________________ >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 gagsl-py2 en yahoo.com.ar Tue Mar 20 12:17:20 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Tue, 20 Mar 2007 08:17:20 -0300 Subject: mayusculas y minusculas References: <45FFB941.1010901@codesyntax.com> Message-ID: En Tue, 20 Mar 2007 07:36:49 -0300, Mikel Larreategi escribió: > Pues sí, hay una forma más sencilla en Python:: > >>>> b = 'b' >>>> B = 'B' >>>> b.isupper() > False >>>> b.islower() > True >>>> B.isupper() > True >>>> B.islower() > False En realidad hay que asegurarse de trabajar con unicode, porque para letras acentuadas, o la ñ por ejemplo, si son strings no funciona: py> "Á".isupper() False py> u"Á".isupper() True py> "ñ".islower() False py> u"ñ".islower() True -- 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 Tue Mar 20 12:17:20 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 20 Mar 2007 12:17:20 +0100 Subject: mayusculas y minusculas In-Reply-To: <45FFB941.1010901@codesyntax.com> References: <45FFB941.1010901@codesyntax.com> Message-ID: <45FFC2C0.9010108@ehas.org> Mikel Larreategi escribió: > Pues sí, hay una forma más sencilla en Python:: > >>>> b = 'b' >>>> B = 'B' >>>> b.isupper() > False Y para completarlo, una referencia a la documentación: http://docs.python.org/lib/string-methods.html Es de gran utilidad repasar concienzudamente los métodos de los tipos base (cadenas y listas, especialmente), de otro modo acabas haciendo a mano cosas que el objeto ya soporta. Y ya se sabe lo que ocurre al tratar de reinventar la rueda: no sólo es que se pierda tiempo, sino que además suelen salir cuadrada. From fcallejo en arrakis.es Tue Mar 20 11:37:52 2007 From: fcallejo en arrakis.es (=?ISO-8859-1?Q?Francisco_Callejo_Gim=E9nez?=) Date: Tue, 20 Mar 2007 11:37:52 +0100 Subject: mayusculas y minusculas In-Reply-To: References: Message-ID: <45FFB980.1010509@arrakis.es> joana salgado gomez escribió: > > supongo que sera una tonteria pero: > como se si una letra esta escrita en minisculas o mayusculas por > ejemplo: > > la letra 'a' > s = 'a' print s.isupper() -----> False s = 'A' print s.isupper() -----> True Saludos, Frasco. From jcea en argo.es Tue Mar 20 16:08:00 2007 From: jcea en argo.es (Jesus Cea) Date: Tue, 20 Mar 2007 16:08:00 +0100 Subject: eficiencia de numpy.array In-Reply-To: <200703150424.48925.py@ch3m4.org> References: <1173353965.30229.7.camel@skynex.telecable.es> <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> <45F86391.2010206@argo.es> <200703150424.48925.py@ch3m4.org> Message-ID: <45FFF8D0.3090907@argo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Chema Cortes wrote: > Si tenemos una matriz multidimensional n x m : > > M[0,-1] -> último item de la primera fila > M[0,] -> primera fila > M[...,0] -> lista con los primeros elementos de todas las filas > M[...,0:1] -> lista de rebanados de cada fila, cada rebanado con sólo el > primer item de cada fila > M[::2,] -> filas pares ¿Hay algún tipo de datos estándar que soporte este protocolo?. Las listas y las tuplas no lo hacen... - -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ jabber / xmpp:jcea en jabber.org _/_/ _/_/ _/_/_/_/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRf/40Jlgi5GaxT1NAQIRlwQAktg/qfF7raQ+Ie+HRGN2x8uLr35mePz2 lH33PRYDndM6LNHXPdciHfUNBDkV4OAHScrlA/EZ3CD6lUNJHt6bHT+rkbEoz1D6 Ilva/MfOr3H50467xfvXRPA1MFmxJcsi0lYrbgcFHgKpvEqranOaFpbj+kE8X+Iu qjY6mBxGg9k= =wM1C -----END PGP SIGNATURE----- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From sonajadiabolica en gmail.com Tue Mar 20 16:31:05 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Tue, 20 Mar 2007 09:31:05 -0600 Subject: (sin asunto) In-Reply-To: References: Message-ID: <8d9e208f0703200831i799bdd41l58675c4dbcea3ea1@mail.gmail.com> > como se si una letra esta escrita en minisculas o mayusculas por > ejemplo: > > la letra 'a' > Se me ocurre que te puede servir lo siguiente, solo que como veras, no funciona con eñes ni acentos: >>> def caseof(char): ... if char>='a' and char<='z': ... return 'es Minuscula' ... elif char>='A' and char<='Z': ... return 'es Mayuscula' ... else: ... return 'No es Mayuscula ni Minuscula' ... >>> print 'La letra "a" es :',caseof('a') La letra "a" es : es Minuscula >>> print 'La letra "B" es :',caseof('B') La letra "B" es : es Mayuscula >>> print 'La letra "ñ" es :',caseof('ñ') La letra "ñ" es : No es Mayuscula ni Minuscula >>> print 'La letra "ú" es :',caseof('ú') La letra "ú" es : No es Mayuscula ni Minuscula -- aNgel rEsendiz.! From josefgon en gmail.com Tue Mar 20 16:55:44 2007 From: josefgon en gmail.com (Jose Francisco Gonzalez) Date: Tue, 20 Mar 2007 16:55:44 +0100 Subject: Dos ventanas a la vez Message-ID: <24be9e680703200855p48c34016n685366528d0858e2@mail.gmail.com> Tengo una aplicacion con la ventana principal y lo que quiero es abrir otra ventana de busqueda pero que se quede visible y poder seguir trabajando con la ventana principal. Tengo todo hecho pero no me funcionan los eventos en la ventana de busqueda. Gracias -- Saludos José Francisco González From sonajadiabolica en gmail.com Tue Mar 20 17:03:51 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Tue, 20 Mar 2007 10:03:51 -0600 Subject: Dos ventanas a la vez In-Reply-To: <24be9e680703200855p48c34016n685366528d0858e2@mail.gmail.com> References: <24be9e680703200855p48c34016n685366528d0858e2@mail.gmail.com> Message-ID: <8d9e208f0703200903t4a6872ffp9dcce3169aa0bf99@mail.gmail.com> > Tengo una aplicacion con la ventana principal y lo que quiero es abrir > otra ventana de busqueda pero que se quede visible y poder seguir > trabajando con la ventana principal. Tengo todo hecho pero no me > funcionan los eventos en la ventana de busqueda. Podrias empezar por decir que libreria gráfica estas utilizando, y tal vez un poco de código de la parte que no funciona. Saludos. -- aNgel rEsendiz.! From faltet en carabos.com Tue Mar 20 17:53:23 2007 From: faltet en carabos.com (Francesc Altet) Date: Tue, 20 Mar 2007 17:53:23 +0100 Subject: eficiencia de numpy.array In-Reply-To: <45FFF8D0.3090907@argo.es> References: <1173353965.30229.7.camel@skynex.telecable.es> <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> <45F86391.2010206@argo.es> <200703150424.48925.py@ch3m4.org> <45FFF8D0.3090907@argo.es> Message-ID: <1174409603.2546.16.camel@localhost.localdomain> El dt 20 de 03 del 2007 a les 16:08 +0100, en/na Jesus Cea va escriure: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Chema Cortes wrote: > > Si tenemos una matriz multidimensional n x m : > > > > M[0,-1] -> último item de la primera fila > > M[0,] -> primera fila > > M[...,0] -> lista con los primeros elementos de todas las filas > > M[...,0:1] -> lista de rebanados de cada fila, cada rebanado con sólo el > > primer item de cada fila > > M[::2,] -> filas pares > > ¿Hay algún tipo de datos estándar que soporte este protocolo?. Las > listas y las tuplas no lo hacen... Como yo lo veo, es difícil que se llegue a implementar esta versión del rebanado extendido (tal y como se entiende en éste mensaje) para listas o tuplas. La razón pasa por que el uso de rebanados extendidos (aunque yo prefiero llamarles rebanados multidimensionales) es de difícil interpretación en el caso de listas de listas con diferentes longitudes. Por ejemplo, consideremos: l = [[1,2], [4], [5,6,7]] Si hacemos uso de esta interpretación del rebanado extendido, tendriamos: 1. l[:,0] --> [1,4,5] (primera columna) 2. l[:,1] --> [2,6] (segunda columna) 3. l[:,2] --> [7] (tercera columna) como se ve, el caso 2 y 3 son bastante problemáticos de interpretar, ya que no sabemos de qué filas provienen los elementos resultantes, cosa que le resta mucha utilidad a este tipo de rebanados. Naturalmente, este problema no existe en listas de listas regulares (i.e. que todas las pertenecientes a un mismo nivel de anidamiento tienen la misma longitud). Es por eso que este tipo de rebanado sí que se haya implementado en NumPy, y que de hecho sea una de las características yo diria que fundamentales del paquete. Saludos, -- 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 jcea en argo.es Tue Mar 20 18:32:41 2007 From: jcea en argo.es (Jesus Cea) Date: Tue, 20 Mar 2007 18:32:41 +0100 Subject: eficiencia de numpy.array In-Reply-To: <1174409603.2546.16.camel@localhost.localdomain> References: <1173353965.30229.7.camel@skynex.telecable.es> <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> <45F86391.2010206@argo.es> <200703150424.48925.py@ch3m4.org> <45FFF8D0.3090907@argo.es> <1174409603.2546.16.camel@localhost.localdomain> Message-ID: <46001AB9.1010309@argo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Francesc Altet wrote: > La razón pasa por que el uso de rebanados extendidos (aunque yo prefiero > llamarles rebanados multidimensionales) es de difícil interpretación en > el caso de listas de listas con diferentes longitudes. Sí, pero yo lo veo útil para cosas como hacer un "unzip()", para generar una lista con el primer subelemento de cada elemento de una lista, por ejemplo. Ahora tengo que usar "map" o "list comprehensions" (por cierto, ¿cómo lo llamamos en castellano?"). Por ejemplo, > consideremos: > > l = [[1,2], > [4], > [5,6,7]] > > Si hacemos uso de esta interpretación del rebanado extendido, > tendriamos: > > 1. l[:,0] --> [1,4,5] (primera columna) > 2. l[:,1] --> [2,6] (segunda columna) > 3. l[:,2] --> [7] (tercera columna) > > como se ve, el caso 2 y 3 son bastante problemáticos de interpretar, ya > que no sabemos de qué filas provienen los elementos resultantes, cosa > que le resta mucha utilidad a este tipo de rebanados. > > Naturalmente, este problema no existe en listas de listas regulares > (i.e. que todas las pertenecientes a un mismo nivel de anidamiento > tienen la misma longitud). Es por eso que este tipo de rebanado sí que > se haya implementado en NumPy, y que de hecho sea una de las > características yo diria que fundamentales del paquete. > > Saludos, > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es - -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ jabber / xmpp:jcea en jabber.org _/_/ _/_/ _/_/_/_/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRgAauZlgi5GaxT1NAQJtWwP+PWdv4O3FkZvulZdpOc2qn8aNNHAFSRCy 8LOqsfYZs1hwsHRa460QISyObtSMtw/i194P8O/ZZtFrLnqbJsOzI6Of/hZwqZsF QLvW4gpPMXhFsaeOcwL6WsSsBuvqAYcTXoeNFQvZSkhQfhkHFzV5ms8M0pWkdCk6 9bDhobjv32o= =+555 -----END PGP SIGNATURE----- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From faltet en carabos.com Tue Mar 20 19:11:06 2007 From: faltet en carabos.com (Francesc Altet) Date: Tue, 20 Mar 2007 19:11:06 +0100 Subject: eficiencia de numpy.array In-Reply-To: <46001AB9.1010309@argo.es> References: <1173353965.30229.7.camel@skynex.telecable.es> <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> <45F86391.2010206@argo.es> <200703150424.48925.py@ch3m4.org> <45FFF8D0.3090907@argo.es> <1174409603.2546.16.camel@localhost.localdomain> <46001AB9.1010309@argo.es> Message-ID: <1174414266.2546.22.camel@localhost.localdomain> El dt 20 de 03 del 2007 a les 18:32 +0100, en/na Jesus Cea va escriure: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Francesc Altet wrote: > > La razón pasa por que el uso de rebanados extendidos (aunque yo prefiero > > llamarles rebanados multidimensionales) es de difícil interpretación en > > el caso de listas de listas con diferentes longitudes. > > Sí, pero yo lo veo útil para cosas como hacer un "unzip()", para generar > una lista con el primer subelemento de cada elemento de una lista, por > ejemplo. Pues claro que sí. Realmente todo es útil en esta vida. Simplemente que yo le veo *mucha* más utilidad para listas regulares que para las que no lo son. > Ahora tengo que usar "map" o "list comprehensions" (por cierto, ¿cómo lo > llamamos en castellano?"). Creo que listas comprensivas, aunque el calificativo aplicado a una lista creo que queda un poco fuera de lugar ;) Saludos, -- 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 marcelobarbero en arnet.com.ar Tue Mar 20 20:09:17 2007 From: marcelobarbero en arnet.com.ar (Marcelo Barbero) Date: Tue, 20 Mar 2007 16:09:17 -0300 Subject: mayusculas y minusculas In-Reply-To: <45FFB980.1010509@arrakis.es> References: <45FFB980.1010509@arrakis.es> Message-ID: <20070320190833.909CA1B047B@dns2.uji.es> -----Mensaje original----- De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org] En nombre de Francisco Callejo Giménez Enviado el: Martes 20 de Marzo de 2007 07:38 a.m. Para: La lista de python en castellano Asunto: Re: [Python-es] mayusculas y minusculas joana salgado gomez escribió: > > supongo que sera una tonteria pero: > como se si una letra esta escrita en minisculas o mayusculas por > ejemplo: > > la letra 'a' > import string 'a' in string.lowercase => True 'A' in string.uppercase => True Ojo, no toma los caracteres acentuados. En todo caso, antes hacer: string.lowercase += 'áéíóú' Marcelo From arnau en ehas.org Tue Mar 20 20:27:14 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 20 Mar 2007 20:27:14 +0100 Subject: mayusculas y minusculas In-Reply-To: <20070320190833.909CA1B047B@dns2.uji.es> References: <20070320190833.909CA1B047B@dns2.uji.es> Message-ID: <46003592.9050400@ehas.org> Marcelo Barbero escribió: > import string > > 'a' in string.lowercase => True > 'A' in string.uppercase => True > > Ojo, no toma los caracteres acentuados. En todo caso, antes hacer: > string.lowercase += 'áéíóú' ¿No sería mejor con el módulo locale? # -*- coding: iso-8859-15 -*- import locale print "á".islower() locale.setlocale(locale.LC_ALL, 'es_ES') print "á".islower() # python test.py False True Las variables uppercase, lowercase, etc, del módulo string también se ven modificadas con el cambio de locale. From gagsl-py2 en yahoo.com.ar Wed Mar 21 00:38:19 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Tue, 20 Mar 2007 20:38:19 -0300 Subject: eficiencia de numpy.array References: <1173353965.30229.7.camel@skynex.telecable.es> <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> <45F86391.2010206@argo.es> <200703150424.48925.py@ch3m4.org> <45FFF8D0.3090907@argo.es> <1174409603.2546.16.camel@localhost.localdomain> <46001AB9.1010309@argo.es> Message-ID: En Tue, 20 Mar 2007 14:32:41 -0300, Jesus Cea escribió: > Ahora tengo que usar "map" o "list comprehensions" (por cierto, ¿cómo lo > llamamos en castellano?"). Yo diría lista por comprensión. Que coincide con la terminología usada en teoría de conjuntos, donde se dice "defino un conjunto por comprensión" (dando una propiedad que cumplen todos sus elementos). -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py2 en yahoo.com.ar Wed Mar 21 01:14:44 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Tue, 20 Mar 2007 21:14:44 -0300 Subject: mayusculas y minusculas References: <20070320190833.909CA1B047B@dns2.uji.es> <46003592.9050400@ehas.org> Message-ID: En Tue, 20 Mar 2007 16:27:14 -0300, Arnau Sanchez escribió: > ¿No sería mejor con el módulo locale? > > # -*- coding: iso-8859-15 -*- > import locale > print "á".islower() > locale.setlocale(locale.LC_ALL, 'es_ES') > print "á".islower() > > # python test.py > False > True > > Las variables uppercase, lowercase, etc, del módulo string también se > ven modificadas con el cambio de locale. Uh... porqué será que no me funciona? Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. py> import locale py> locale.setlocale(locale.LC_ALL, '') 'Spanish_Argentina.1252' py> "á".islower() False py> "Ñ".isupper() False py> u"á".islower() True py> u"Ñ".isupper() True -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py2 en yahoo.com.ar Wed Mar 21 02:26:52 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Tue, 20 Mar 2007 22:26:52 -0300 Subject: mayusculas y minusculas References: <20070320190833.909CA1B047B@dns2.uji.es> <46003592.9050400@ehas.org> Message-ID: En Tue, 20 Mar 2007 21:14:44 -0300, Gabriel Genellina escribió: > Uh... porqué será que no me funciona? > > py> locale.setlocale(locale.LC_ALL, '') > 'Spanish_Argentina.1252' > py> "á".islower() > False > py> "Ñ".isupper() > False Bueno, me respondo a mí mismo. Mi consola de Windows está usando una pagina de codigo que no es la que Python supone que es: Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win 32 Type "help", "copyright", "credits" or "license" for more information. py> import locale py> locale.getlocale() ('Spanish_Argentina', '1252') py> locale.getdefaultlocale() ('es_AR', 'cp1252') py> import sys py> sys.stdin.encoding 'cp850' py> string.lowercase 'abcdefghijklmnopqrstuvwxyzâܣ׬Á??ÓßÔÒõÕµþÞÚÛÙýݯ´­±?¾¶§÷°¨·¹³²? ' Luego de ajustar la pagina de codigos de la consola (mode con cp select=1252) y elegir un font adecuado, ahora sí anda bien: py> string.lowercase 'abcdefghijklmnopqrstuvwxyz' py> locale.setlocale(locale.LC_ALL, "") 'Spanish_Argentina.1252' py> string.lowercase 'abcdefghijklmnopqrstuvwxyz????ªµºßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ' py> "á".islower() True py> "Ñ".isupper() True Qué felicidad :) -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From david.loaiza en gmail.com Wed Mar 21 06:42:24 2007 From: david.loaiza en gmail.com (David Loaiza) Date: Tue, 20 Mar 2007 23:42:24 -0600 Subject: =?utf-8?q?Problema_con_sonido_en_python_despu=C3=A9s?= =?utf-8?b?IGRlIHB5MmV4ZS4uLi4=?= Message-ID: Estoy usando python 2.4 y pues he tratado de reproducir un sonido wav en python y si me lo reproduce en el script pero cuando convierto el script en un ejecutable por medio de py2exe, el sonido deja de reproducirse. He probado con wx.Sound y también con winsound (de la librería estándar), no se escucha el sonido y ni siquiera marca un error en el log de cuando ocurre un error en el ejecutable, es decir, para el programa se reprodujo el sonido pero en realidad no ocurre. También intente con tksnacklib carga bien el modulo y se pueden utilizar algunas funcionas (pero como ya no existe una versión para python 2.4) en Windows cuando reproduce el sonido no lo hace (ni siquiera desde el script). Curiosamente en Linux lo instale aunque fuera para python 2.3 y funciona a la perfección (utilizo ubuntu dapper) Alguna sugerencia o experiencias similares para poder reproducir sonido desde un .exe. Gracias... ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From faltet en carabos.com Wed Mar 21 09:45:46 2007 From: faltet en carabos.com (Francesc Altet) Date: Wed, 21 Mar 2007 09:45:46 +0100 Subject: eficiencia de numpy.array In-Reply-To: References: <1173353965.30229.7.camel@skynex.telecable.es> <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> <45F86391.2010206@argo.es> <200703150424.48925.py@ch3m4.org> <45FFF8D0.3090907@argo.es> <1174409603.2546.16.camel@localhost.localdomain> <46001AB9.1010309@argo.es> Message-ID: <1174466746.2598.2.camel@localhost.localdomain> El dt 20 de 03 del 2007 a les 20:38 -0300, en/na Gabriel Genellina va escriure: > En Tue, 20 Mar 2007 14:32:41 -0300, Jesus Cea escribió: > > > Ahora tengo que usar "map" o "list comprehensions" (por cierto, ¿cómo lo > > llamamos en castellano?"). > > Yo diría lista por comprensión. Que coincide con la terminología usada en > teoría de conjuntos, donde se dice "defino un conjunto por comprensión" > (dando una propiedad que cumplen todos sus elementos). Realmente, después de consultar el diccionario, comprensión también tiene el significado de 'contener' o 'incluir', así que supongo que 'listas comprensivas' o 'listas por comprensión' son términos perfectamente válidos en castellano. Saludos, -- 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 arnau en ehas.org Wed Mar 21 10:56:35 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Wed, 21 Mar 2007 10:56:35 +0100 Subject: mayusculas y minusculas In-Reply-To: References: <20070320190833.909CA1B047B@dns2.uji.es> <46003592.9050400@ehas.org> Message-ID: <46010153.3000208@ehas.org> Gabriel Genellina escribió: > En Tue, 20 Mar 2007 21:14:44 -0300, Gabriel Genellina > escribió: > >> Uh... porqué será que no me funciona? >> >> py> locale.setlocale(locale.LC_ALL, '') >> 'Spanish_Argentina.1252' >> py> "á".islower() >> False >> py> "Ñ".isupper() >> False > > Bueno, me respondo a mí mismo. Mi consola de Windows está usando una > pagina de codigo que no es la que Python supone que es: Exacto. Eso también me pasó en mis pruebas, al estar el terminal en UTF-8. Por eso me curé en salud con el "# -*- coding: iso-8859-15 -*-" :-) ------------ 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 Mar 21 15:43:34 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 21 Mar 2007 15:43:34 +0100 Subject: mayusculas y minusculas In-Reply-To: <46010153.3000208@ehas.org> References: <20070320190833.909CA1B047B@dns2.uji.es> <46003592.9050400@ehas.org> <46010153.3000208@ehas.org> Message-ID: <2c9fb0dd0703210743y49910205q59b90fd0835e1417@mail.gmail.com> El 21/03/07, Arnau Sanchez escribió: > Gabriel Genellina escribió: > > Bueno, me respondo a mí mismo. Mi consola de Windows está usando una > > pagina de codigo que no es la que Python supone que es: > > Exacto. Eso también me pasó en mis pruebas, al estar el terminal en UTF-8. Por > eso me curé en salud con el "# -*- coding: iso-8859-15 -*-" :-) No es así, exactamente. Este comentario indica la codificación por defecto que se usará para pasar a unicode las cadenas de caracteres que tenga insertadas en el fichero fuente. Para todo lo demás no tiene ninguna influencia. En cuanto al locale, siempre es recomendable hacer un locale.setlocale(locale.LC_ALL, '') para que se ajuste a la configuración por defecto que tenga el sistema y, siempre que se pueda, trabajar en unicode ya que considera más casos: >>> u"á".islower() True >>> u"Ñ".isupper() True >>> u"ç".islower() True Pero, incluso, se puede trabajar independientemente de la codificaciones por defecto: >>> u"\N{LATIN SMALL LETTER C WITH CEDILLA}".islower() True >>> u"\N{euro sign}".isalpha() False >>> u"\u87D2".isalpha() True PD: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Wed Mar 21 15:57:32 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Wed, 21 Mar 2007 15:57:32 +0100 Subject: mayusculas y minusculas In-Reply-To: <2c9fb0dd0703210743y49910205q59b90fd0835e1417@mail.gmail.com> References: <20070320190833.909CA1B047B@dns2.uji.es> <46003592.9050400@ehas.org> <46010153.3000208@ehas.org> <2c9fb0dd0703210743y49910205q59b90fd0835e1417@mail.gmail.com> Message-ID: <460147DC.4080708@ehas.org> Chema Cortes escribió: > El 21/03/07, Arnau Sanchez escribió: >> Gabriel Genellina escribió: >> > Bueno, me respondo a mí mismo. Mi consola de Windows está usando una >> > pagina de codigo que no es la que Python supone que es: >> >> Exacto. Eso también me pasó en mis pruebas, al estar el terminal en >> UTF-8. Por >> eso me curé en salud con el "# -*- coding: iso-8859-15 -*-" :-) > > No es así, exactamente. Este comentario indica la codificación por > defecto que se usará para pasar a unicode las cadenas de caracteres > que tenga insertadas en el fichero fuente. Para todo lo demás no tiene > ninguna influencia. > > En cuanto al locale, siempre es recomendable hacer un > locale.setlocale(locale.LC_ALL, '') para que se ajuste a la > configuración por defecto que tenga el sistema y, siempre que se > pueda, trabajar en unicode ya que considera más casos: > > >>>> u"á".islower() > True Totalmente cierto. Me faltaba el que fuera unicode (y no una cadena normal) para que funcionaran esas funciones en UTF-8. Gracias por la aclaración, Chema. From josefgon en gmail.com Wed Mar 21 18:56:56 2007 From: josefgon en gmail.com (Jose Francisco Gonzalez) Date: Wed, 21 Mar 2007 18:56:56 +0100 Subject: Dos ventanas a la vez In-Reply-To: <8d9e208f0703200903t4a6872ffp9dcce3169aa0bf99@mail.gmail.com> References: <24be9e680703200855p48c34016n685366528d0858e2@mail.gmail.com> <8d9e208f0703200903t4a6872ffp9dcce3169aa0bf99@mail.gmail.com> Message-ID: <24be9e680703211056j1e7b2ae6vb3731ba63d1e2123@mail.gmail.com> > > Tengo una aplicacion con la ventana principal y lo que quiero es abrir > > otra ventana de busqueda pero que se quede visible y poder seguir > > trabajando con la ventana principal. Tengo todo hecho pero no me > > funcionan los eventos en la ventana de busqueda. > > Podrias empezar por decir que libreria gráfica estas utilizando, y > tal vez un poco de código de la parte que no funciona. Tienes toda la razon, se me ha pasado, estoy utilizando GTK y GLade. Te pongo un resumen del codigo de la ventana principal y de la de busqueda. Ventana principal: class Main: def __init__(self): self.glade = gtk.glade.XML("Main.glade") self.glade.signal_autoconnect(self) self.glade.get_widget("main").show_all() def on_main_delete_event(self, widget, event): gtk.main_quit(self) def on_find(self, widget): self.fid = FindInPages(self).dialog Ventana de busqueda: class Find: def __init__(self, parent): self.parent = parent self.glade = gtk.glade.XML("Find.glade") self.glade.signal_autoconnect(self) get_widget("find_in_pages").show_all() def on_find_page(self, widget): print "boton pulsado" El evento on_find_page que esta asociado a un boton por mucho que lo pulse no se ejecuta From josefgon en gmail.com Wed Mar 21 19:03:47 2007 From: josefgon en gmail.com (Jose Francisco Gonzalez) Date: Wed, 21 Mar 2007 19:03:47 +0100 Subject: Dos ventanas a la vez In-Reply-To: <24be9e680703211056j1e7b2ae6vb3731ba63d1e2123@mail.gmail.com> References: <24be9e680703200855p48c34016n685366528d0858e2@mail.gmail.com> <8d9e208f0703200903t4a6872ffp9dcce3169aa0bf99@mail.gmail.com> <24be9e680703211056j1e7b2ae6vb3731ba63d1e2123@mail.gmail.com> Message-ID: <24be9e680703211103m6bd1d7d2vd0ce98d1065ed7cf@mail.gmail.com> La linea def on_find(self, widget): self.fid = FindInPages(self).dialog seria def on_find(self, widget): Find(self) From dmunhiz en gmail.com Wed Mar 21 19:05:22 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Wed, 21 Mar 2007 19:05:22 +0100 Subject: interrunpir evento Message-ID: <460173E2.8020604@gmail.com> Hola: Tengo una ventana con un botón que hace cosas, el caso es que hay un bucle el cual me gustaría poder interrumpor en un momento dado pero incluso aunque presione en la X para cerrar la ventana no lo hace. por el medio de esta rutina tengo algun wxGetApp().Yield(5) esto lo uso para que la barra de progreso funcione adecuadamente. Espero haberme explicado. Gracias win xp WX 2.6 python 2.4 boa constructor -- Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html From joana_mendaro en hotmail.com Wed Mar 21 19:36:02 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Wed, 21 Mar 2007 18:36:02 +0000 Subject: reemplazar en un string Message-ID: Hola !!!! bueno mi pregunta es dificil de explicar por lo que lo voy a hacer mediante ejemplos: por ejmplo, si tengo este texto texto='\n\t \t\n \t\n\t \n \n \tSelecciona una ingrediente:\n \t \n \t\n\t-R\xe1bano (1)\n\t\n\t-Rape (5)\n\t\n\t-Raya (1)\n\t\n\t-Remolacha (1)\n\t\n\t-Rodaballo (8)\n\t\n\t-Romero (3)\n\t\n\t-Rossinyols (1)\n\t\n\t-R\xfacula (3)\n\t\n\t-Ruibarbo (5)\n\t\n\t-Sal de vainilla (1)\n\t\n\t-Salm\xf3n (29)\n\t\n\t-S\xe1lvia (3)\n\t\n\t-Sand\xeda (3)\n\t\n\t-Sardina (6)\n\t\n\t-S\xe9pia (2)\n\t\n\t-S\xe9samo (9)\n\t\n\t-Sesos (1)\n\t\n\t-Sobrasada (2)\n\t\n\t-Soja (2)\n\t\n\t-Tamarindo (2)\n\t\n\t-T\xe9 (1)\n\t\n\t-Tomate (gen\xe9rico) (79)\n\t\n\t-Tomillo (3)\n\t\n\t-Trigo (3)\n\t\n\t-Tripa de bacalao (1)\n\t\n\t-Trompeta de los muertos (1)\n\t\n\t-Trucha marisca (6)\n\t\n\t-Trufa (14)\n\t\n\t-Urta (1)\n\t\n\t-Uva (31)\n\n\t\n' Como lo hago para quitar todo lo que haya entre los parenesis, independientemente de lo que haya dentro??? texto.replace('(lo que haya da igual)','') _________________________________________________________________ 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 Wed Mar 21 19:57:13 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Wed, 21 Mar 2007 19:57:13 +0100 Subject: interrunpir evento In-Reply-To: <460173E2.8020604@gmail.com> References: <460173E2.8020604@gmail.com> Message-ID: <46018009.1070100@soft-com.es> Daniel Muñiz Fontoira escribió: > Hola: > Tengo una ventana con un botón que hace cosas, el caso es que hay un > bucle el cual me gustaría poder interrumpor en un momento dado pero > incluso aunque presione en la X para cerrar la ventana no lo hace. > por el medio de esta rutina tengo algun wxGetApp().Yield(5) esto lo uso > para que la barra de progreso funcione adecuadamente. > Espero haberme explicado. > Gracias > Para estos casos lo que se suele hacer es incluir un flag dentro del bucle que 'hace cosas', y un boton cancelar que activa ese flag. self.cancelar = False while hay_cosas_que_hacer: ... ... Yield() if self.cancelar: cancelar el proceso ... def OnBotonCancelar(self, evt): self.cancelar = True Saludos, -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From dmunhiz en gmail.com Wed Mar 21 20:05:04 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Wed, 21 Mar 2007 20:05:04 +0100 Subject: interrunpir evento In-Reply-To: <46018009.1070100@soft-com.es> References: <460173E2.8020604@gmail.com> <46018009.1070100@soft-com.es> Message-ID: <460181E0.9040305@gmail.com> Muchas Gracias! lo probaré. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Oswaldo Hernández escribió: > Daniel Muñiz Fontoira escribió: >> Hola: >> Tengo una ventana con un botón que hace cosas, el caso es que hay un >> bucle el cual me gustaría poder interrumpor en un momento dado pero >> incluso aunque presione en la X para cerrar la ventana no lo hace. >> por el medio de esta rutina tengo algun wxGetApp().Yield(5) esto lo uso >> para que la barra de progreso funcione adecuadamente. >> Espero haberme explicado. >> Gracias >> > > Para estos casos lo que se suele hacer es incluir un flag dentro del > bucle que 'hace cosas', y un boton cancelar que activa ese flag. > > > self.cancelar = False > > while hay_cosas_que_hacer: > ... > ... > Yield() > if self.cancelar: > cancelar el proceso > > ... > > > def OnBotonCancelar(self, evt): > self.cancelar = True > > > Saludos, > From cgalisteo en k-rolus.net Wed Mar 21 19:42:49 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo de Cabo) Date: Wed, 21 Mar 2007 19:42:49 +0100 Subject: reemplazar en un string In-Reply-To: References: Message-ID: <20070321194249.ff51sj8mwwkwwcck@k-rolus.net> Quoting joana salgado gomez : > Como lo hago para quitar todo lo que haya entre los parenesis, > independientemente de lo que haya dentro??? Mirate el módulo re (expresiones regulares), creo que es lo que buscas. Tienes documentación en [1]. Si después de mirarlo tienes dudas vuelve a preguntar por aquí. [1]http://www.amk.ca/python/howto/regex/ --- 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 --- From arrase en gulcas.org Thu Mar 22 12:38:44 2007 From: arrase en gulcas.org (arrase) Date: Thu, 22 Mar 2007 12:38:44 +0100 Subject: (sin asunto) In-Reply-To: References: Message-ID: <46026AC4.7000803@gulcas.org> http://www.freenetpages.co.uk/hp/alan.gauld/tuttext.htm Seccion: Changing the case of characters From joana_mendaro en hotmail.com Thu Mar 22 13:38:11 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Thu, 22 Mar 2007 12:38:11 +0000 Subject: como hacer range(A,Z)??????????? Message-ID: hola!!! Necesito hacer un 'for i in range(A,Z)' para que la variable i vaya tomando letras mayusculas desde la A hasta la Z (sin la Ñ).Logicamente asi no se puede hacer . A alguien se le ocurre como? _________________________________________________________________ Dale rienda suelta a tu tiempo libre. Mil ideas para exprimir tu ocio con MSN Entretenimiento. http://entretenimiento.msn.es/ From arnau en ehas.org Thu Mar 22 13:44:58 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 22 Mar 2007 13:44:58 +0100 Subject: como hacer range(A,Z)??????????? In-Reply-To: References: Message-ID: <46027A4A.20909@ehas.org> joana salgado gomez escribió: > Necesito hacer un 'for i in range(A,Z)' para que la variable i vaya > tomando letras mayusculas desde la A hasta la Z (sin la Ñ).Logicamente > asi no se puede hacer . A alguien se le ocurre como? siguiendo tu idea sería: for i in [chr(x) for x in range(ord('A'), ord('Z'))] pero lo mejor es: import string for i in string.uppercase ¿seguro que le has dado un buen repaso a la documentación? :-) http://docs.python.org/lib/module-string.html From bete380 en gmail.com Thu Mar 22 13:46:20 2007 From: bete380 en gmail.com (bt380) Date: Thu, 22 Mar 2007 13:46:20 +0100 Subject: como hacer range(A,Z)??????????? In-Reply-To: References: Message-ID: <46027A9C.5020705@gmail.com> joana salgado gomez escribió: > hola!!! > > Necesito hacer un 'for i in range(A,Z)' para que la variable i vaya > tomando letras mayusculas desde la A hasta la Z (sin la Ñ).Logicamente > asi no se puede hacer . A alguien se le ocurre como? > > _________________________________________________________________ > Dale rienda suelta a tu tiempo libre. Mil ideas para exprimir tu ocio > con MSN Entretenimiento. http://entretenimiento.msn.es/ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > bueno yo haria una lista. lista = 'ABCDE, etc, etc' for i in lista: print i From arnau en ehas.org Thu Mar 22 14:08:59 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 22 Mar 2007 14:08:59 +0100 Subject: como hacer range(A,Z)??????????? In-Reply-To: <46027A4A.20909@ehas.org> References: <46027A4A.20909@ehas.org> Message-ID: <46027FEB.2020703@ehas.org> Arnau Sanchez escribió: > joana salgado gomez escribió: > >> Necesito hacer un 'for i in range(A,Z)' para que la variable i vaya >> tomando letras mayusculas desde la A hasta la Z (sin la Ñ).Logicamente >> asi no se puede hacer . A alguien se le ocurre como? > > siguiendo tu idea sería: > > for i in [chr(x) for x in range(ord('A'), ord('Z'))] > > pero lo mejor es: > > import string > for i in string.uppercase para ser exactos, si no quieres que la configuración del locale afecte, usarías la constante ascii_uppercase: http://docs.python.org/lib/node39.html ascii_uppercase The uppercase letters 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. This value is not locale-dependent and will not change. From cervera en ffn.ub.es Thu Mar 22 16:18:23 2007 From: cervera en ffn.ub.es (Pau Cervera Badia) Date: Thu, 22 Mar 2007 16:18:23 +0100 Subject: como hacer range(A,Z)??????????? In-Reply-To: References: Message-ID: <46029E3F.2000202@ffn.ub.es> En el módulo string tienes todas las letras: >>> import string >>> for c in string.uppercase: ... print c, ... A B C D E F G H I J K L M N O P Q R S T U V W X Y Z joana salgado gomez wrote: > hola!!! > > Necesito hacer un 'for i in range(A,Z)' para que la variable i vaya > tomando letras mayusculas desde la A hasta la Z (sin la Ñ).Logicamente > asi no se puede hacer . A alguien se le ocurre como? > > _________________________________________________________________ > Dale rienda suelta a tu tiempo libre. Mil ideas para exprimir tu ocio > con MSN Entretenimiento. http://entretenimiento.msn.es/ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- Pau Cervera i Badia (e-mail cervera en ffn.ub.es) { Departament de Física Fonamental Martí i Franqués, 1 Universitat de Barcelona Planta 3, despatx 346 bis 08028 Barcelona tel: +34 934 039 708 Spain "Simple things should be simple, complex things should be possible." -- Alan Kay return http://www.ffn.ub.es/%7Ecervera/ } From rbaquerizo en ehas.org Thu Mar 22 18:35:55 2007 From: rbaquerizo en ehas.org (Reynaldo Baquerizo) Date: Thu, 22 Mar 2007 12:35:55 -0500 Subject: como hacer range(A,Z)??????????? In-Reply-To: <46027A4A.20909@ehas.org> References: <46027A4A.20909@ehas.org> Message-ID: <4602BE7B.4040809@ehas.org> Arnau Sanchez escribió: > joana salgado gomez escribió: > >> Necesito hacer un 'for i in range(A,Z)' para que la variable i vaya >> tomando letras mayusculas desde la A hasta la Z (sin la >> Ñ).Logicamente asi no se puede hacer . A alguien se le ocurre como? > > siguiendo tu idea sería: > > for i in [chr(x) for x in range(ord('A'), ord('Z'))] sería así, for i in [chr(x) for x in range(ord('A'), ord('Z')+1)] de otra forma no imprimiría 'Z' (creo que a alguien le falta repasar el range :) ) From listas en soft-com.es Thu Mar 22 19:16:30 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Thu, 22 Mar 2007 19:16:30 +0100 Subject: Lista de elementos comunes Message-ID: <4602C7FE.2060906@soft-com.es> Hola a todos, Me gustaria saber si hay alguna forma elegante de resolver esto: Una lista con un numero indeterminado de tuplas: lista = [ (1,2,3), (1,3,4,5), (3, 1) ] Necesito crear una nueva lista que contenga los elementos comunes a todas las tuplas En esta caso el resultado deberia ser: [1,3] Lo unico que se me ocurre es hacer un bucle e ir comprobando elemento por elemento si esta contenido en las demas tuplas. ¿Alguna sugerencia? Gracias. -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From alberto en toscat.net Thu Mar 22 19:24:50 2007 From: alberto en toscat.net (Alberto Valverde) Date: Thu, 22 Mar 2007 19:24:50 +0100 Subject: Lista de elementos comunes In-Reply-To: <4602C7FE.2060906@soft-com.es> References: <4602C7FE.2060906@soft-com.es> Message-ID: <76DD9AC5-A1C8-4BB2-B0B1-A758C905A235@toscat.net> On Mar 22, 2007, at 7:16 PM, Oswaldo Hernández wrote: > Hola a todos, > > Me gustaria saber si hay alguna forma elegante de resolver esto: > > Una lista con un numero indeterminado de tuplas: > lista = [ (1,2,3), (1,3,4,5), (3, 1) ] > > Necesito crear una nueva lista que contenga los elementos comunes a > todas las tuplas > En esta caso el resultado deberia ser: [1,3] > > Lo unico que se me ocurre es hacer un bucle e ir comprobando > elemento por elemento si esta contenido en las demas tuplas. > > ¿Alguna sugerencia? Utilizando los sets (en python <2.4 haz "from sets import Set as set") comunes = set() for tupla in lista: comunes &= set(tupla) Alberto From alberto en toscat.net Thu Mar 22 19:28:59 2007 From: alberto en toscat.net (Alberto Valverde) Date: Thu, 22 Mar 2007 19:28:59 +0100 Subject: Lista de elementos comunes In-Reply-To: <76DD9AC5-A1C8-4BB2-B0B1-A758C905A235@toscat.net> References: <4602C7FE.2060906@soft-com.es> <76DD9AC5-A1C8-4BB2-B0B1-A758C905A235@toscat.net> Message-ID: <51DC2296-EAFC-471B-A251-DA3D441B9857@toscat.net> On Mar 22, 2007, at 7:24 PM, Alberto Valverde wrote: > > On Mar 22, 2007, at 7:16 PM, Oswaldo Hernández wrote: > >> Hola a todos, >> >> Me gustaria saber si hay alguna forma elegante de resolver esto: >> >> Una lista con un numero indeterminado de tuplas: >> lista = [ (1,2,3), (1,3,4,5), (3, 1) ] >> >> Necesito crear una nueva lista que contenga los elementos comunes >> a todas las tuplas >> En esta caso el resultado deberia ser: [1,3] >> >> Lo unico que se me ocurre es hacer un bucle e ir comprobando >> elemento por elemento si esta contenido en las demas tuplas. >> >> ¿Alguna sugerencia? > > Utilizando los sets (en python <2.4 haz "from sets import Set as set") > > comunes = set() > for tupla in lista: > comunes &= set(tupla) Oops, eso está mal, mejor: comunes = set(lista[0]) for tupla in lista[1:]: comunes &= set(tupla) Alberto From listas en soft-com.es Thu Mar 22 19:51:49 2007 From: listas en soft-com.es (=?ISO-8859-1?Q?Oswaldo_Hern=E1ndez?=) Date: Thu, 22 Mar 2007 19:51:49 +0100 Subject: Lista de elementos comunes In-Reply-To: <51DC2296-EAFC-471B-A251-DA3D441B9857@toscat.net> References: <4602C7FE.2060906@soft-com.es> <76DD9AC5-A1C8-4BB2-B0B1-A758C905A235@toscat.net> <51DC2296-EAFC-471B-A251-DA3D441B9857@toscat.net> Message-ID: <4602D045.9010209@soft-com.es> Alberto Valverde escribió: > > On Mar 22, 2007, at 7:24 PM, Alberto Valverde wrote: > >> >> On Mar 22, 2007, at 7:16 PM, Oswaldo Hernández wrote: >> >>> Hola a todos, >>> >>> Me gustaria saber si hay alguna forma elegante de resolver esto: >>> >>> Una lista con un numero indeterminado de tuplas: >>> lista = [ (1,2,3), (1,3,4,5), (3, 1) ] >>> >>> Necesito crear una nueva lista que contenga los elementos comunes a >>> todas las tuplas >>> En esta caso el resultado deberia ser: [1,3] >>> >>> Lo unico que se me ocurre es hacer un bucle e ir comprobando elemento >>> por elemento si esta contenido en las demas tuplas. >>> >>> ¿Alguna sugerencia? >> >> Utilizando los sets (en python <2.4 haz "from sets import Set as set") >> >> comunes = set() >> for tupla in lista: >> comunes &= set(tupla) > > Oops, eso está mal, mejor: > > comunes = set(lista[0]) > for tupla in lista[1:]: > comunes &= set(tupla) > Perfecto. No se porque me daba a mi que python deberia resolverlo de forma elegante :) Gracias Alberto. -- ***************************************** Oswaldo Hernández oswaldo (@) soft-com (.) es ***************************************** From antonio.beamud en linkend.net Thu Mar 22 19:24:33 2007 From: antonio.beamud en linkend.net (Antonio Beamud Montero) Date: Thu, 22 Mar 2007 19:24:33 +0100 Subject: Lista de elementos comunes In-Reply-To: <4602C7FE.2060906@soft-com.es> References: <4602C7FE.2060906@soft-com.es> Message-ID: <1174587873.6913.65.camel@lujuria.linkend.net> El jue, 22-03-2007 a las 19:16 +0100, Oswaldo Hernández escribió: > Hola a todos, > > Me gustaria saber si hay alguna forma elegante de resolver esto: > > Una lista con un numero indeterminado de tuplas: > lista = [ (1,2,3), (1,3,4,5), (3, 1) ] > > Necesito crear una nueva lista que contenga los elementos comunes a todas las tuplas > En esta caso el resultado deberia ser: [1,3] > > Lo unico que se me ocurre es hacer un bucle e ir comprobando elemento por elemento si esta contenido > en las demas tuplas. > > ¿Alguna sugerencia? La forma más sencilla que se me ocurre es usando 'set': res = set(lista[0]) for t in lista[1:]: res.intersection_update(t) print res Por supuesto comprobar primero si la lista tiene elementos y cosas así. > > Gracias. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Fri Mar 23 02:29:15 2007 From: py en ch3m4.org (Chema Cortes) Date: Fri, 23 Mar 2007 02:29:15 +0100 Subject: Lista de elementos comunes In-Reply-To: <51DC2296-EAFC-471B-A251-DA3D441B9857@toscat.net> References: <4602C7FE.2060906@soft-com.es> <76DD9AC5-A1C8-4BB2-B0B1-A758C905A235@toscat.net> <51DC2296-EAFC-471B-A251-DA3D441B9857@toscat.net> Message-ID: <200703230229.16897.py@ch3m4.org> El Jueves, 22 de Marzo de 2007 19:28, Alberto Valverde escribió: > Oops, eso está mal, mejor: > > comunes = set(lista[0]) > for tupla in lista[1:]: > comunes &= set(tupla) Personalmente, me gustan más las expresiones funcionales: reduce(set.intersection, map(set,lista)) Lástima que el reduce() tenga sus días contandos y se esté previsto su eliminación del lenguaje. Una solución alternativa en una sóla línea, y sin recurrir a los conjuntos set(), sería ésta: [i for i in lista[0] if [True for x in lista[1:] if i in x] ] No parece que quede más claro que emplear reduce(); pero, gracias al BDFL. en python 2.5 se introdujeron los iteradores any() y all(), con lo que quedaría así de majo: [i for i in lista[0] if all(i in x for x in lista[1:]) ] From mark.private.007 en gmail.com Fri Mar 23 14:19:02 2007 From: mark.private.007 en gmail.com (Mark Tavera) Date: Fri, 23 Mar 2007 08:19:02 -0500 Subject: Tengo un problema con el wx.grid pueden ayudar Message-ID: <968115dc0703230619l21c4eb54h8f2a1a1c9daa267@mail.gmail.com> me gustaria saber como puedo capturar las celdas del grid wx.grid, si me pueden mandar la linea de comando les agredeceria mucho: mark.private.007 en gmail.com From mark.private.007 en gmail.com Fri Mar 23 15:17:58 2007 From: mark.private.007 en gmail.com (Mark Tavera) Date: Fri, 23 Mar 2007 09:17:58 -0500 Subject: Tengo un problema con en wx.grid me pueden ayudar Message-ID: <968115dc0703230717q1d34828ah8314a22f3627e118@mail.gmail.com> Estoy utilizando Python 2.4 y postgres el el wx.python el problema que tengo es que listo los datos de la tabla en un wx.grid , pero quiero recuperar los datos que estan dentro de ello, les agredeceria mucho su ayudas. mark.private.007 en gmail.com From alxgnar en gmail.com Fri Mar 23 17:39:27 2007 From: alxgnar en gmail.com (=?ISO-8859-1?Q?alex_ordo=F1ez?=) Date: Fri, 23 Mar 2007 11:39:27 -0500 Subject: ejecutar progama Message-ID: <26a762360703230939n3d31dc23i80e17b717b0cf245@mail.gmail.com> hola a todos, quisiera que me ayudasen ya que deseo saber donde encuentro o si me puden decir como hacer que una aplicacion se ejecute ocultamente al usuario y que en determinado tiempo se envie un mensaje visible al usuario, trabajo con windows pero quisiera hacer lo mismo en linux ya que estoy trantando de pasarme a este os. gracias. alex. From gerardo en computo-industrial.com.mx Fri Mar 23 19:36:12 2007 From: gerardo en computo-industrial.com.mx (Gerardo Juarez) Date: Fri, 23 Mar 2007 13:36:12 -0500 (EST) Subject: ejecutar progama In-Reply-To: <26a762360703230939n3d31dc23i80e17b717b0cf245@mail.gmail.com> References: <26a762360703230939n3d31dc23i80e17b717b0cf245@mail.gmail.com> Message-ID: Depende del paquete grafico que uses. Digamos que usas Tkinter, entonces tu aplicacion inicia y corres el metodo iconify(). En todos los demas paquetes graficos debes de poder hacer algo equivalente. Debe haber casos en los que puedes mandar la aplicacion al System Tray, y alli solo se veria un iconito. Gerardo Juarez On Fri, 23 Mar 2007, alex ordoñez wrote: > hola a todos, quisiera que me ayudasen ya que deseo saber donde encuentro o > si me puden decir como hacer que una aplicacion se ejecute ocultamente al > usuario y que en determinado tiempo se envie un mensaje visible al usuario, > trabajo con windows pero quisiera hacer lo mismo en linux ya que estoy > trantando de pasarme a este os. > > gracias. > > alex. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From alxgnar en gmail.com Fri Mar 23 21:51:53 2007 From: alxgnar en gmail.com (=?ISO-8859-1?Q?alex_ordo=F1ez?=) Date: Fri, 23 Mar 2007 15:51:53 -0500 Subject: ejecutar progama In-Reply-To: References: <26a762360703230939n3d31dc23i80e17b717b0cf245@mail.gmail.com> Message-ID: <26a762360703231351j615d3bfbmd911c6390de38b3a@mail.gmail.com> El día 23/03/07, Gerardo Juarez escribió: > > > Depende del paquete grafico que uses. Digamos que usas Tkinter, entonces > tu aplicacion inicia y corres el metodo iconify(). En todos los demas > paquetes graficos debes de poder hacer algo equivalente. > > Debe haber casos en los que puedes mandar la aplicacion al System Tray, y > alli solo se veria un iconito. > > Gerardo Juarez > > > On Fri, 23 Mar 2007, alex ordoñez wrote: > > > hola a todos, quisiera que me ayudasen ya que deseo saber donde > encuentro o > > si me puden decir como hacer que una aplicacion se ejecute ocultamente > al > > usuario y que en determinado tiempo se envie un mensaje visible al > usuario, > > trabajo con windows pero quisiera hacer lo mismo en linux ya que estoy > > trantando de pasarme a este os. > > > > gracias. > > > > alex. > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > gracias por tu respuesta pero lo que deseo es que la aplicacion corra sin > que el usuario se de cuenta de que esta activa una aplicacion que no > desplegue ninguna ventana que sea oculto al usuario From gagsl-py2 en yahoo.com.ar Fri Mar 23 22:33:02 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Fri, 23 Mar 2007 18:33:02 -0300 Subject: ejecutar progama References: <26a762360703230939n3d31dc23i80e17b717b0cf245@mail.gmail.com> <26a762360703231351j615d3bfbmd911c6390de38b3a@mail.gmail.com> Message-ID: En Fri, 23 Mar 2007 17:51:53 -0300, alex ordoñez escribió: >> gracias por tu respuesta pero lo que deseo es que la aplicacion corra >> sin >> que el usuario se de cuenta de que esta activa una aplicacion que no >> desplegue ninguna ventana que sea oculto al usuario En Windows, simplemente con invocar la aplicacion usando pythonw.exe (o usar la extension .pyw) va a iniciar sin ninguna ventana visible. Si la intencion es "no molestar" al usuario con una consola o un boton más en la barra de tareas, supongo que te sirve. Pero eso no quiere decir que la aplicacion esté muy "oculta": en la lista de procesos siempre se puede ver pythonw.exe por ejemplo. Claro que cualquier intento de usar print or raw_input o similares va a generar un error. Para mostrar un mensaje tendrias que usar funciones de Windows como por ejemplo MessageBox - lo mas comodo para tener acceso a esas funciones es instalar pywin32. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Thu Mar 22 23:55:56 2007 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Thu, 22 Mar 2007 23:55:56 +0100 Subject: eficiencia de numpy.array In-Reply-To: <1174466746.2598.2.camel@localhost.localdomain> References: <1173353965.30229.7.camel@skynex.telecable.es> <2c9fb0dd0703091822p78990c4jb83e55cf000d44d8@mail.gmail.com> <45F86391.2010206@argo.es> <200703150424.48925.py@ch3m4.org> <45FFF8D0.3090907@argo.es> <1174409603.2546.16.camel@localhost.localdomain> <46001AB9.1010309@argo.es> <1174466746.2598.2.camel@localhost.localdomain> Message-ID: <4603097C.8090005@arrakis.es> Francesc Altet escribió: > El dt 20 de 03 del 2007 a les 20:38 -0300, en/na Gabriel Genellina va > escriure: > >> En Tue, 20 Mar 2007 14:32:41 -0300, Jesus Cea escribió: >> >> >>> Ahora tengo que usar "map" o "list comprehensions" (por cierto, ¿cómo lo >>> llamamos en castellano?"). >>> >> Yo diría lista por comprensión. Que coincide con la terminología usada en >> teoría de conjuntos, donde se dice "defino un conjunto por comprensión" >> (dando una propiedad que cumplen todos sus elementos). >> > > Realmente, después de consultar el diccionario, comprensión también > tiene el significado de 'contener' o 'incluir', así que supongo que > 'listas comprensivas' o 'listas por comprensión' son términos > perfectamente válidos en castellano. > > Saludos, > En los docus de Python en castellano, yo puse 'listas autodefinidas'; igual suena demasiado a pasatiempos ;-) From flaper87 en gmail.com Sat Mar 24 02:31:47 2007 From: flaper87 en gmail.com (Flaper87) Date: Fri, 23 Mar 2007 21:31:47 -0400 Subject: ejecutar progama In-Reply-To: <26a762360703230939n3d31dc23i80e17b717b0cf245@mail.gmail.com> References: <26a762360703230939n3d31dc23i80e17b717b0cf245@mail.gmail.com> Message-ID: El día 23/03/07, alex ordoñez escribió: > > hola a todos, quisiera que me ayudasen ya que deseo saber donde encuentro > o > si me puden decir como hacer que una aplicacion se ejecute ocultamente al > usuario y que en determinado tiempo se envie un mensaje visible al > usuario, > trabajo con windows pero quisiera hacer lo mismo en linux ya que estoy > trantando de pasarme a este os. > > gracias. > > alex. En mi opinion, es mejor utilizar la opcion iconify, ya que de esta manera a la hora que la aplicacion deba interactuar con el usuario todo seria mas facil. -- Flavio Percoco Premoli, A.K.A. [Flaper87] http://www.flaper87.com Usuario Linux registrado #436538 Key Fingerprint: CFC0 C67D FF73 463B 7E55 CF43 25D1 E75B E2DB 15C7 From jjachuf en gmail.com Sun Mar 25 20:03:46 2007 From: jjachuf en gmail.com (=?ISO-8859-1?Q?Jos=E9_Jachuf?=) Date: Sun, 25 Mar 2007 15:03:46 -0300 Subject: Mail sobre ssl Message-ID: <4606B982.1020000@gmail.com> Hola Utilizo python 2.4.4. Necesito enviar correos sobre SSL utilizando el puerto 465. El servidor que uso es gmail. Seguí este ejemplo: http://aleph-null.tv/go.php?doc=20070216-1104-925.xml, pero me tira errores y no se envia nada El Codigo utilizado se muestra abajo. ssmtplib fue descargada del sitio mencionado. import ssmtplib conn = ssmtplib.SMTP_SSL('smtp.gmail.com') # From here, you can use any method in smtplib conn.login('origen en gmail.com','mipassword') conn.ehlo() msg = 'Subject: Prueba2 \n\n Hola Mundo' conn.sendmail('destino en gmail.com', 'origen en gmail.com', msg) conn.close() el error mostrado es: Traceback (most recent call last): File "correo_ssl.py", line 8, in ? conn.sendmail('destino en gmail.com', 'origen en gmail.com', msg) File "E:\Python24\lib\smtplib.py", line 684, in sendmail raise SMTPSenderRefused(code, resp, from_addr) SMTPSenderRefused: (530, '5.5.1 Authentication Required i33sm9477422wxd', 'destino en gmail.com') También probé con este ejemplo, que si bien muestra errores, se envía el mail correctamente, aunque no estoy muy seguro que utilice el puerto 465. from smtplib import SMTP from socket import sslerror #if desired server = SMTP('smtp.gmail.com') server.set_debuglevel(0) # or 1 for verbosity server.ehlo('origen en gmail.com') server.starttls() server.ehlo('origen en gmail.com') # say hello again server.login('origen en gmail.com', 'mipassword') # i have a suspicion that smptlib does not add the required newline dot newline so i do it myself message_text = "Subject: Pueba \n\nHola Mundo!" server.sendmail('origen en gmail.com', 'destino en gmail.com', message_text + '\n.\n') # next line generates the ignorable socket.sslerror server.quit() El error es el siguiente: Traceback (most recent call last): File "D:\etisig\etisig\web\cgi\correo3.py", line 14, in ? server.quit() File "E:\Python24\lib\smtplib.py", line 716, in quit self.docmd("quit") File "E:\Python24\lib\smtplib.py", line 378, in docmd return self.getreply() File "E:\Python24\lib\smtplib.py", line 352, in getreply line = self.file.readline() File "E:\Python24\lib\smtplib.py", line 160, in readline chr = self.sslobj.read(1) sslerror: (8, 'EOF occurred in violation of protocol') Desde agradecido Jose Jachuf From gagsl-py2 en yahoo.com.ar Sun Mar 25 21:32:36 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Sun, 25 Mar 2007 16:32:36 -0300 Subject: Mail sobre ssl References: <4606B982.1020000@gmail.com> Message-ID: En Sun, 25 Mar 2007 15:03:46 -0300, José Jachuf escribió: > Utilizo python 2.4.4. > Necesito enviar correos sobre SSL utilizando el puerto 465. El servidor > que uso es gmail. Seguí este ejemplo: > http://aleph-null.tv/go.php?doc=20070216-1104-925.xml, pero me tira > errores y no se envia nada > > el error mostrado es: > Traceback (most recent call last): > File "correo_ssl.py", line 8, in ? > conn.sendmail('destino en gmail.com', 'origen en gmail.com', msg) La llamada a sendmail esta mal, fijate en http://docs.python.org/lib/SMTP-objects.html -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From hfoffani en gmail.com Sun Mar 25 23:01:05 2007 From: hfoffani en gmail.com (Hernan M Foffani) Date: Sun, 25 Mar 2007 23:01:05 +0200 Subject: Error In-Reply-To: References: Message-ID: <11fab4bc0703251401h5be37844q57d76fa24000e29b@mail.gmail.com> No he visto una continución a este hilo. ¿Has podido arreglarlo? El 19/03/07, Idoia Villacián Zárate escribió: > > Hola a [1]tod en s: > > Pos era para saber si alguno sabria porque me sale este mensaje cada > vez que hago un programa en python,lo estoy haciendo bajo > windows.Luego lo que es el programa en si el resultado me lo saca bien > pero siempre me da ese error cuando pongo: from mod_python import > apache. > > Por ejemplo: > > from mod_python import apache > def handler(req): > req.content_type = 'text/plain' > req.write("Hello World!") > return apache.OK > > Y me da este error: > > Traceback (most recent call last): > File "C:/Archivos de programa/Apache > Group/Apache2/htdocs/mywebdir/web1.py", line 1, in > from mod_python import apache > File "C:\Python25\lib\site-packages\mod_python\apache.py", line 30, > in > import _apache > ImportError: No module named _apache > > Gracias. > > _________________________________________________________________ > > Tu horóscopo diario, semanal y gratuito. [2]Cartas, tarot y > predicciones en MSN Horóscopo > > References > > 1. mailto:tod en s > 2. http://g.msn.com/8HMAESES/2728??PS=47575 > _______________________________________________ > 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 jjachuf en gmail.com Mon Mar 26 02:12:17 2007 From: jjachuf en gmail.com (=?ISO-8859-15?Q?Jos=E9_Jachuf?=) Date: Sun, 25 Mar 2007 21:12:17 -0300 Subject: Mail sobre ssl In-Reply-To: References: <4606B982.1020000@gmail.com> Message-ID: <46070FE1.1090807@gmail.com> Gabriel Genellina escribió: > En Sun, 25 Mar 2007 15:03:46 -0300, José Jachuf > escribió: > >> Utilizo python 2.4.4. >> Necesito enviar correos sobre SSL utilizando el puerto 465. El servidor >> que uso es gmail. Seguí este ejemplo: >> http://aleph-null.tv/go.php?doc=20070216-1104-925.xml, pero me tira >> errores y no se envia nada >> >> el error mostrado es: >> Traceback (most recent call last): >> File "correo_ssl.py", line 8, in ? >> conn.sendmail('destino en gmail.com', 'origen en gmail.com', msg) > > La llamada a sendmail esta mal, fijate en > http://docs.python.org/lib/SMTP-objects.html > > --Gabriel Genellina Hola Gabriel gracias por responder. te refieres a que están cambiados origen con destino? Es que probé de las dos maneras ya que me daba error y debo haber mandado a la lista cuando la versión estaba cambiada. Poniendo el código de forma correcta conn.sendmail('origen en gmail.com', 'destino en gmail.com', msg) el mensaje es el siguiente: Traceback (most recent call last): File "correo_ssl.py", line 9, in ? conn.sendmail('origen en gmail.com', 'destino en gmail.com', msg) File "E:\Python24\lib\smtplib.py", line 684, in sendmail raise SMTPSenderRefused(code, resp, from_addr) SMTPSenderRefused: (530, '5.5.1 Authentication Required h34sm9910350wxd', 'origen en gmail.com') Estoy poniendo el password en: conn.login('origen en gmail.com','mipassword') Saludos José Jachuf ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From flaper87 en gmail.com Mon Mar 26 03:52:39 2007 From: flaper87 en gmail.com (Flaper87) Date: Sun, 25 Mar 2007 21:52:39 -0400 Subject: Funciones de imprimir Message-ID: Saludos a Todos!!! Necesito crear una aplicacion que tenga un formulario, el cual los datos que se le ingresen (nombre,cedula,direccion etc), vallan a una base de datos (esto es cosa facil), pero a su ves necesito que se imprima una factura con un formato especifico y que se imprima junto con esos datos. ¿Que me recomiendan para esto? Uso Python 2.4, Wx y lo estoy programando en Linux pero la aplicacion es para Windows? Gracias -- Flavio Percoco Premoli, A.K.A. [Flaper87] http://www.flaper87.com Usuario Linux registrado #436538 Key Fingerprint: CFC0 C67D FF73 463B 7E55 CF43 25D1 E75B E2DB 15C7 From mlacunza en gmail.com Mon Mar 26 05:00:33 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Sun, 25 Mar 2007 22:00:33 -0500 Subject: Funciones de imprimir In-Reply-To: References: Message-ID: <1174878033.5656.11.camel@laptop> El dom, 25-03-2007 a las 21:52 -0400, Flaper87 escribió: > Saludos a Todos!!! > > Necesito crear una aplicacion que tenga un formulario, el cual los datos que > se le ingresen (nombre,cedula,direccion etc), vallan a una base de datos > (esto es cosa facil), pero a su ves necesito que se imprima una factura con > un formato especifico y que se imprima junto con esos datos. > > ¿Que me recomiendan para esto? Uso Python 2.4, Wx y lo estoy programando en > Linux pero la aplicacion es para Windows? > > Gracias > wxPython tiene un Framework de impresion, miralo en la Demo. -- Mario Lacunza ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From flaper87 en gmail.com Mon Mar 26 05:01:11 2007 From: flaper87 en gmail.com (Flaper87) Date: Sun, 25 Mar 2007 23:01:11 -0400 Subject: crear applet con wx Message-ID: Saludos a todos!!! Quisiera saber si existe alguna manera de crear un applet con wx, que en vez de imagen muestre un texto, algo como el que muestra la hora. Trabajo en Debian Etch Python 2.4 Wxpython Gnome (Aunque quiero que sirva para cualquier entorno de escritorio) Saludos Gracias -- Flavio Percoco Premoli, A.K.A. [Flaper87] http://www.flaper87.com Usuario Linux registrado #436538 Key Fingerprint: CFC0 C67D FF73 463B 7E55 CF43 25D1 E75B E2DB 15C7 From mark.private.007 en gmail.com Mon Mar 26 23:55:54 2007 From: mark.private.007 en gmail.com (Mark Tavera) Date: Mon, 26 Mar 2007 16:55:54 -0500 Subject: Hola a tofos como estan, me pueden ayudar con un problemilla Message-ID: <968115dc0703261455w131f48e0l17fa10e4de1d6aa5@mail.gmail.com> soy nuevo en este lenguaje de programacion, estoy usando en postgres 8.1 y puthon 2.4 con wx.python y la herramienta que estoy utilizando para programar es Ulipad, y esoty utilizando el wx.grid para cargar datos de una tabla es problema es que no se como recuperar los datos del wx.grid les mando mi codigo . # -*- coding: utf-8 -*-# import wx import wx.grid as grid import gridXML import conecta class Producto(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self,parent,id,title, (-1, -1), wx.Size(800,450)) self.grid=grid.Grid(self,-1, pos=(10,80), size=(730,320), style= wx.DD_DEFAULT_STYLE) self.grid.headers = ["codigo","nombre"] self.log = '' self.moveTo = None self.Bind(wx.EVT_IDLE, self.OnIdle) consulta1="select * from ingproducto" #print consulta1 odat1=conecta.Postgres() odat1.Conexion() res1=odat1.Consultar(consulta1) #odat1.CerraConexion() self.grid.data=res1 self.grid.SetTable(gridXML.XmlTableModel(self.grid.headers, self.grid.data),True) self.grid.SetColSize(0,100) self.grid.SetColSize(1,150) # test all the events self.Bind(grid.EVT_GRID_CELL_LEFT_CLICK, self.OnCellLeftClick) self.Bind(grid.EVT_GRID_CELL_RIGHT_CLICK, self.OnCellRightClick) self.Bind(grid.EVT_GRID_CELL_LEFT_DCLICK, self.OnCellLeftDClick) self.Bind(grid.EVT_GRID_CELL_RIGHT_DCLICK, self.OnCellRightDClick) self.Bind(grid.EVT_GRID_LABEL_LEFT_CLICK, self.OnLabelLeftClick) self.Bind(grid.EVT_GRID_LABEL_RIGHT_CLICK, self.OnLabelRightClick) self.Bind(grid.EVT_GRID_LABEL_LEFT_DCLICK, self.OnLabelLeftDClick) self.Bind(grid.EVT_GRID_LABEL_RIGHT_DCLICK, self.OnLabelRightDClick) self.Bind(grid.EVT_GRID_ROW_SIZE, self.OnRowSize) self.Bind(grid.EVT_GRID_COL_SIZE, self.OnColSize) self.Bind(grid.EVT_GRID_RANGE_SELECT, self.OnRangeSelect) self.Bind(grid.EVT_GRID_CELL_CHANGE, self.OnCellChange) self.Bind(grid.EVT_GRID_SELECT_CELL, self.OnSelectCell) self.Bind(grid.EVT_GRID_EDITOR_SHOWN, self.OnEditorShown) self.Bind(grid.EVT_GRID_EDITOR_HIDDEN, self.OnEditorHidden) self.Bind(grid.EVT_GRID_EDITOR_CREATED, self.OnEditorCreated) def OnCellLeftClick(self, evt): self.log.write("OnCellLeftClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnCellRightClick(self, evt): self.log.write("OnCellRightClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnCellLeftDClick(self, evt): self.log.write("OnCellLeftDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnCellRightDClick(self, evt): self.log.write("OnCellRightDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnLabelLeftClick(self, evt): self.log.write("OnLabelLeftClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnLabelRightClick(self, evt): self.log.write("OnLabelRightClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnLabelLeftDClick(self, evt): self.log.write("OnLabelLeftDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnLabelRightDClick(self, evt): self.log.write("OnLabelRightDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnRowSize(self, evt): self.log.write("OnRowSize: row %d, %s\n" % (evt.GetRowOrCol(), evt.GetPosition())) evt.Skip() def OnColSize(self, evt): self.log.write("OnColSize: col %d, %s\n" % (evt.GetRowOrCol(), evt.GetPosition())) evt.Skip() def OnRangeSelect(self, evt): if evt.Selecting(): self.log.write("OnRangeSelect: top-left %s, bottom-right %s\n" % (evt.GetTopLeftCoords(), evt.GetBottomRightCoords ())) evt.Skip() def OnCellChange(self, evt): self.log.write("OnCellChange: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) # Show how to stay in a cell that has bad data. We can't just # call SetGridCursor here since we are nested inside one so it # won't have any effect. Instead, set coordinates to move to in # idle time. value = self.GetCellValue(evt.GetRow(), evt.GetCol()) if value == 'no good': self.moveTo = evt.GetRow(), evt.GetCol() def OnIdle(self, evt): if self.moveTo != None: self.SetGridCursor(self.moveTo[0], self.moveTo[1]) self.moveTo = None evt.Skip() def OnSelectCell(self, evt): self.log.write("OnSelectCell: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) # Another way to stay in a cell that has a bad value... row = self.GetGridCursorRow() col = self.GetGridCursorCol() if self.IsCellEditControlEnabled(): self.HideCellEditControl() self.DisableCellEditControl() value = self.GetCellValue(row, col) if value == 'no good 2': return # cancels the cell selection evt.Skip() def OnEditorShown(self, evt): if evt.GetRow() == 6 and evt.GetCol() == 3 and \ wx.MessageBox("Are you sure you wish to edit this cell?", "Checking", wx.YES_NO) == wx.NO: evt.Veto() return self.log.write("OnEditorShown: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnEditorHidden(self, evt): if evt.GetRow() == 6 and evt.GetCol() == 3 and \ wx.MessageBox("Are you sure you wish to finish editing this cell?", "Checking", wx.YES_NO) == wx.NO: evt.Veto() return self.log.write("OnEditorHidden: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnEditorCreated(self, evt): self.log.write("OnEditorCreated: (%d, %d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetControl())) class MyApp(wx.App): def OnInit(self): frame = Producto(None, -1, 'Lista Personal') frame.SetIcon(wx.Icon('add-new-client.gif', wx.BITMAP_TYPE_GIF)) frame.Show(True) return True app = MyApp(0) app.MainLoop() Espero que me puedan ayudar Gracias Att: mark.private.007 en gmail.com From mark.private.007 en gmail.com Tue Mar 27 00:38:42 2007 From: mark.private.007 en gmail.com (Mark Tavera) Date: Mon, 26 Mar 2007 17:38:42 -0500 Subject: Hola a todos como estan, me pueden ayudar con un problemilla Message-ID: <968115dc0703261538n376ab29by6aa9fc672f82e5e2@mail.gmail.com> soy nuevo en este lenguaje de programacion, estoy usando en postgres 8.1 y python 2.4 con wx.python y la herramienta que estoy utilizando para programar es Ulipad, y estoy utilizando el wx.grid para cargar datos de una tabla el problema es que no se como recuperar los datos del wx.grid les mando mi codigo . # -*- coding: utf-8 -*-# import wx import wx.grid as grid import gridXML import conecta class Producto(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self,parent,id,title, (-1, -1), wx.Size(800,450)) self.grid=grid.Grid(self,-1, pos=(10,80), size=(730,320), style= wx.DD_DEFAULT_STYLE) self.grid.headers = ["codigo","nombre"] self.log = '' self.moveTo = None self.Bind(wx.EVT_IDLE, self.OnIdle) consulta1="select * from ingproducto" #print consulta1 odat1=conecta.Postgres() odat1.Conexion() res1=odat1.Consultar(consulta1) #odat1.CerraConexion() self.grid.data=res1 self.grid.SetTable(gridXML.XmlTableModel (self.grid.headers, self.grid.data),True) self.grid.SetColSize(0,100) self.grid.SetColSize(1,150) # test all the events self.Bind(grid.EVT_GRID_CELL_LEFT_CLICK , self.OnCellLeftClick) self.Bind(grid.EVT_GRID_CELL_RIGHT_CLICK, self.OnCellRightClick) self.Bind(grid.EVT_GRID_CELL_LEFT_DCLICK, self.OnCellLeftDClick) self.Bind(grid.EVT_GRID_CELL_RIGHT_DCLICK , self.OnCellRightDClick) self.Bind(grid.EVT_GRID_LABEL_LEFT_CLICK, self.OnLabelLeftClick) self.Bind(grid.EVT_GRID_LABEL_RIGHT_CLICK, self.OnLabelRightClick) self.Bind(grid.EVT_GRID_LABEL_LEFT_DCLICK , self.OnLabelLeftDClick) self.Bind(grid.EVT_GRID_LABEL_RIGHT_DCLICK, self.OnLabelRightDClick) self.Bind(grid.EVT_GRID_ROW_SIZE, self.OnRowSize) self.Bind(grid.EVT_GRID_COL_SIZE, self.OnColSize ) self.Bind(grid.EVT_GRID_RANGE_SELECT, self.OnRangeSelect) self.Bind(grid.EVT_GRID_CELL_CHANGE, self.OnCellChange) self.Bind(grid.EVT_GRID_SELECT_CELL, self.OnSelectCell) self.Bind(grid.EVT_GRID_EDITOR_SHOWN, self.OnEditorShown) self.Bind(grid.EVT_GRID_EDITOR_HIDDEN, self.OnEditorHidden) self.Bind(grid.EVT_GRID_EDITOR_CREATED, self.OnEditorCreated) def OnCellLeftClick(self, evt): self.log.write("OnCellLeftClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnCellRightClick(self, evt): self.log.write("OnCellRightClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnCellLeftDClick(self, evt): self.log.write ("OnCellLeftDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnCellRightDClick(self, evt): self.log.write("OnCellRightDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnLabelLeftClick(self, evt): self.log.write("OnLabelLeftClick: (%d,%d) %s\n" % ( evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnLabelRightClick(self, evt): self.log.write("OnLabelRightClick: (%d,%d) %s\n" % (evt.GetRow (), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnLabelLeftDClick(self, evt): self.log.write("OnLabelLeftDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol (), evt.GetPosition())) evt.Skip() def OnLabelRightDClick(self, evt): self.log.write("OnLabelRightDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition ())) evt.Skip() def OnRowSize(self, evt): self.log.write("OnRowSize: row %d, %s\n" % (evt.GetRowOrCol(), evt.GetPosition())) evt.Skip() def OnColSize(self, evt): self.log.write("OnColSize: col %d, %s\n" % (evt.GetRowOrCol(), evt.GetPosition())) evt.Skip() def OnRangeSelect(self, evt): if evt.Selecting(): self.log.write("OnRangeSelect: top-left %s, bottom-right %s\n" % (evt.GetTopLeftCoords(), evt.GetBottomRightCoords ())) evt.Skip () def OnCellChange(self, evt): self.log.write("OnCellChange: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) # Show how to stay in a cell that has bad data. We can't just # call SetGridCursor here since we are nested inside one so it # won't have any effect. Instead, set coordinates to move to in # idle time. value = self.GetCellValue(evt.GetRow (), evt.GetCol()) if value == 'no good': self.moveTo = evt.GetRow(), evt.GetCol() def OnIdle(self, evt): if self.moveTo != None: self.SetGridCursor (self.moveTo[0], self.moveTo[1]) self.moveTo = None evt.Skip() def OnSelectCell(self, evt): self.log.write("OnSelectCell: (%d,%d) %s\n" % ( evt.GetRow(), evt.GetCol(), evt.GetPosition())) # Another way to stay in a cell that has a bad value... row = self.GetGridCursorRow() col = self.GetGridCursorCol() if self.IsCellEditControlEnabled (): self.HideCellEditControl() self.DisableCellEditControl() value = self.GetCellValue(row, col) if value == 'no good 2': return # cancels the cell selection evt.Skip() def OnEditorShown(self, evt): if evt.GetRow() == 6 and evt.GetCol() == 3 and \ wx.MessageBox("Are you sure you wish to edit this cell?", "Checking", wx.YES_NO) == wx.NO: evt.Veto() return self.log.write("OnEditorShown: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnEditorHidden(self, evt): if evt.GetRow() == 6 and evt.GetCol() == 3 and \ wx.MessageBox("Are you sure you wish to finish editing this cell?", "Checking", wx.YES_NO) == wx.NO: evt.Veto() return self.log.write("OnEditorHidden: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) evt.Skip() def OnEditorCreated(self, evt): self.log.write("OnEditorCreated: (%d, %d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetControl())) class MyApp( wx.App): def OnInit(self): frame = Producto(None, -1, 'Lista Personal') frame.SetIcon(wx.Icon('add-new-client.gif', wx.BITMAP_TYPE_GIF)) frame.Show(True) return True app = MyApp(0) app.MainLoop() Espero que me puedan ayudar Gracias Att: mark.private.007 en gmail.com From juancarlosuarez en ciudad.com.ar Tue Mar 27 10:19:25 2007 From: juancarlosuarez en ciudad.com.ar (Juan Carlos Suarez) Date: Tue, 27 Mar 2007 05:19:25 -0300 Subject: Hola a todos como estan, me pueden ayudar con un problemilla References: <968115dc0703261538n376ab29by6aa9fc672f82e5e2@mail.gmail.com> Message-ID: <002f01c77048$e33dc1a0$ac4bd4c9@user61af7958a3> Hola te pido por favor que borres mi dirección de tu lista, muchas gracias, Juan carlos ----- Original Message ----- From: "Mark Tavera" To: Sent: Monday, March 26, 2007 7:38 PM Subject: [Python-es] Hola a todos como estan,me pueden ayudar con un problemilla > soy nuevo en este lenguaje de programacion, estoy usando en postgres 8.1 y > python 2.4 con wx.python y la herramienta que estoy utilizando para > programar es Ulipad, y estoy utilizando el wx.grid para cargar datos de > una > tabla el problema es que no se como recuperar los datos del wx.grid les > mando mi codigo . > > # -*- coding: utf-8 -*-# > import wx > import wx.grid as grid > import gridXML > import conecta > > class Producto(wx.Frame): > def __init__(self, parent, id, title): > wx.Frame.__init__(self,parent,id,title, (-1, -1), wx.Size(800,450)) > > self.grid=grid.Grid(self,-1, pos=(10,80), size=(730,320), style= > wx.DD_DEFAULT_STYLE) > self.grid.headers = ["codigo","nombre"] > > self.log = '' > self.moveTo = None > self.Bind(wx.EVT_IDLE, self.OnIdle) > > consulta1="select * from ingproducto" > #print consulta1 > odat1=conecta.Postgres() > odat1.Conexion() > res1=odat1.Consultar(consulta1) > #odat1.CerraConexion() > self.grid.data=res1 > self.grid.SetTable(gridXML.XmlTableModel (self.grid.headers, > self.grid.data),True) > self.grid.SetColSize(0,100) > self.grid.SetColSize(1,150) > > > > > # test all the events > > self.Bind(grid.EVT_GRID_CELL_LEFT_CLICK , self.OnCellLeftClick) > self.Bind(grid.EVT_GRID_CELL_RIGHT_CLICK, self.OnCellRightClick) > self.Bind(grid.EVT_GRID_CELL_LEFT_DCLICK, self.OnCellLeftDClick) > self.Bind(grid.EVT_GRID_CELL_RIGHT_DCLICK , self.OnCellRightDClick) > > self.Bind(grid.EVT_GRID_LABEL_LEFT_CLICK, self.OnLabelLeftClick) > self.Bind(grid.EVT_GRID_LABEL_RIGHT_CLICK, self.OnLabelRightClick) > self.Bind(grid.EVT_GRID_LABEL_LEFT_DCLICK , self.OnLabelLeftDClick) > self.Bind(grid.EVT_GRID_LABEL_RIGHT_DCLICK, > self.OnLabelRightDClick) > > self.Bind(grid.EVT_GRID_ROW_SIZE, self.OnRowSize) > self.Bind(grid.EVT_GRID_COL_SIZE, self.OnColSize ) > > self.Bind(grid.EVT_GRID_RANGE_SELECT, self.OnRangeSelect) > self.Bind(grid.EVT_GRID_CELL_CHANGE, self.OnCellChange) > self.Bind(grid.EVT_GRID_SELECT_CELL, self.OnSelectCell) > > self.Bind(grid.EVT_GRID_EDITOR_SHOWN, self.OnEditorShown) > self.Bind(grid.EVT_GRID_EDITOR_HIDDEN, self.OnEditorHidden) > self.Bind(grid.EVT_GRID_EDITOR_CREATED, self.OnEditorCreated) > > > def OnCellLeftClick(self, evt): > self.log.write("OnCellLeftClick: (%d,%d) %s\n" % > (evt.GetRow(), evt.GetCol(), evt.GetPosition())) > evt.Skip() > > def OnCellRightClick(self, evt): > self.log.write("OnCellRightClick: (%d,%d) %s\n" % > (evt.GetRow(), evt.GetCol(), evt.GetPosition())) > evt.Skip() > > def OnCellLeftDClick(self, evt): > self.log.write ("OnCellLeftDClick: (%d,%d) %s\n" % > (evt.GetRow(), evt.GetCol(), evt.GetPosition())) > evt.Skip() > > def OnCellRightDClick(self, evt): > self.log.write("OnCellRightDClick: (%d,%d) %s\n" % > (evt.GetRow(), evt.GetCol(), evt.GetPosition())) > evt.Skip() > > def OnLabelLeftClick(self, evt): > self.log.write("OnLabelLeftClick: (%d,%d) %s\n" % > ( evt.GetRow(), evt.GetCol(), evt.GetPosition())) > evt.Skip() > > def OnLabelRightClick(self, evt): > self.log.write("OnLabelRightClick: (%d,%d) %s\n" % > (evt.GetRow (), evt.GetCol(), evt.GetPosition())) > evt.Skip() > > def OnLabelLeftDClick(self, evt): > self.log.write("OnLabelLeftDClick: (%d,%d) %s\n" % > (evt.GetRow(), evt.GetCol (), evt.GetPosition())) > evt.Skip() > > def OnLabelRightDClick(self, evt): > self.log.write("OnLabelRightDClick: (%d,%d) %s\n" % > (evt.GetRow(), evt.GetCol(), evt.GetPosition ())) > evt.Skip() > > def OnRowSize(self, evt): > self.log.write("OnRowSize: row %d, %s\n" % > (evt.GetRowOrCol(), evt.GetPosition())) > evt.Skip() > > def OnColSize(self, evt): > self.log.write("OnColSize: col %d, %s\n" % > (evt.GetRowOrCol(), evt.GetPosition())) > evt.Skip() > > def OnRangeSelect(self, evt): > if evt.Selecting(): > self.log.write("OnRangeSelect: top-left %s, bottom-right %s\n" > % > (evt.GetTopLeftCoords(), > evt.GetBottomRightCoords > ())) > evt.Skip () > > > def OnCellChange(self, evt): > self.log.write("OnCellChange: (%d,%d) %s\n" % > (evt.GetRow(), evt.GetCol(), evt.GetPosition())) > > # Show how to stay in a cell that has bad data. We can't just > # call SetGridCursor here since we are nested inside one so it > # won't have any effect. Instead, set coordinates to move to in > # idle time. > value = self.GetCellValue(evt.GetRow (), evt.GetCol()) > > if value == 'no good': > self.moveTo = evt.GetRow(), evt.GetCol() > > > def OnIdle(self, evt): > if self.moveTo != None: > self.SetGridCursor (self.moveTo[0], self.moveTo[1]) > self.moveTo = None > > evt.Skip() > > > def OnSelectCell(self, evt): > self.log.write("OnSelectCell: (%d,%d) %s\n" % > ( evt.GetRow(), evt.GetCol(), evt.GetPosition())) > > # Another way to stay in a cell that has a bad value... > row = self.GetGridCursorRow() > col = self.GetGridCursorCol() > > if self.IsCellEditControlEnabled (): > self.HideCellEditControl() > self.DisableCellEditControl() > > value = self.GetCellValue(row, col) > > if value == 'no good 2': > return # cancels the cell selection > > evt.Skip() > > > def OnEditorShown(self, evt): > if evt.GetRow() == 6 and evt.GetCol() == 3 and \ > wx.MessageBox("Are you sure you wish to edit this cell?", > "Checking", wx.YES_NO) == wx.NO: > evt.Veto() > return > > self.log.write("OnEditorShown: (%d,%d) %s\n" % > (evt.GetRow(), evt.GetCol(), evt.GetPosition())) > evt.Skip() > > > def OnEditorHidden(self, evt): > if evt.GetRow() == 6 and evt.GetCol() == 3 and \ > wx.MessageBox("Are you sure you wish to finish editing this > cell?", > "Checking", wx.YES_NO) == wx.NO: > evt.Veto() > return > > self.log.write("OnEditorHidden: (%d,%d) %s\n" % > (evt.GetRow(), evt.GetCol(), evt.GetPosition())) > evt.Skip() > > > def OnEditorCreated(self, evt): > self.log.write("OnEditorCreated: (%d, %d) %s\n" % > (evt.GetRow(), evt.GetCol(), evt.GetControl())) > > > class MyApp( wx.App): > def OnInit(self): > frame = Producto(None, -1, 'Lista Personal') > frame.SetIcon(wx.Icon('add-new-client.gif', wx.BITMAP_TYPE_GIF)) > > frame.Show(True) > return True > > > app = MyApp(0) > app.MainLoop() > > > > Espero que me puedan ayudar Gracias > > > Att: mark.private.007 en gmail.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > From pych3m4 en gmail.com Tue Mar 27 10:24:00 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 27 Mar 2007 10:24:00 +0200 Subject: Hola a todos como estan, me pueden ayudar con un problemilla In-Reply-To: <968115dc0703261538n376ab29by6aa9fc672f82e5e2@mail.gmail.com> References: <968115dc0703261538n376ab29by6aa9fc672f82e5e2@mail.gmail.com> Message-ID: <2c9fb0dd0703270124l423b0d73ue949cc3c95cb6aab@mail.gmail.com> El 2007/3/27, Mark Tavera escribió: > soy nuevo en este lenguaje de programacion, estoy usando en postgres 8.1 y > python 2.4 con wx.python y la herramienta que estoy utilizando para > programar es Ulipad, y estoy utilizando el wx.grid para cargar datos de una > tabla el problema es que no se como recuperar los datos del wx.grid les > mando mi codigo . > > [...] No sé qué quieres que hagamos con todo éste código. He intentado leerlo dos veces, pero me cansa leer tanto código. Acota mejor el problema, cómo lo estás intentado y qué errores te da. Sobre todo, concreta más dónde está el problema. Tampoco estaría mal que el "asunto" del mensaje reflejara el tema del mismo. From dmunhiz en gmail.com Tue Mar 27 10:48:16 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Tue, 27 Mar 2007 10:48:16 +0200 Subject: Hola a todos como estan, me pueden ayudar con un problemilla In-Reply-To: <2c9fb0dd0703270124l423b0d73ue949cc3c95cb6aab@mail.gmail.com> References: <968115dc0703261538n376ab29by6aa9fc672f82e5e2@mail.gmail.com> <2c9fb0dd0703270124l423b0d73ue949cc3c95cb6aab@mail.gmail.com> Message-ID: <4608DA50.8020407@gmail.com> Yo he intentado probarlo pero no tengo este modulo import gridXML donde puedo conseguirlo para probarlo? 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 2007/3/27, Mark Tavera escribió: >> soy nuevo en este lenguaje de programacion, estoy usando en postgres >> 8.1 y >> python 2.4 con wx.python y la herramienta que estoy utilizando para >> programar es Ulipad, y estoy utilizando el wx.grid para cargar datos >> de una >> tabla el problema es que no se como recuperar los datos del wx.grid les >> mando mi codigo . >> >> [...] > > No sé qué quieres que hagamos con todo éste código. He intentado > leerlo dos veces, pero me cansa leer tanto código. Acota mejor el > problema, cómo lo estás intentado y qué errores te da. Sobre todo, > concreta más dónde está el problema. Tampoco estaría mal que el > "asunto" del mensaje reflejara el tema del mismo. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From rafaelcantos en hotmail.com Tue Mar 27 11:22:44 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Tue, 27 Mar 2007 09:22:44 +0000 Subject: atk y xml In-Reply-To: <20070227183922.4FE8E145F98C@devnull.aditel.org> References: <20070227183922.4FE8E145F98C@devnull.aditel.org> Message-ID: Rafael Cantos wrote: > > Hola. Necesito programar un interfaz gráfico con pygtk. he visto que > > úna de las bibliotecas de gtk+, atk, sirve para programar interfaces > > gráficos accesibles por personas con discapacidad. ¿Dónde puedo ver > > algun tutorial o algo similar? ¿Cómo se utiliza esta biblioteca con > > pygtk? >Atk es la capa de accesibilidad de gtk+. La información que puedas >encontrar sobre atk en general te servirá también para programar con >pygtk, ya que éste es un envoltorio para python de los métodos de la API >de gtk+. En la referencia de pygtk tienes la documentación sobre las >clases relacionadas con atk. http://pygtk.org/docs/pygtk/index.html > >El proyecto GNOME tiene un subproyecto centrado en la accesibilidad >(http://developer.gnome.org/projects/gap/). Ahí también tienes >documentación (en inglés) sobre el desarrollo de aplicaciones que sean >accesibles. > >El proyecto KDE tiene un documento con una visión general bastante buena >sobre ATK en su página: http://accessibility.kde.org/developer/atk.php > >Tal vez te pueda ayudar en el uso de ATK echar un vistazo a dogtail, un >sistema de automatización de test para interfaces gráficas para gtk+ que >usa la interfaz de accesibilidad (AT-SPI) para manipular la interfaz >gráfica. http://people.redhat.com/zcerza/dogtail/ > > también necesito saber que librerías hay para leer ficheros xml y > > dónde puedo encontrar información sobre ellas. >Ese es un problema diferente al del manejo de interfaces con pygtk. Por >lo que he visto la gente de la lista usa element tree (en la bibilioteca >estándar), amara o libxml, pero mejor mira los archivos de la lista... > >Saludos Gracias a todos, me viene muy bien la información. No he podido responder antes y daros las gracias. Rafa _________________________________________________________________ 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 Tue Mar 27 11:22:57 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Tue, 27 Mar 2007 09:22:57 +0000 Subject: =?iso-8859-1?q?estandarizacion__de_acentos=2C_=F1-s_?= =?iso-8859-1?q?y_mayusculas?= Message-ID: Hola [1]chic en s: Necesito estandarizar las palabras que recibo desde una web y que introduzco en un archivo con extension.txt. Es decir quiero que luego a la hora de acceder a las palabras me considere que: arándano=arandano pimentón=pimenton Es decir que considere que una palabra escrita con tilde y sin tilde sean la iguales. Y lo mismo para las mayusculas: Arandanos=arándanos pimenton=Pimentón He estado leyendo algo y he entendido que poniendo esto:# -*- coding: UTF8 -*- al prindipio de cada uno de los programas se solucionaria lo de las tildes, es asi ????????? _________________________________________________________________ Coches nuevos, coches de ocasión, coches de Km 0 [2]Si piensas en cambiar de coche, MSN Motor. References 1. mailto:chic en s 2. http://g.msn.com/8HMBESES/2746??PS=47575 From alberto en toscat.net Tue Mar 27 14:49:15 2007 From: alberto en toscat.net (Alberto Valverde) Date: Tue, 27 Mar 2007 14:49:15 +0200 Subject: =?ISO-8859-1?Q?Re:__estandarizacion__de_acentos,_=F1-?= =?ISO-8859-1?Q?s_y_mayusculas?= In-Reply-To: References: Message-ID: <8E5B213F-5F63-4ED5-B59C-AB6E4377183F@toscat.net> On Mar 27, 2007, at 11:22 AM, joana salgado gomez wrote: > > Hola [1]chic en s: > > Necesito estandarizar las palabras que recibo desde una web y que > introduzco en un archivo con extension.txt. Es decir quiero que > luego > a la hora de acceder a las palabras me considere que: > > arándano=arandano > pimentón=pimenton > > Es decir que considere que una palabra escrita con tilde y sin tilde > sean la iguales. Y lo mismo para las mayusculas: > > Arandanos=arándanos > pimenton=Pimentón > > > He estado leyendo algo y he entendido que poniendo esto:# -*- > coding: > UTF8 -*- > al prindipio de cada uno de los programas se solucionaria lo de las > tildes, es asi ????????? > No, éso sólo le dice al interprete que tu edior de texto usa utf8 como codificación (claro que también tienes que configurar tu editor para que lo use) Te paso una función que uso para normalizar los acentos que puede que te inspire: import unicodedata def _normalize(char): deco = unicodedata.decomposition(char) if deco: try: idx = int(deco.split()[0],16) except ValueError: return '-' return unichr(idx) return char def slugify(s): return ''.join([_normalize(c) for c in s]) Tendrás que adaptarla para normalizar mayúsculas (fácil, usa cadena.lower()) y alguna cosa más pero creo que es una buena base para empezar... espero te sirva. Un saludo, Alberto From jjachuf en gmail.com Tue Mar 27 15:43:30 2007 From: jjachuf en gmail.com (=?ISO-8859-1?Q?Jos=E9_Jachuf?=) Date: Tue, 27 Mar 2007 10:43:30 -0300 Subject: Sobre versiones de software Message-ID: <46091F82.2020200@gmail.com> Hola como se soluciona el problema de requerimientos de versiones, tanto del propio python como de los distintos módulos. Yo utilizo python 2.4.4(como programador), hace unos días instalé una aplicación (como usuario) que requería python 2.3.x, y versiones bastante viejas de wxpython y pysqlite. Se instalo todo sin problemas, mi aplicación instalada funcionaba bien. Luego viendo un error en algo con lo que estaba trabajando vi que enlazaba librerías de desde python23. Hoy tengo instalado wxpython 2.8.x, pero una aplicación que necesito requiere wxpython 2.6.x. Cómo se soluciona esto? Soy nuevo en python, me gusta, pero el principal problema que le veo es que un aplicativo es muy sensible a las versiones instaladas. Parece que no mantiene compatibilidad hacia atrás. Me planteo el caso de distribuir un programa a un cliente, basado en cierta versión de python y librerías extras, y en las computadoras de este cliente tengan funcionando otro programa con requerimiento de otras versiones. Lo más probable es que se ignorancia mía Saludos Jose From mlacunza en gmail.com Tue Mar 27 18:22:54 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Tue, 27 Mar 2007 11:22:54 -0500 Subject: Sobre versiones de software In-Reply-To: <46091F82.2020200@gmail.com> References: <46091F82.2020200@gmail.com> Message-ID: <1175012574.6874.10.camel@laptop> El mar, 27-03-2007 a las 10:43 -0300, José Jachuf escribió: > Hola > > como se soluciona el problema de requerimientos de versiones, tanto del > propio python como de los distintos módulos. > Yo utilizo python 2.4.4(como programador), hace unos días instalé una > aplicación (como usuario) que requería python 2.3.x, y versiones > bastante viejas de wxpython y pysqlite. Se instalo todo sin problemas, > mi aplicación instalada funcionaba bien. Luego viendo un error en algo > con lo que estaba trabajando vi que enlazaba librerías de desde python23. > Hoy tengo instalado wxpython 2.8.x, pero una aplicación que necesito > requiere wxpython 2.6.x. > Cómo se soluciona esto? > > Soy nuevo en python, me gusta, pero el principal problema que le veo es > que un aplicativo es muy sensible a las versiones instaladas. Parece que > no mantiene compatibilidad hacia atrás. Me planteo el caso de distribuir > un programa a un cliente, basado en cierta versión de python y librerías > extras, y en las computadoras de este cliente tengan funcionando otro > programa con requerimiento de otras versiones. > > Lo más probable es que se ignorancia mía > > Saludos > Jose Hola, No, te equivocas, Python sigue la filosofia Unix donde no debe existir problemas de versionado pues cada lib sabe a cual apunta, lo cual es mucho mejor q el modelo M$ con su consabida "DLl Hell". En cuanto al mismo Python normalmente usa >= para las librerias, salvo q se haya compilado de forma especifica contra x o y version (q lo dudo) y q el programa use alguna funcion muy nueva q, como es logico, la version antigua no soporte. En cuanto a tus .py puedes indicarles en la cabecera q version de Pytho quieres usar, asi de facil podrias tener instalado en la misma PC 2.3, 2.4 y la 2.5 y tus programas trabajar con cualquiera de ellas sin cruces. Mi configuracion/My config: Ubuntu Edgy Eft 6.10 Linux Kernel 2.6.17-11-386 Gnome 2.16.1 Python 2.4.4c1 wxPython 2.8.1.1 Unicode Python IDE: Ulipad 3.6 Database: Firebird 2.0 Superserver -- Saludos / Best regards Mario Lacunza Vásquez Desarrollador de Software - Webmaster Linux Registered User #439179 Desarrollador 2 Estrellas VS2005 Website : http://mlacunzav[DOT]cogia[DOT]net Email : mlacunza[AT]gmail.com / mario_lacunza[AT]yahoo.es Blog : http://mlacunza.blogspot.com Lima - Peru ------------ 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 Mar 27 20:03:19 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 27 Mar 2007 20:03:19 +0200 Subject: =?ISO-8859-1?Q?Re:__estandarizacio?= =?ISO-8859-1?Q?n_de_acentos, _=F1-s_y_mayusculas?= In-Reply-To: References: Message-ID: <2c9fb0dd0703271103m50109ceof0807d29879bf92e@mail.gmail.com> El 27/03/07, joana salgado gomez escribió: > > Hola [1]chic en s: > > Necesito estandarizar las palabras que recibo desde una web y que > introduzco en un archivo con extension.txt. Es decir quiero que luego > a la hora de acceder a las palabras me considere que: > > arándano=arandano > pimentón=pimenton > > Es decir que considere que una palabra escrita con tilde y sin tilde > sean la iguales. Y lo mismo para las mayusculas: > > Arandanos=arándanos > pimenton=Pimentón > > > He estado leyendo algo y he entendido que poniendo esto:# -*- coding: > UTF8 -*- > al prindipio de cada uno de los programas se solucionaria lo de las > tildes, es asi ????????? Ya hemos repetido estos días que el comentario sólo indica cómo hay que interpretar las cadenas que hay en el fichero cuando se usan para inicializar objetos unicode (revisa si queires los últimos mensajes de la lista). Mi consejo es que utilices siempre que puedas unicode. Para hacer comparaciones insensitivas, basta con que conviertas ambas palabras a mayúsculas ó minúsculas: def compara(a,b): return unicode(a).upper()==unicode(b).upper() NOTA: si te falla el paso a unicode, revisa el FAQ de python: From pych3m4 en gmail.com Tue Mar 27 19:56:43 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 27 Mar 2007 19:56:43 +0200 Subject: =?ISO-8859-1?Q?Re:__estandarizacio?= =?ISO-8859-1?Q?n_de_acentos, _=F1-s_y_mayusculas?= In-Reply-To: <8E5B213F-5F63-4ED5-B59C-AB6E4377183F@toscat.net> References: <8E5B213F-5F63-4ED5-B59C-AB6E4377183F@toscat.net> Message-ID: <2c9fb0dd0703271056l2d547332x8d94459b90198157@mail.gmail.com> El 27/03/07, Alberto Valverde escribió: > Te paso una función que uso para normalizar los acentos que puede que > te inspire: > > import unicodedata > > def _normalize(char): > deco = unicodedata.decomposition(char) > if deco: > try: > idx = int(deco.split()[0],16) > except ValueError: > return '-' > return unichr(idx) > return char > > def slugify(s): > return ''.join([_normalize(c) for c in s]) ¿Por qué no usar el "normalize" del unicodedata? def slugify(s): return ''.join(unicodedata.normalize("NFD",c)[0] for c in s) From alberto en toscat.net Tue Mar 27 20:18:30 2007 From: alberto en toscat.net (Alberto Valverde) Date: Tue, 27 Mar 2007 20:18:30 +0200 Subject: =?ISO-8859-1?Q?Re:__estandarizacion_de_acentos,__=F1-?= =?ISO-8859-1?Q?s_y_mayusculas?= In-Reply-To: <2c9fb0dd0703271056l2d547332x8d94459b90198157@mail.gmail.com> References: <8E5B213F-5F63-4ED5-B59C-AB6E4377183F@toscat.net> <2c9fb0dd0703271056l2d547332x8d94459b90198157@mail.gmail.com> Message-ID: On Mar 27, 2007, at 7:56 PM, Chema Cortes wrote: > El 27/03/07, Alberto Valverde escribió: >> Te paso una función que uso para normalizar los acentos que puede que >> te inspire: >> >> import unicodedata >> >> def _normalize(char): >> deco = unicodedata.decomposition(char) >> if deco: >> try: >> idx = int(deco.split()[0],16) >> except ValueError: >> return '-' >> return unichr(idx) >> return char >> >> def slugify(s): >> return ''.join([_normalize(c) for c in s]) > > ¿Por qué no usar el "normalize" del unicodedata? Buena pregunta... :) > def slugify(s): > return ''.join(unicodedata.normalize("NFD",c)[0] for c in s) Gracias por el consejo Alberto From alberto en toscat.net Tue Mar 27 20:41:22 2007 From: alberto en toscat.net (Alberto Valverde) Date: Tue, 27 Mar 2007 20:41:22 +0200 Subject: Sobre versiones de software In-Reply-To: <46091F82.2020200@gmail.com> References: <46091F82.2020200@gmail.com> Message-ID: On Mar 27, 2007, at 3:43 PM, José Jachuf wrote: > Hola > > como se soluciona el problema de requerimientos de versiones, tanto > del propio python como de los distintos módulos. > Yo utilizo python 2.4.4(como programador), hace unos días instalé > una aplicación (como usuario) que requería python 2.3.x, y > versiones bastante viejas de wxpython y pysqlite. Se instalo todo > sin problemas, mi aplicación instalada funcionaba bien. Luego > viendo un error en algo con lo que estaba trabajando vi que > enlazaba librerías de desde python23. > Hoy tengo instalado wxpython 2.8.x, pero una aplicación que > necesito requiere wxpython 2.6.x. > Cómo se soluciona esto? > > Soy nuevo en python, me gusta, pero el principal problema que le > veo es que un aplicativo es muy sensible a las versiones > instaladas. Parece que no mantiene compatibilidad hacia atrás. Me > planteo el caso de distribuir un programa a un cliente, basado en > cierta versión de python y librerías extras, y en las computadoras > de este cliente tengan funcionando otro programa con requerimiento > de otras versiones. El problema de versioneado de librerías suele ser bastante común. El método que me está funcionando de maravilla para solventarlo es el siguiente: 1) Usar setuptools para empaquetar las dependencias como "eggs". Hay eggs ya hechos para muchas librerías y si no los hay crearlos uno mismo suele ser bastante sencillo: -- en setup.py - from distutils.core import setup + from setuptools import setup 2) Olvidarme de TODAS las librerías python (fuera de la entándar) que se distribuyen con mi distro preferida. Hay argumentos enfrentados al respecto pero estoy de acuerdo con la posición de Ian Bicking que argumenta que las distros no deberían distrubuir librerías python a menos que sean tan estables como la propia stdlib. Mi experiencia es que casi todos mis projectos necesitan algo más reciente que lo que la distro trae por defecto y tener varias versiones instaladas sólo da dolores de cabeza. 3) Crear un entorno aisado con el script workingenv.py (google te lo saca en la primera página sino el primer resultado) e instalar todo ahí dentro. Ésto da como ventaja poder simultanear varios proyectos con dependencias a distintas versiones de librerías fácilmente y no tener que instalarlo todo como root, además de poder usar distintas vrsones de python para cada uno. La única desventaja que se me ocurre es tener librerías duplicadas en el disco pero hoy en día almacenamiento sobra. Bueno, también que de tener que actualizar algo por algún bug de seguridad es más engorroso. 4) Distribuir dicho entorno enterito con un pequeño script en bash (o un .bat) para inicializarlo. Ésto sólo funcionará si no tienes extensiones en C o sí las tienes que la máquina destino sea compatible binariamente. Si no es así, workingev.py te deja definir un ficgero con los dependencias y sus versiones para poder "compilar" un entorno idéntico para la otra máquina. Alberto From rafaelrp en uci.cu Wed Mar 28 06:29:11 2007 From: rafaelrp en uci.cu (Rafael =?ISO-8859-1?Q?Rodr=EDguez?= Puente) Date: Tue, 27 Mar 2007 22:29:11 -0600 Subject: python mapscript Message-ID: <1175056151.31008.11.camel@xgl.kororaa> Hila: Alguien tiene documentación y/o ejemplos de como utilizar mapscript en python, por ejemplo, el método processLegendTemplate del objeto mapObj. Pero cualquier ejemplo me viene bien. Gracias, Rafael. From rapto en arrakis.es Wed Mar 28 10:41:57 2007 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: Wed, 28 Mar 2007 10:41:57 +0200 Subject: python mapscript In-Reply-To: <1175056151.31008.11.camel@xgl.kororaa> References: <1175056151.31008.11.camel@xgl.kororaa> Message-ID: <1175071317.4822.2.camel@savin> Deberían valer los ejemplos para php, cambiando lo relevante, supongo. Pero sólo quería indicar que yo estoy usando mapscript (aunque evaluando mapnik), para que no te sientas solo :-) El mar, 27-03-2007 a las 22:29 -0600, Rafael Rodríguez Puente escribió: > Hila: > Alguien tiene documentación y/o ejemplos de como utilizar mapscript en > python, por ejemplo, el método processLegendTemplate del objeto mapObj. > Pero cualquier ejemplo me viene bien. > > > Gracias, > Rafael. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jjachuf en gmail.com Wed Mar 28 14:29:37 2007 From: jjachuf en gmail.com (=?ISO-8859-1?Q?Jos=E9_Jachuf?=) Date: Wed, 28 Mar 2007 09:29:37 -0300 Subject: python mapscript In-Reply-To: <1175056151.31008.11.camel@xgl.kororaa> References: <1175056151.31008.11.camel@xgl.kororaa> Message-ID: <460A5FB1.10209@gmail.com> Rafael Rodríguez Puente escribió: > Hila: > Alguien tiene documentación y/o ejemplos de como utilizar mapscript en > python, por ejemplo, el método processLegendTemplate del objeto mapObj. > Pero cualquier ejemplo me viene bien. > > > Gracias, > Rafael. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > Hola Rafael http://www.geographie.uni-freiburg.de/ipg/personen/schuster_grit/dipl/node13.html Marcos Sánchez te decía que no estabas solo, bien, ya somos tres. Saludos José Jachuf From rafaelrp en uci.cu Wed Mar 28 19:20:52 2007 From: rafaelrp en uci.cu (Rafael =?ISO-8859-1?Q?Rodr=EDguez?= Puente) Date: Wed, 28 Mar 2007 11:20:52 -0600 Subject: char ** Message-ID: <1175102452.6887.6.camel@xgl.kororaa> Hola: Alguien sabe como invocar una función de un modulo implementado en c desde python, y esta función recibe como parametros dos variables de tipo char**. Gracias, Rafael. From faltet en carabos.com Wed Mar 28 17:33:15 2007 From: faltet en carabos.com (Francesc Altet) Date: Wed, 28 Mar 2007 17:33:15 +0200 Subject: char ** In-Reply-To: <1175102452.6887.6.camel@xgl.kororaa> References: <1175102452.6887.6.camel@xgl.kororaa> Message-ID: <1175095995.2543.12.camel@localhost.localdomain> El dc 28 de 03 del 2007 a les 11:20 -0600, en/na Rafael Rodríguez Puente va escriure: > Hola: > > Alguien sabe como invocar una función de un modulo implementado en c > desde python, y esta función recibe como parametros dos variables de > tipo char**. Pues hay muchas maneras diferentes (no sé si afortunadamente o no). En principio, la más directa son las APIs que provee el propio Python: http://docs.python.org/ext/ext.html Sin embargo, este camino suele ser bastante duro. Personalmente encuentro mucho más fácil la manera de hacerlo con Pyrex: http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/ que tiene un manual conciso pero muy claro. Hay más métodos, como ctypes, SWIG, SIP, Boost, Instant, PyInline... pero no tengo experiencia con ellos. Saludos, -- 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 gagsl-py2 en yahoo.com.ar Wed Mar 28 22:06:20 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Wed, 28 Mar 2007 17:06:20 -0300 Subject: char ** References: <1175102452.6887.6.camel@xgl.kororaa> Message-ID: En Wed, 28 Mar 2007 14:20:52 -0300, Rafael Rodríguez Puente escribió: > Alguien sabe como invocar una función de un modulo implementado en c > desde python, y esta función recibe como parametros dos variables de > tipo char**. Yo usaria ctypes (que ya esta incluido en Python 2.5), pero la forma de pasarle un char** depende del uso que se le dé. Si eso significa "te voy a devolver un char*, asi que pasame un puntero a una variable char* para que pueda escribir el resultado" se pondria como byref c_char_p. Pero tambien puede usarse para pasarle el comienzo de un array cuyos elementos son char*, y eso es diferente. Vas a tener que fijarte cómo se usa. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rafaelrp en uci.cu Thu Mar 29 00:37:57 2007 From: rafaelrp en uci.cu (Rafael =?ISO-8859-1?Q?Rodr=EDguez?= Puente) Date: Wed, 28 Mar 2007 16:37:57 -0600 Subject: char ** In-Reply-To: References: <1175102452.6887.6.camel@xgl.kororaa> Message-ID: <1175121477.6210.0.camel@xgl.kororaa> Gracias por la aclaración, precisamente eso ultimo es lo que he estado buscando y encuentro como hacerlo. On Wed, 2007-03-28 at 17:06 -0300, Gabriel Genellina wrote: > En Wed, 28 Mar 2007 14:20:52 -0300, Rafael Rodríguez Puente > escribió: > > > Alguien sabe como invocar una función de un modulo implementado en c > > desde python, y esta función recibe como parametros dos variables de > > tipo char**. > > Yo usaria ctypes (que ya esta incluido en Python 2.5), pero la forma de > pasarle un char** depende del uso que se le dé. Si eso significa "te voy a > devolver un char*, asi que pasame un puntero a una variable char* para que > pueda escribir el resultado" se pondria como byref c_char_p. > Pero tambien puede usarse para pasarle el comienzo de un array cuyos > elementos son char*, y eso es diferente. > Vas a tener que fijarte cómo se usa. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From gagsl-py2 en yahoo.com.ar Thu Mar 29 01:30:42 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Wed, 28 Mar 2007 20:30:42 -0300 Subject: char ** References: <1175102452.6887.6.camel@xgl.kororaa> <1175121477.6210.0.camel@xgl.kororaa> Message-ID: En Wed, 28 Mar 2007 19:37:57 -0300, Rafael Rodríguez Puente escribió: > Gracias por la aclaración, precisamente eso ultimo es lo que he estado > buscando y encuentro como hacerlo. > On Wed, 2007-03-28 at 17:06 -0300, Gabriel Genellina wrote: >> En Wed, 28 Mar 2007 14:20:52 -0300, Rafael Rodríguez Puente >> escribió: >> >> > Alguien sabe como invocar una función de un modulo implementado en c >> > desde python, y esta función recibe como parametros dos variables de >> > tipo char**. >> >> Yo usaria ctypes (que ya esta incluido en Python 2.5), pero la forma de >> pasarle un char** depende del uso que se le dé. Si eso significa "te >> voy a >> devolver un char*, asi que pasame un puntero a una variable char* para >> que >> pueda escribir el resultado" se pondria como byref c_char_p. >> Pero tambien puede usarse para pasarle el comienzo de un array cuyos >> elementos son char*, y eso es diferente. Entonces sería algo así: py> from ctypes import * py> arraycharp3 = c_char_p * 3 py> x = arraycharp3("hola","que","tal") py> x <__main__.c_char_p_Array_3 object at 0x00AD34E0> py> x[1] 'que' -- Gabriel Genellina porque no respeta el orden natural en el que se leen las cosas > ¿por qué top-posting es tan molesto? >> top-posting >>> ¿cuál es la peor molestia en los emails de respuesta? ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pepe en diselpro.com Thu Mar 29 14:26:17 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Thu, 29 Mar 2007 14:26:17 +0200 Subject: Compilar python. Message-ID: <460BB069.2050901@diselpro.com> Hola. Me he encontrado con esta curiosa forma de compilar scripts en python y transformarlos en binarios nativos utilizando pyrex. http://www.freenet.org.nz/python/embeddingpyrex/ ¿Podría convertirse pyrex en un lenguaje independiente basado en python y C? Saludos. From pych3m4 en gmail.com Thu Mar 29 18:23:43 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 29 Mar 2007 18:23:43 +0200 Subject: Compilar python. In-Reply-To: <460BB069.2050901@diselpro.com> References: <460BB069.2050901@diselpro.com> Message-ID: <2c9fb0dd0703290923r7a61baads104de5e318d6959d@mail.gmail.com> El 29/03/07, Pepe Aracil escribió: > Me he encontrado con esta curiosa forma de compilar scripts en > python y transformarlos en binarios nativos utilizando pyrex. > > > http://www.freenet.org.nz/python/embeddingpyrex/ > > ¿Podría convertirse pyrex en un lenguaje independiente basado en python y C? Este ejemplo lo veo más como una curiosidad que algo que resulte realmente práctico. Si miras las razones que indica en el artículo, parecería que sólo sirva para ocultar el nombre del ejecutable "python" en el sistema (eg: rootkits) y poca cosa más. Los módulos tendrías que seguir importándolos al estilo python, o bien "extender" el python empotrado, con lo que va aumentando la complejidad a medida que se pierde dinamismo. Particularmente, confío más en la interoperabilidad entre lenguajes del CLI (.Net/mono) que tener un lenguaje mestizo que haga todo. From alxgnar en gmail.com Thu Mar 29 22:27:17 2007 From: alxgnar en gmail.com (=?ISO-8859-1?Q?alex_ordo=F1ez?=) Date: Thu, 29 Mar 2007 15:27:17 -0500 Subject: tkinter Message-ID: <26a762360703291327l521b879blacaf66dfe186b676@mail.gmail.com> hola quisiera saber como cambiar de tamaño un entry() en tkinter, ya que este al ser invocado aparece de un tamaño estandar y deseo que fuese mas pequeño como lo hago?, o donde encuentro informacion al respecto?, ha utilizo python en windows gracias From alxgnar en gmail.com Thu Mar 29 22:29:13 2007 From: alxgnar en gmail.com (=?ISO-8859-1?Q?alex_ordo=F1ez?=) Date: Thu, 29 Mar 2007 15:29:13 -0500 Subject: tkinter Message-ID: <26a762360703291329l4ba9958m484d4698e3fd59db@mail.gmail.com> hola quisiera saber como cambiar de tamaño un entry() en tkinter, ya que este al ser invocado aparece de un tamaño estandar y deseo que fuese mas pequeño como lo hago?, o donde encuentro informacion al respecto?, ha utilizo python en windows gracias From sonajadiabolica en gmail.com Thu Mar 29 22:51:03 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Thu, 29 Mar 2007 14:51:03 -0600 Subject: tkinter In-Reply-To: <26a762360703291327l521b879blacaf66dfe186b676@mail.gmail.com> References: <26a762360703291327l521b879blacaf66dfe186b676@mail.gmail.com> Message-ID: <8d9e208f0703291351i2fff9985g824ad97f506b3f95@mail.gmail.com> > hola quisiera saber como cambiar de tamaño un entry() en tkinter, ya que > este al ser invocado aparece de un tamaño estandar y deseo que fuese mas > pequeño > como lo hago?, o donde encuentro informacion al respecto?, ha utilizo python > en windows Que tal. http://www.pythonware.com/library/tkinter/introduction/x4447-options.htm a mi me funciona en linux así (no tengo un windows para probarlo): from Tkinter import * root=Tk() entry=Entry(root,width=5) entry.pack() root.mainloop() Saludos. -- aNgel rEsendiz.! From dcarreroc en gmail.com Thu Mar 29 22:55:32 2007 From: dcarreroc en gmail.com (DCarrero) Date: Thu, 29 Mar 2007 16:55:32 -0400 Subject: Nuevo en la lista buscando por donde comenzar Message-ID: <5887d1f40703291355k1c994ac4k8fe9ec003c804a66@mail.gmail.com> Hola lister en s: Soy nuevo en la lista y tambien en python, mi pregunta es sencilla y directa, por donde comienzo? descarge el manual de python en pdf y voy a comenzar a leerlo en mis tiempos libres. Actualmente desarrollo en PHP Y PostgreSQL pero me interesa Python, bajo CentOS 4.4, y tengo ideas de programar algunas aplicaciones web en Python. Gracias por sus respuestas y espero no incomodar a nadie por la pregunta. Atte. Daniel From santiagopessat.py en gmail.com Fri Mar 30 04:06:02 2007 From: santiagopessat.py en gmail.com (Santiago Pessat) Date: Thu, 29 Mar 2007 23:06:02 -0300 Subject: Nuevo en la lista buscando por donde comenzar In-Reply-To: <5887d1f40703291355k1c994ac4k8fe9ec003c804a66@mail.gmail.com> References: <5887d1f40703291355k1c994ac4k8fe9ec003c804a66@mail.gmail.com> Message-ID: <2816d3cc0703291906i67c32b57se98ae7b935ea1525@mail.gmail.com> Si te gusta la programacion de apps web busca info sobre turbogears www.turbogears.org (es un Mega framewors de apps web que trabaja con python, y mi preferido ;) ) y django. Exitos... Santiago -- www.tuquito.org.ar From pepe en diselpro.com Fri Mar 30 10:12:20 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Fri, 30 Mar 2007 10:12:20 +0200 Subject: Compilar python. In-Reply-To: <2c9fb0dd0703290923r7a61baads104de5e318d6959d@mail.gmail.com> References: <460BB069.2050901@diselpro.com> <2c9fb0dd0703290923r7a61baads104de5e318d6959d@mail.gmail.com> Message-ID: <460CC664.4020603@diselpro.com> Hola. Se me ocurren más aplicaciones: - Procesos que necesiten el bit suid activo. - Evitar ingenieria inversa con decompyle. - Escribir bibliotecas (.so) (.dll) en python. - Reescribir linux en python ;-P Salud. Chema Cortes escribió: > El 29/03/07, Pepe Aracil escribió: > >> Me he encontrado con esta curiosa forma de compilar scripts en >> python y transformarlos en binarios nativos utilizando pyrex. >> >> >> http://www.freenet.org.nz/python/embeddingpyrex/ >> >> ¿Podría convertirse pyrex en un lenguaje independiente basado en >> python y C? > > Este ejemplo lo veo más como una curiosidad que algo que resulte > realmente práctico. Si miras las razones que indica en el artículo, > parecería que sólo sirva para ocultar el nombre del ejecutable > "python" en el sistema (eg: rootkits) y poca cosa más. Los módulos > tendrías que seguir importándolos al estilo python, o bien "extender" > el python empotrado, con lo que va aumentando la complejidad a medida > que se pierde dinamismo. > > Particularmente, confío más en la interoperabilidad entre lenguajes > del CLI (.Net/mono) que tener un lenguaje mestizo que haga todo. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Fri Mar 30 10:53:28 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 30 Mar 2007 10:53:28 +0200 Subject: Nuevo en la lista buscando por donde comenzar In-Reply-To: <5887d1f40703291355k1c994ac4k8fe9ec003c804a66@mail.gmail.com> References: <5887d1f40703291355k1c994ac4k8fe9ec003c804a66@mail.gmail.com> Message-ID: <2c9fb0dd0703300153v6294b1e0p3f9152aaa4685f37@mail.gmail.com> El 29/03/07, DCarrero escribió: > Hola lister en s: > Soy nuevo en la lista y tambien en python, mi pregunta es sencilla y > directa, por donde comienzo? descarge el manual de python en pdf y voy > a comenzar a leerlo en mis tiempos libres. ¡Bienvenido a python! El mundo de python es muy vasto; depende de dónde vengas para recomendarte una u otra cosa. Las buenas noticias es que la curva de aprendizaje es muy pronunciada, con lo que te harás con el lenguaje en poco tiempo, con la seguridad de que todo lo que has aprendido te va servir, aunque cambien las versiones o vengan nuevas librerías. Son muy aconsejables algunos libros como "Dive into python" o "How to Think Like a Computer Scientist", sobre todo si no has tenido la oportunidad de tratar mucho la programación orientada a objetos. Existen intentos de traducción de estos libros, aunque no estoy seguro de si se han completado. Otro de los libros que recomendamos es el de la Universidad Jaume I ("Introduccion a la programacion con Python" - ) Si te interesa, mantengo una relación de enlaces en: http://del.icio.us/chemacortes/python > Actualmente desarrollo en PHP Y PostgreSQL pero me interesa Python, > bajo CentOS 4.4, y tengo ideas de programar algunas aplicaciones web > en Python. En python existen muchos frameworks, con sus más y sus menos, la mayoría siguiendo el patrón MVC. Lo ideal es seguir dos "estándares" de python que te hacen la vida más fácil: - DB-API2 de acceso a bases de datos que permite independizar el código del gestor de la base de datos (similar al ADOdb de php) - WSGI que independiza la aplicación web del servidor web donde se ejecute, con lo que es más fácil la migración y la escalabilidad de una aplicación web. En cuanto a frameworks, hay mucho donde elegir: - Cherrypy es el que tiene un desarrollo más activo. Su última versión (3.0) tiene muchas mejoras vale la pena revisar. - Turbogears es una integración de varias herramientas, entre las que se incluye cherrypy. Se destaca por contar con widgets ajax que facilitan mucho el diseño de interfaces de usuario. - Django se considera el más acorde con la filosofía python de no necesitar nada más que python para hacer su trabajo (se expresa diciendo que "LLeva las pilas incluídas"). Casi se podría decir que es el framework oficial. - Pylons es la respuesta al Rails de ruby. Suele gustar bastante a quien lo prueba. - Zope es el framework original de python que no existe nada parecido en otros lenguajes. Incluye su propio interface para administración y su propia base de datos orientada a objetos (ZODB). Su desarrollo pasa por la traumática migración a la versión 3 que se está llevando en estos momentos. - mod_python sería lo más parecido al PHP, pudiendo integrar python dentro de código html. Aún así, te aconsejo que rompas con el modo habitual de programar en php y que separes el código del diseño (patrones MVC y Publisher) Saludo, Chema From pych3m4 en gmail.com Fri Mar 30 11:31:35 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 30 Mar 2007 11:31:35 +0200 Subject: Compilar python. In-Reply-To: <460CC664.4020603@diselpro.com> References: <460BB069.2050901@diselpro.com> <2c9fb0dd0703290923r7a61baads104de5e318d6959d@mail.gmail.com> <460CC664.4020603@diselpro.com> Message-ID: <2c9fb0dd0703300231g48378fek83e7ff7a98c49576@mail.gmail.com> El 30/03/07, Pepe Aracil escribió: > Se me ocurren más aplicaciones: > > - Procesos que necesiten el bit suid activo. > - Evitar ingenieria inversa con decompyle. > - Escribir bibliotecas (.so) (.dll) en python. > - Reescribir linux en python ;-P :-DD No hay duda de que pyrex es adecuado para escribir librerías dll en python; es su mayor virtud. En cuanto a la ingeniería inversa, con pyres todavía no habrías asegurado que nadie te pudiera puedan cambiar la máquina virtual (python.dll, python.so) por otra que analice lo que va ejecutando. Y lo de activar el suid, pues ni se te ocurra. Hace mucho que se descartó python para ejecución privilegiada. ¡Ah!, y con lo de linux en python (a parte de la gracia :-P) se intentaron cosas como Cleese (el Ministro de los Andares Tontos de los Monty Python) y el Unununium (http://en.wikipedia.org/wiki/Unununium_(operating_system)) que terminaron como meras anécdotas. From adminies.reinoaftasi en edu.juntaextremadura.net Fri Mar 30 12:03:24 2007 From: adminies.reinoaftasi en edu.juntaextremadura.net (Javier Majado) Date: Fri, 30 Mar 2007 12:03:24 +0200 Subject: Busco stock-icon para win32 Message-ID: <1175249004.4698.2.camel@adtor-pro> Conoce alguien como puedo añadir nuevos stock-icons para una aplicación pygtk en window. Para gnulinex (distro que utilizo no hay problemas ninguno), pero para windows quería saber si existe la posibilidad de poner los Dropline Neu, por ejemplo. Saludos y gracias. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pachi en rvburke.com Fri Mar 30 13:25:58 2007 From: pachi en rvburke.com (Rafael Villar Burke) Date: Fri, 30 Mar 2007 13:25:58 +0200 Subject: Busco stock-icon para win32 In-Reply-To: <1175249004.4698.2.camel@adtor-pro> References: <1175249004.4698.2.camel@adtor-pro> Message-ID: <460CF3C6.6000006@rvburke.com> Javier Majado wrote: > Conoce alguien como puedo añadir nuevos stock-icons para una aplicación > pygtk en window. Para gnulinex (distro que utilizo no hay problemas > ninguno), pero para windows quería saber si existe la posibilidad de > poner los Dropline Neu, por ejemplo. > Creo que los stock icons van ligados a un tema, por lo que tendrías que instalar el tema correspondiente de gtk+. En el instalador más habitual (gladewin32.sourceforge.net) ya se incluye un selector de temas para utilizarlo en cuanto lo hayas instalado. Saludos, Rafael Villar Burke ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From mlacunza en gmail.com Fri Mar 30 16:08:22 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Fri, 30 Mar 2007 09:08:22 -0500 Subject: Busco stock-icon para win32 In-Reply-To: <1175249004.4698.2.camel@adtor-pro> References: <1175249004.4698.2.camel@adtor-pro> Message-ID: <771741b20703300708k512e94e9j832c6af61070198b@mail.gmail.com> Hola, No uso pygtk pero en wxPython hay una lib: wx.lib.buttons q te permite colocar cualquier imagen en un boton, tal vez halla algo similar. Mario El día 30/03/07, Javier Majado < adminies.reinoaftasi en edu.juntaextremadura.net> escribió: > > Conoce alguien como puedo añadir nuevos stock-icons para una aplicación > pygtk en window. Para gnulinex (distro que utilizo no hay problemas > ninguno), pero para windows quería saber si existe la posibilidad de > poner los Dropline Neu, por ejemplo. > > > Saludos y gracias. > > > _______________________________________________ > 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 dcarreroc en gmail.com Fri Mar 30 16:50:18 2007 From: dcarreroc en gmail.com (DCarrero) Date: Fri, 30 Mar 2007 10:50:18 -0400 Subject: Nuevo en la lista buscando por donde comenzar In-Reply-To: <2c9fb0dd0703300153v6294b1e0p3f9152aaa4685f37@mail.gmail.com> References: <5887d1f40703291355k1c994ac4k8fe9ec003c804a66@mail.gmail.com> <2c9fb0dd0703300153v6294b1e0p3f9152aaa4685f37@mail.gmail.com> Message-ID: <5887d1f40703300750v4c4a30d1u56eebb3c522de527@mail.gmail.com> Muchas gracias por la bienvenida y por los enlaces que me serviran mucho... espero encontrar grandes personas para preguntarles Gracias Atte. Daniel From arcturus en ardeenelinfierno.com Fri Mar 30 17:46:43 2007 From: arcturus en ardeenelinfierno.com (=?UTF-8?B?RnJhbmNpc2NvIEplc8O6cyBKb3JkYW5vIEppbcOpbmV6?=) Date: Fri, 30 Mar 2007 17:46:43 +0200 Subject: Busco stock-icon para win32 In-Reply-To: <460CF3C6.6000006@rvburke.com> References: <1175249004.4698.2.camel@adtor-pro> <460CF3C6.6000006@rvburke.com> Message-ID: <460D30E3.2070001@ardeenelinfierno.com> Hola, también puedes instalar tus iconos en la factoria de iconos por defecto para una aplicación, te paso el siguiente código que utilizo: def __install_icons__(self, icon_list): """ Install icons ass stock icons """ factory = gtk.IconFactory() for icon in icon_list: #Instalamos el icono pixbuf = gtk.gdk.pixbuf_new_from_file(icon[1]) iconset = gtk.IconSet(pixbuf) factory.add(icon[0], iconset) factory.add_default() Siendo el parámetro icon_list una lista que contiene tuplas en las que el primer elemento será el nombre del stock-icon y el segundo el icono que se quiere instalar. Espero que te sirva. Saludos! Rafael Villar Burke escribió: > Javier Majado wrote: >> Conoce alguien como puedo añadir nuevos stock-icons para una aplicación >> pygtk en window. Para gnulinex (distro que utilizo no hay problemas >> ninguno), pero para windows quería saber si existe la posibilidad de >> poner los Dropline Neu, por ejemplo. >> > Creo que los stock icons van ligados a un tema, por lo que tendrías > que instalar el tema correspondiente de gtk+. > En el instalador más habitual (gladewin32.sourceforge.net) ya se > incluye un selector de temas para utilizarlo en cuanto lo hayas > instalado. > > Saludos, > > Rafael Villar Burke > ------------------------------------------------------------------------ > > _______________________________________________ > 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