From jesus en roncero.org Wed Mar 3 10:54:08 2004 From: jesus en roncero.org (=?iso-8859-15?Q?Jes=FAs?= Roncero Franco) Date: Wed, 3 Mar 2004 10:54:08 +0100 Subject: sobre problemas en la lista Message-ID: <20040303095408.GA17458@terminus.roncero.org> Perdonad mi fallo, pero la dirección del administrador de la lista es python-es-owner en aditel.org , no la dirección con listas.aditel.org. Perdonad este doble mensaje. -- jabber: golan [@] bulmalug.net Out: 9.94 ºC -- In: 15.62 ºC ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: From jesus en roncero.org Wed Mar 3 10:35:26 2004 From: jesus en roncero.org (=?iso-8859-15?Q?Jes=FAs?= Roncero Franco) Date: Wed, 3 Mar 2004 10:35:26 +0100 Subject: Aviso de los administradores de la lista Python-es Message-ID: <20040303093526.GA3457@io.roncero.org> Hola, soy uno de los administradores de la lista Python-es en http://listas.aditel.org. Seguramente habréis notado que desde hace un par de semanas no se reciben mensajes de la misma y si habéis mandado algún mensaje, estos se han perdido en no se sabe dónde. Al parecer el problema está en el servidor de correo que administra las listas de correo de aditel, que es el de la universidad que mantiene este servidor (http://www.uji.es). Al parecer el servidor de correo fue modificado de alguna forma debido a uno de estos gusanos de windows ante una avalacha de correo, de forma que ahora los mensajes de la lista se pierden (o están perdidos en alguna cola por esos mundos virtuales). El problema está reportado al administrador de las listas de aditel que se ha puesto en contacto con los administradores del servidor de correo de la universidad. Lo único que nos queda es esperar. Perdonad por las molestias. Para cualquier consulta, o duda, envía un mensaje a python-es-owner en aditel.org que estos mensajes sí parece que llegan. Un saludo. -- Jesús Roncero Franco Sevilla ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: From vrubert en aditel.org Thu Mar 4 21:12:42 2004 From: vrubert en aditel.org (David Rubert Viana) Date: Thu, 4 Mar 2004 21:12:42 +0100 Subject: Vuelta a la normalidad Message-ID: <20040304201242.GC5722@aditel.org> Hola a todos, parece que por fin hemos podido averiguar qué es lo que pasaba con la lista python-es, y es que nuestro querido gestor de listas mailman se había "atrancado" en un mensaje del 19 de Febrero, que le estaba provocando la no entrega de los posteriores mails que iban llegando. Hemos actualizado a mailman-2.1.4 y por lo que parece (crucemos los dedos) todo vuelve a la normalidad. Perdonad las molestias, un saludo ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: no disponible Type: application/pgp-signature Size: 232 bytes Desc: no disponible URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jesus en roncero.org Thu Mar 4 22:29:15 2004 From: jesus en roncero.org (=?iso-8859-15?Q?Jes=FAs?= Roncero Franco) Date: Thu, 4 Mar 2004 22:29:15 +0100 Subject: Vuelta a la normalidad In-Reply-To: <20040304201242.GC5722@aditel.org> References: <20040304201242.GC5722@aditel.org> Message-ID: <20040304212915.GA19744@io.roncero.org> El 4/Mar/2004 a las 21:12:42, David Rubert Viana escribió: > Hola a todos, > > parece que por fin hemos podido averiguar qué es lo que pasaba con la lista > python-es, y es que nuestro querido gestor de listas mailman se había > "atrancado" en un mensaje del 19 de Febrero, que le estaba provocando la no > entrega de los posteriores mails que iban llegando. > > Hemos actualizado a mailman-2.1.4 y por lo que parece (crucemos los dedos) > todo vuelve a la normalidad. Bueno, pues ya habéis leido. Muchas gracias al equipo de Aditel por solucionar el problema del mailman y perdonad por la pérdida de mensajes. Por favor, revisad si habéis enviado algún mensaje desde el 19 de febrero a la lista para que lo podáis mandar otra vez. Un saludo. -- Jesús Roncero Franco Sevilla ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pereznet en cosett.com.bo Fri Mar 5 07:17:24 2004 From: pereznet en cosett.com.bo (RUBEN) Date: Fri, 5 Mar 2004 06:17:24 +0000 (UTC) Subject: donde consigo CygIPC ???? Message-ID: <000e01c40343$587a03a0$0101a8c0@one> Buenas donde puedo conseguir el CygIPC Gracias ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From o.merchan en terra.es Fri Mar 5 09:12:15 2004 From: o.merchan en terra.es (Oscar Merchan) Date: Fri, 5 Mar 2004 09:12:15 +0100 Subject: Fw: TarFile Message-ID: <20040305091215.44d11c20.o.merchan@terra.es> Begin forwarded message: Date: Wed, 3 Mar 2004 13:25:40 +0100 From: Oscar Merchan To: Lista de Python Subject: TarFile Muy buenas a todos. Alguien ha utilizado el modulo tarfile de python. Lo implementado en un programita, para que me estraiga un tar.gz previamente hecho, que es la imagen de un directorio del disco duro, pero cuando me lo descomprime, resulta que me faltan archivos. Me descomprime los enlaces y todo, pero me faltan archivos. Para poneros un ejemplo claro, he comprimido mi /usr/, y cuando lo descomprimo con el programita y con el modulo tarfile, uno de los archivos que me faltan es el g++, t desconozco el por que, ya que extrayendolo a mano por linea de comandos si que me lo extrae. La forma con que lo hago es .- tar=tarfile.open('prueba.tar.gz','r:gz') for tarinfo in tar: tar.extract(tarinfo,'test/' tar.close() Por lo que no se falta algo, o es que lo estoy haciendo mal. Saludos, Óscar Merchan. From fheredero en topmusic.ch Fri Mar 5 09:41:45 2004 From: fheredero en topmusic.ch (=?iso-8859-1?Q?Fran=E7ois_Heredero_-_Top_Music_SA?=) Date: Fri, 5 Mar 2004 09:41:45 +0100 Subject: Python y Windows Media Player (sin WMP!) Message-ID: Pues a habido problema con la lista, envio otra vez mi mensage del 27 que puede servir a alguien. Saludos François ------------------ Hola, Vuelvo aqui sobre un tema que he empezado hace tiempo, por si puede servir a alguien. Tenia que hacer un jukebox MP3 con un viejo PC recuperado, bajo windows 98. Para la gestion de la pantalla he utilizado pyGame, y para el MP3 winamp controlado con python. Pero siempre he tenido problemas, porque winamp no hera estable, y se paraba varias veces al dia. Asi que por fin he utilisado bass (http://www.un4seen.com/), y (de momento) todo va bien! Aqui teneis un ejemplo minimo de control de bass, sin gestion de errores y otras cosas... pero funciona. Para esto, solo se necesita 'bass.dll' controlado mediante el modulo ctypes (http://sourceforge.net/projects/ctypes/). Si alguien quiere hacer un wrapper mas 'profesional', adelante :-) François ------------------------------------------------------------------ # -*- coding: utf-8 -*- from ctypes import * class bass: def __init__(self): self.bass = windll.bass r = self.bass.BASS_Init(1, 44100, 0, 0, 0) if(not(r)): print "Init error",self.bass.BASS_ErrorGetCode() return None def __del__(self): self.bass.BASS_Free(); def loadMP3(self, mp3): self.mp3 = self.bass.BASS_StreamCreateFile(0, mp3,0 , 0, 0) if(not(self.mp3)): print "Load error",self.bass.BASS_ErrorGetCode() return 0 else: return 1 def play(self): if(self.mp3): self.bass.BASS_StreamPlay(self.mp3,0,0) self.bass.BASS_Start() return 0 else: print "Play error",self.bass.BASS_ErrorGetCode() return 1 def playing(self): # Return : cuantos bytes quedan por tocar, # es decir 0 si toda la musica ha sido tocada ! return self.bass.BASS_StreamGetFilePosition(self.mp3, 0) def version(self): v = "Bass Version %0.1f" % (self.bass.BASS_GetVersion()) return v if __name__ == "__main__": b = bass() if(b): print b.version() if(b.loadMP3("a.mp3")): if(b.play()): while b.playing(): pass print "Final" From ch3m4 en ch3m4.org Fri Mar 5 10:00:51 2004 From: ch3m4 en ch3m4.org (Chema Cortes) Date: Fri, 05 Mar 2004 10:00:51 +0100 Subject: [OT] Re: donde consigo CygIPC ???? In-Reply-To: <000e01c40343$587a03a0$0101a8c0@one> References: <000e01c40343$587a03a0$0101a8c0@one> Message-ID: RUBEN escribió: > Buenas donde puedo conseguir el CygIPC Ahora ya te lo instala el instalador del cygwin -- Res publica non dominetur From pepe en diselpro.com Fri Mar 5 10:36:46 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Fri, 5 Mar 2004 10:36:46 +0100 Subject: Sobre pygtk y TreeView Message-ID: <200403051036.46351.pepe@diselpro.com> Hola. Me he dejado las pestañas leyendo la documentación de pygtk, y nada ... que no consigo hacer que aparezcan lineas de separación entre las celdas de un TreeView, el cual muestra un ListStore. No me tendré que currar un CellRender que haga esto ¿Verdad?. Otra preguntilla.. si tuvieseis que haceros un widget personal, ¿de que clase heredaríais? ¿de DrawingArea o directamente de Widget? Gracias. From lgs en sicem.biz Fri Mar 5 11:07:03 2004 From: lgs en sicem.biz (Lorenzo Gil Sanchez) Date: Fri, 05 Mar 2004 11:07:03 +0100 Subject: Sobre pygtk y TreeView In-Reply-To: <200403051036.46351.pepe@diselpro.com> References: <200403051036.46351.pepe@diselpro.com> Message-ID: <1078481223.2194.18.camel@i8100> El vie, 05-03-2004 a las 10:36, Pepe Aracil escribió: > Hola. > > Me he dejado las pestañas leyendo la documentación de pygtk, y nada ... que no > consigo hacer que aparezcan lineas de separación entre las celdas de un > TreeView, el cual muestra un ListStore. No me tendré que currar un > CellRender que haga esto ¿Verdad?. > Con un TreeView lo maximo que puedes conseguir es que pinte las filas pares de un color y las impares de otro. Supongo que eso ya lo habras probado pero por si acaso: http://www.pygtk.org/pygtk2reference/class-gtktreeview.html#method-gtktreeview--set-rules-hint Por otro lado, quiza te interese echarle un ojo a [spam mode=on] cierto widget que estoy haciendo: http://www.sicem.biz/personal/lgs/projects/gtkgrid/view_project [spam mode=off] > Otra preguntilla.. si tuvieseis que haceros un widget personal, ¿de que clase > heredaríais? ¿de DrawingArea o directamente de Widget? Cuando dices de hacerte un widget yo distingo dos casos: - Tu widget es composicion de otros widgets existentes (como un GtkFileSelector). - Tu widget no es composicion de otros widgets y hay que hacerlo 'desde cero'. Solo quiero que sepas que el segundo caso es imposible de hacerlo desde Python porque PyGTK aun no soporta eso AFAIK. Si te animas a hacerlo en C te puedo explicar un poco como hacer los bindings para poder usarlo en Python. Otra cosa, yo no heredaria de DrawingArea sino casi siempre de GtkContainer o GtkBin. Un saludo Lorenzo Gil From ch3m4 en ch3m4.org Fri Mar 5 11:08:08 2004 From: ch3m4 en ch3m4.org (Chema Cortes) Date: Fri, 05 Mar 2004 11:08:08 +0100 Subject: Fw: TarFile In-Reply-To: <20040305091215.44d11c20.o.merchan@terra.es> References: <20040305091215.44d11c20.o.merchan@terra.es> Message-ID: Oscar Merchan escribió: > Alguien ha utilizado el modulo tarfile de python. > Lo implementado en un programita, para que me estraiga un tar.gz previamente hecho, que es la imagen de un directorio del disco duro, pero cuando me lo descomprime, resulta que me faltan archivos. Me descomprime los enlaces y todo, pero me faltan archivos. > Para poneros un ejemplo claro, he comprimido mi /usr/, y cuando lo descomprimo con el programita y con el modulo tarfile, uno de los archivos que me faltan es el g++, t desconozco el por que, ya que extrayendolo a mano por linea de comandos si que me lo extrae. No he conseguido reproducir el problema que dices. A mí me descomprime bien, y hasta ahora nunca he tenido problema con 'tarfile'. Podría ser un problema de tamaño del fichero tgz, o puede que tenga que ver con los enlaces simbólicos (el tarfile no usa las extensiones GNU tar por defecto). Prueba con diversas opciones del tarfile, como el 'debug' a ver si lo ves listado. Si es problema de memoria, prueba a enviarlo por stream ('r|gz'). -- Res publica non dominetur From pepe en diselpro.com Fri Mar 5 12:34:02 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Fri, 5 Mar 2004 12:34:02 +0100 Subject: Sobre pygtk y TreeView In-Reply-To: <1078481223.2194.18.camel@i8100> References: <200403051036.46351.pepe@diselpro.com> <1078481223.2194.18.camel@i8100> Message-ID: <200403051234.02963.pepe@diselpro.com> Hola Lorenzo. Antes que nada, darte las gracias por el magnifico tutorial de pygtk 2.0. >Con un TreeView lo maximo que puedes conseguir es que pinte las filas >pares de un color y las impares de otro. Supongo que eso ya lo habras >probado pero por si acaso: Si, ya lo he probado, pero no me sirve :-(, necesito dibujar lineas de separación entre las celdas.... bueno por no hay mal que por bien no venga y seguro que terminaré aprendiendo un huevo sobre los CellRenders :-))) >Cuando dices de hacerte un widget yo distingo dos casos: >- Tu widget es composicion de otros widgets existentes (como un >GtkFileSelector). >- Tu widget no es composicion de otros widgets y hay que hacerlo 'desde >cero'. Mi widget es un dígito de 7 segmentos. En teoría solo me hacia falta un "lienzo" para pintar los segmentos y capturar unas cuantas callback's como expose_event para repintarlo cuando haga falta. La verdad es que durante el tiempo que la lista de correo ha estado colgada y no podia preguntar la mejor forma de hacerlo, tuve que intentarlo heredando de DrawingArea. Envío el código por si a alguien encuentra algún fallo garrafal debido a mi falta de experiencia con python y pygtk ó se le ocurre algo para mejorarlo. Saludos. class Segments(gtk.DrawingArea): def __init__(self, segw = 3, on = "#FF0000", off = "#D0D0D0"): gtk.DrawingArea.__init__(self) self.gc_on = None # inicializado en el manejador realize-event self.gc_off = None # idem self.on_color = on self.off_color = off self.width = 0 # actualizado en el manejador size-allocate self.height = 0 # idem self.segment_width = segw self.segments=(0,)*8 self.connect('size-allocate', self.on_size_allocate) self.connect('expose-event', self.on_expose_event) self.connect('realize', self.on_realize) def set_segments(self, segments): self.segments=segments self.window.invalidate_rect((0,0,self.width,self.height),gtk.FALSE) def on_realize(self, widget): self.gc_on = widget.window.new_gc() self.gc_on.foreground=widget.get_colormap().alloc_color(self.on_color) self.gc_on.line_width = 1 self.gc_on.fill=gtk.gdk.SOLID self.gc_off = widget.window.new_gc() self.gc_off.foreground=widget.get_colormap().alloc_color(self.off_color) self.gc_off.line_width = 1 self.gc_off.fill=gtk.gdk.SOLID def on_size_allocate(self, widget, allocation): self.width = allocation.width self.height = allocation.height def on_expose_event(self, widget, event): w = (self.width - 1 ) - (self.segment_width * 2 + 1) h = self.height - 1 p = self.segment_width gctuple = (self.gc_off,self.gc_on) gc = gctuple[self.segments[0]] widget.window.draw_polygon(gc,gtk.TRUE,((p,p),(p*2,0),(w-p*2,0), (w-p,p),(w-p*2,p*2),(p*2,p*2))) gc = gctuple[self.segments[6]] widget.window.draw_polygon(gc,gtk.TRUE,((p,h/2),(p*2,h/2-p), (w-p*2,h/2-p),(w-p,h/2),(w-p*2,p+h/2),(p*2,p+h/2))) gc = gctuple[self.segments[3]] widget.window.draw_polygon(gc,gtk.TRUE,((p,h-p),(p*2,h-p*2), (w-p*2,h-p*2),(w-p,h-p),(w-p*2,h),(p*2,h))) gc = gctuple[self.segments[5]] widget.window.draw_polygon(gc,gtk.TRUE,((p,p),(p*2,p*2),(p*2,h/2-p), (p,h/2),(0,h/2-p),(0,p*2))) gc = gctuple[self.segments[1]] widget.window.draw_polygon(gc,gtk.TRUE,((w-p,p),(w,p*2),(w,h/2-p), (w-p,h/2),(w-p*2,h/2-p),(w-p*2,p*2))) gc = gctuple[self.segments[4]] widget.window.draw_polygon(gc,gtk.TRUE,((p,h/2),(p*2,p+h/2), (p*2,h-p*2),(p,h-p),(0,h-p*2),(0,p+h/2))) gc = gctuple[self.segments[2]] widget.window.draw_polygon(gc,gtk.TRUE,((w-p,h/2),(w,p+h/2),(w,h-p*2), (w-p,h-p),(w-p*2,h-p*2),(w-p*2,p+h/2))) gc = gctuple[self.segments[7]] widget.window.draw_rectangle(gc,gtk.TRUE,w+2,h-p*2,p*2,p*2) From o.merchan en terra.es Fri Mar 5 13:06:42 2004 From: o.merchan en terra.es (Oscar Merchan) Date: Fri, 5 Mar 2004 13:06:42 +0100 Subject: Fw: TarFile Message-ID: <20040305130642.36c55e33.o.merchan@terra.es> Begin forwarded message: Date: Fri, 5 Mar 2004 12:59:18 +0100 From: Oscar Merchan To: La lista de python en castellano Subject: Re: [Python-es] Re: Fw: TarFile On Fri, 05 Mar 2004 11:08:08 +0100 Chema Cortes wrote: Te pongo en situacion, el directorio en cuestion que me di cuenta que me pasaba era el /user/bin con el archivo g++ en un principio crei que podia ser por caracteres o algo similar, pero no resulto ser asi. Asi que hice varias pruebas, comprimi el /usr/bin de otra maquina, sabiendo de antemano que tenia 1869 archivos. Despues con un programita chorra, que basicamente usa lo mismo que uso en el otro, lo descomprimi, como resultado total me encontre que solo tenia 1850 archivos, o sa que tuvo una perdida de 19 archivos, lo mas curioso es que los link si que se encuentran todos. Otra prueba que hice, fue, en el mismo programita chorra, abrir el tar, leerlo entero, y luego con un bucle y una condicion para que cuando llegara al archivo en cuestion ( el que sabia seguro que no iba a tener ) o sea el g++ me lo mostra por pantalla, y a la vez, que lo que me sacaba por pantalla lo metiera en un archivo ( para que mis ojos no me engañasen ), y que extrajera ese archivo del tar, solo ese. Como resultado, el archivo salia por panta ( o sea que si que lo encontraba en el tar ), me lo escribia en el archivo ( se confirmaba que la informacion del archivo estba ), pero en el directorio donde le dije que lo extrajera, solo me habia creado la estructura del direcotrio, o sea /usr/bin pero no se encontrba el archiv. Te pongo el programita chorra que utiliza, por que con lo negado que soy, fijo que el error es mio, que me han dicho que el ordenador es mas listo yo ;-). Aunque creo que lo puse en el correo anteior, pero como ya desvario, que llevo dos dias con este problema, y no encuentro na de na en el google, pues eso lo vuelvo a poner tar=tarfile.open('prueba.tar.gz','r:gz') for tarinfo in tar: tar.extract(tarinfo,'test/' tar.close() > Oscar Merchan escribió: > > > Alguien ha utilizado el modulo tarfile de python. > > Lo implementado en un programita, para que me estraiga un tar.gz previamente hecho, que es la imagen de un directorio del disco duro, pero cuando me lo descomprime, resulta que me faltan archivos. Me descomprime los enlaces y todo, pero me faltan archivos. > > Para poneros un ejemplo claro, he comprimido mi /usr/, y cuando lo descomprimo con el programita y con el modulo tarfile, uno de los archivos que me faltan es el g++, t desconozco el por que, ya que extrayendolo a mano por linea de comandos si que me lo extrae. > > No he conseguido reproducir el problema que dices. A mí me descomprime > bien, y hasta ahora nunca he tenido problema con 'tarfile'. > > Podría ser un problema de tamaño del fichero tgz, o puede que tenga que > ver con los enlaces simbólicos (el tarfile no usa las extensiones GNU > tar por defecto). > > Prueba con diversas opciones del tarfile, como el 'debug' a ver si lo > ves listado. Si es problema de memoria, prueba a enviarlo por stream > ('r|gz'). > > > -- > Res publica non dominetur > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From ch3m4 en ch3m4.org Fri Mar 5 14:44:53 2004 From: ch3m4 en ch3m4.org (Chema Cortes) Date: Fri, 05 Mar 2004 14:44:53 +0100 Subject: Fw: TarFile In-Reply-To: <20040305130642.36c55e33.o.merchan@terra.es> References: <20040305130642.36c55e33.o.merchan@terra.es> Message-ID: > Como resultado, el archivo salia por panta ( o sea que si que lo encontraba en el tar ), me lo escribia en el archivo ( se confirmaba que la informacion del archivo estba ), pero en el directorio donde le dije que lo extrajera, solo me habia creado la estructura del direcotrio, o sea > /usr/bin pero no se encontrba el archiv. Sólo te puedo decir que a mí me sale bien. He probado a comprimir/descomprimir el /usb/bin de dos linux (SuSE9 y Woody) he incluso he pasado el fichero a un win2k para ver si se liaba, y no he tenido ningún problema (en lugar de un enlace, en win2k es suficientemente inteligente para sacar el fichero al que enlaza g++, el g++-2.95 ) :-? Sólo se me ocurre que sea el problema que no tenga que ver con python, como que el sistema de ficheros esté corrupto. Prueba con el atributo 'tar.ignore_ceros=True' antes de la extracción. -- Res publica non dominetur From fheredero en topmusic.ch Fri Mar 5 15:02:31 2004 From: fheredero en topmusic.ch (=?iso-8859-1?Q?Fran=E7ois_Heredero_-_Top_Music_SA?=) Date: Fri, 5 Mar 2004 15:02:31 +0100 Subject: CGIXMLRPCRequestHandler y Python 2.2 Message-ID: Hola, Utilizo CGIXMLRPCRequestHandler en local con python 2.3, y quiziera utilisarlo tabien online, pero mi provider solo tiene Python 2.2 en CGI, y CGIXMLRPCRequestHandler solo esta disponible desde la 2.3. Alguien a vosto pasar algo que me permite utiliza python 2.2 como servidor XML-RPC en CGI ? François From oziko en fusiondementes.com Fri Mar 5 11:32:29 2004 From: oziko en fusiondementes.com (Oziko) Date: Fri, 05 Mar 2004 04:32:29 -0600 Subject: Vuelta a la normalidad In-Reply-To: <20040304201242.GC5722@aditel.org> References: <20040304201242.GC5722@aditel.org> Message-ID: <1078482748.2332.2.camel@tania.oziko.net> Ya extrañaba la lista, que bueno que todo es ahora normal. Bueno aprobecho para anunciarles, que colgue un scriptcito que convierte mp3aogg, habia por ahi uno que lo hacia en perl y habra muchos otros me imagino que lo haran en python, pero como este lo hice yo pienso que es el mas bonito,,, :-) si les es útil esta en http://www.fusiondementes.com y si me pueden hacer comentarios sobre el, estaría muy agradecido. Nos vemos. On Thu, 2004-03-04 at 14:12, David Rubert Viana wrote: > Hola a todos, > > parece que por fin hemos podido averiguar qué es lo que pasaba con la lista > python-es, y es que nuestro querido gestor de listas mailman se había > "atrancado" en un mensaje del 19 de Febrero, que le estaba provocando la no > entrega de los posteriores mails que iban llegando. > > Hemos actualizado a mailman-2.1.4 y por lo que parece (crucemos los dedos) > todo vuelve a la normalidad. > > Perdonad las molestias, > un saludo > > ______________________________________________________________________ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es -- --------- Javier Reyna Padilla Visita mi Weblog: http://www.fusiondementes.com/weblog.php From pereznet en cosett.com.bo Sat Mar 6 19:07:22 2004 From: pereznet en cosett.com.bo (RUBEN) Date: Sat, 6 Mar 2004 14:07:22 -0400 Subject: Base de datos con WinPython???? Message-ID: <006101c403a6$c6284980$0101a8c0@one> Buenas apreciados listeros. segun sus experiencias que manejador de base de datos me recomiendan utilizar, para que trabaje con WinPython, donde lo consigo y si disponen de algun manual para su manejo, mejor si esta en español. Gracias por su colaboración RUBEN ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pereznet en cosett.com.bo Sat Mar 6 19:04:09 2004 From: pereznet en cosett.com.bo (RUBEN) Date: Sat, 6 Mar 2004 14:04:09 -0400 Subject: Postgresql en Knoopix 3.1??? Message-ID: <006001c403a6$c4b70640$0101a8c0@one> Buenas listeros cuento con el Knoopix 3.1, queria probar un poco de postgres, pero a la hora de poder crear una base de datos me pide un password, alguien de Uds. sabe cual es??? Gracias por su apreciada colaboración RUBEN ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pereznet en cosett.com.bo Sat Mar 6 19:00:04 2004 From: pereznet en cosett.com.bo (RUBEN) Date: Sat, 6 Mar 2004 14:00:04 -0400 Subject: [OT] Re: donde consigo CygIPC ???? References: <000e01c40343$587a03a0$0101a8c0@one> Message-ID: <005f01c403a6$c35fb3a0$0101a8c0@one> gracias ----- Original Message ----- From: "Chema Cortes" To: Sent: Friday, March 05, 2004 5:00 AM Subject: [Python-es] [OT] Re: donde consigo CygIPC ???? > RUBEN escribió: > > Buenas donde puedo conseguir el CygIPC > > Ahora ya te lo instala el instalador del cygwin > > > -- > Res publica non dominetur > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From jespindola en linuxmail.org Fri Mar 5 20:04:22 2004 From: jespindola en linuxmail.org (Jerman Espindola) Date: Sat, 06 Mar 2004 03:04:22 +0800 Subject: zope Message-ID: <20040305190422.218F43AA466@ws5-8.us4.outblaze.com> Hola amigos...un cordial saludo a todos Estoy empezando a trabajar con zope, la idea es desarrollar una aplicacion web con python, quisiera saber si zope es una buena alternativa, espero estar comenzando esto por el buen camino...ademas agradeceria cualquier dato acerca de algun buen manual de zope, ojala en español. Pues bien..de antemano gracias y que esten todos bien Atentamente...Jerman Espindola Sandoval -- ______________________________________________ Check out the latest SMS services @ http://www.linuxmail.org This allows you to send and receive SMS through your mailbox. Powered by Outblaze From fermunyoz en lycos.es Fri Mar 5 21:37:09 2004 From: fermunyoz en lycos.es (FER) Date: Fri, 05 Mar 2004 21:37:09 +0100 Subject: Inslador de python y pygame Message-ID: <1078519029.595.7.camel@ferlinux> Hola a todos. He creado una aplicacion con python yel modulo pygame de software contenida en un directorio, para un entrono Linux(en mi caso Debian pero es =). Lo que me gustaria ahora es crear un instalador y desistalador de la aplicación para que esta stuviera accesible desde la consola, un icono, o dentro de un menu de los de KDE o Gnome q es lo q uso (en aplicaciones por ejem.), vamos lo q creo hace el py2exe o pygame2exe para Windows(q nunk lo he probao pero tengo entedio q es asi). El problema esq soy un poko novato en Linux y leyendo por ahi he visto q se podría hacer con un script o un make makefile pero no se como exactamente. Si algiuien sabe como hacer o tiene algo parecido le agradeceria q me hechase un cable. Un saludo y GRACIAS de antemano. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From aerd en retemail.es Fri Mar 5 21:16:07 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Fri, 5 Mar 2004 21:16:07 +0100 Subject: donde consigo CygIPC ???? References: <000e01c40343$587a03a0$0101a8c0@one> Message-ID: <003601c402ee$b372e560$0100a8c0@servidor> Cygipc ya está incluido con cygwin en la última versión. Si no tienes una versión actualizada, te recomiendo que actualices tu instalación de cygwin (con postgres) desde www.cygwin.com Cuando marques postgres, te instalará automáticomente cygipc (que está en la sección Libs). el ejecutable se llama ipc-daemon2.exe Antes de arrancar postgres, tendrás que ejecutar ese archivo, lo mejor en un bash para ejecutarlo en segundo plano: ipc-daemon2 & Si tienes NT/W2K/XP puedes hacer ipc-daemon2 --install-as-service para que puedas arrancarlo manual o automáticamente desde el administrador de servicios o con net start ipc-daemon2 documentación encontrarás en el directorio /usr/share/doc/Cygwin/cygipc-2.03.README Erny ----- Original Message ----- From: RUBEN To: La lista de python en castellano Sent: Saturday, March 06, 2004 7:22 AM Subject: [Python-es] donde consigo CygIPC ???? Buenas donde puedo conseguir el CygIPC Gracias ------------------------------------------------------------------------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Fri Mar 5 21:13:54 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Fri, 05 Mar 2004 21:13:54 +0100 Subject: Postgresql en Knoopix 3.1??? In-Reply-To: <006001c403a6$c4b70640$0101a8c0@one> References: <006001c403a6$c4b70640$0101a8c0@one> Message-ID: <4048DF82.2080300@arrakis.es> [No probado en knoppix] Prueba a pasar a root con sudo bash o su - y desde ahí a postgres su - postgres Y postgres no suele necesitar contraseña. Desde ahí creas un usuario para postgresql con tu nombre de usuario createuser marcos y vuelves a tu usuario exit exit Y ahora vuelves a intentar crear una BD RUBEN escribió: > Buenas listeros > cuento con el Knoopix 3.1, queria probar un poco de postgres, pero a > la hora de poder crear una base de datos me pide un password, alguien > de Uds. sabe cual es??? > > Gracias por su apreciada colaboración > > RUBEN > >------------------------------------------------------------------------ > > > From rapto en arrakis.es Fri Mar 5 21:17:34 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Fri, 05 Mar 2004 21:17:34 +0100 Subject: zope In-Reply-To: <20040305190422.218F43AA466@ws5-8.us4.outblaze.com> References: <20040305190422.218F43AA466@ws5-8.us4.outblaze.com> Message-ID: <4048E05E.10508@arrakis.es> Jerman Espindola escribió: >Hola amigos...un cordial saludo a todos > > Estoy empezando a trabajar con zope, la idea es desarrollar una aplicacion web con python, quisiera saber si zope es una buena alternativa, espero estar comenzando esto por el buen camino...ademas agradeceria cualquier dato acerca de algun buen manual de zope, ojala en español. > > Pues bien..de antemano gracias y que esten todos bien > > Atentamente...Jerman Espindola Sandoval > > Eso es en la ventanilla de al lado :-) http://www.hispazope.org/ http://listas.aditel.org/listinfo/zope-es From aerd en retemail.es Fri Mar 5 21:50:24 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Fri, 5 Mar 2004 21:50:24 +0100 Subject: CGIXMLRPCRequestHandler y Python 2.2 References: Message-ID: <007401c402f3$7d6e8500$0100a8c0@servidor> Hola, he cogido el SimpleXMLRPCServer.py, lo he renombrado (a CGIReqHandler.py) y lo he probado bajo Python 2.2 y aparentemente funciona bien. Si quieres probar tu mismo: ( # == archiv pruebaCGIXMLRPC.py == from CGIReqHandler import CGIXMLRPCRequestHandler handler = CGIXMLRPCRequestHandler() handler.register_function(pow) handler.handle_request() # == fin pruebaCGIXMLRPC.py == Aquí tienes un fragmentillo de XMLRPC (powcall.xmlrpc): pow 3 2 Ahora puedes probar: python pruebaCGIXMLRPC.py < powcall.xmrpc Aquí me escupe lo siguiente: ---------------------------- Content-Type: text/xml Content-Length: 121 9 He probado la llamada (powcall.xmlrpc) tanto con y sin cabeceras y me funciona bien. Erny ----- Original Message ----- From: "François Heredero - Top Music SA" To: "Python-Es" Sent: Friday, March 05, 2004 3:02 PM Subject: [Python-es] CGIXMLRPCRequestHandler y Python 2.2 > Hola, > > Utilizo CGIXMLRPCRequestHandler en local con python 2.3, y quiziera > utilisarlo tabien online, pero mi provider solo tiene Python 2.2 en CGI, y > CGIXMLRPCRequestHandler solo esta disponible desde la 2.3. > > Alguien a vosto pasar algo que me permite utiliza python 2.2 como servidor > XML-RPC en CGI ? > > François > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From cescd en yahoo.com.mx Sat Mar 6 00:29:40 2004 From: cescd en yahoo.com.mx (=?iso-8859-1?q?Cesar=20Cardenas=20Desales?=) Date: Fri, 5 Mar 2004 17:29:40 -0600 (CST) Subject: zope In-Reply-To: <20040305190422.218F43AA466@ws5-8.us4.outblaze.com> References: <20040305190422.218F43AA466@ws5-8.us4.outblaze.com> Message-ID: <20040305232940.83175.qmail@web13912.mail.yahoo.com> Zope está excelente si te quieres ahorrar un montón de trabajo. Por lo de la documentación, si no hay en español, PUES YA DEBERÍAMOS TRADUCIRLA. Ya saben que aqui hay un traductor disponible. Quién más levanta la mano? --- Jerman Espindola escribió: > Hola amigos...un cordial saludo a todos > > Estoy empezando a trabajar con zope, la idea es > desarrollar una aplicacion web con python, quisiera > saber si zope es una buena alternativa, espero estar > comenzando esto por el buen camino...ademas > agradeceria cualquier dato acerca de algun buen > manual de zope, ojala en español. > > Pues bien..de antemano gracias y que esten todos > bien > > Atentamente...Jerman Espindola Sandoval > -- > ______________________________________________ > Check out the latest SMS services @ > http://www.linuxmail.org > This allows you to send and receive SMS through your > mailbox. > > > Powered by Outblaze > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es _________________________________________________________ Do You Yahoo!? La mejor conexión a internet y 25MB extra a tu correo por $100 al mes. http://net.yahoo.com.mx From pereznet en cosett.com.bo Sat Mar 6 00:49:23 2004 From: pereznet en cosett.com.bo (RUBEN) Date: Fri, 5 Mar 2004 23:49:23 +0000 (UTC) Subject: donde consigo CygIPC ???? References: <000e01c40343$587a03a0$0101a8c0@one> <003601c402ee$b372e560$0100a8c0@servidor> Message-ID: <001b01c403d6$50976400$0101a8c0@one> Ok Gracias ----- Original Message ----- From: Ernesto Revilla To: La lista de python en castellano Sent: Friday, March 05, 2004 4:16 PM Subject: Re: [Python-es] donde consigo CygIPC ???? Cygipc ya está incluido con cygwin en la última versión. Si no tienes una versión actualizada, te recomiendo que actualices tu instalación de cygwin (con postgres) desde www.cygwin.com Cuando marques postgres, te instalará automáticomente cygipc (que está en la sección Libs). el ejecutable se llama ipc-daemon2.exe Antes de arrancar postgres, tendrás que ejecutar ese archivo, lo mejor en un bash para ejecutarlo en segundo plano: ipc-daemon2 & Si tienes NT/W2K/XP puedes hacer ipc-daemon2 --install-as-service para que puedas arrancarlo manual o automáticamente desde el administrador de servicios o con net start ipc-daemon2 documentación encontrarás en el directorio /usr/share/doc/Cygwin/cygipc-2.03.README Erny ----- Original Message ----- From: RUBEN To: La lista de python en castellano Sent: Saturday, March 06, 2004 7:22 AM Subject: [Python-es] donde consigo CygIPC ???? Buenas donde puedo conseguir el CygIPC 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 pabloruiz en gnu.org Sat Mar 6 18:01:44 2004 From: pabloruiz en gnu.org (Pablo Ruiz =?ISO-8859-1?Q?M=FAzquiz?=) Date: Sat, 06 Mar 2004 18:01:44 +0100 Subject: Duda sobre "aleatorizar" una lista Message-ID: <1078592503.9685.4.camel@niggle> Hola, En un programa que estoy haciendo necesito tomar una lista y descolocar sus elementos de forma aleatoria. El paso natural es: ----------------- import random l = [1,2,3,4] random.shuffle(l) ----------------- Ahora bien, random.shuffle() devuelve None y modifica la lista "in place" con lo que no podemos hacer: --------------------- l = random.shuffle(l) --------------------- ¿Alguien sabe de qué forma podemos, en una sola línea, conseguir una lista "aleatorizada"? He estado buscando en la documentación y en google pero no logro encontrar una solución. Un saludo, Pablo Ruiz Múzquiz From jdavid en itaapy.com Sat Mar 6 19:34:29 2004 From: jdavid en itaapy.com (=?ISO-8859-1?Q?=22J=2E_David_Ib=E1=F1ez=22?=) Date: Sat, 06 Mar 2004 19:34:29 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <1078592503.9685.4.camel@niggle> References: <1078592503.9685.4.camel@niggle> Message-ID: <404A19B5.4080006@itaapy.com> random.shuffle(l[:]) Pablo Ruiz Múzquiz wrote: >Hola, > >En un programa que estoy haciendo necesito tomar una lista y descolocar >sus elementos de forma aleatoria. > >El paso natural es: > >----------------- >import random > >l = [1,2,3,4] >random.shuffle(l) >----------------- > >Ahora bien, random.shuffle() devuelve None y modifica la lista "in >place" con lo que no podemos hacer: >--------------------- >l = random.shuffle(l) >--------------------- > >¿Alguien sabe de qué forma podemos, en una sola línea, conseguir una >lista "aleatorizada"? He estado buscando en la documentación y en google >pero no logro encontrar una solución. > >Un saludo, > >Pablo Ruiz Múzquiz > > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > -- J. David Ibáñez Founder and CTO of Itaapy Creator of Localizer Lead developer of IKAARO From pabloruiz en gnu.org Sat Mar 6 18:22:34 2004 From: pabloruiz en gnu.org (Pablo Ruiz =?ISO-8859-1?Q?M=FAzquiz?=) Date: Sat, 06 Mar 2004 18:22:34 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <404A19B5.4080006@itaapy.com> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> Message-ID: <1078593753.9899.1.camel@niggle> El sáb, 06-03-2004 a las 19:34, "J. David Ibáñez" escribió: > random.shuffle(l[:]) Hola. No, random.shuffle(l[:]) no me sirve, lo siento. No es mi objetivo hacer una copia de la lista l y sobre ella hacer la "aleatorización". Sino que haya algo como l = funcionazar(l) en python para poder hacer un código como: listafinal.append(funcionazar(l)) Un saludo, Pablo Ruiz Múzquiz From cescd en yahoo.com.mx Sat Mar 6 19:48:49 2004 From: cescd en yahoo.com.mx (=?iso-8859-1?q?Cesar=20Cardenas=20Desales?=) Date: Sat, 6 Mar 2004 12:48:49 -0600 (CST) Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <1078592503.9685.4.camel@niggle> References: <1078592503.9685.4.camel@niggle> Message-ID: <20040306184849.81731.qmail@web13901.mail.yahoo.com> Sirve lo siguiente? >>> import random >>> l=['a', 'b', 'c', 'd'] >>> random.shuffle(l);l ['b', 'c', 'a', 'd'] --- Pablo Ruiz Múzquiz escribió: > Hola, > > En un programa que estoy haciendo necesito tomar una > lista y descolocar > sus elementos de forma aleatoria. > > El paso natural es: > > ----------------- > import random > > l = [1,2,3,4] > random.shuffle(l) > ----------------- > > Ahora bien, random.shuffle() devuelve None y > modifica la lista "in > place" con lo que no podemos hacer: > --------------------- > l = random.shuffle(l) > --------------------- > > ¿Alguien sabe de qué forma podemos, en una sola > línea, conseguir una > lista "aleatorizada"? He estado buscando en la > documentación y en google > pero no logro encontrar una solución. > > Un saludo, > > Pablo Ruiz Múzquiz > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es _________________________________________________________ Do You Yahoo!? La mejor conexión a internet y 25MB extra a tu correo por $100 al mes. http://net.yahoo.com.mx From rapto en arrakis.es Sat Mar 6 23:09:15 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Sat, 06 Mar 2004 23:09:15 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <1078593753.9899.1.camel@niggle> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> Message-ID: <404A4C0B.8070000@arrakis.es> Pablo Ruiz Múzquiz escribió: >El sáb, 06-03-2004 a las 19:34, "J. David Ibáñez" escribió: > > >>random.shuffle(l[:]) >> >> > >Hola. > >No, random.shuffle(l[:]) no me sirve, lo siento. No es mi objetivo hacer >una copia de la lista l y sobre ella hacer la "aleatorización". Sino que >haya algo como l = funcionazar(l) en python para poder hacer un código >como: > >listafinal.append(funcionazar(l)) > >Un saludo, > >Pablo Ruiz Múzquiz > > > random.shuffle(l) or l ¿valdría eso? From pabloruiz en gnu.org Sun Mar 7 02:22:52 2004 From: pabloruiz en gnu.org (Pablo Ruiz =?ISO-8859-1?Q?M=FAzquiz?=) Date: Sun, 07 Mar 2004 02:22:52 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <404A4C0B.8070000@arrakis.es> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404A4C0B.8070000@arrakis.es> Message-ID: <1078622572.10683.15.camel@niggle> Respondo a César: >>> random.shuffle(l);l ['b', 'c', 'a', 'd'] No, no vale porque mi intención es escribir esa orden dentro de otra tal que: "texto" + " ".join(random.shuffle(l);l) y, claro, da un syntax error como una catedral (o un bazar). Pero de no tener esa necesidad, claro que habría valido :-) Muchas gracias Respondo a Marcos: > random.shuffle(l) or l Cuando lo vi pensé que sí. Pero luego, al usarlo con el join, me dio este error: ''.join(random.shuffle(l) or l) Traceback (most recent call last): File "", line 1, in ? TypeError: sequence item 0: expected string, int found Para no liaros más os pego el código que yo he escrito hasta ahora. Son 4 líneas pero _tiene_ que poderse hacer en dos! El programa toma un texto de la entrada estándar y los convierte a un tipo de léxico que tiene una curiosa propiedad: las letras primera y última se mantienen y las de en medio salen descolocadas. Por efecto de nuestra memoria, el cerebro reconoce las palabras a pesar del orden erróneo de sus letras y el texto puede leerse perfectamente: ------------------------------------- import sys, random def azar(l): if not random.shuffle(l): return l print ' '.join([p[0]+''.join(azar(list(p[1:-1])))+p[-1] for p in sys.argv[1].split()]) -------------------------------------- Ejemplo de texto de entrada: "Un pajaro vuela sobre la campana mas alta de la iglesia" El programa devuelve (por ejemplo): "Un prjaao velua srboe la cpnaama mas atla de la ielgsia" Como podéis ver, hago uso de la función azar (que usa un poco la idea de Marcos con su OR) pero que me deja un mal sabor de boca. Si no hubiese tenido que manipular el resultado para otras cosas, las dos soluciones habrían valido perfectamente, pero ya veis que no es el caso. Un saludo, Pablo Ruiz Múzquiz From fonso en aturuxo.net Sun Mar 7 12:22:02 2004 From: fonso en aturuxo.net (=?ISO-8859-1?Q?Afonso_Fern=E1ndez_Nogueira?=) Date: Sun, 07 Mar 2004 12:22:02 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <1078622572.10683.15.camel@niggle> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404A4C0B.8070000@arrakis.es> <1078622572.10683.15.camel@niggle> Message-ID: <404B05DA.4090705@aturuxo.net> Pablo Ruiz Múzquiz wrote: > Cuando lo vi pensé que sí. Pero luego, al usarlo con el join, me dio > este error: > > ''.join(random.shuffle(l) or l) > Traceback (most recent call last): > File "", line 1, in ? > TypeError: sequence item 0: expected string, int found Este problema no parece que tenga que ver con la solución propuesta, en todo caso. > ------------------------------------- > import sys, random > > def azar(l): > if not random.shuffle(l): return l > > print ' '.join([p[0]+''.join(azar(list(p[1:-1])))+p[-1] for p in > sys.argv[1].split()]) > -------------------------------------- Esto parece funcionar: ---- import sys, random print ' '.join([p[0]+''.join((lambda x:random.shuffle(x) or x)(list(p[1:-1])))+p[-1] for p in sys.argv[1].split()]) ---- ¿Esto qué es, un concurso de Python enrevesado ;) ? Un saludo, Fonso From pabloruiz en gnu.org Sun Mar 7 12:09:38 2004 From: pabloruiz en gnu.org (Pablo Ruiz =?ISO-8859-1?Q?M=FAzquiz?=) Date: Sun, 07 Mar 2004 12:09:38 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <404B05DA.4090705@aturuxo.net> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404A4C0B.8070000@arrakis.es> <1078622572.10683.15.camel@niggle> <404B05DA.4090705@aturuxo.net> Message-ID: <1078657777.19262.16.camel@niggle> El dom, 07-03-2004 a las 12:22, Afonso Fernández Nogueira escribió: > Esto parece funcionar: > > ---- > import sys, random > > print ' '.join([p[0]+''.join((lambda x:random.shuffle(x) or > x)(list(p[1:-1])))+p[-1] for p in > sys.argv[1].split()]) > ---- > > ¿Esto qué es, un concurso de Python enrevesado ;) ? Muchas gracias. Me imaginaba que tenía que ser con funciones lambda pero no caí en la cuenta del OR (aquí no). -- explicación larga de este programa (puedes no leerla) --- Y no, no es un concurso de Python ofuscado. Lo que sucede es que yo siempre les digo a mis amigos que con python todo programa puede hacerse en 4 ó 10 líneas. Naturalmente, me refiero a programas que resuelven problemas específicos (aunque sean complejos). Al hacer un programa que resolviera el problema este, salieron 20 líneas (en plan verbose y tal). Y claro, me dijeron "No decías que cualquier programa en python se hacía en 4 ó 10 líneas?". Así que me piqué y empecé a reducir líneas de código. Pasé rápidamente de 20 a 15, luego de 15 a 11 y me dije "mira, si quito una más habré quedado bien". Pero ¡ay! logré quitar 2 líneas de un solo golpe... y ya tuve que ir a las 4. Pasé de 9 a 7, y de 7 a 4. Y las cuatro líneas son las que os enseñé ayer. Y aunque podía haberme quedado contento... no lo estaba... porque veía que tenía que haber una forma de hacerlo en 2. Y como me atasqué pedí ayuda y os debo haber quedado genial :-) Por otro lado ¿realmente podría existir un concurso de python enrevesado? :-P Un saludo, Pablo Ruiz Múzquiz From pereznet en cosett.com.bo Sun Mar 7 17:24:58 2004 From: pereznet en cosett.com.bo (RUBEN) Date: Sun, 7 Mar 2004 16:24:58 +0000 (UTC) Subject: PyPgSQL Informacion?? Message-ID: <001501c4052a$96f943a0$0101a8c0@one> alguien me puede decir para que es el PyPgSQL, donde consegurilo y como instalarlo gracias From ecastro en dbbf.ulpgc.es Sun Mar 7 12:03:16 2004 From: ecastro en dbbf.ulpgc.es (Enrique) Date: Sun, 07 Mar 2004 11:03:16 +0000 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <1078592503.9685.4.camel@niggle> References: <1078592503.9685.4.camel@niggle> Message-ID: Pablo Ruiz Múzquiz wrote: > Hola, > > En un programa que estoy haciendo necesito tomar una lista y descolocar > sus elementos de forma aleatoria. > > Ahora bien, random.shuffle() devuelve None y modifica la lista "in > place" con lo que no podemos hacer: > --------------------- > l = random.shuffle(l) > --------------------- > Hola Pablo, Sinceramente, no entiendo tu problema No lo puedes hacer, pero tampoco lo necesitas para nada. después de hacer ----------------- import random l = [1,2,3,4] random.shuffle(l) ----------------- en nombre "l" apunta ahora a una versión alatoria de la lista, exactamenet igual que si hubieras escrito l = random.shuffle(l). Python tiene aspectos parecidos a la programación funcional. A partir de ese momento donde uses el nombre "l" obtendrás la lista aleatorizada, tal como quieres (para imprimirla, añadirla a otra lista, lo que sea) Enrique From rapto en arrakis.es Sun Mar 7 20:07:58 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Sun, 07 Mar 2004 20:07:58 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: References: <1078592503.9685.4.camel@niggle> Message-ID: <404B730E.1020109@arrakis.es> Enrique escribió: > Pablo Ruiz Múzquiz wrote: > >> Hola, >> >> En un programa que estoy haciendo necesito tomar una lista y descolocar >> sus elementos de forma aleatoria. >> >> Ahora bien, random.shuffle() devuelve None y modifica la lista "in >> place" con lo que no podemos hacer: >> --------------------- >> l = random.shuffle(l) >> --------------------- >> > Hola Pablo, > Sinceramente, no entiendo tu problema > No lo puedes hacer, pero tampoco lo necesitas para nada. > > después de hacer > ----------------- > import random > > l = [1,2,3,4] > random.shuffle(l) > ----------------- > > en nombre "l" apunta ahora a una versión alatoria de la lista, > exactamenet igual que si hubieras escrito l = random.shuffle(l). > Python tiene aspectos parecidos a la programación funcional. > > A partir de ese momento donde uses el nombre "l" obtendrás la lista > aleatorizada, tal como quieres (para imprimirla, añadirla a otra > lista, lo que sea) > > Enrique > > La verdad es que no, .shuffle() devuelve None, lo que provocaba el onanismo mental de Pablo, que cualquier día se nos pasa al Perl (con perdón). From pabloruiz en gnu.org Sun Mar 7 22:10:36 2004 From: pabloruiz en gnu.org (Pablo Ruiz =?ISO-8859-1?Q?M=FAzquiz?=) Date: Sun, 07 Mar 2004 22:10:36 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <404B730E.1020109@arrakis.es> References: <1078592503.9685.4.camel@niggle> <404B730E.1020109@arrakis.es> Message-ID: <1078693836.7745.3.camel@niggle> > > La verdad es que no, .shuffle() devuelve None, lo que provocaba el > onanismo mental de Pablo, que cualquier día se nos pasa al Perl (con > perdón). Exacto. Espero no haberme expresado tan mal como parece :-) Sin embargo, esto ha servido para ver que en python tienes que hacer un "truco" para obtener directamente un resultado de estas características. Y dejo ya de dar la brasa. Pablo Ruiz Múzquiz "elfo" PS: lo que sí estoy escribiendo es un pequeño artículo sobre "cómo reducir drásticamente el número de líneas de un programa en python utilizando sus características más a mano" (más o menos). Ya pasaré la url. El último artículo que escribí puede que os interese también: http://elenya.net/trabajos/Reflexion_SoftwareLibre_en_Espana.html From jdavid en itaapy.com Mon Mar 8 00:07:58 2004 From: jdavid en itaapy.com (=?ISO-8859-1?Q?=22J=2E_David_Ib=E1=F1ez=22?=) Date: Mon, 08 Mar 2004 00:07:58 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <1078593753.9899.1.camel@niggle> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> Message-ID: <404BAB4E.1050002@itaapy.com> qué torpeza la mia!, en realidad hubiese querido escribir: def shuffle(l): l = l[:] random.shuffle(l) return l Claro que la primera linea la hubiese puesto solo porque pensé que la conservacion intacta de la lista de entrada era un requisito. Pablo Ruiz Múzquiz wrote: >El sáb, 06-03-2004 a las 19:34, "J. David Ibáñez" escribió: > > >>random.shuffle(l[:]) >> >> > >Hola. > >No, random.shuffle(l[:]) no me sirve, lo siento. No es mi objetivo hacer >una copia de la lista l y sobre ella hacer la "aleatorización". Sino que >haya algo como l = funcionazar(l) en python para poder hacer un código >como: > >listafinal.append(funcionazar(l)) > >Un saludo, > >Pablo Ruiz Múzquiz > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > -- J. David Ibáñez Founder and CTO of Itaapy Creator of Localizer Lead developer of IKAARO From ch3m4 en ch3m4.org Mon Mar 8 09:44:07 2004 From: ch3m4 en ch3m4.org (Chema Cortes) Date: Mon, 08 Mar 2004 09:44:07 +0100 Subject: Inslador de python y pygame In-Reply-To: <1078519029.595.7.camel@ferlinux> References: <1078519029.595.7.camel@ferlinux> Message-ID: FER escribió: > Lo que me gustaria ahora es crear un instalador y desistalador de la > aplicación para que esta stuviera accesible desde la consola, un icono, > o dentro de un menu de los de KDE o Gnome q es lo q uso (en aplicaciones > por ejem.), vamos lo q creo hace el py2exe o pygame2exe para Windows(q > nunk lo he probao pero tengo entedio q es asi). > > El problema esq soy un poko novato en Linux y leyendo por ahi he visto q > se podría hacer con un script o un make makefile pero no se como > exactamente. En python se suele utilizar el paquete 'distutils' para instalar/desintalar, aunque no es fácil hacerse con él. Será mejor que utilizes algún instalador apropiado. Junto con la instalación de python, en la carpeta 'tools', viene el 'freeze' que te podría servir, pero mi consejo es que emplees el 'installer' http://www.mcmillan-inc.com/install1.htm (parece que en éste instante esta web está caída :-P ) -- Res publica non dominetur ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From ch3m4 en ch3m4.org Mon Mar 8 10:07:57 2004 From: ch3m4 en ch3m4.org (Chema Cortes) Date: Mon, 08 Mar 2004 10:07:57 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <404BAB4E.1050002@itaapy.com> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404BAB4E.1050002@itaapy.com> Message-ID: J. David Ibáñez escribió: > > qué torpeza la mia!, en realidad hubiese querido escribir: > > def shuffle(l): > l = l[:] > random.shuffle(l) > return l ¿No es ésto lo que buscas? l=random.sample(l,len(l)) Hay que seguir viendo python como algo "sin-ofuscación" :-D -- Res publica non dominetur From rapto en arrakis.es Mon Mar 8 10:27:40 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Mon, 08 Mar 2004 10:27:40 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404BAB4E.1050002@itaapy.com> Message-ID: <404C3C8C.7060904@arrakis.es> Chema Cortes wrote: > J. David Ibáñez escribió: > >> >> qué torpeza la mia!, en realidad hubiese querido escribir: >> >> def shuffle(l): >> l = l[:] >> random.shuffle(l) >> return l > > > ¿No es ésto lo que buscas? > > l=random.sample(l,len(l)) > > > Hay que seguir viendo python como algo "sin-ofuscación" :-D > Para seguir cerrando el tema: import random,sys print ' '.join([p[0]+''.join(random.sample(p[1:-1],len(p)-2))+p[-1] for p in sys.argv[1].split()]) ¿alguien da menos? From aerd en retemail.es Mon Mar 8 10:49:04 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Mon, 8 Mar 2004 10:49:04 +0100 Subject: PyPgSQL Informacion?? References: <001501c4052a$96f943a0$0101a8c0@one> Message-ID: <001301c404f2$99239820$0100a8c0@servidor> Es un adaptador DB-Api2 (Python) para Postgres. Lo encontrarás en http://pypgsql.sf.net Erny ----- Original Message ----- From: "RUBEN" To: "La lista de python en castellano" Sent: Monday, March 08, 2004 5:29 PM Subject: [Python-es] PyPgSQL Informacion?? alguien me puede decir para que es el PyPgSQL, donde consegurilo y como instalarlo gracias _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pabloruiz en gnu.org Mon Mar 8 11:04:39 2004 From: pabloruiz en gnu.org (Pablo Ruiz =?ISO-8859-1?Q?M=FAzquiz?=) Date: Mon, 08 Mar 2004 11:04:39 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <404C3C8C.7060904@arrakis.es> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404BAB4E.1050002@itaapy.com> <404C3C8C.7060904@arrakis.es> Message-ID: <1078740278.18413.7.camel@niggle> > Para seguir cerrando el tema: > > import random,sys > > print ' '.join([p[0]+''.join(random.sample(p[1:-1],len(p)-2))+p[-1] for > p in sys.argv[1].split()]) > > ¿alguien da menos? Ah, malditos! python 2.3 ! :-) Esta solución me gusta mucho más porque intento evitar siempre que puedo las funciones lambda para hacerlo todo más the-python-way. Así, a bote pronto, no se me ocurre una forma más compacta. Si la encuentro, ya os avisaré. Un saludo y gracias de nuevo, Pablo Ruiz Múzquiz From ch3m4 en ch3m4.org Mon Mar 8 13:33:34 2004 From: ch3m4 en ch3m4.org (Chema Cortes) Date: Mon, 08 Mar 2004 13:33:34 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <404C3C8C.7060904@arrakis.es> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404BAB4E.1050002@itaapy.com> <404C3C8C.7060904@arrakis.es> Message-ID: Marcos Sánchez Provencio escribió: > Para seguir cerrando el tema: > > import random,sys > > print ' '.join([p[0]+''.join(random.sample(p[1:-1],len(p)-2))+p[-1] for > p in sys.argv[1].split()]) > > ¿alguien da menos? Menos puede que no, pero pudiera ser algo más eficiente... import random,sys,re print re.sub("(?<=\w)(\w{2,})(?=\w)",lambda o: "".join(random.sample(o.group(),len(o.group()))),sys.argv[1]) -- Res publica non dominetur From falted en pytables.org Mon Mar 8 13:53:15 2004 From: falted en pytables.org (Francesc Alted) Date: Mon, 8 Mar 2004 13:53:15 +0100 Subject: [ANN] PyTables 0.8 Message-ID: <200403081353.15303.falted@pytables.org> Hola, Os hago una pequeña reseña (en castellano) del anuncio general de PyTables que hice la semana pasada en c.l.p.a. Saludos, ---- Ya está disponible la última y más potente versión de PyTables: 0.8. PyTables es una base de datos jerárquica diseñada para trabajar con grandes cantidades de datos. PyTables se basa en la libreria HDF5 y en el paquete numarray. Ofrece una interface orientada al objecto que, combinado con el nombrado natural (natural naming) y código C (generado a partir de Pyrex), hace de él una herramienta rápida y muy fácil de usar para salvar y recuperar grandes conjuntos de datos. Con esta nueva versión (0.8) se ha conseguido batir un nuevo record de capacidad: 5.6 TB (o sea, el contenido de 1000 DVD's aprox.) de datos en un único fichero (!). [Ver más info en: http://pytables.sourceforge.net/html/StressTests.html] Las nuevas características de PyTables 0.8 se pueden resumir en: - Arrays de Longitud Variable (VLA's) para guardar colecciones de elementos de longitud variable. - Arrays alargables (EA's) para agrandar conjuntos de datos homogéneos en disco. - Capacidades de replicación de ficheros muy potente, desde simples hojas a jerarquias completas. - Posibilidad de importación de ficheros HDF5 genéricos muy mejorada. - Dos nuevas utilidades: ptdump y ptrepack. - Más plataformas soportadas: MacOSX, FreeBSD, Linux64, IRIX64 y, probablemente, muchas más. - Documentación de las nuevas caracterísiticas y mejora del manual. En particular, se ha documentado el formato interno de PyTables. - Más unidades de test (más de 800). - ...y una serie de bugs y otras pequeñas mejoras. Para una información más completa, visitar: http://sourceforge.net/project/shownotes.php?group_id=63486&release_id=220773 Dónde puedo usar PyTables? ========================== PyTables no se ha diseñado como un competidor de una base de datos relacional, sino más bien como un compañero de trabajo. Si quieres trabajar con datos multidimensionales (por ejemplo, para análisis multidimensional) o simplemente para dotar de una estructura jerárquica a alguna parte de tu ya saturada base de datos relacional, puedes encontrar en PyTables a un aliado. Los ámbitos donde mejor se adecúa PyTables pueden ser para guardar datos provenientes de sistemas de adquisición de datos, software de simulación, sistemas de monitorización de tráfico (por ejemplo, medidas de tráfico IP efectuadas en routers), como repositorio centralizado de logs de sistemas distribuidos o trabajar con ficheros XML realmente grandes (típicamente, más de 100 MB), por nombrar tan sólo unos pocos. Web site ======== Para más info sobre características generales, fiabilidad, benchmarks, soporte técnico, etc., visitar: http://www.pytables.org. -- Francesc Alted From rapto en arrakis.es Mon Mar 8 14:31:43 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Mon, 08 Mar 2004 14:31:43 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404BAB4E.1050002@itaapy.com> <404C3C8C.7060904@arrakis.es> Message-ID: <404C75BF.9030409@arrakis.es> Chema Cortes wrote: > Marcos Sánchez Provencio escribió: > >> Para seguir cerrando el tema: >> >> import random,sys >> >> print ' '.join([p[0]+''.join(random.sample(p[1:-1],len(p)-2))+p[-1] >> for p in sys.argv[1].split()]) >> >> ¿alguien da menos? > > > > Menos puede que no, pero pudiera ser algo más eficiente... > > import random,sys,re > > print re.sub("(?<=\w)(\w{2,})(?=\w)",lambda o: > "".join(random.sample(o.group(),len(o.group()))),sys.argv[1]) > > Lo siento, cada vez que veo una expresión regular me sangran los oídos. X-\ Otro que se pasa a Perl, buf. Al principio de este tipo de código hay que poner 'No intente esto en casa' :-D From pabloruiz en gnu.org Mon Mar 8 15:01:10 2004 From: pabloruiz en gnu.org (Pablo Ruiz =?ISO-8859-1?Q?M=FAzquiz?=) Date: Mon, 08 Mar 2004 15:01:10 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <404C75BF.9030409@arrakis.es> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404BAB4E.1050002@itaapy.com> <404C3C8C.7060904@arrakis.es> <404C75BF.9030409@arrakis.es> Message-ID: <1078754469.18413.41.camel@niggle> El lun, 08-03-2004 a las 14:31, Marcos Sánchez Provencio escribió: > > import random,sys,re > > > > print re.sub("(?<=\w)(\w{2,})(?=\w)",lambda o: > > "".join(random.sample(o.group(),len(o.group()))),sys.argv[1]) > > > > > Lo siento, cada vez que veo una expresión regular me sangran los oídos. X-\ > > Otro que se pasa a Perl, buf. Al principio de este tipo de código hay > que poner 'No intente esto en casa' :-D Yo también reconozco que las expresiones regulares me generan rechazo pero todo se andará. Esta solución vuelve a incorporar la función lambda :-( pero es capaz de tratar mucho mejor léxico variado (código html, por ejemplo). La cuestión es: ¿realmente es más eficiente? Ahora me tengo que ir y no he hecho unas pruebas intensivas de rendimiento pero parece que andan a la par o, incluso sin regex, mejora algo. Un saludo, Pablo Ruiz Múzquiz "elfo" alqua.com - documentos libres PS: Rapto, tú tienes pesadillas con Perl ¿verdad? :-) Compactar código en python != cambiar a perl. Enseñé este código ayer a un amigo y lo entendió inmediatamente ¿qué más pruebas quieres? From jcanto en hispasec.com Mon Mar 8 15:07:50 2004 From: jcanto en hispasec.com (Julio Canto) Date: Mon, 08 Mar 2004 15:07:50 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <1078754469.18413.41.camel@niggle> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404BAB4E.1050002@itaapy.com> <404C3C8C.7060904@arrakis.es> <404C75BF.9030409@arrakis.es> <1078754469.18413.41.camel@niggle> Message-ID: <404C7E36.9010808@hispasec.com> Pablo Ruiz Múzquiz wrote: >>>import random,sys,re >>> >>>print re.sub("(?<=\w)(\w{2,})(?=\w)",lambda o: >>>"".join(random.sample(o.group(),len(o.group()))),sys.argv[1]) >>> >>> >La cuestión es: ¿realmente es más eficiente? >Ahora me tengo que ir y no he hecho unas pruebas intensivas de >rendimiento pero parece que andan a la par o, incluso sin regex, mejora >algo. > >Un saludo, > >Pablo Ruiz Múzquiz "elfo" >alqua.com - documentos libres >PS: Rapto, tú tienes pesadillas con Perl ¿verdad? :-) Compactar código >en python != cambiar a perl. Enseñé este código ayer a un amigo y lo >entendió inmediatamente ¿qué más pruebas quieres? > A mi, francamente (y sin animo de ofender), esa linea me recuerda mucho a algunas aberraciones que he leido en C hace tiempo... en fin, cada uno con su estilo :D Un saludo, JC From pabloruiz en gnu.org Mon Mar 8 15:27:50 2004 From: pabloruiz en gnu.org (Pablo Ruiz =?ISO-8859-1?Q?M=FAzquiz?=) Date: Mon, 08 Mar 2004 15:27:50 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <404C7E36.9010808@hispasec.com> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404BAB4E.1050002@itaapy.com> <404C3C8C.7060904@arrakis.es> <404C75BF.9030409@arrakis.es> <1078754469.18413.41.camel@niggle> <404C7E36.9010808@hispasec.com> Message-ID: <1078756070.21300.8.camel@niggle> El lun, 08-03-2004 a las 15:07, Julio Canto escribió: > Pablo Ruiz Múzquiz wrote: > > >>>import random,sys,re > >>> > >>>print re.sub("(?<=\w)(\w{2,})(?=\w)",lambda o: > >>>"".join(random.sample(o.group(),len(o.group()))),sys.argv[1]) > A mi, francamente (y sin animo de ofender), esa linea me recuerda mucho > a algunas aberraciones que he leido en C hace tiempo... en fin, cada uno > con su estilo :D > Un saludo, > JC Yo no me refería a esa línea, sino a la solución: -------------------- print ' '.join([p[0]+''.join(random.sample(p[1:-1],len(p)-2))+p[-1] for p in sys.argv[1].split()]) -------------------- Pero como igualmente pareció desatar la polémica... :-) El python-way-to-do-it también incluye ciertas reglas de estilo y no solamente el uso de estructuras pythonistas. Espero no haber enfadado a los dioses pitónicos :-) Pablo Ruiz Múzquiz "elfo" From couto.bastos en ig.com.br Mon Mar 8 15:34:09 2004 From: couto.bastos en ig.com.br (Matheus Couto) Date: Mon, 8 Mar 2004 11:34:09 -0300 Subject: Arquivo Message-ID: <20040308143412.AABF931446B@marti.uji.es> Porque nao posso escrever um dicionario num arquivo? ex: arquivo=open('arq_text.txt','w+t') dic={'1':'teclado','2':'monitor','3':'mouse') arquivo.write(dic) obs:sou iniciante...nao esqueçam.. :) _________________________________________________________ Voce quer um iGMail protegido contra vírus e spams? Clique aqui: http://www.igmailseguro.ig.com.br Ofertas imperdíveis! Link: http://www.americanas.com.br/ig/ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jcanto en hispasec.com Mon Mar 8 15:40:12 2004 From: jcanto en hispasec.com (Julio Canto) Date: Mon, 08 Mar 2004 15:40:12 +0100 Subject: Duda sobre "aleatorizar" una lista In-Reply-To: <1078756070.21300.8.camel@niggle> References: <1078592503.9685.4.camel@niggle> <404A19B5.4080006@itaapy.com> <1078593753.9899.1.camel@niggle> <404BAB4E.1050002@itaapy.com> <404C3C8C.7060904@arrakis.es> <404C75BF.9030409@arrakis.es> <1078754469.18413.41.camel@niggle> <404C7E36.9010808@hispasec.com> <1078756070.21300.8.camel@niggle> Message-ID: <404C85CC.5040207@hispasec.com> >-------------------- >print ' '.join([p[0]+''.join(random.sample(p[1:-1],len(p)-2))+p[-1] for >p in sys.argv[1].split()]) >-------------------- > >Pero como igualmente pareció desatar la polémica... :-) > >El python-way-to-do-it también incluye ciertas reglas de estilo y no >solamente el uso de estructuras pythonistas. Espero no haber enfadado a >los dioses pitónicos :-) > >Pablo Ruiz Múzquiz "elfo" > > No hombre, ademas no soy ningun guru de python, y no me mesa las barbas, rasgo las vestiduras y esas cosas :) Es solo que me parece una lastima que un lenguaje tan claro y expresivo como Python se utilice de una forma tan 'espesa'. Es como la costumbre que tenian (y tienen) muchos programadores C de escribir de forma muy condensada (i.e. los famosos concursos de ver quien escribe el programa mas complejo en una sola linea). Quiza quede muy hacker, pero con el tiempo uno aprende a admirar la belleza de un codigo potente y que al mismo tiempo esta escrito de forma clara :) Solo era una opinion personal de todas formas :) Un saludo, JC From jcanto en hispasec.com Mon Mar 8 15:41:57 2004 From: jcanto en hispasec.com (Julio Canto) Date: Mon, 08 Mar 2004 15:41:57 +0100 Subject: Arquivo In-Reply-To: <20040308143412.AABF931446B@marti.uji.es> References: <20040308143412.AABF931446B@marti.uji.es> Message-ID: <404C8635.2030300@hispasec.com> Matheus Couto wrote: >Porque nao posso escrever um dicionario num arquivo? >ex: > >arquivo=open('arq_text.txt','w+t') >dic={'1':'teclado','2':'monitor','3':'mouse') >arquivo.write(dic) > >obs:sou iniciante...nao esqueçam.. :) > > > Prueba con la libreria pickle, quiza es lo que estas buscando. Un saludo, JC From rosendo.martinez en valdisme.com Mon Mar 8 18:46:34 2004 From: rosendo.martinez en valdisme.com (rosendo) Date: Mon, 8 Mar 2004 18:46:34 +0100 Subject: Arquivo In-Reply-To: <20040308143412.AABF931446B@marti.uji.es> References: <20040308143412.AABF931446B@marti.uji.es> Message-ID: <20040308174525.3AF8941C494@dns2.uji.es> Prueba cerrar con el corchete: dic={'1':'teclado','2':'monitor','3':'mouse'} A lo major no es eso... :-( Un saludo. Rosendo. -----Mensaje original----- De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org] En nombre de Matheus Couto Enviado el: lunes, 08 de marzo de 2004 15:34 Para: python-es en aditel.org Asunto: [Python-es] Arquivo Porque nao posso escrever um dicionario num arquivo? ex: arquivo=open('arq_text.txt','w+t') dic={'1':'teclado','2':'monitor','3':'mouse') arquivo.write(dic) obs:sou iniciante...nao esqueçam.. :) _________________________________________________________ Voce quer um iGMail protegido contra vírus e spams? Clique aqui: http://www.igmailseguro.ig.com.br Ofertas imperdíveis! Link: http://www.americanas.com.br/ig/ From rosendo.martinez en valdisme.com Mon Mar 8 18:49:08 2004 From: rosendo.martinez en valdisme.com (rosendo) Date: Mon, 8 Mar 2004 18:49:08 +0100 Subject: Arquivo In-Reply-To: <20040308143412.AABF931446B@marti.uji.es> References: <20040308143412.AABF931446B@marti.uji.es> Message-ID: <20040308174759.14E113146AF@marti.uji.es> ...oooops...aunque queda feo, pero funciona... arquivo.write(str(dic)) UN saludo de nuevo!. Rosendo. -----Mensaje original----- De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org] En nombre de Matheus Couto Enviado el: lunes, 08 de marzo de 2004 15:34 Para: python-es en aditel.org Asunto: [Python-es] Arquivo Porque nao posso escrever um dicionario num arquivo? ex: arquivo=open('arq_text.txt','w+t') dic={'1':'teclado','2':'monitor','3':'mouse') arquivo.write(dic) obs:sou iniciante...nao esqueçam.. :) _________________________________________________________ Voce quer um iGMail protegido contra vírus e spams? Clique aqui: http://www.igmailseguro.ig.com.br Ofertas imperdíveis! Link: http://www.americanas.com.br/ig/ From morillas en posta.unizar.es Mon Mar 8 20:07:28 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Mon, 8 Mar 2004 20:07:28 +0100 Subject: Arquivo In-Reply-To: <20040308143412.AABF931446B@marti.uji.es> References: <20040308143412.AABF931446B@marti.uji.es> Message-ID: <20040308190728.GA1338@marmota> Asunto: [Python-es] Arquivo Fecha: lun, mar 08, 2004 at 11:34:09 -0300 Citando a Matheus Couto (couto.bastos en ig.com.br): > Porque nao posso escrever um dicionario num arquivo? > ex: > > arquivo=open('arq_text.txt','w+t') > dic={'1':'teclado','2':'monitor','3':'mouse') > arquivo.write(dic) > Si quieres guardar el diccionario, primero lo tienes que 'serializar' con pickle Si lo que quieres es guardar la información como en un archivo utilizando índices, puedes usar shelve import shelve f = shelve.open('archivo') f['1'] ='teclado' f['2'] = 'monitor' ... f.close() -- Luis Miguel No a las patentes de software en Europa EuropeSwPatentFree http://EuropeSwPatentFree.hispalinux.es From cescd en yahoo.com.mx Mon Mar 8 20:05:11 2004 From: cescd en yahoo.com.mx (=?iso-8859-1?q?Cesar=20Cardenas=20Desales?=) Date: Mon, 8 Mar 2004 13:05:11 -0600 (CST) Subject: Arquivo In-Reply-To: <404C8635.2030300@hispasec.com> References: <404C8635.2030300@hispasec.com> Message-ID: <20040308190511.36557.qmail@web13904.mail.yahoo.com> ...o con shelve import shelve sdic = shelve.open('arq_text.txt','w+t') dic={'1':'teclado','2':'monitor','3':'mouse') for i in dic.keys(): sdic[i] = dic[i] --- Julio Canto escribió: > Matheus Couto wrote: > > >Porque nao posso escrever um dicionario num > arquivo? > >ex: > > > >arquivo=open('arq_text.txt','w+t') > >dic={'1':'teclado','2':'monitor','3':'mouse') > >arquivo.write(dic) > > > >obs:sou iniciante...nao esqueçam.. :) > > > > > > > Prueba con la libreria pickle, quiza es lo que estas > buscando. > Un saludo, > JC > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es _________________________________________________________ Do You Yahoo!? La mejor conexión a internet y 25MB extra a tu correo por $100 al mes. http://net.yahoo.com.mx From joolivar en ing.uchile.cl Mon Mar 8 23:58:32 2004 From: joolivar en ing.uchile.cl (joolivar en ing.uchile.cl) Date: Mon, 8 Mar 2004 19:58:32 -0300 Subject: popen2 Message-ID: <1078786712.404cfa9867f91@correo.cec.uchile.cl> Saludos a todos estoy intentando manejar tar con python para un pequeño sistema de backup que deja los archivos y las cintas en una base de datos...... bueno resulta que la cantidad de archivos puede ser más grande que la cinta así que uso la opcion -M para múltiples cintas...... el ejemplo siguiente permite mostrar el problema #!/usr/bin/env python import popen2 cmd='tar cfM /dev/fd0 postgresql-server-7.3.2-3.i386.rpm' po, pi, pe = popen2.popen3('cmd') pe.readline() por la salida de errores obtengo la petición de cambio de cinta pero el scrip no es capaz de entregar el valor ya que se queda esperando indefinidamente alguna idea...? gracias From ch3m4 en ch3m4.org Tue Mar 9 09:27:10 2004 From: ch3m4 en ch3m4.org (Chema Cortes) Date: Tue, 09 Mar 2004 09:27:10 +0100 Subject: Tar multicinta (era Re: popen2) In-Reply-To: <1078786712.404cfa9867f91@correo.cec.uchile.cl> References: <1078786712.404cfa9867f91@correo.cec.uchile.cl> Message-ID: joolivar en ing.uchile.cl escribió: > #!/usr/bin/env python > import popen2 > cmd='tar cfM /dev/fd0 postgresql-server-7.3.2-3.i386.rpm' > po, pi, pe = popen2.popen3('cmd') > pe.readline() > > por la salida de errores obtengo la petición de cambio de cinta pero > el scrip no es capaz de entregar el valor ya que se queda esperando > indefinidamente alguna idea...? Cuando sea, debes envia a la entrada ('pi') la pulsación de tecla que te pide para continuar, por ejemplo: pi.write('y\n') ¿Has probado el módulo 'tarfile'? En http://www.gustaebel.de/lars/pytar/ puedes ver un uso avanzado del tarfile. -- Res publica non dominetur From jcanto en hispasec.com Tue Mar 9 09:31:51 2004 From: jcanto en hispasec.com (Julio Canto) Date: Tue, 09 Mar 2004 09:31:51 +0100 Subject: Sobre POP + SSL In-Reply-To: References: <1078786712.404cfa9867f91@correo.cec.uchile.cl> Message-ID: <404D80F7.10100@hispasec.com> Buenas, Esta pregunta la mande en los dias en que la lista estaba un pelin perjudicada :D Queria utilizar poplib sobre un servidor con SSL. De momento he hecho pruebas utilizando stunnel de por medio, pero me gustaria no tener que depender de esa herramienta para poder hacer las conexiones. Sabeis de alguna libreria que me pueda bajar para dar ese soporte? He visto por ahi algunos añadidos que parecen como añadidos al archivo de poplib, pero la verdad es que no se como se utilizaban :? Un saludo y gracias por adelantado :) JC From o.merchan en terra.es Tue Mar 9 09:40:24 2004 From: o.merchan en terra.es (Oscar Merchan) Date: Tue, 9 Mar 2004 09:40:24 +0100 Subject: Tar multicinta (era Re: popen2) In-Reply-To: References: <1078786712.404cfa9867f91@correo.cec.uchile.cl> Message-ID: <20040309094024.405057ee.o.merchan@terra.es> On Tue, 09 Mar 2004 09:27:10 +0100 Chema Cortes wrote: Buenas. > joolivar en ing.uchile.cl escribió: > > > #!/usr/bin/env python > > import popen2 > > cmd='tar cfM /dev/fd0 postgresql-server-7.3.2-3.i386.rpm' > > po, pi, pe = popen2.popen3('cmd') > > pe.readline() > > > > por la salida de errores obtengo la petición de cambio de cinta pero > > el scrip no es capaz de entregar el valor ya que se queda esperando > > indefinidamente alguna idea...? > > Cuando sea, debes envia a la entrada ('pi') la pulsación de tecla que te > pide para continuar, por ejemplo: > > pi.write('y\n') > > > ¿Has probado el módulo 'tarfile'? > En http://www.gustaebel.de/lars/pytar/ puedes ver un uso avanzado del > tarfile. > Esta contestacion va para Chema, y para quien le interese. Hace unos dias escribi en la lista que tenia un problema de perdida de archivos con el modulo tarfile, con esto no estoy desanimando a Joolivar a que no lo utilice ni mucho menos, es mas se lo recomiendo ya que te da un mayor control sobre el tar, saber cuando terminara, etc ... ... ... Pues bien, despues de varios dias haciendo pruebas, enviando correos a la lista de python y al creador del tarfile, al final supe lo que pasaba. El modulo tarfile de python, pierde los enlaces duros que hallamos comprimido en un archivo, me esplico, en mi caso comprimi el direcorio /usr/bin/ a modo de copia de seguridad, junto a mas directorios. Luego me hice un programita con barra de progreso y todo, y cuando me funcionaba todo perfectamente, me di cuenta que me faltaban archivos. Pues despues de varios dias, ya pude ver lo que era, los enlaces duros, el tarfile los lee y te los puede mostrar por la salida standar pero no te lo escribe en el HD. Aqui teneis la respues del creador del modulo tarfile que me dio anoche cuando ya supe el problema .- [Oscar Merchan] > I have done everything what you have said to me, and i can see the problem. > > The problem gives it when I decompress hard link. Yes, that has been a known issue for a few weeks. I have uploaded a fixed version to the webpage today that should work for you. You can download it at: http://www.gustaebel.de/lars/tarfile/ If you're using Python 2.3, remember to put /usr/lib/python2.3/site-packages before /usr/lib/python2.3 in sys.path so the fixed version will be imported. Regards, Espero que esta informacion os sirva, yo voy a probarlo ahora mismo en cuanto le de al boton de enviar el correo :-D. Saludos, Oscar Merchan. From gema_alf en yahoo.es Tue Mar 9 13:07:24 2004 From: gema_alf en yahoo.es (=?iso-8859-1?q?Gema=20N=FA=F1ez=20Bl=E1zquez?=) Date: Tue, 9 Mar 2004 13:07:24 +0100 (CET) Subject: Libreria para manejar xml+xslt Message-ID: <20040309120724.21073.qmail@web60203.mail.yahoo.com> Hola a todos, escribo a la lista porque tengo una duda sobre que libreria usar para manejar xml+xslt. Quiero generar una pagina htm a partir de ficheros xml y xslt. Estoy usando la libreria 4Suite, pero no se si me recomendais que use otra mejor porque la mas moderna que he encontrado es para python 2.1 y yo estoy usando python 2.2.1 ¿sabeis si 4Suite, es un proyecto abandonado como ocurre con piddle? Como siempre muchas gracias por adelantado. ---------------------------------     Antivirus • Filtros antispam • 6 MB gratis     ¿Todavía no tienes un correo inteligente? From morillas en posta.unizar.es Tue Mar 9 15:17:18 2004 From: morillas en posta.unizar.es (luis miguel) Date: Tue, 09 Mar 2004 15:17:18 +0100 Subject: Libreria para manejar xml+xslt In-Reply-To: <20040309120724.21073.qmail@web60203.mail.yahoo.com> References: <20040309120724.21073.qmail@web60203.mail.yahoo.com> Message-ID: <1078840753.654.7.camel@guadalinex> El mar, 09-03-2004 a las 13:07, Gema Núñez Blázquez escribió: > Hola a todos, > escribo a la lista porque tengo una duda sobre que libreria usar para manejar xml+xslt. Quiero generar una pagina htm a partir de ficheros xml y xslt. > Estoy usando la libreria 4Suite, pero no se si me recomendais que use otra mejor porque la mas moderna que he encontrado es para python 2.1 y yo estoy usando python 2.2.1 > ¿sabeis si 4Suite, es un proyecto abandonado como ocurre con piddle? Abandonado?? No!!! Es uno de los proyectos con más desarrollo. Te recomiendo: * ftp://ftp.logilab.org/pub/talks/python-uk-2002.pdf Tutorial general sobre python + xml * http://uche.ogbuji.net/tech/akara/nodes/2003-01-01/4suite-section. Ayudas específicas sobre python-xml con 4suite. *http://uche.ogbuji.net/uche.ogbuji.net/tech/akara/?xslt=irc.xslt&show-raw=no&date=2003-12-23. Para la instalación de 4suite Un saludo -- Luis Miguel From morillas en posta.unizar.es Tue Mar 9 15:20:04 2004 From: morillas en posta.unizar.es (luis miguel) Date: Tue, 09 Mar 2004 15:20:04 +0100 Subject: Libreria para manejar xml+xslt In-Reply-To: <20040309120724.21073.qmail@web60203.mail.yahoo.com> References: <20040309120724.21073.qmail@web60203.mail.yahoo.com> Message-ID: <1078842003.654.15.camel@guadalinex> El mar, 09-03-2004 a las 13:07, Gema Núñez Blázquez escribió: > Hola a todos, > escribo a la lista porque tengo una duda sobre que libreria usar para manejar xml+xslt. Quiero generar una pagina htm a partir de ficheros xml y xslt. > Estoy usando la libreria 4Suite, pero no se si me recomendais que use otra mejor porque la mas moderna que he encontrado es para python 2.1 y yo estoy usando python 2.2.1 > ¿sabeis si 4Suite, es un proyecto abandonado como ocurre con piddle? > > Como siempre muchas gracias por adelantado. > Ah, se me olvidaba. Aquí tengo un proyecto en el que estoy trabajando: http://tldp.docbook-es.org Es un programa hecho con cherrypy, pero proceso el xml con 4suite. Para generar la documentación utilizo 3 procesadores xsl en paralelo :) Las fuentes del programa están en el cvs. Un saludo -- Luis Miguel From ch3m4 en ch3m4.org Tue Mar 9 14:39:03 2004 From: ch3m4 en ch3m4.org (Chema Cortes) Date: Tue, 09 Mar 2004 14:39:03 +0100 Subject: Sobre PythonCardPrototype Message-ID: He estado últimamente mirando el PythonCard para el prototipado de aplicaciones gráficas en wxPython. Aún tiene mucho que mejorar, pero resulta extraordinariamente sencillo para construir "prototipos" rápidos. Quisiera saber de alguna opinión sobre su uso en algún proyecto wxPython, si se puede aprovechar algo del prototipo hecho en pythoncard o si resulta, por contra, más conveniente desecharlo todo y volverlo a crear desde cero en wxPython. Me interesaría conocer cualquier experiencia al respecto. -- Res publica non dominetur From fheredero en topmusic.ch Tue Mar 9 17:32:44 2004 From: fheredero en topmusic.ch (=?iso-8859-1?Q?Fran=E7ois_Heredero_-_Top_Music_SA?=) Date: Tue, 9 Mar 2004 17:32:44 +0100 Subject: CGIXMLRPCRequestHandler y Python 2.2 In-Reply-To: <007401c402f3$7d6e8500$0100a8c0@servidor> References: <007401c402f3$7d6e8500$0100a8c0@servidor> Message-ID: > he cogido el SimpleXMLRPCServer.py, lo he renombrado (a > CGIReqHandler.py) y lo he probado bajo Python 2.2 y aparentemente > funciona bien. Pues si, y ademas sin renombrar ! > Si quieres probar tu mismo: ( > # == archiv pruebaCGIXMLRPC.py == > from CGIReqHandler import CGIXMLRPCRequestHandler Tambien funciona con : from SimpleXMLRPCServer import CGIXMLRPCRequestHandler Gracias Erny por tu ayuda François From dvilla en gmx.net Tue Mar 9 18:54:35 2004 From: dvilla en gmx.net (dvilla en gmx.net) Date: Tue, 9 Mar 2004 18:54:35 +0100 Subject: Libreria para manejar xml+xslt In-Reply-To: <20040309120724.21073.qmail@web60203.mail.yahoo.com> References: <20040309120724.21073.qmail@web60203.mail.yahoo.com> Message-ID: <20040309185435.3ea84e6e.dvilla@gmx.net> Hola: Yo utilizo libxml2 y libxslt. Si te interesa, los paquetes Debian correspondientes son libxml2-python2.3 y libxslt1-python2.3 (yo uso python2.3). Tuve algunos problemillas con el encoding porque no sé como abrir un XML con el encoding que elijas (me lo abre con UTF-8) pero puedes recodificar las cadenas a otro encoding sin problema (si alguien me ayuda con esto lo agradecería). A parte de eso resulta bastante sencillo de utilizar. [1] http://xmlsoft.org/python.html Saludos El Tue, 9 Mar 2004 13:07:24 +0100 (CET) Gema Núñez Blázquez escribió: > Hola a todos, > escribo a la lista porque tengo una duda sobre que libreria usar para manejar > xml+xslt. Quiero generar una pagina htm a partir de ficheros xml y xslt. Estoy > usando la libreria 4Suite, pero no se si me recomendais que use otra mejor > porque la mas moderna que he encontrado es para python 2.1 y yo estoy usando > python 2.2.1¿sabeis si 4Suite, es un proyecto abandonado como ocurre con > piddle? > > Como siempre muchas gracias por adelantado. > > > --------------------------------- > >     Antivirus _ Filtros antispam _ 6 MB gratis >     ¿Todavía no tienes un correo inteligente? > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From morillas en posta.unizar.es Tue Mar 9 20:26:45 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Tue, 9 Mar 2004 20:26:45 +0100 Subject: Libreria para manejar xml+xslt In-Reply-To: <20040309185435.3ea84e6e.dvilla@gmx.net> References: <20040309120724.21073.qmail@web60203.mail.yahoo.com> <20040309185435.3ea84e6e.dvilla@gmx.net> Message-ID: <20040309192645.GA1175@marmota> Asunto: Re: [Python-es] Libreria para manejar xml+xslt Fecha: mar, mar 09, 2004 at 06:54:35 +0100 Citando a dvilla en gmx.net (dvilla en gmx.net): > > Hola: > > Yo utilizo libxml2 y libxslt. Si te interesa, los paquetes Debian > correspondientes son libxml2-python2.3 y libxslt1-python2.3 (yo uso python2.3). > > Tuve algunos problemillas con el encoding porque no sé como abrir un XML con el > encoding que elijas (me lo abre con UTF-8) pero puedes recodificar las cadenas a > otro encoding sin problema (si alguien me ayuda con esto lo agradecería). A > parte de eso resulta bastante sencillo de utilizar. > No hablamos de esto ya antes?[1] A mí no me da problemas # ********* fichero: texto.xml **********
Caña de la maña Áéíóú
# ********* fin fichero ****************** >>> import libxml2 >>> doc=libxml2.parseFile('texto.xml') >>> doc.shellPrintNode() [1] http://listas.aditel.org/archivos/python-es/2003-November/003381.html -- lm From dvilla en gmx.net Tue Mar 9 20:43:37 2004 From: dvilla en gmx.net (dvilla en gmx.net) Date: Tue, 9 Mar 2004 20:43:37 +0100 Subject: Libreria para manejar xml+xslt In-Reply-To: <20040309192645.GA1175@marmota> References: <20040309120724.21073.qmail@web60203.mail.yahoo.com> <20040309185435.3ea84e6e.dvilla@gmx.net> <20040309192645.GA1175@marmota> Message-ID: <20040309204337.73a038ef.dvilla@gmx.net> Hola: Cierto, pero lo único 'decente' que he conseguí hacer fue basándome en la solución que tu mismo me diste [1] :-) [1] http://listas.aditel.org/archivos/python-es/2003-November/003466.html El Tue, 9 Mar 2004 20:26:45 +0100 luis miguel morillas escribió: > > Asunto: Re: [Python-es] Libreria para manejar xml+xslt > Fecha: mar, mar 09, 2004 at 06:54:35 +0100 > > > Citando a dvilla en gmx.net (dvilla en gmx.net): > > > > Hola: > > > > Yo utilizo libxml2 y libxslt. Si te interesa, los paquetes Debian > > correspondientes son libxml2-python2.3 y libxslt1-python2.3 (yo uso > > python2.3). > > > > Tuve algunos problemillas con el encoding porque no sé como abrir un XML con > > el encoding que elijas (me lo abre con UTF-8) pero puedes recodificar las > > cadenas a otro encoding sin problema (si alguien me ayuda con esto lo > > agradecería). A parte de eso resulta bastante sencillo de utilizar. > > > No hablamos de esto ya antes?[1] A mí no me da problemas > > # ********* fichero: texto.xml ********** > >
> Caña de la maña > Áéíóú >
> # ********* fin fichero ****************** > > > >>> import libxml2 > >>> doc=libxml2.parseFile('texto.xml') > >>> doc.shellPrintNode() > > [1] http://listas.aditel.org/archivos/python-es/2003-November/003381.html > > -- lm > From morillas en posta.unizar.es Tue Mar 9 23:39:15 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Tue, 9 Mar 2004 23:39:15 +0100 Subject: XML encoding. Era: Re: Libreria para manejar xml+xslt In-Reply-To: <20040309204337.73a038ef.dvilla@gmx.net> References: <20040309120724.21073.qmail@web60203.mail.yahoo.com> <20040309185435.3ea84e6e.dvilla@gmx.net> <20040309192645.GA1175@marmota> <20040309204337.73a038ef.dvilla@gmx.net> Message-ID: <20040309223915.GA2356@marmota> Asunto: Re: [Python-es] Libreria para manejar xml+xslt Fecha: mar, mar 09, 2004 at 08:43:37 +0100 Citando a dvilla en gmx.net (dvilla en gmx.net): > > Hola: > > Cierto, pero lo único 'decente' que he conseguí hacer fue basándome en la > solución que tu mismo me diste [1] :-) > Vaya!. Envía una nota a la lista de xml-sig [a]. Seguramente Daniel Veillard te dará una solución al problema. Yo no he utilizado casi libxml2. Un saludo, [a] http://mail.python.org/mailman/listinfo/xml-sig -- lm From aldo en gmc.dynip.com Wed Mar 10 01:27:42 2004 From: aldo en gmc.dynip.com (Aldo Hugo Vargas Rodriguez) Date: Tue, 09 Mar 2004 18:27:42 -0600 Subject: Definir Listas Globales Message-ID: <1078878462.26918.7.camel@sistemas.gmc.dynip.com> Hola es mi primer post pero tengo un problema. tengo como primera funcion, una que me carga los variables globales de un desarrollo que estoy haciendo pero me tope con un pequeño problema. Para valores enteros las varibales globales me las toma sin ningun inconveniente. Pero para la definicion de listas no los asigna como varibales globlales a menos que las defina dentro de la funcion que tengo que realizar su asignación es decir.. def uno: global uvta . . . uvta = [0,0,0] def dos: . . . uvta = [2L, 4.230001, 5.26] if __name__ == '__main__': dos() print uvta Pero no le asigna ningun valor a menos quen en dos() defina la varibale uvta como global A alguien le ha pasado esto... gracias de antemano. From aerd en retemail.es Wed Mar 10 02:09:45 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Wed, 10 Mar 2004 02:09:45 +0100 Subject: Definir Listas Globales References: <1078878462.26918.7.camel@sistemas.gmc.dynip.com> Message-ID: <002701c4063c$61964920$0100a8c0@servidor> Hola Te recomiendo que te leas bien el tutorial de Python, donde hace referencia a los espacios de nombres (Namespaces). Cuando haces asignaciones dentro de una función, a menos que dentro de esa misma función pongas el 'global' oportuno, siempre se usan variables globales: a=1 def func1(): a=2 # no establece la variable global a 2!!! def func2(): global a a=3 # sí establece la variable global Si haces una lectura desde una función, Python busca primero en el espacio local a la función y después en el espacio global, pero eso la lectura, no la escritura!!! Ten en cuenta, que lo único que haces es ligar una variable a una cosa que ya existe (los números) Cuidado con las listas y las demás estructuras mutables: lista=[1,2,3] def func(): lista.append(4) # en este caso, al no encontrar lista en el espacio local, lo localiza en el global. Después le aplica a ese objeto el método append con el argumento 4. Así que se ha modificado una lista al que apunta una variable global (del espacio global). Volviendo a tu ejemplo: No es bonito eso: def func1(): global lista lista=[1,2,3] def func2(): lista=['a','b','c'] Primero, si quieres acceder a esa lista desde los dos sitios, pon: lista=[] # ponlo al principio del programa def func1(): global lista # ligamos a la variable global a una lista diferente lista=[1,2,3] def func2(): global lista # lo tienes que poner de nuevo, para que Python sepa que # vas a hacer referencia de nuevo a una variable global lista=['a','b','c'] # liga otra lista diferente a var. global lista Además, es feo usar variables globales. Yo lo hago sólo algunas veces, al principio, para que un programa entero se comporte de una manera u otra (como los #define de C). Espero haberme exlicado. Erny ----- Original Message ----- From: "Aldo Hugo Vargas Rodriguez" To: Sent: Wednesday, March 10, 2004 1:27 AM Subject: [Python-es] Definir Listas Globales > Hola es mi primer post pero tengo un problema. > > tengo como primera funcion, una que me carga los variables globales de > un desarrollo que estoy haciendo pero me tope con un pequeño problema. > Para valores enteros las varibales globales me las toma sin ningun > inconveniente. Pero para la definicion de listas no los asigna como > varibales globlales a menos que las defina dentro de la funcion que > tengo que realizar su asignación es decir.. > > def uno: > global uvta > . > . > . > uvta = [0,0,0] > > def dos: > . > . > . > uvta = [2L, 4.230001, 5.26] > > if __name__ == '__main__': > dos() > print uvta > > Pero no le asigna ningun valor a menos quen en dos() defina la varibale > uvta como global > > A alguien le ha pasado esto... gracias de antemano. > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From acastro en ciberdroide.com Wed Mar 10 08:33:51 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Wed, 10 Mar 2004 08:33:51 +0100 (CET) Subject: Presentacion (Era Definir Listas Globales) In-Reply-To: <002701c4063c$61964920$0100a8c0@servidor> References: <002701c4063c$61964920$0100a8c0@servidor> Message-ID: Aprovecho para presentarme. Soy nuevo en la lista y empecé con python hace cosa de un més. Me ha encantado. Los lenguajes que más he usado son el C y el shell-script. He probado a lo largo de mi larga experiencia profesional una gran cantidad de lenguajes C++, Java, Perl,.. y no están mal pero tampoco me entusiasmaban. Por el contrario, me parece que python es una maravilla de lenguaje no solo por su potencia, sino por su legibilidad y dinamismo. Quizás la pega es que hay muchas librerías más o menos equivalentes y los esfuerzos por documentar todo eso se ven perjudicados. Sin buena documentación cuesta mucho dar los primeros pasos. Estoy ahora enfrascado con Tkinter, y con Tix. Acudo a http://www.python.org y a http://pyspanishdoc.sourceforge.net. Busco bibliografía y documentación. > Primero, si quieres acceder a esa lista desde los dos sitios, pon: > > lista=[] # ponlo al principio del programa > > def func1(): > global lista # ligamos a la variable global a una lista diferente > lista=[1,2,3] > > def func2(): > global lista # lo tienes que poner de nuevo, para que Python sepa que > # vas a hacer referencia de nuevo a una variable global > lista=['a','b','c'] # liga otra lista diferente a var. global lista > > > Además, es feo usar variables globales. Yo lo hago sólo algunas veces, al principio, para que un programa entero se comporte de una manera u otra (como los #define de C). > > Espero haberme exlicado. Yo tuve un problema de diseño recientemente en el cual la solución parecía pasar por usar variables globales entre determinadas funciones y se me ocurrió meter una clase con sus métodos dentro de una función. def funcionPrincipal(...): class ClaseInterna: __init__(self, ...): self.var1=... self.var2=... ....... self.funci1(...) ....... self.funci2(...) ....... def funci1(self, ...): ....... ...self.var1.... ...self.var2.... def funci2(self, ...): ....... ...self.var2.... ....... ....... ...self.var1.... # Lo único que hace funcionPrincipal() es instanciar una # clase que es la que asume toda la funcionalidad instclas=ClaseInterna(....) Por una parte self.var1, self.var1 serán compartidas por varias funciones pero no son globales al resto de la aplicación. La idea era que funcionPrincipal() era demasiado grande para hacerlo en una única funcion y parecía necesario la cooperacion de varias funciones que pompartieran variables globales. No me interesaba convertir funcionPrincipal() en una clase porque todo lo que hay dentro, puede y debe ser ignorado. Llevo poco tiempo usando python y no se si esta solución resulta elegante o no. Más bien me parece una solución algo rarita y por eso les consulto. Perdón por el tamaño del mensaje. -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From Andres.Moya en hispalinux.es Wed Mar 10 10:41:35 2004 From: Andres.Moya en hispalinux.es (Andres Moya) Date: Wed, 10 Mar 2004 10:41:35 +0100 Subject: Presentacion (Era Definir Listas Globales) In-Reply-To: References: Message-ID: <1078911695.2732.33.camel@cebollino.micasa.es> El mié, 10-03-2004 a las 08:33, Antonio Castro escribió: > Yo tuve un problema de diseño recientemente en el cual la solución > parecía pasar por usar variables globales entre determinadas funciones > y se me ocurrió meter una clase con sus métodos dentro de una función. > La idea era que funcionPrincipal() era demasiado grande para hacerlo > en una única funcion y parecía necesario la cooperacion de varias > funciones que pompartieran variables globales. Buf, esa solución a mí me parece más fea todavía :P Lo de las clases-función sólo es aconsejable en algunos casos particulares, pero en general contradice la teoría de orientación a objetos, que dice que un objeto es un tipo abstracto de datos. Este caso se puede solucionar de maneras mejores. Por ejemplo, usando un estilo procedural típico, lo más fácil es pasar esas variables como parámetro: def funcionPrincipal(...): var1 = ... var2 = ... fun1(var1, var2) def fun1(var1, var2): ... # Si la función modifica las variables, hay que devolverlas al # final con return (en python se pueden devolver varios valores) También es perfectamente válido hacer una clase con todo el conjunto. Si quieres que algo no sea visible, pues lo haces privado y ya está. Y si no quieres que desde fuera se tengan que ocupar de instanciar la clase, pues la haces "singleton", por ejemplo, haciendo todos los métodos estáticos: class MiClase(object): __var1 = ... __var2 = ... def funcionPrincipal(): MiClase.__var1 = ... MiClase.__var2 = ... MiClase.__funci1() funcionPrincipal = staticmethod(funcionPrincipal) def __funci1(): ...MiClase.__var1... __funci1 = staticmethod(__funci1) (Por cierto, no me gusta nada la sintaxis de Python para cosas como miembros privados o estáticos, creo que contradice la filosofía básica de hacer cosas sencillas y elegantes. A ver si se les ocurre algo para Python 3). Hay una tercera manera, incluso más orientada a objetos, que se puede hacer si var1 y var2 forman una estructura homogénea de datos (por ejemplo, en un sistema de simulación de naves a lo mejor var1 y var2 son las coordenadas y tamaño de una de las naves simuladas). En ese caso podemos crear una clase que contenga var1 y var2, y los métodos para operar con esos datos (por ejemplo, para saber la distancia a un sitio, moverse hacia un punto determinado, calcular la inercia...). Y luego escribimos la función principal que, posiblemente, por estar los cálculos "menudos" ahora dentro de la clase, ahora salga más corta e incluso pueda caber todo el algoritmo dentro de una única función. class Nave(object): def __init__(self, var1, var2): self.__var1 = var1 self.__var2 = var2 ... def metodo1(self): ... def funcionPrincipal(): n = Nave(var1 = ..., var2 = ...) ... n.metodo1() ... (si siguen haciendo falta varias funciones, pues pasamos la nave como parámetro :) -- Andres Moya Contra la guerra global permanente. Foro Social Mundial - Otro mundo es posible. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Wed Mar 10 14:26:40 2004 From: py en ch3m4.org (Chema Cortes) Date: Wed, 10 Mar 2004 14:26:40 +0100 Subject: Presentacion (Era Definir Listas Globales) In-Reply-To: <1078911695.2732.33.camel@cebollino.micasa.es> References: <1078911695.2732.33.camel@cebollino.micasa.es> Message-ID: <404F1790.2070009@ch3m4.org> Andres Moya escribió: >... Buff. Pienso que lo estáis viendo por el lado complicado. Para empezar, desde el python 2.1 existen los "nested_scopes" (que es más o menos lo que comentaba Erny). Cuando tenemos una función definida dentro de otra hay una reglas de localización de un nombre en los espacios de nombres. Por ejemplo, lo siguiente funciona bien: def f(): x,y=100,200 def g(): print x def h(): print y g() h() Cuando se buscan las variables 'x' e 'y' en las funciones g() y h(), como no las encuentran en sus variables locales buscan en la locales de la función f(). Esto se puede emplear para dar algunos parámetros comunes a todas las funciones, pero no sirve de nada si se quiere modificar alguno de estos parámetros. Antes de empezar con clases y métodos estáticos, o cosas más raras, una opción mejor es emplear "atributos de función". Una función es, en sí mismo, un objeto y como tal se le puede añadir cualquier atributo. Por ejemplo: def f(): f.x=100 def g(): print f.x g.x,f.x=f.x,200 def h(): print f.x print g.x g() h() Incluso se pueden "desanidar" las funciones y quedaría algo más "legible". ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From acastro en ciberdroide.com Wed Mar 10 14:33:15 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Wed, 10 Mar 2004 14:33:15 +0100 (CET) Subject: Presentacion (Era Definir Listas Globales) In-Reply-To: <1078911695.2732.33.camel@cebollino.micasa.es> References: <1078911695.2732.33.camel@cebollino.micasa.es> Message-ID: On Wed, 10 Mar 2004, Andres Moya wrote: > El mié, 10-03-2004 a las 08:33, Antonio Castro escribió: > > > Yo tuve un problema de diseño recientemente en el cual la solución > > parecía pasar por usar variables globales entre determinadas funciones > > y se me ocurrió meter una clase con sus métodos dentro de una función. > > > La idea era que funcionPrincipal() era demasiado grande para hacerlo > > en una única funcion y parecía necesario la cooperacion de varias > > funciones que pompartieran variables globales. > > Buf, esa solución a mí me parece más fea todavía :P Lo de las Según se me ocurría me pareció una solución rarita y me queda claro que a ti tambien te lo parece. ;-) > clases-función sólo es aconsejable en algunos casos particulares, pero No estoy seguro. Este podría ser precisamente el caso. > en general contradice la teoría de orientación a objetos, que dice que > un objeto es un tipo abstracto de datos. Eso lo puedo entender pero es que no se trataba de implementar un objeto sino una función. Aunque las cosas no son blancas o negras yo veo un objeto como algo que sirve para manejarlo y hacer cosas con él y una función como algo que básicamente hace algo bastante concreto. Claro podemos crear y usar una función X() de la forma siguiente: instanciaX=ClaseX() instanciaX.X() del instanciaX Pero si solo interesa usarlo como X() **podría** ser una opción meter dentro de la función el objeto para uso interno nada más. > Este caso se puede solucionar de maneras mejores. Por ejemplo, usando un > estilo procedural típico, lo más fácil es pasar esas variables como > parámetro: > > def funcionPrincipal(...): > var1 = ... > var2 = ... > fun1(var1, var2) > > def fun1(var1, var2): > ... # Si la función modifica las variables, hay que devolverlas al > # final con return (en python se pueden devolver varios valores) Tuve problemas para usarlo así. No recuerdo exactamente el motivo pero era cosa de las librerías que uso. self.funcionX(algo) debe ser recibido como def funcionX(self, algo) y cuando la funcionX es tuya no hay problema en adaptarla, pero cuando es la funcion de una librería que espera cierto número de argumentos, y si ese algo que quieres pasar debe ser manejado en alguna otra función, es cuando se me crea el problema. Bueno si alguien tiene curiosidad son unos cientos de líneas y es un módulo con utilidades de propósito general basadas en el uso de ventanas emergentes (popup_window). Tome la idea de algunos fuentes de Demos de Tkinter. (He visto ejemplos similares de varios autores) y lo he adaptado y ampliado . Usa Tkinter y Tix. Por cierto hay una parte que me da un error de Segmentation violation y lo malo es que casca cuando salgo de una función cerrando la ventana. Creo que alguno de los destructores internos de alguna clase de la librería debe tener algún bug, pero vey dificil saber donde está. Otro problema es que una ventana que usa ScrollText() empieza a vibrar si se intenta redimensionar y no tengo puesto enventos extraños que lo expliquen, así que es una interacción entre eventos de distintos widgets cuando varían su tamaño. Aquí el fallo puede ser mío pero no lo pillo. -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From Andres.Moya en hispalinux.es Wed Mar 10 14:58:57 2004 From: Andres.Moya en hispalinux.es (Andres Moya) Date: Wed, 10 Mar 2004 14:58:57 +0100 Subject: Presentacion (Era Definir Listas Globales) In-Reply-To: <404F1790.2070009@ch3m4.org> References: <1078911695.2732.33.camel@cebollino.micasa.es> <404F1790.2070009@ch3m4.org> Message-ID: <1078927136.4261.4.camel@cebollino.micasa.es> El mié, 10-03-2004 a las 14:26, Chema Cortes escribió: > Andres Moya escribió: > > >... > > > Buff. Pienso que lo estáis viendo por el lado complicado. > Argh. Pues qué curioso, pero a mí los métodos estáticos me parecen lo más natural del mundo, en cambio funciones anidadas y atributos de función me resultan de lo más bizarro :P Será que estoy muy influido por Meyer y el Eiffel, pero a mí hacerlo todo o casi todo con clases me resulta lo más sencillo del mundo, siempre y cuando te libres de paradigmas antiguos y el lenguaje lo favorezca (cosa que no ocurre exactamente con Python, lamentablemente, porque el resto del lenguaje es fabuloso) :( -- Andres Moya Contra la guerra global permanente. Foro Social Mundial - Otro mundo es posible. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From Andres.Moya en hispalinux.es Wed Mar 10 15:10:42 2004 From: Andres.Moya en hispalinux.es (Andres Moya) Date: Wed, 10 Mar 2004 15:10:42 +0100 Subject: Presentacion (Era Definir Listas Globales) In-Reply-To: References: Message-ID: <1078927841.4261.17.camel@cebollino.micasa.es> El mié, 10-03-2004 a las 14:33, Antonio Castro escribió: > On Wed, 10 Mar 2004, Andres Moya wrote: > > clases-función sólo es aconsejable en algunos casos particulares, pero > > No estoy seguro. Este podría ser precisamente el caso. Según la teoría que yo suelo aplicar, esos casos son cuando la función es también un dato por si mismo, por ejemplo, cuando hay que pasarla como parámetro a algún sitio. > > en general contradice la teoría de orientación a objetos, que dice que > > un objeto es un tipo abstracto de datos. > > Eso lo puedo entender pero es que no se trataba de implementar un objeto > sino una función. Aunque las cosas no son blancas o negras yo veo un > objeto como algo que sirve para manejarlo y hacer cosas con él y > una función como algo que básicamente hace algo bastante concreto. > > Claro podemos crear y usar una función X() de la forma siguiente: > > instanciaX=ClaseX() > instanciaX.X() > del instanciaX > > Pero si solo interesa usarlo como X() **podría** ser una opción > meter dentro de la función el objeto para uso interno nada más. Lo del singleton te lo he dicho precisamente por eso. Si las variables y las funciones son estáticas, te evitas tener que instanciar el objeto. Lo que tienes es una función normal y corriente, con unas variables y unas funciones auxiliares encapsuladas dentro de una clase. En el ejemplo que te mandé, la llamada sería: MiClase.funcionPrincipal() > > Este caso se puede solucionar de maneras mejores. Por ejemplo, usando un > > estilo procedural típico, lo más fácil es pasar esas variables como > > parámetro: > > > > def funcionPrincipal(...): > > var1 = ... > > var2 = ... > > fun1(var1, var2) > > > > def fun1(var1, var2): > > ... # Si la función modifica las variables, hay que devolverlas al > > # final con return (en python se pueden devolver varios valores) > > Tuve problemas para usarlo así. No recuerdo exactamente el motivo pero > era cosa de las librerías que uso. self.funcionX(algo) debe ser recibido > como def funcionX(self, algo) y cuando la funcionX es tuya no hay > problema en adaptarla, pero cuando es la funcion de una librería > que espera cierto número de argumentos, y si ese algo que quieres pasar > debe ser manejado en alguna otra función, es cuando se me crea el problema. ¿Y la tercera opción no te vale? Crear una clase que encapsule var1 y var2, junto con posiblemente algún método de acceso, y luego pasarla como parámetro desde la funcionPrincipal a las otras. De este modo las funciones auxiliares pueden cambiar var1 y var2 libremente, porque están dentro del objeto pasado. La verdad, es difícil dar soluciones más afinadas sin conocer nada del problema. Ya me ha entrado la curiosidad, ¿está visible tu código en algún sitio? (eso sí, no garantizo que tenga tiempo de mirarlo mucho) -- Andres Moya Contra la guerra global permanente. Foro Social Mundial - Otro mundo es posible. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Wed Mar 10 15:58:21 2004 From: py en ch3m4.org (Chema Cortes) Date: Wed, 10 Mar 2004 15:58:21 +0100 Subject: Presentacion (Era Definir Listas Globales) In-Reply-To: <1078927136.4261.4.camel@cebollino.micasa.es> References: <1078911695.2732.33.camel@cebollino.micasa.es> <404F1790.2070009@ch3m4.org> <1078927136.4261.4.camel@cebollino.micasa.es> Message-ID: <404F2D0D.4000100@ch3m4.org> Andres Moya escribió: > Será que estoy muy influido por Meyer y el Eiffel, pero a mí hacerlo > todo o casi todo con clases me resulta lo más sencillo del mundo, > siempre y cuando te libres de paradigmas antiguos y el lenguaje lo > favorezca (cosa que no ocurre exactamente con Python, lamentablemente, > porque el resto del lenguaje es fabuloso) :( El caso es que _casi_ se podría decir que python es en sí un paradigma que hace que cada cuál lo vea próximo a su modo de hacer las cosas, pero cuyo lema es, en definitiva, ser "Explícito, mejor que ímplícito". Por eso puede que no te guste parte de la sintaxis: hay que poner por explícito el "self" en los métodos de clase, y usar "wrappers" para "simular" métodos estáticos ó "por contrato" ("à la eiffel"). Yo no considero "antiguo" ningún paradigma. Python tiene la ventaja de poder ser moldeado por el programador para comportarse estrictamente según un paradigma: imperativo, procedural, declarativo, objetos, funcional, por eventos. Pero eso es algo que siempre dependerá del programador y no del python (es más bien una "actitud" del programador). No hay que olvidar que estamos hablando de un lenguaje que en sí carece de algo tan básico como es la declaración/definición de variables y estructuras, lo que implica que no podamos estar plenamente seguros de quién es el responsable de la creación y destrucción de los objetos que utiliza nuestra aplicación. Tan sólo sabemos cómo referenciarlos. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From acastro en ciberdroide.com Wed Mar 10 17:52:47 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Wed, 10 Mar 2004 17:52:47 +0100 (CET) Subject: Presentacion (Era Definir Listas Globales) In-Reply-To: <1078927841.4261.17.camel@cebollino.micasa.es> References: <1078927841.4261.17.camel@cebollino.micasa.es> Message-ID: On Wed, 10 Mar 2004, Andres Moya wrote: > La verdad, es difícil dar soluciones más afinadas sin conocer nada del > problema. Ya me ha entrado la curiosidad, ¿está visible tu código en > algún sitio? De momento no. :-( El módulo en cuestión forma parte de un proyecto personal pero puedo mandar el código a quien lo solicite (es GPL). Con la demo de prueba queda muy sencillito. Comprimido ocupa solo 4Ks. La parte a la que me refiero es una función ShowText() a la cual le pasas un texto y te abre una ventana con Tix.ScrolledText() y te permite visualizar y buscar en el texto. Si en el texto aparecen cosas del tipo: :Introduccion:intro: ...... ...... :Requisitos:intro.req: ...... ...... :Requistos Hardware:intro.req.hard: ...... ...... :Requistos Software:intro.req.soft: ...... Lo usará para crear un indice. Es lo que pienso usar para implementar unas páginas de ayuda. > (eso sí, no garantizo que tenga tiempo de mirarlo mucho) OK. No pierdo nada. En realidad vuestros comentarios me están resultando de gran utilidad. Lo puedo mandar por correo a quien le interese sin compromiso. Lo estupendo sería tener algun sitio donde se pudiera enviar pequeñas porciones de código acompañadas de un comentario a modo de pequeñas recetas o ejemplos. Gran parte de lo que estoy aprendiendo lo estoy aprendiendo de mirar código de ejemplos. -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From pachi en mmn-arquitectos.com Wed Mar 10 18:32:06 2004 From: pachi en mmn-arquitectos.com (Rafael Villar Burke) Date: Wed, 10 Mar 2004 18:32:06 +0100 Subject: Presentacion (Era Definir Listas Globales) In-Reply-To: References: Message-ID: <404F5116.9040202@mmn-arquitectos.com> Antonio Castro wrote: >Lo estupendo sería tener algun sitio donde se pudiera enviar >pequeñas porciones de código acompañadas de un comentario a >modo de pequeñas recetas o ejemplos. > >Gran parte de lo que estoy aprendiendo lo estoy aprendiendo de >mirar código de ejemplos. > > > Eso existe y está aquí: http://aspn.activestate.com/ASPN/Python/Cookbook/ me suena que había algo más por ahí en español, y alguna gente de la lista tiene también páginas con recetas. -- Pachi From lgs en sicem.biz Wed Mar 10 18:58:37 2004 From: lgs en sicem.biz (Lorenzo Gil Sanchez) Date: Wed, 10 Mar 2004 18:58:37 +0100 Subject: Anuncio: PyGrid 0.1.0 Message-ID: <1078941517.2262.30.camel@i8100> Hola a todos, Quería avisaros que ya está disponible la versión 0.1.0 (es la segunda versión pública) de PyGrid [1], un wrapper python de GtkGrid [2]. GtkGrid es un control (widget) para visualizar y editar datos en forma tabular, por ejemplo una tabla de una base de datos relacional. GtkGrid funciona en GTK+ 2.X y es un código bastante alfa aún. Tanto GtkGrid como PyGrid son LGPL. Si alguien quiere echarles un vistazo y comentarme sus impresiones le estaría muy agradecido. Un saludo Lorenzo Gil [1] http://www.sicem.biz/personal/lgs/projects/pygrid/view_project [2] http://www.sicem.biz/personal/lgs/projects/gtkgrid/view_project From zoso en demiurgo.org Wed Mar 10 19:08:12 2004 From: zoso en demiurgo.org (Esteban Manchado =?iso-8859-1?Q?Vel=E1zquez?=) Date: Wed, 10 Mar 2004 18:08:12 +0000 Subject: Presentacion (Era Definir Listas Globales) In-Reply-To: References: <1078911695.2732.33.camel@cebollino.micasa.es> Message-ID: <20040310180812.GB1018@velutha> On Wed, Mar 10, 2004 at 02:33:15PM +0100, Antonio Castro wrote: > [...] > Tuve problemas para usarlo así. No recuerdo exactamente el motivo pero > era cosa de las librerías que uso. self.funcionX(algo) debe ser recibido > como def funcionX(self, algo) y cuando la funcionX es tuya no hay > problema en adaptarla, pero cuando es la funcion de una librería > que espera cierto número de argumentos, y si ese algo que quieres pasar > debe ser manejado en alguna otra función, es cuando se me crea el problema. No he leído mucho el resto de la conversación, pero este detalle me llamó la atención, porque la primera vez que usé Python tuve este mismísimo problema :-( (¿estarás haciendo algo con Jabber?) Mi forma de resolverlo (lo de «mi» es un decir, porque pregunté en esta lista y me recomendaron la solución aquí, si no recuerdo mal) fue crear una pequeña función lambda, para adaptarla a la forma de la llamada que se esperaba. Además, tuve que usar un truco sucio por la falta de «cierres» de Python. Al final quedó algo así, me parece: self.metodo_lambda = lambda algo, s=self : s.metodo(algo) registraFuncion(self.metodo_lambda) (Escribo de memoria, no sé ahora si la sintaxis de lambda es así) La gracia del asunto es que con una pequeña función lambda puedes hacer un rápido adaptador de un método, para que se llame de otra manera. Sobre lo de usar la «s», es necesario porque tienes que llamar al self de cuando _defines_ la función lambda, no cuando la _llamas_. De ahí que no puedas usar «self» directamente (porque Python cogería el self del contexto donde finalmente se llamara a metodo_lambda), sino que tengas que pasar un parámetro «fantasma» con un valor por omisión. Como el valor por omisión se calcula al _definir_ la función lambda, obtienes lo que quieres. Espero haberme explicado. Saludos, -- Esteban Manchado Velázquez - http://www.demiurgo.org No software patents in Europe! - eurolinux.org - proinnova.hispalinux.es Join Amnesty International - http://www.amnesty.org/actnow From jcanto en hispasec.com Thu Mar 11 10:10:01 2004 From: jcanto en hispasec.com (Julio Canto) Date: Thu, 11 Mar 2004 10:10:01 +0100 Subject: Sobre adodbapi Message-ID: <40502CE9.1090907@hispasec.com> Buenas ( por decir algo:-( ), Me he bajado el adodbapi y lo he instalado, al igual que el SQLServer Destop... he mirado en la web de adodbapi a ver si venia algun ejemplo, pero no he visto nada... ¿Como hago para establecer la conexion con el servidor? ¿Ha tenido alguien alguna experiencia con esa combinacion? Un saludo, JC From sfaber en fecemd.org Thu Mar 11 12:24:02 2004 From: sfaber en fecemd.org (Sergi Faber) Date: Thu, 11 Mar 2004 12:24:02 +0100 Subject: Sobre adodbapi In-Reply-To: <40502CE9.1090907@hispasec.com> References: <40502CE9.1090907@hispasec.com> Message-ID: <20040311122402.08a0e8d4.sfaber@fecemd.org> On Thu, 11 Mar 2004 10:10:01 +0100 Julio Canto wrote: > Buenas ( por decir algo:-( ), Buenas, pero no hay palabras para expresar el sentimiento que tengo ahora mismo... > Me he bajado el adodbapi y lo he instalado, al igual que el SQLServer > Destop... he mirado en la web de adodbapi a ver si venia algun ejemplo, > pero no he visto nada... ¿Como hago para establecer la conexion con el > servidor? ¿Ha tenido alguien alguna experiencia con esa combinacion? > Un saludo, > JC Con adodbapi no tengo experiencia, pero un día, cansado de programar asp con VBScript, se me ocurrió probar la combinación asp +python y pude conectar bien con SQLServer. Te paso un ejemplo para ver si adaptándolo te puede servir de algo. Necesitas también las «Mark Hammond's win32all python for windows extensions» **** <%@ Language = Python %> <% import win32com.client objConn = win32com.client.Dispatch(r'ADODB.Connection') objConn.Open("Provider=SQLOLEDB; Data Source=el_servidor; Initial Catalog=base_de_datos; User Id=usuario; Password=contraseña;") objRS = win32com.client.Dispatch(r'ADODB.Recordset') SQLQuery="SELECT nombre, email FROM tabla_prueba" objRS.Open(SQLQuery, objConn) arrTabla=objRS.GetRows() # arrTabla queda como tupla ((nombre_1,nombre_2),(email_1,email_2)) objRS.Close() objRS = None objConn.Close() objConn = None total=len(arrTaula) # total registros devueltos %> **** No puedo decirte mucho más, espero que te sirva como alternativa si te corre prisa conectar con SQLServer. Saludos, -- Sergi Faber ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From erny en sicem.biz Thu Mar 11 12:53:56 2004 From: erny en sicem.biz (Ernesto Revilla) Date: Thu, 11 Mar 2004 12:53:56 +0100 Subject: Mini-consejos Tkinter Message-ID: <005501c4075f$8dea5a10$0100a8c0@servidor> Hola, como he oído algo de problemas con Tkinter, aquí unos pocos consejos: * si posible, efectuar todas las llamadas a Tkinter desde la misma hebra, y si posible desde la principal. El problema es que Tkinter no es thread-safe y eso hace que al efectuar determinadas llamadas, pueda dar un segmentation-fault. Así que no sirve, ejecutar el mainloop en una hebra, y realizar llamadas a Tkinter (como creación de ventanas, etc.) en otra hebra. * para actualizar un control periódicamente, usar la función after: self.root.after(100,self.mitareaperiodica) def mitareaperiodica(self, ...): ... self.root.after(100,self.mitareaperiodica) # programar de nuevo!!! * vale, el problema es que si hay algún proceso que tarda tiempo, deja la interfaz tiesa. En ese caso, es necesario realizar la otra tarea en una hebra separada. Ahora bien, ¿cómo intercomunicar el progreso de la otra tarea con la interfaz gráfica? Por ejemplo, mediante Queue (módulo Queue). La nueva hebra escribe, y la hebra principal saca (en su proceso periódico) información a visualizar en la interfaz (en plan productor-consumidor). En algunos casos, no casca. No me ha quedado muy claro, cómo y cuándo, y supongo que depende de la versión de Tkinter. * no realizar operaciones sobre controles y ventanas una vez terminado el mainloop. Si por lo que sea, alguna ventana se queda abierta, y el mainloop termina, e intentamos cerrar esa ventana, puede que casque. consultar las fuentes: http://www.pythonware.com/library/tkinter/introduction/index.htm http://www.nmt.edu/tcc/help/pubs/tkinter.pdf Erny From jcanto en hispasec.com Thu Mar 11 14:17:02 2004 From: jcanto en hispasec.com (Julio Canto) Date: Thu, 11 Mar 2004 14:17:02 +0100 Subject: Sobre adodbapi In-Reply-To: <20040311122402.08a0e8d4.sfaber@fecemd.org> References: <40502CE9.1090907@hispasec.com> <20040311122402.08a0e8d4.sfaber@fecemd.org> Message-ID: <405066CE.2000007@hispasec.com> Sergi Faber wrote: >Con adodbapi no tengo experiencia, pero un día, cansado de programar asp con VBScript, se me ocurrió probar la combinación asp +python y pude conectar bien con SQLServer. Te paso un ejemplo para ver si adaptándolo te puede servir de algo. Necesitas también las «Mark Hammond's win32all python for windows extensions» >[...] >No puedo decirte mucho más, espero que te sirva como alternativa si te corre prisa conectar con SQLServer. > >Saludos, > > > Muchas gracias por el consejo, en seguida me pongo a hacer pruebecillas. Un saludo, JC ------------ 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 11 14:22:20 2004 From: py en ch3m4.org (Chema Cortes) Date: Thu, 11 Mar 2004 14:22:20 +0100 Subject: Sobre adodbapi In-Reply-To: <40502CE9.1090907@hispasec.com> References: <40502CE9.1090907@hispasec.com> Message-ID: <4050680C.5050602@ch3m4.org> Julio Canto escribió: > Buenas ( por decir algo:-( ), Desde luego, un día triste que costará olvidar. > Me he bajado el adodbapi y lo he instalado, al igual que el SQLServer > Destop... he mirado en la web de adodbapi a ver si venia algun ejemplo, > pero no he visto nada... ¿Como hago para establecer la conexion con el > servidor? ¿Ha tenido alguien alguna experiencia con esa combinacion? El adodbapi implementa la DP-API2. Lo único que te hará falta es la cadena de conexión que puedes consultar para MSDE y otros en http://www.connectstrings.com (MSDE es a todos los efectos un MS SQL Server). Te pongo un ejemplillo: import adodbapi con=adodbapi.connect("Driver={SQL Server};Server=localhost;Trusted_Connection=True;Uid=usuario;Pwd=") cur=con.cursor() cur.execute("create database PRUEBA") cur.execute("create table lista (nombre char(50),tel integer);") cur.execute("insert into lista values ('Pepe',100);") cur.execute("select * from lista;") cur.fechall() cur.close() con.close() Si tienes algún problema, considera que en win2k y winXP se utiliza unicode para las cadenas de texto. From i02alvep en uco.es Thu Mar 11 16:44:09 2004 From: i02alvep en uco.es (i02alvep en uco.es) Date: Thu, 11 Mar 2004 16:44:09 +0100 (MET) Subject: Servicio WEB en python Message-ID: <1079019849.4050894954d55@www.uco.es> Hola, soy nuevo en esta lista de correo, el motivo de mi suscripcion es que tengo que realizar el proyecto de fin de carrera (Estudio Ingeniería Técnica en Informática de Sistemas) sobre servicios web y python utilizando el protocolo soap. Pido ayuda para poder realizar un pequeño ejemplo de servicio web de forma cliente-servidor en el servidor apache que me he instalado en mi ordenador. Es el pequeño empujón que me falta para poder comenzar la realización de mi proyecto. Necesito ver un pequeño ejemplo funcionando y así ya poder yo desarrollar mi objetivo. Todo esto lo voy a realizar bajo windows xp. Saludos y espero vuestra ayuda. ############################################################################### ###################### Pedro Javier Aljaro Velasco #################### ###################### I. T. Informática de Sistemas #################### ###################### i02alvep en uco.es #################### ############################################################################### From jhamil_mercado en yahoo.com Thu Mar 11 17:11:47 2004 From: jhamil_mercado en yahoo.com (=?iso-8859-1?q?Jhamil=20Mercado?=) Date: Thu, 11 Mar 2004 17:11:47 +0100 (CET) Subject: Python + bases de datos In-Reply-To: <1079019849.4050894954d55@www.uco.es> References: <1079019849.4050894954d55@www.uco.es> Message-ID: <20040311161147.35283.qmail@web21003.mail.yahoo.com> Hola , desearia saber como implementar un sitio web que tenga paginas dinamicas con bases de datos en base a python, que herramientas necesito para esto? alguno de vosotros tiene algun ejemplillo o algun tutorial al respecto? salu2 Jhamil ___________________________________________________ Yahoo! Messenger - Nueva versión GRATIS Super Webcam, voz, caritas animadas, y más... http://messenger.yahoo.es From rapto en arrakis.es Thu Mar 11 20:57:01 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Thu, 11 Mar 2004 20:57:01 +0100 Subject: Python + bases de datos In-Reply-To: <20040311161147.35283.qmail@web21003.mail.yahoo.com> References: <20040311161147.35283.qmail@web21003.mail.yahoo.com> Message-ID: <4050C48D.3090103@arrakis.es> Mira en http://es.tldp.org/Presentaciones/200103hispalinux/sanchez/html/hl2001py.html Debe de ser muy sencillo pasar a una BD relacional. Jhamil Mercado escribió: >Hola , desearia saber como implementar un sitio web >que tenga paginas dinamicas con bases de datos en base >a python, que herramientas necesito para esto? > >alguno de vosotros tiene algun ejemplillo o algun >tutorial al respecto? > > >salu2 > > > >Jhamil > > > From acastro en ciberdroide.com Fri Mar 12 08:12:39 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Fri, 12 Mar 2004 08:12:39 +0100 (CET) Subject: Mini-consejos Tkinter In-Reply-To: <005501c4075f$8dea5a10$0100a8c0@servidor> References: <005501c4075f$8dea5a10$0100a8c0@servidor> Message-ID: On Thu, 11 Mar 2004, Ernesto Revilla wrote: > Hola, > > como he oído algo de problemas con Tkinter, aquí unos pocos consejos: > > * si posible, efectuar todas las llamadas a Tkinter desde la misma hebra, Agradezco la información. lo tendré en cuenta pero en realidad nada de lo que indicas parece ser la causa. No hago programacion multihilos. Habro una ventana con Toplevel() y en ella uso un ScrolledText. Un boton de finalizacion actualiza la variable 'var' que hace que waitvar(var) termine y se continua cerrando la ventana pero todo se gestiona con el unico mainloop() de la aplicación. def ShowText(master, title, doctext): class ShowTextApp: def __init__(self, master, title, doctext): self.doctext=doctext self.TextPointer=1.0 self.w = Toplevel(master, class_='Dialog') self.w.title(title) self.w.iconname('Dialog') self.win=ScrolledText(self.w, scrollbar='auto') ..... ..... self.w.waitvar(var) self.w.destroy() # <- ??? aleatoriamente. Violación de segmento > http://www.pythonware.com/library/tkinter/introduction/index.htm > http://www.nmt.edu/tcc/help/pubs/tkinter.pdf Gracias me lo miraré. > Erny Soy de Madrid y vivo en Madrid. Un abarazo solidario a familiares y amigos de las victimas de la barbarie terrorista. -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From aerd en retemail.es Fri Mar 12 03:38:42 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Fri, 12 Mar 2004 03:38:42 +0100 Subject: Servicio WEB en python References: <1079019849.4050894954d55@www.uco.es> Message-ID: <001d01c407db$42d42c50$0100a8c0@servidor> Hola, te mando lo que yo preparé para HispaLinux 2003. Las transparencias están en formato OpenOffice 1.0 Presentaciones, lo del zip es en formato Word. Espero que te sirva, Erny ----- Original Message ----- From: To: Sent: Thursday, March 11, 2004 4:44 PM Subject: [Python-es] Servicio WEB en python > Hola, soy nuevo en esta lista de correo, el motivo de mi suscripcion es que > tengo que realizar el proyecto de fin de carrera (Estudio Ingeniería Técnica > en Informática de Sistemas) sobre servicios web y python utilizando el > protocolo soap. Pido ayuda para poder realizar un pequeño ejemplo de servicio > web de forma cliente-servidor en el servidor apache que me he instalado en mi > ordenador. Es el pequeño empujón que me falta para poder comenzar la > realización de mi proyecto. Necesito ver un pequeño ejemplo funcionando y así > ya poder yo desarrollar mi objetivo. Todo esto lo voy a realizar bajo windows > xp. > > Saludos y espero vuestra ayuda. > > ############################################################################### > ###################### Pedro Javier Aljaro Velasco #################### > ###################### I. T. Informática de Sistemas #################### > ###################### i02alvep en uco.es #################### > ############################################################################### > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > --- Comprobado sin virus. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.618 / Virus Database: 397 - Release Date: 09/03/04 ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From aerd en retemail.es Fri Mar 12 14:59:42 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Fri, 12 Mar 2004 14:59:42 +0100 Subject: Servicio WEB en python References: <1079019849.4050894954d55@www.uco.es> <001d01c407db$42d42c50$0100a8c0@servidor> Message-ID: <001901c4083a$45c5c1d0$0100a8c0@servidor> Había enviado este mensaje, pero con el tamaño era demasiado grande. Así, lo os lo hago disponible en: http://www.sicem.biz/personal/erny/python/transparenciasTallerWebServices.sxi y http://www.sicem.biz/personal/erny/python/SeminarioPythonWebservicesHispaLinux2003.doc Saludos, Erny ----- Original Message ----- From: "Ernesto Revilla" To: "La lista de python en castellano" Sent: Friday, March 12, 2004 3:38 AM Subject: Re: [Python-es] Servicio WEB en python Hola, te mando lo que yo preparé para HispaLinux 2003. Las transparencias están en formato OpenOffice 1.0 Presentaciones, lo del zip es en formato Word. Espero que te sirva, Erny ----- Original Message ----- From: To: Sent: Thursday, March 11, 2004 4:44 PM Subject: [Python-es] Servicio WEB en python > Hola, soy nuevo en esta lista de correo, el motivo de mi suscripcion es que > tengo que realizar el proyecto de fin de carrera (Estudio Ingeniería Técnica > en Informática de Sistemas) sobre servicios web y python utilizando el > protocolo soap. Pido ayuda para poder realizar un pequeño ejemplo de servicio > web de forma cliente-servidor en el servidor apache que me he instalado en mi > ordenador. Es el pequeño empujón que me falta para poder comenzar la > realización de mi proyecto. Necesito ver un pequeño ejemplo funcionando y así > ya poder yo desarrollar mi objetivo. Todo esto lo voy a realizar bajo windows > xp. > > Saludos y espero vuestra ayuda. > > ############################################################################### > ###################### Pedro Javier Aljaro Velasco #################### > ###################### I. T. Informática de Sistemas #################### > ###################### i02alvep en uco.es #################### > ############################################################################### > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > --- Comprobado sin virus. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.618 / Virus Database: 397 - Release Date: 09/03/04 -------------------------------------------------------------------------------- _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From acastro en ciberdroide.com Fri Mar 12 17:40:13 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Fri, 12 Mar 2004 17:40:13 +0100 (CET) Subject: =?iso-8859-1?q?Solucionado_Violaci=F3n_de_segmento_u?= =?iso-8859-1?q?sando_ScrolledText?= In-Reply-To: References: Message-ID: On Fri, 12 Mar 2004, Antonio Castro wrote: > On Thu, 11 Mar 2004, Ernesto Revilla wrote: > Bueno pues ya he localizado el fallo. Tanto la vibración de las ventanas cuando se varia el tamaño de alguna como la violacion de segmento parecen deberse a que hacía una operación pack() inadecuada sobre el componente text de ScrolledText(). > > Hola, > > > > como he oído algo de problemas con Tkinter, aquí unos pocos consejos: > > > > * si posible, efectuar todas las llamadas a Tkinter desde la misma hebra, > > Agradezco la información. lo tendré en cuenta pero en realidad nada > de lo que indicas parece ser la causa. No hago programacion multihilos. > Habro una ventana con Toplevel() y en ella uso un ScrolledText. Un > boton de finalizacion actualiza la variable 'var' que hace que > waitvar(var) termine y se continua cerrando la ventana pero todo > se gestiona con el unico mainloop() de la aplicación. > > def ShowText(master, title, doctext): > class ShowTextApp: > def __init__(self, master, title, doctext): > self.doctext=doctext > self.TextPointer=1.0 > self.w = Toplevel(master, class_='Dialog') > self.w.title(title) > self.w.iconname('Dialog') > self.win=ScrolledText(self.w, scrollbar='auto') ...... self.win.text.pack() # <<== Esto Sobraba self.win.pack() > ..... > ..... > self.w.waitvar(var) > self.w.destroy() # <- ??? aleatoriamente. Violación de segmento Lo suyo sería que al intentar hacer self.win.text.pack() esa operación diera un error en ese momento y no permitir una situación inestable y más dificil de depurar. -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From rapto en arrakis.es Sat Mar 13 11:36:26 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Sat, 13 Mar 2004 11:36:26 +0100 Subject: Solucionado =?ISO-8859-1?Q?Violaci=F3n_de_se?= =?ISO-8859-1?Q?gmento_usando_ScrolledText?= In-Reply-To: References: Message-ID: <4052E42A.8070907@arrakis.es> Antonio Castro escribió: > [...] > >Lo suyo sería que al intentar hacer self.win.text.pack() esa operación >diera un error en ese momento y no permitir una situación inestable >y más dificil de depurar. > > > > Pues ya sabes cómo funciona esto, a notificar el bug al autor. Y si le das la posible solución, miel sobre hojuelas... :-) From i02alvep en uco.es Sat Mar 13 12:43:55 2004 From: i02alvep en uco.es (i02alvep en uco.es) Date: Sat, 13 Mar 2004 12:43:55 +0100 (MET) Subject: Fallo con xmlrpclib In-Reply-To: <001901c4083a$45c5c1d0$0100a8c0@servidor> References: <1079019849.4050894954d55@www.uco.es> <001d01c407db$42d42c50$0100a8c0@servidor> <001901c4083a$45c5c1d0$0100a8c0@servidor> Message-ID: <1079178235.4052f3fb653bc@www.uco.es> Hola, tengo una pregunta: es que estoy probando los ejemplos que vienen en los archivos que me dijo Ernesto Revilla sobre el seminario Python-Webservices Hispalinux 2003 y me da un fallo en el siguiente ejemplo: from xmlrpclib import Server server=ServerProxy("http://betty.userland.com") server.examples.getStateName(10) el fallo que me da es el siguiente: Traceback (most recent call last): File "xmlrpc.py", line 2, in ? server=ServerProxy("http://betty.userland.com") NameError: name 'ServerProxy' is not defined He instalado la librería xmlrcplib-1.0.1 en windows. Espero vuestra ayuda para solucionar este error y poder empezar a hacer mis servicios web. Gracias de antemano. Saludos ############################################################################### ###################### Pedro Javier Aljaro Velasco #################### ###################### I. T. Informática de Sistemas #################### ###################### i02alvep en uco.es #################### ############################################################################### From fheredero en topmusic.ch Sat Mar 13 13:36:43 2004 From: fheredero en topmusic.ch (=?iso-8859-1?Q?Fran=E7ois_Heredero_-_Top_Music_SA?=) Date: Sat, 13 Mar 2004 13:36:43 +0100 Subject: Fallo con xmlrpclib In-Reply-To: <1079178235.4052f3fb653bc@www.uco.es> References: <1079178235.4052f3fb653bc@www.uco.es> Message-ID: > from xmlrpclib import Server > server=ServerProxy("http://betty.userland.com") > server.examples.getStateName(10) > > el fallo que me da es el siguiente: > > Traceback (most recent call last): > File "xmlrpc.py", line 2, in ? > server=ServerProxy("http://betty.userland.com") > NameError: name 'ServerProxy' is not defined server=Server("http://betty.userland.com") tal vez... François From i02alvep en uco.es Sat Mar 13 13:53:44 2004 From: i02alvep en uco.es (i02alvep en uco.es) Date: Sat, 13 Mar 2004 13:53:44 +0100 (MET) Subject: Fallo con xmlrpclib In-Reply-To: References: Message-ID: <1079182424.40530458c3cf3@www.uco.es> Muchas gracias ya me funciona, ahi era donde estaba el fallo Mensaje citado por: François Heredero - Top Music SA : > > from xmlrpclib import Server > > server=ServerProxy("http://betty.userland.com") > > server.examples.getStateName(10) > > > > el fallo que me da es el siguiente: > > > > Traceback (most recent call last): > > File "xmlrpc.py", line 2, in ? > > server=ServerProxy("http://betty.userland.com") > > NameError: name 'ServerProxy' is not defined > > server=Server("http://betty.userland.com") > tal vez... > > François > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ############################################################################### ###################### Pedro Javier Aljaro Velasco #################### ###################### I. T. Informática de Sistemas #################### ###################### i02alvep en uco.es #################### ############################################################################### From danilistas en micorreo.cai.es Sat Mar 13 20:02:12 2004 From: danilistas en micorreo.cai.es (dani) Date: Sat, 13 Mar 2004 20:02:12 +0100 Subject: hacer EXE In-Reply-To: <001901c4083a$45c5c1d0$0100a8c0@servidor> References: <1079019849.4050894954d55@www.uco.es> <001d01c407db$42d42c50$0100a8c0@servidor> <001901c4083a$45c5c1d0$0100a8c0@servidor> Message-ID: <200403132002120093.02036807@smtp.micorreo.cai.es> Saludos a la lista, tengo una pregunta: existe la posibilidad de hacer un archivo EXE para windows, para poder ejecutar aplicaciones Python, sin q tenga q estar instalado Python en el equipo?? Gracias. PD: Puedo buscar de alguna manera en los historiales de mensajes de la lista? por si mi pregunta ha sido ya respuesta. From cescd en yahoo.com.mx Sat Mar 13 20:13:52 2004 From: cescd en yahoo.com.mx (=?iso-8859-1?q?Cesar=20Cardenas=20Desales?=) Date: Sat, 13 Mar 2004 13:13:52 -0600 (CST) Subject: hacer EXE In-Reply-To: <200403132002120093.02036807@smtp.micorreo.cai.es> References: <200403132002120093.02036807@smtp.micorreo.cai.es> Message-ID: <20040313191352.91885.qmail@web13907.mail.yahoo.com> http://starship.python.net/crew/theller/py2exe/ suerte! --- dani escribió: > Saludos a la lista, > > tengo una pregunta: existe la posibilidad de hacer > un archivo EXE para windows, para poder ejecutar > aplicaciones Python, sin q tenga q estar instalado > Python en el equipo?? > > Gracias. > > PD: Puedo buscar de alguna manera en los historiales > de mensajes de la lista? por si mi pregunta ha sido > ya respuesta. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es _________________________________________________________ Do You Yahoo!? La mejor conexión a internet y 25MB extra a tu correo por $100 al mes. http://net.yahoo.com.mx From se05216 en salleURL.edu Sun Mar 14 04:04:59 2004 From: se05216 en salleURL.edu (Christal Berengena Moreno) Date: Sun, 14 Mar 2004 04:04:59 +0100 (CET) Subject: eliminar una clase en python In-Reply-To: <20040313191352.91885.qmail@web13907.mail.yahoo.com> References: <20040313191352.91885.qmail@web13907.mail.yahoo.com> Message-ID: Hola a todos! Os explico mi problema... tengo generada una interfaz de python con tkinter y pmw bajo mandrake 9.1 y en una de mis opciones, modifico un listado de nombres que repercuten en varios sitios... Para cada tipo de pantalla he generado una clase diferente que las llamo desde la clase global (la clase "interfaz"). El problems es que esta lista que modifico implican bastantes cambios en el resto de las clases de mi interfaz, por lo que me seria mas rapido eliminarlas todas y llamar de nuevo al constructor de la clase interfaz... pero el problema es que python no me permite eliminar un objeto de la clase y no puedo hacer lo que yo queria... que es generarlos de nuevo... he estado buscando por las webs de python, tutoriales, etc. Pero en todos lo unico que encuentro es la generacion de clases, pero nada de eliminarlas... y claro, no puedo iguala el objeto de la clase a nada porque eso no me elimina los frames que ya tenia generados y que he de cambiar... La unica solucion que tengo es cambiarlo todo manualmente?? Espero que podais ayudarme y haberme explicado mas o menos bien! Saludos a todos y gracias de antemano... Christal ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Sun Mar 14 10:28:19 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Sun, 14 Mar 2004 10:28:19 +0100 Subject: eliminar una clase en python In-Reply-To: References: <20040313191352.91885.qmail@web13907.mail.yahoo.com> Message-ID: <405425B3.80600@arrakis.es> No sé si te valdrá, pero en Python se pueden hacer salvajadas como esta: class base: def __init__(self,valor): self.atributo=valor class a(base): def prueba(self): print self.atributo, ' de la clase a' class b(base): def prueba(self): print self.atributo, ' de la clase b' ob=a('creado como a') ob.prueba() ob.__class__=b ob.prueba() ## creado como a de la clase a creado como a de la clase b Puedes borrar la variable a, pero la clase no desaparece hasta que no desaparezcan todas las referencias a ella, como ocurre con cualquier objeto de Python. En concreto, todos los objetos de una clase mantienen una referencia a ella. Christal Berengena Moreno escribió: >Hola a todos! > >Os explico mi problema... tengo generada una interfaz de python con >tkinter y pmw bajo mandrake 9.1 y en una de mis opciones, modifico un >listado de nombres que repercuten en varios sitios... Para cada tipo de >pantalla he generado una clase diferente que las llamo desde la clase >global (la clase "interfaz"). El problems es que esta lista que modifico >implican bastantes cambios en el resto de las clases de mi interfaz, por >lo que me seria mas rapido eliminarlas todas y llamar de nuevo al >constructor de la clase interfaz... pero el problema es que python no me >permite eliminar un objeto de la clase y no puedo hacer lo que yo >queria... que es generarlos de nuevo... he estado buscando por las webs de >python, tutoriales, etc. Pero en todos lo unico que encuentro es la >generacion de clases, pero nada de eliminarlas... y claro, no puedo >iguala el objeto de la clase a nada porque eso no me elimina los frames >que ya tenia generados y que he de cambiar... La unica solucion que tengo >es cambiarlo todo manualmente?? > >Espero que podais ayudarme y haberme explicado mas o menos bien! >Saludos a todos y gracias de antemano... >Christal > > From acastro en ciberdroide.com Sun Mar 14 14:25:20 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Sun, 14 Mar 2004 14:25:20 +0100 (CET) Subject: Solucionado =?ISO-8859-1?Q?Violaci=F3n_de_se?= =?ISO-8859-1?Q?gmento_usando_ScrolledText?= In-Reply-To: <4052E42A.8070907@arrakis.es> References: <4052E42A.8070907@arrakis.es> Message-ID: On Sat, 13 Mar 2004, Marcos Sánchez Provencio wrote: > Antonio Castro escribió: > > > [...] > > > >Lo suyo sería que al intentar hacer self.win.text.pack() esa operación > >diera un error en ese momento y no permitir una situación inestable > >y más dificil de depurar. > > > Pues ya sabes cómo funciona esto, a notificar el bug al autor. Y si le > das la posible solución, miel sobre hojuelas... :-) En Tix.py figura: Sudhir Shenoy (sshenoy en gol.com), Dec. 1995. Le haré llegar un ejemplito de tamaño reducido pero ScrolledText hereda la clase Text de la librería Tkinter que no se quien es el autor. -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From py en ch3m4.org Mon Mar 15 10:30:05 2004 From: py en ch3m4.org (Chema Cortes) Date: Mon, 15 Mar 2004 10:30:05 +0100 Subject: Solucionado =?ISO-8859-1?Q?Violaci=F3n_de_se?= =?ISO-8859-1?Q?gmento_usando_ScrolledText?= In-Reply-To: References: Message-ID: <4055779D.2060505@ch3m4.org> Antonio Castro escribió: > Le haré llegar un ejemplito de tamaño reducido pero ScrolledText hereda > la clase Text de la librería Tkinter que no se quien es el autor. Todos lo bugs relacionados con python se controlan desde el "tracker" en sourceforge: http://sourceforge.net/tracker/?group_id=5470 Desde ahí mismo también podrías enviar el parche si sabes cómo arreglar el fallo en el código. From py en ch3m4.org Mon Mar 15 11:04:11 2004 From: py en ch3m4.org (Chema Cortes) Date: Mon, 15 Mar 2004 11:04:11 +0100 Subject: eliminar una clase en python In-Reply-To: References: <20040313191352.91885.qmail@web13907.mail.yahoo.com> Message-ID: <40557F9B.6040905@ch3m4.org> Christal Berengena Moreno escribió: > Os explico mi problema... tengo generada una interfaz de python con >... No me ha quedado claro cuál es el problema. Creo que lo que pretendes es cambiar la "superclase" en tiempo de ejecución. No tengo claro si hablas de "interfaz" como una superclase de la que derivan las otras clases. Puede que la solución de la "transmutación" que te indica Marcos te valga. Aquí te pongo otra solución que, igual, te resulta más simple de entender: class Super(object): def info(self): print "Primera implementación" class A(Super): pass a=A() a.info() # -> "Primera implementación" def info(self): print "Segunda implementación" Super.info=info a.info() # -> "Segunda implementación" Aún se puede complicar mucho más, pero habría que conocer mejor el problema. From i02alvep en uco.es Mon Mar 15 12:42:33 2004 From: i02alvep en uco.es (i02alvep en uco.es) Date: Mon, 15 Mar 2004 12:42:33 +0100 (MET) Subject: problema con distutils.core Message-ID: <1079350953.405596a9bb2a4@www.uco.es> Hola, tengo un problema cuando en linux intento instalar algun módulo que necesito, ya que al poner el python setup.py install o python setup.py build sale el siguiente mensaje de error: Traceback (most recent call last): File "setup.py", line 1, in ? from distutils.core import setup ImportError: No module named distutils.core No se lo que significa, lo que unico q comprendo es q no tengo el distutils.core Como podría solucionar esto? Espero vuestra ayuda. Saludos y Gracias de antemano ############################################################################### ###################### Pedro Javier Aljaro Velasco #################### ###################### I. T. Informática de Sistemas #################### ###################### i02alvep en uco.es #################### ############################################################################### From morillas en posta.unizar.es Mon Mar 15 14:25:11 2004 From: morillas en posta.unizar.es (luis miguel) Date: Mon, 15 Mar 2004 14:25:11 +0100 Subject: problema con distutils.core In-Reply-To: <1079350953.405596a9bb2a4@www.uco.es> References: <1079350953.405596a9bb2a4@www.uco.es> Message-ID: <1079357110.3855.1.camel@guadalinex> El lun, 15-03-2004 a las 12:42, i02alvep en uco.es escribió: > Hola, tengo un problema cuando en linux intento instalar algun módulo que > necesito, ya que al poner el python setup.py install o python setup.py build > sale el siguiente mensaje de error: > > Traceback (most recent call last): > File "setup.py", line 1, in ? > from distutils.core import setup > ImportError: No module named distutils.core > > No se lo que significa, lo que unico q comprendo es q no tengo el distutils.core > tienes que instalar distutils, en debian # apt-get install python2.3-dev > Como podría solucionar esto? Espero vuestra ayuda. > > Saludos y Gracias de antemano > > ############################################################################### > ###################### Pedro Javier Aljaro Velasco #################### > ###################### I. T. Informática de Sistemas #################### > ###################### i02alvep en uco.es #################### > ############################################################################### > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Mon Mar 15 13:34:55 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Mon, 15 Mar 2004 13:34:55 +0100 Subject: problema con distutils.core In-Reply-To: <1079350953.405596a9bb2a4@www.uco.es> References: <1079350953.405596a9bb2a4@www.uco.es> Message-ID: <4055A2EF.6090406@arrakis.es> En debian, tienes que instalar el paquete python-dev. Me imagino que la solución será similar en otras ditribuciones/SOs. i02alvep en uco.es wrote: >Hola, tengo un problema cuando en linux intento instalar algun módulo que >necesito, ya que al poner el python setup.py install o python setup.py build >sale el siguiente mensaje de error: > >Traceback (most recent call last): > File "setup.py", line 1, in ? > from distutils.core import setup >ImportError: No module named distutils.core > >No se lo que significa, lo que unico q comprendo es q no tengo el distutils.core > >Como podría solucionar esto? Espero vuestra ayuda. > >Saludos y Gracias de antemano > >############################################################################### >###################### Pedro Javier Aljaro Velasco #################### >###################### I. T. Informática de Sistemas #################### >###################### i02alvep en uco.es #################### >############################################################################### >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > From py en ch3m4.org Mon Mar 15 14:34:31 2004 From: py en ch3m4.org (Chema Cortes) Date: Mon, 15 Mar 2004 14:34:31 +0100 Subject: problema con distutils.core In-Reply-To: <4055A2EF.6090406@arrakis.es> References: <1079350953.405596a9bb2a4@www.uco.es> <4055A2EF.6090406@arrakis.es> Message-ID: <4055B0E7.7050802@ch3m4.org> Marcos Sánchez Provencio escribió: > En debian, tienes que instalar el paquete python-dev. Me imagino que la > solución será similar en otras ditribuciones/SOs. Normalmente, suele ser así. En SuSE9 el paquete se llama 'python-devel', pero he comprobado que en las actualizaciones se olvidan de incluir las 'distutils'. En estos casos, lo más recomendable es instalar python directamente desde los fuentes. From i02alvep en uco.es Mon Mar 15 15:06:22 2004 From: i02alvep en uco.es (i02alvep en uco.es) Date: Mon, 15 Mar 2004 15:06:22 +0100 (MET) Subject: Problema con web services y soap Message-ID: <1079359582.4055b85e6c0a9@www.uco.es> Hola, tengo un problema al intentar ejecutar los ejemplos que vienen en las Transparencias del Taller de Web Services (Ernesto Revilla). Estoy intentando hacer un ejemplillo de servicio web. El siguiente script lo tengo ubicado en mi servidor apache: from SOAPpy import SOAPServer def echo1(arg): return arg + arg def echo2(arg): return arg * arg server = SOAPServer(('localhost', 8008)) server.registerFunction(echo1,"espacio1","echo") server.registerFunction(echo2,"espacio2","echo") server.serve_forever() y luego intento ejecutar el siguiente script: from SOAPpy import SOAPProxy s=SOAPProxy("http://localhost:8008") s._ns('espacio1').echo('hola') y esto ultimo me devuelve el siguiente error: Traceback (most recent call last): File "", line 1, in ? s._ns('espacio1').echo('Hola') File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 421, in __call__ return self.__r_call(*args, **kw) File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 443, in __r_call self.__hd, self.__ma) File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 347, in __call p, attrs = parseSOAPRPC(r, attrs = 1) File "C:\python22\Lib\site-packages\SOAPpy\Parser.py", line 1006, in parseSOAPRPC t = _parseSOAP(xml_str, rules = rules) File "C:\python22\Lib\site-packages\SOAPpy\Parser.py", line 988, in _parseSOAP raise e SAXParseException: http://www.w3.org/TR/html4/loose.dtd:31:2: error in processing external entity reference Me gustaría saber donde está el fallo o si tengo que cambiar algo en el archivo httpd.conf de apache para poder ejecutar. Saludos y Gracias de antemano ############################################################################### ###################### Pedro Javier Aljaro Velasco #################### ###################### I. T. Informática de Sistemas #################### ###################### i02alvep en uco.es #################### ############################################################################### From jranabal en defensa.cl Mon Mar 15 16:25:09 2004 From: jranabal en defensa.cl (Juan Rodrigo =?iso-8859-1?Q?Anabal=F3n?=) Date: Mon, 15 Mar 2004 11:25:09 -0400 Subject: VB y Python Message-ID: <6.0.1.1.1.20040315112035.03911450@200.11.68.134> Hola amigos. Soy nuevo en la lista y he ingresado a ella porque quiero empezar un desarrolo en Python. La duda que tengo es si existe la posibilidad de integrar varios programas ya existentes desarrollados en Visual Basic, la idea es unir todos eso programas en uno solo sobre una plataforma con OpenBSD, según lo que he investigado python responde a esta necesidad, claro que se integra mejor con C/C++ ¿alguien a integrado o embebido sistemas Microsoft con Python? ¿alguien trabaja con Python en OpenBSD?, o tal vez sea posible embeber un programa echo en Python y luego incluirlo en el programa padre echo en VB. En VB se que se puede tener acceso a BD en otras plataformas, pero el problema es la integración del software, cualquier comentario es bien recibido. Gracias. Saludos a todos. Rodrigo. From aerd en retemail.es Mon Mar 15 17:32:15 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Mon, 15 Mar 2004 17:32:15 +0100 Subject: eliminar una clase en python References: <20040313191352.91885.qmail@web13907.mail.yahoo.com> Message-ID: <003701c40aab$16371310$0100a8c0@servidor> Yo no me enterado de nada. Espero que la respuesta de Marcos de haya valido. De lo contrario, pon tu idea en código (un poco). Se puede conseguir la relectura de un módulo con reload, pero los objetos creados están asociados a la antigua definición de la clase (he entendido que en Ruby eso no es así). Se puede crear nuevas clases, mediante metaclases o simplemente escribiendo a un archivo la nueva clase, y después realizar algún eval, o execfile. Se pueden borrar atributos con delattr. Erny ----- Original Message ----- From: "Christal Berengena Moreno" To: "La lista de python en castellano" Sent: Sunday, March 14, 2004 4:04 AM Subject: [Python-es] eliminar una clase en python > > Hola a todos! > > Os explico mi problema... tengo generada una interfaz de python con > tkinter y pmw bajo mandrake 9.1 y en una de mis opciones, modifico un > listado de nombres que repercuten en varios sitios... Para cada tipo de > pantalla he generado una clase diferente que las llamo desde la clase > global (la clase "interfaz"). El problems es que esta lista que modifico > implican bastantes cambios en el resto de las clases de mi interfaz, por > lo que me seria mas rapido eliminarlas todas y llamar de nuevo al > constructor de la clase interfaz... pero el problema es que python no me > permite eliminar un objeto de la clase y no puedo hacer lo que yo > queria... que es generarlos de nuevo... he estado buscando por las webs de > python, tutoriales, etc. Pero en todos lo unico que encuentro es la > generacion de clases, pero nada de eliminarlas... y claro, no puedo > iguala el objeto de la clase a nada porque eso no me elimina los frames > que ya tenia generados y que he de cambiar... La unica solucion que tengo > es cambiarlo todo manualmente?? > > Espero que podais ayudarme y haberme explicado mas o menos bien! > Saludos a todos y gracias de antemano... > Christal > -------------------------------------------------------------------------------- _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From aerd en retemail.es Mon Mar 15 17:46:56 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Mon, 15 Mar 2004 17:46:56 +0100 Subject: Problema con web services y soap References: <1079359582.4055b85e6c0a9@www.uco.es> Message-ID: <005201c40aad$22585210$0100a8c0@servidor> Hola, como ves del ejemplo, no se está usando apache para nada. Es Python que crea un servidor SOAP en el puerto 8008. No tengo ni idea del error, que además está dando una excepción sobre algo de html4. ¿Puedes indicar qué versión de Python y qué versión de SOAPpy estás usando? Con Python 2.2 y SOAPpy 0.10.2 me funciona bien el ejemplo. Saludos, Erny ----- Original Message ----- From: To: Sent: Monday, March 15, 2004 3:06 PM Subject: [Python-es] Problema con web services y soap > Hola, tengo un problema al intentar ejecutar los ejemplos que vienen en las > Transparencias del Taller de Web Services (Ernesto Revilla). Estoy intentando > hacer un ejemplillo de servicio web. El siguiente script lo tengo ubicado en > mi servidor apache: > > from SOAPpy import SOAPServer > def echo1(arg): > return arg + arg > > def echo2(arg): > return arg * arg > > server = SOAPServer(('localhost', 8008)) > server.registerFunction(echo1,"espacio1","echo") > server.registerFunction(echo2,"espacio2","echo") > server.serve_forever() > > y luego intento ejecutar el siguiente script: > > from SOAPpy import SOAPProxy > s=SOAPProxy("http://localhost:8008") > s._ns('espacio1').echo('hola') > > y esto ultimo me devuelve el siguiente error: > > Traceback (most recent call last): > File "", line 1, in ? > s._ns('espacio1').echo('Hola') > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 421, in __call__ > return self.__r_call(*args, **kw) > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 443, in __r_call > self.__hd, self.__ma) > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 347, in __call > p, attrs = parseSOAPRPC(r, attrs = 1) > File "C:\python22\Lib\site-packages\SOAPpy\Parser.py", line 1006, in > parseSOAPRPC > t = _parseSOAP(xml_str, rules = rules) > File "C:\python22\Lib\site-packages\SOAPpy\Parser.py", line 988, in > _parseSOAP > raise e > SAXParseException: http://www.w3.org/TR/html4/loose.dtd:31:2: error in > processing external entity reference > > Me gustaría saber donde está el fallo o si tengo que cambiar algo en el > archivo httpd.conf de apache para poder ejecutar. > > Saludos y Gracias de antemano > > > ############################################################################### > ###################### Pedro Javier Aljaro Velasco #################### > ###################### I. T. Informática de Sistemas #################### > ###################### i02alvep en uco.es #################### > ############################################################################### > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From i02alvep en uco.es Mon Mar 15 17:46:44 2004 From: i02alvep en uco.es (i02alvep en uco.es) Date: Mon, 15 Mar 2004 17:46:44 +0100 (MET) Subject: Problema con web services y soap In-Reply-To: <005201c40aad$22585210$0100a8c0@servidor> References: <1079359582.4055b85e6c0a9@www.uco.es> <005201c40aad$22585210$0100a8c0@servidor> Message-ID: <1079369204.4055ddf468e4c@www.uco.es> Estoy usando Python 2.2 y SOAPpy 0.11.3. El problema es que yo quiero poder ubicar los servicios web en mi servidor apache (aquí es donde ubicaría los scripts servidores) y poder llamarlos a ellos desde cualquier ordenador ejecutando el script cliente. ¿Hay alguna forma de hacer esto? Saludos Mensaje citado por: Ernesto Revilla : > Hola, > > como ves del ejemplo, no se está usando apache para nada. Es Python que > crea un servidor SOAP en el puerto 8008. No tengo ni idea del error, que > además está dando una excepción sobre algo de html4. ¿Puedes indicar qué > versión de Python y qué versión de SOAPpy estás usando? Con Python 2.2 y > SOAPpy 0.10.2 me funciona bien el ejemplo. > > Saludos, Erny > > ----- Original Message ----- > From: > To: > Sent: Monday, March 15, 2004 3:06 PM > Subject: [Python-es] Problema con web services y soap > > > > Hola, tengo un problema al intentar ejecutar los ejemplos que vienen > en las > > Transparencias del Taller de Web Services (Ernesto Revilla). Estoy > intentando > > hacer un ejemplillo de servicio web. El siguiente script lo tengo > ubicado en > > mi servidor apache: > > > > from SOAPpy import SOAPServer > > def echo1(arg): > > return arg + arg > > > > def echo2(arg): > > return arg * arg > > > > server = SOAPServer(('localhost', 8008)) > > server.registerFunction(echo1,"espacio1","echo") > > server.registerFunction(echo2,"espacio2","echo") > > server.serve_forever() > > > > y luego intento ejecutar el siguiente script: > > > > from SOAPpy import SOAPProxy > > s=SOAPProxy("http://localhost:8008") > > s._ns('espacio1').echo('hola') > > > > y esto ultimo me devuelve el siguiente error: > > > > Traceback (most recent call last): > > File "", line 1, in ? > > s._ns('espacio1').echo('Hola') > > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 421, in > __call__ > > return self.__r_call(*args, **kw) > > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 443, in > __r_call > > self.__hd, self.__ma) > > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 347, in > __call > > p, attrs = parseSOAPRPC(r, attrs = 1) > > File "C:\python22\Lib\site-packages\SOAPpy\Parser.py", line 1006, in > > > parseSOAPRPC > > t = _parseSOAP(xml_str, rules = rules) > > File "C:\python22\Lib\site-packages\SOAPpy\Parser.py", line 988, in > > > _parseSOAP > > raise e > > SAXParseException: http://www.w3.org/TR/html4/loose.dtd:31:2: error in > > > processing external entity reference > > > > Me gustaría saber donde está el fallo o si tengo que cambiar algo en > el > > archivo httpd.conf de apache para poder ejecutar. > > > > Saludos y Gracias de antemano > > > > > > > ############################################################################### > > ###################### Pedro Javier Aljaro Velasco > #################### > > ###################### I. T. Informática de Sistemas > #################### > > ###################### i02alvep en uco.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 > ############################################################################### ###################### Pedro Javier Aljaro Velasco #################### ###################### I. T. Informática de Sistemas #################### ###################### i02alvep en uco.es #################### ############################################################################### From py en ch3m4.org Mon Mar 15 17:47:40 2004 From: py en ch3m4.org (Chema Cortes) Date: Mon, 15 Mar 2004 17:47:40 +0100 Subject: Programacion orientada a eventos (un estudio practico) Message-ID: <4055DE2C.7010405@ch3m4.org> He estado estudiando el paradigma de la "programación orientada a eventos" y cómo implementarlo desde python, y os expongo aquí mis resultados: Para los que conozcáis VB (a nivel medio-avanzado) sabréis que se pueden crear nuevos "eventos" a los que asociar "oyentes ("Listeners") que los escuchan y procesan. Esto es, más o menos, parecido a la programación de eventos que tiene cualquier interface gráfico. La ventaja de este paradigma es que permite desacoplar la parte que genera los eventos de la parte que los escucha, de modo que es muy fácil hacer trozos de código independientes que funcionen en paralelo (normalmente multihilo) que responden simultáneamente a un mismo evento. El problema que encontraba para implementar este paradigma es el conocido en python de que por guardar las referencias de los objetos, el objeto siempre estaba "vivo" y nunca era borrado por el recolector de basura, con lo que se hacía imposible obtener un desacople completo entre "eventos" y "oyentes". Este problema es bastante corriente en python (posiblemente, muchos de los errores "extraños" con toolkits gráficos como el Tkinter provenga de estos objetos "siempre-vivos"). Para evitar este problema se introdujeron las "referencias débiles" ("weakrefs"). Estas son una referencias que, como indica su propio nombre, no fuerzan a que el objeto esté siempre presente. Esto se consigue obligando a acceder a él a través de una indirección (mirar la documentación del módulo "weakref"). De todo esto he creado el siguiente programilla de ejemplo donde aplico la programación orienta a eventos. Cualquier comentario será bienvenido: #!/usr/bin/env python # -*- encoding: iso8859-15 -*- #Demostración de programación orientada a eventos # #La técnica emplea "referencias débiles" (weakref) #con lo que al saltar un evento no hay problema si #el objeto oyente (listener) ya no existe import weakref class Listener(object): def DoEvent(self,evt):pass class Event(object): def __init__(self,name,listeners=None): self.name=name self.listeners=[] if listeners: self.Register(listeners) def Register(self,lst): #quitamos morralla (referencias inválidas) self.listeners=[l for l in self.listeners if l()!=None] if isinstance(lst,Listener): self.listeners.append(weakref.ref(lst)) elif isinstance(lst,(list,tuple)): L=[weakref.ref(l) for l in lst if isinstance(l,Listener)] self.listeners.extend(L) def Cancel(self,lst): l=weakref.ref(lst) if l in self.listeners: self.listeners.remove(l) def CancelAll(self): self.listeners=[] def Raise(self): for lst in self.listeners: ref=lst() #weakref handle if ref: ref.DoEvent(self) if __name__=="__main__": class MyListener(Listener): def __init__(self,name): self.name=name def DoEvent(self,evt): print "\tOyente '%s' escuchando evento '%s'" % \ (self.name,evt.name) l1=MyListener("Primero") l2=MyListener("Segundo") alarm=Event("Alarma", (l1,l2)) #alternativamente podríamos haber puesto #~ alarm.Register(l1) #~ alarm.Register(l2) print "LANZANDO PRIMER EVENTO..." alarm.Raise() #borramos el segundo escucha. #normalmente se suele cancelar con: # alarm.Cancel(l2) del l2 print "LANZANDO SEGUNDO EVENTO..." alarm.Raise() #cancelamos todas las escuchas alarm.CancelAll() print "LANZANDO TERCER EVENTO..." alarm.Raise() #no hace nada, por no existir oyentes ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From aerd en retemail.es Mon Mar 15 17:58:30 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Mon, 15 Mar 2004 17:58:30 +0100 Subject: VB y Python References: <6.0.1.1.1.20040315112035.03911450@200.11.68.134> Message-ID: <005701c40aae$bf844340$0100a8c0@servidor> Hola bajo Windows se suele utilizar COM (DCOM, COM, etc.). Si tienes instaladas las extensiones win32all, por ejemplo, para acceder a Access: from win32com.client import Dispatch access=Dispatch("Access.Application") access.OpenCurrentDatabase("c:/mibasededatos.mdb") access.Visible=1 Con Python (win32all) puedes escribir tanto servidores como clientes COM. es decir, si tu aplicación VB puede comportarse como servidor COM será fácil. Llevar VB a OpenBSD supongo que será más difícil (a menos que uses .NET y el compilador de VB.NET que hay en el proyecto mono (www.go-mono.org) Para acceder desde OpenBSD al VB en una máquina Windows, tendrás que construir un puente. Quizá podrías usar Pyro (pyro.sf.net) o alguno de esos frameworks, para pasar (Proxies) objetos (remotos) a OpenBSD. Erny ----- Original Message ----- From: "Juan Rodrigo Anabalón" To: Sent: Monday, March 15, 2004 4:25 PM Subject: [Python-es] VB y Python Hola amigos. Soy nuevo en la lista y he ingresado a ella porque quiero empezar un desarrolo en Python. La duda que tengo es si existe la posibilidad de integrar varios programas ya existentes desarrollados en Visual Basic, la idea es unir todos eso programas en uno solo sobre una plataforma con OpenBSD, según lo que he investigado python responde a esta necesidad, claro que se integra mejor con C/C++ ¿alguien a integrado o embebido sistemas Microsoft con Python? ¿alguien trabaja con Python en OpenBSD?, o tal vez sea posible embeber un programa echo en Python y luego incluirlo en el programa padre echo en VB. En VB se que se puede tener acceso a BD en otras plataformas, pero el problema es la integración del software, cualquier comentario es bien recibido. Gracias. Saludos a todos. Rodrigo. _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From aerd en retemail.es Mon Mar 15 18:01:57 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Mon, 15 Mar 2004 18:01:57 +0100 Subject: Problema con web services y soap References: <1079359582.4055b85e6c0a9@www.uco.es><005201c40aad$22585210$0100a8c0@servidor> <1079369204.4055ddf468e4c@www.uco.es> Message-ID: <005c01c40aaf$3bdb9f60$0100a8c0@servidor> Hola, Por supuesto puedes en la misma máquina correr Apache (habitualmente en puertos 80 o 8080) y en otro puerto (ej. 8008) un servidor SOAP. Creo que también puedes poner el servidor SOAP detrás de Apache, pero ahora mismo no sé cómo se hace. Con respecto a la versión de SOAP que estás usando, no lo he probado. Cuando tenga tiempo para probarlo, te puedo decir más. Erny ----- Original Message ----- From: To: "La lista de python en castellano" Sent: Monday, March 15, 2004 5:46 PM Subject: Re: [Python-es] Problema con web services y soap > Estoy usando Python 2.2 y SOAPpy 0.11.3. El problema es que yo quiero poder > ubicar los servicios web en mi servidor apache (aquí es donde ubicaría los > scripts servidores) y poder llamarlos a ellos desde cualquier ordenador > ejecutando el script cliente. ¿Hay alguna forma de hacer esto? > > Saludos > > > > > Mensaje citado por: Ernesto Revilla : > > > Hola, > > > > como ves del ejemplo, no se está usando apache para nada. Es Python que > > crea un servidor SOAP en el puerto 8008. No tengo ni idea del error, que > > además está dando una excepción sobre algo de html4. ¿Puedes indicar qué > > versión de Python y qué versión de SOAPpy estás usando? Con Python 2.2 y > > SOAPpy 0.10.2 me funciona bien el ejemplo. > > > > Saludos, Erny > > > > ----- Original Message ----- > > From: > > To: > > Sent: Monday, March 15, 2004 3:06 PM > > Subject: [Python-es] Problema con web services y soap > > > > > > > Hola, tengo un problema al intentar ejecutar los ejemplos que vienen > > en las > > > Transparencias del Taller de Web Services (Ernesto Revilla). Estoy > > intentando > > > hacer un ejemplillo de servicio web. El siguiente script lo tengo > > ubicado en > > > mi servidor apache: > > > > > > from SOAPpy import SOAPServer > > > def echo1(arg): > > > return arg + arg > > > > > > def echo2(arg): > > > return arg * arg > > > > > > server = SOAPServer(('localhost', 8008)) > > > server.registerFunction(echo1,"espacio1","echo") > > > server.registerFunction(echo2,"espacio2","echo") > > > server.serve_forever() > > > > > > y luego intento ejecutar el siguiente script: > > > > > > from SOAPpy import SOAPProxy > > > s=SOAPProxy("http://localhost:8008") > > > s._ns('espacio1').echo('hola') > > > > > > y esto ultimo me devuelve el siguiente error: > > > > > > Traceback (most recent call last): > > > File "", line 1, in ? > > > s._ns('espacio1').echo('Hola') > > > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 421, in > > __call__ > > > return self.__r_call(*args, **kw) > > > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 443, in > > __r_call > > > self.__hd, self.__ma) > > > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 347, in > > __call > > > p, attrs = parseSOAPRPC(r, attrs = 1) > > > File "C:\python22\Lib\site-packages\SOAPpy\Parser.py", line 1006, in > > > > > parseSOAPRPC > > > t = _parseSOAP(xml_str, rules = rules) > > > File "C:\python22\Lib\site-packages\SOAPpy\Parser.py", line 988, in > > > > > _parseSOAP > > > raise e > > > SAXParseException: http://www.w3.org/TR/html4/loose.dtd:31:2: error in > > > > > processing external entity reference > > > > > > Me gustaría saber donde está el fallo o si tengo que cambiar algo en > > el > > > archivo httpd.conf de apache para poder ejecutar. > > > > > > Saludos y Gracias de antemano > > > > > > > > > > > > ############################################################################### > > > ###################### Pedro Javier Aljaro Velasco > > #################### > > > ###################### I. T. Informática de Sistemas > > #################### > > > ###################### i02alvep en uco.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 > > > > > > ############################################################################### > ###################### Pedro Javier Aljaro Velasco #################### > ###################### I. T. Informática de Sistemas #################### > ###################### i02alvep en uco.es #################### > ############################################################################### > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Mon Mar 15 18:21:37 2004 From: py en ch3m4.org (Chema Cortes) Date: Mon, 15 Mar 2004 18:21:37 +0100 Subject: VB y Python In-Reply-To: <6.0.1.1.1.20040315112035.03911450@200.11.68.134> References: <6.0.1.1.1.20040315112035.03911450@200.11.68.134> Message-ID: <4055E621.6000802@ch3m4.org> Juan Rodrigo Anabalón escribió: > Soy nuevo en la lista y he ingresado a ella porque quiero empezar un > desarrolo en Python. > La duda que tengo es si existe la posibilidad de integrar varios > programas ya existentes desarrollados en Visual Basic, la idea es unir > todos eso programas en uno solo sobre una plataforma con OpenBSD, según > lo que he investigado python responde a esta necesidad, claro que se > integra mejor con C/C++ ¿alguien a integrado o embebido sistemas > Microsoft con Python? ¿alguien trabaja con Python en OpenBSD?, o tal vez > sea posible embeber un programa echo en Python y luego incluirlo en el > programa padre echo en VB. Como premisa, todo lo que tengas en VB lo puedes hacer en Python (al 99.99%) gracias a la extensión win32 para python: COM, ADO, ODBC,...y cualquier base de datos típicas en windows (jet/mdb, dbf, sql server,...). El paso de VB a python es bastante sencillo, mucho más fácil que pasarse a .Net ó java. Puedes encontrar ayudas como el PythonCard (http://pythoncard.sf.net) ó el vb2py (http://vb2py.sf.net). Pero por lo que entiendo, lo que quieres es ejecutar python en el OpenBSD y ejecutarlo desde VB en windows. Tienes varias alternativas, pero quizás la más "ad-hoc" sería utilizar SOAP (mírate el hilo sobre el tema que hay en la lista). Otra posibilidad es ejecutar ActiveX hechos en VB desde python. Con el wxPython (http://www.wxPython.org) para windows podrás ver en la demo algunos ejemplos. Y por último, llamar a python desde VB no lo tengo muy claro (prefiero convertir todo a python). Yo lo haría montando un servidor web con cherrypy (http://www.cherrypy.org) y acceder a través de http; pero lo más adecuado parece ser utilizando el pythonwin (que es algo más que un editor) actuando como servidor COM (tienes un ejemplo en http://www.hps1.demon.co.uk/users/andy/pyvb/). From morillas en posta.unizar.es Mon Mar 15 18:47:05 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Mon, 15 Mar 2004 18:47:05 +0100 Subject: Problema con web services y soap In-Reply-To: <1079359582.4055b85e6c0a9@www.uco.es> References: <1079359582.4055b85e6c0a9@www.uco.es> Message-ID: <20040315174705.GA882@marmota> Asunto: [Python-es] Problema con web services y soap Fecha: lun, mar 15, 2004 at 03:06:22 +0100 Citando a i02alvep en uco.es (i02alvep en uco.es): > Hola, tengo un problema al intentar ejecutar los ejemplos que vienen en las > Transparencias del Taller de Web Services (Ernesto Revilla). Estoy intentando > hacer un ejemplillo de servicio web. El siguiente script lo tengo ubicado en > mi servidor apache: > > from SOAPpy import SOAPServer > def echo1(arg): > return arg + arg > > def echo2(arg): > return arg * arg > > server = SOAPServer(('localhost', 8008)) > server.registerFunction(echo1,"espacio1","echo") > server.registerFunction(echo2,"espacio2","echo") > server.serve_forever() > > y luego intento ejecutar el siguiente script: > > from SOAPpy import SOAPProxy > s=SOAPProxy("http://localhost:8008") > s._ns('espacio1').echo('hola') > > y esto ultimo me devuelve el siguiente error: > > Traceback (most recent call last): > File "", line 1, in ? > s._ns('espacio1').echo('Hola') > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 421, in __call__ > return self.__r_call(*args, **kw) > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 443, in __r_call > self.__hd, self.__ma) > File "C:\python22\Lib\site-packages\SOAPpy\Client.py", line 347, in __call > p, attrs = parseSOAPRPC(r, attrs = 1) > File "C:\python22\Lib\site-packages\SOAPpy\Parser.py", line 1006, in > parseSOAPRPC > t = _parseSOAP(xml_str, rules = rules) > File "C:\python22\Lib\site-packages\SOAPpy\Parser.py", line 988, in > _parseSOAP > raise e > SAXParseException: http://www.w3.org/TR/html4/loose.dtd:31:2: error in > processing external entity reference > > Me gustaría saber donde está el fallo o si tengo que cambiar algo en el > archivo httpd.conf de apache para poder ejecutar. Supongo que tienes el equipo conectado a internet y que puedes ver http://www.w3.org/TR/html4/loose.dtd ¿no? -- lm From pylorca en yahoo.com.ar Mon Mar 15 18:46:47 2004 From: pylorca en yahoo.com.ar (lorca) Date: Mon, 15 Mar 2004 14:46:47 -0300 Subject: Programacion orientada a eventos (un estudio practico) In-Reply-To: <4055DE2C.7010405@ch3m4.org> References: <4055DE2C.7010405@ch3m4.org> Message-ID: <20040315144647.37a8f77f@localhost> Muy interesante, se agradece :) -- Powered By: Gentoo Linux http://www.gentoo.org Vim IMproved http://www.vim.org Python http://www.python.org Pygame http://www.pygame.org ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jranabal en defensa.cl Mon Mar 15 20:02:17 2004 From: jranabal en defensa.cl (Juan Rodrigo =?iso-8859-1?Q?Anabal=F3n?=) Date: Mon, 15 Mar 2004 15:02:17 -0400 Subject: VB y Python In-Reply-To: <4055E621.6000802@ch3m4.org> References: <6.0.1.1.1.20040315112035.03911450@200.11.68.134> <4055E621.6000802@ch3m4.org> Message-ID: <6.0.1.1.1.20040315150118.029d46a0@200.11.68.134> exelente, ya revisé los links que me diste y son exactamente lo que necesitaba. gracias. Saludos. JAR At 13:21 15/03/04, you wrote: >Juan Rodrigo Anabalón escribió: > >>Soy nuevo en la lista y he ingresado a ella porque quiero empezar un >>desarrolo en Python. >>La duda que tengo es si existe la posibilidad de integrar varios >>programas ya existentes desarrollados en Visual Basic, la idea es unir >>todos eso programas en uno solo sobre una plataforma con OpenBSD, según >>lo que he investigado python responde a esta necesidad, claro que se >>integra mejor con C/C++ ¿alguien a integrado o embebido sistemas >>Microsoft con Python? ¿alguien trabaja con Python en OpenBSD?, o tal vez >>sea posible embeber un programa echo en Python y luego incluirlo en el >>programa padre echo en VB. > >Como premisa, todo lo que tengas en VB lo puedes hacer en Python (al >99.99%) gracias a la extensión win32 para python: COM, ADO, ODBC,...y >cualquier base de datos típicas en windows (jet/mdb, dbf, sql server,...). >El paso de VB a python es bastante sencillo, mucho más fácil que pasarse a >.Net ó java. Puedes encontrar ayudas como el PythonCard >(http://pythoncard.sf.net) ó el vb2py (http://vb2py.sf.net). > >Pero por lo que entiendo, lo que quieres es ejecutar python en el OpenBSD >y ejecutarlo desde VB en windows. Tienes varias alternativas, pero quizás >la más "ad-hoc" sería utilizar SOAP (mírate el hilo sobre el tema que hay >en la lista). > >Otra posibilidad es ejecutar ActiveX hechos en VB desde python. Con el >wxPython (http://www.wxPython.org) para windows podrás ver en la demo >algunos ejemplos. > >Y por último, llamar a python desde VB no lo tengo muy claro (prefiero >convertir todo a python). Yo lo haría montando un servidor web con >cherrypy (http://www.cherrypy.org) y acceder a través de http; pero lo más >adecuado parece ser utilizando el pythonwin (que es algo más que un >editor) actuando como servidor COM (tienes un ejemplo en >http://www.hps1.demon.co.uk/users/andy/pyvb/). >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es From i02alvep en uco.es Mon Mar 15 20:28:20 2004 From: i02alvep en uco.es (i02alvep en uco.es) Date: Mon, 15 Mar 2004 20:28:20 +0100 (MET) Subject: scripts en python Message-ID: <1079378900.405603d40d483@www.uco.es> Hola estoy intentando ejecutar un script cliente en python poniendo desde la linea de comandos lo siguiente: python cliente.py y en vez de devolverme los resultados del servidor, no me hace nada y cuando pulso intro me sale otra vez el simbolo del sistema. Mi pregunta es si necesito poner algún parametro o instalar algun módulo. Saludos y Gracias de antemano. ############################################################################### ###################### Pedro Javier Aljaro Velasco #################### ###################### I. T. Informática de Sistemas #################### ###################### i02alvep en uco.es #################### ############################################################################### From morillas en posta.unizar.es Mon Mar 15 20:58:39 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Mon, 15 Mar 2004 20:58:39 +0100 Subject: scripts en python In-Reply-To: <1079378900.405603d40d483@www.uco.es> References: <1079378900.405603d40d483@www.uco.es> Message-ID: <20040315195839.GA1991@marmota> Asunto: [Python-es] scripts en python Fecha: lun, mar 15, 2004 at 08:28:20 +0100 Citando a i02alvep en uco.es (i02alvep en uco.es): > Hola estoy intentando ejecutar un script cliente en python poniendo desde la > linea de comandos lo siguiente: python cliente.py y en vez de devolverme los > resultados del servidor, no me hace nada y cuando pulso intro me sale otra vez > el simbolo del sistema. Mi pregunta es si necesito poner algún parametro o > instalar algun módulo. > Si no nos das más pistas ... :) -- lm No a las patentes de software en Europa EuropeSwPatentFree http://EuropeSwPatentFree.hispalinux.es From rapto en arrakis.es Mon Mar 15 21:08:52 2004 From: rapto en arrakis.es (=?ISO-8859-15?Q?Marcos_S=E1nchez_Provencio?=) Date: Mon, 15 Mar 2004 21:08:52 +0100 Subject: Programacion orientada a eventos (un estudio practico) In-Reply-To: <4055DE2C.7010405@ch3m4.org> References: <4055DE2C.7010405@ch3m4.org> Message-ID: <40560D54.4060700@arrakis.es> Chema Cortes escribió: > He estado estudiando el paradigma de la "programación orientada a > eventos" y cómo implementarlo desde python, y os expongo aquí mis > resultados: [...] ¿No hay un wiki por ahí para pegar esto? ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From morillas en posta.unizar.es Mon Mar 15 21:40:20 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Mon, 15 Mar 2004 21:40:20 +0100 Subject: Programacion orientada a eventos (un estudio practico) In-Reply-To: <4055DE2C.7010405@ch3m4.org> References: <4055DE2C.7010405@ch3m4.org> Message-ID: <20040315204020.GA2621@marmota> Asunto: [Python-es] Programacion orientada a eventos (un estudio practico) Fecha: lun, mar 15, 2004 at 05:47:40 +0100 Citando a Chema Cortes (py en ch3m4.org): > He estado estudiando el paradigma de la "programación orientada a > eventos" y cómo implementarlo desde python, y os expongo aquí mis > resultados: > Muy chulo, chema. Vas a colgarlo por ahí? Puedo ponerte en mi lista de ejemplos? -- lm From dvilla en gmx.net Tue Mar 16 09:02:05 2004 From: dvilla en gmx.net (dvilla en gmx.net) Date: Tue, 16 Mar 2004 09:02:05 +0100 Subject: scripts en python In-Reply-To: <1079378900.405603d40d483@www.uco.es> References: <1079378900.405603d40d483@www.uco.es> Message-ID: <20040316090205.1e3a8244.dvilla@gmx.net> Hola: Dinos al menos qué hace el cliente.py, y si no es muy grande, pega el código en el mensaje o ponlo como adjunto. ¿De quién es "cliente" ese programa? ¿Dónde está el servidor y qué hace? ¿Qué mecanismo utiliza para conectarse al servidor? ¿Qué protocolo? ¿Qué versión de Python usas? ¿En qué sistema operativo?... Si yo te digo: "Mi coche no se abre", probablemente tampoco podrías ayudarme. Saludos. El Mon, 15 Mar 2004 20:28:20 +0100 (MET) i02alvep en uco.es escribió: > Hola estoy intentando ejecutar un script cliente en python poniendo desde la > linea de comandos lo siguiente: python cliente.py y en vez de devolverme los > resultados del servidor, no me hace nada y cuando pulso intro me sale otra vez > el simbolo del sistema. Mi pregunta es si necesito poner algún parametro o > instalar algun módulo. > > Saludos y Gracias de antemano. > > ############################################################################# > ######################## Pedro Javier Aljaro Velasco > ########################################## I. T. Informática de Sistemas > ########################################## i02alvep en uco.es > ############################################################################# > ####################### > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From pepe en diselpro.com Tue Mar 16 10:07:27 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Tue, 16 Mar 2004 10:07:27 +0100 Subject: Evitar Decompyle. Message-ID: <200403161007.27351.pepe@diselpro.com> Hola a todos. ¿ Sabe alguien como evitar o almenos dificultar que alguien descompile un pyc con el Decompyle ? Gracias. From pepe en diselpro.com Tue Mar 16 10:33:10 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Tue, 16 Mar 2004 10:33:10 +0100 Subject: Python vs Java C C++ Message-ID: <200403161033.10230.pepe@diselpro.com> Hola. Estoy pasando programas hechos en Delphi a python+gtk2+libglade y estoy disfrutando Horrores... hasta la fecha solo había hecho algún cgi con python. Estoy disfrutando porque me entra una especie de ¡ I FEEL GOOD ! dada dada dada da ... cuando lanzo mi programa en vmware con xp y funciona casi igualito que en linux y sin apenas hacer adaptaciones especificas para la plataforma :-D Ante tanto entusiasmo me surgen unas preguntillas: ¿ En que situaciones java resuelve mejor la papeleta que python ? ¿ Es jython una solución valida y estable para la plataforma java ? Si programo en C, C++ solo las partes del programa que requieren optimización, ¿ que sentido tiene hacer aplicaciones grandes completamente en C,C++? Saludos. From rapto en arrakis.es Tue Mar 16 11:55:38 2004 From: rapto en arrakis.es (=?ISO-8859-15?Q?Marcos_S=E1nchez_Provencio?=) Date: Tue, 16 Mar 2004 11:55:38 +0100 Subject: Python vs Java C C++ In-Reply-To: <200403161033.10230.pepe@diselpro.com> References: <200403161033.10230.pepe@diselpro.com> Message-ID: <4056DD2A.9070601@arrakis.es> Pepe Aracil wrote: >Hola. > > Buenas >Estoy pasando programas hechos en Delphi a python+gtk2+libglade y estoy >disfrutando Horrores... hasta la fecha solo había hecho algún cgi con python. > > ¿Y encima pagan? >Estoy disfrutando porque me entra una especie de ¡ I FEEL GOOD ! dada dada >dada da ... cuando lanzo mi programa en vmware con xp y funciona casi >igualito que en linux y sin apenas hacer adaptaciones especificas para la >plataforma :-D > > Lo de Python me recuerda a cuando me compré el Twingo. Todo el que se montaba decía '¡qué grande es por dentro!' Como en el anuncio :-) >Ante tanto entusiasmo me surgen unas preguntillas: > >¿ En que situaciones java resuelve mejor la papeleta que python ? > > Cuando en el curro te dicen que _tiene_ que ser Java. Si controlas más de Java. Si encuentras una biblioteca que te resuelve el problema y no la hay para Python. >¿ Es jython una solución valida y estable para la plataforma java ? > > Creo que lo usan en producción en varios sitios. >Si programo en C, C++ solo las partes del programa que requieren >optimización, ¿ que sentido tiene hacer aplicaciones grandes completamente en >C,C++? > > > ¿Es una pregunta retórica? :-) Hay casos en que casi todo el problema requiere optimización (redes neuronales, pej). Y aun así, siempre queda la última interfaz de usuario (menuses, botones, guardar preferencias...) que se haría mejor en Python. >Saludos. > > A tu entera disposición. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jordi en ultimobyte.es Tue Mar 16 12:12:14 2004 From: jordi en ultimobyte.es (Jordi Ivars) Date: Tue, 16 Mar 2004 12:12:14 +0100 Subject: Una de sockets Message-ID: <200403161212.14500.jordi@ultimobyte.es> Hola a todos. Ando estos dias metido con los sockets y realmente, estoy encantado de lo fácilmente que se pueden tratar con Python. Fácil y rápido, es genial. Pero bueno, no todo es tan sencillo:). Os cuento mi problema. Estoy haciendo una aplicacion cliente que se conecta al servidor, hace un ls a un directorio en el servidor y la respuesta de ese ls se ha de ver en el cliente. Y no hay manera. El código del servidor (lo he sacado de un manual en pdf sobre sockets bastante sencillo) es el siguiente: --- import socket import sys import os s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = 'localhost' port = int(5002) s.bind((host,port)) s.listen(1) conn,addr = s.accept() print "Client connectat desde",addr data = conn.recv(1024) os.system(data) data=os.system(data) conn.send(data) conn.close() -- Los datos que recibo del cliente (data) los paso a un os.system (el cliente envia un comando de sistema). Luego lo que quiero es que la salida de ese os.system se vuelva a enviar al cliente (conn.send(data)) pero no hay manera ya que conn.send solo acepta enviar strings y la salida del os.system lo coge com int. Es decir, que con os.system no creo que se pueda hacer ya que estoy pensando que estara devolviendo 0 y 1 y no lo que yo quiero que devuelva, que es el comando en si. Asi que, escribiendo esto, me doy cuenta de que voy mas perdido de lo que creia:) ¿Alguien se ha visto en un dilema similar? ¿Alguna idea? Y nada, muchísimas gracias a todos, como siempre:) Saludos -- Jordi Ivars Oller Servicio Técnico Ultimobyte España SL From fonso en aturuxo.net Tue Mar 16 12:35:17 2004 From: fonso en aturuxo.net (=?iso-8859-1?Q?Afonso_Fern=E1ndez_Nogueira?=) Date: Tue, 16 Mar 2004 12:35:17 +0100 Subject: Una de sockets References: <200403161212.14500.jordi@ultimobyte.es> Message-ID: <001601c40b4a$c2741750$0201a8c0@colesterol> From: "Jordi Ivars" > > os.system(data) > data=os.system(data) > > conn.send(data) > > conn.close() > -- > > Los datos que recibo del cliente (data) los paso a un os.system (el cliente > envia un comando de sistema). Luego lo que quiero es que la salida de ese > os.system se vuelva a enviar al cliente (conn.send(data)) pero no hay manera > ya que conn.send solo acepta enviar strings y la salida del os.system lo coge > com int. Es decir, que con os.system no creo que se pueda hacer ya que estoy > pensando que estara devolviendo 0 y 1 y no lo que yo quiero que devuelva, que > es el comando en si. Asi que, escribiendo esto, me doy cuenta de que voy mas > perdido de lo que creia:) Prueba con os.popen(). pipe = os.popen(comando) resultado = pipe.read() un saludo, Fonso From py en ch3m4.org Tue Mar 16 12:51:21 2004 From: py en ch3m4.org (Chema Cortes) Date: Tue, 16 Mar 2004 12:51:21 +0100 Subject: Programacion orientada a eventos (un estudio practico) In-Reply-To: <20040315204020.GA2621@marmota> References: <4055DE2C.7010405@ch3m4.org> <20040315204020.GA2621@marmota> Message-ID: <4056EA39.9050305@ch3m4.org> > Vas a colgarlo por ahí? Puedo ponerte en mi lista de ejemplos? Quiero completar el "estudio" con algún ejemplo ilustrativo en Tkinter ó PythonCard, e incluso ponerlo como receta en el cookbook. Mientras tanto puedes usar el código para lo que queráis (...espero que lo de "ponerme de ejemplo" haya sido un error sintático :-D) From py en ch3m4.org Tue Mar 16 12:57:35 2004 From: py en ch3m4.org (Chema Cortes) Date: Tue, 16 Mar 2004 12:57:35 +0100 Subject: Evitar Decompyle. In-Reply-To: <200403161007.27351.pepe@diselpro.com> References: <200403161007.27351.pepe@diselpro.com> Message-ID: <4056EBAF.6030100@ch3m4.org> Pepe Aracil escribió: > ¿ Sabe alguien como evitar o almenos dificultar que alguien > descompile un pyc con el Decompyle ? No, aunque el decompyle ya no está disponible libremente para las versiones de python superior a la 2.2 Pero si tienes mucho interés en proteger tu bytecode, coge los fuentes del python y modifícalos (son libres). Haz que genere otro bytecode distinto y ya no habrá "decompyle" que valga. From pepe en diselpro.com Tue Mar 16 12:57:41 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Tue, 16 Mar 2004 12:57:41 +0100 Subject: Evitar Decompyle. In-Reply-To: <4056EBAF.6030100@ch3m4.org> References: <200403161007.27351.pepe@diselpro.com> <4056EBAF.6030100@ch3m4.org> Message-ID: <200403161257.41600.pepe@diselpro.com> Ufff. Seguro que si toco los fuents de python no funcionará ni el decompyle ni el propio python :-D. Saludos. From py en ch3m4.org Tue Mar 16 13:19:38 2004 From: py en ch3m4.org (Chema Cortes) Date: Tue, 16 Mar 2004 13:19:38 +0100 Subject: Python vs Java C C++ In-Reply-To: <200403161033.10230.pepe@diselpro.com> References: <200403161033.10230.pepe@diselpro.com> Message-ID: <4056F0DA.6000309@ch3m4.org> Pepe Aracil escribió: > ¿ En que situaciones java resuelve mejor la papeleta que python ? Creo que en cuanto a lenguajes, java posee más herramientas y entornos de desarrollo profesionales, apropiados para grandes proyectos y trabajo en equipos de desarrollo. Esto, dicho así, puede ser tanto una ventaja como un incoveniente, ya que hace que sea muy duro trabajar con java para pequeños proyectos. Con python, la gente se divierte más ;-) (como estás comprobando :-D) > ¿ Es jython una solución valida y estable para la plataforma java ? Muchos entendidos de java recomiendan jython como lenguaje de "script" (algunos IDEs para java ya utilizan jython para sus extensiones). Jython ofrece algunas características de las que java carece, como la "instrospección" y una sintaxis "declarativa" muy valorada para trabajos con XML. Por otro lado, jython puede usar y ser usado desde java, así como poder utilizar cualquier toolkit gráfico (AWT, swing, SWT,...) para hacer aplicaciones gráficas en jython. La única pega que se puede decir del jython es que todavía está por la versión 2.1 del lenguaje, aunque pronto se actualizará a la última. From py en ch3m4.org Tue Mar 16 14:22:31 2004 From: py en ch3m4.org (Chema Cortes) Date: Tue, 16 Mar 2004 14:22:31 +0100 Subject: Evitar Decompyle. In-Reply-To: <200403161257.41600.pepe@diselpro.com> References: <200403161007.27351.pepe@diselpro.com> <4056EBAF.6030100@ch3m4.org> <200403161257.41600.pepe@diselpro.com> Message-ID: <4056FF97.7000602@ch3m4.org> Pepe Aracil escribió: > Seguro que si toco los fuents de python no funcionará ni el > decompyle ni el propio python :-D. Hombre, tampoco es para tanto. Perdiéndo un poco el miedo al código (y bastante el respeto :-P) puedes editar donde se genera el bytecode ("import.c") y cambiar el "magic code" (al principio del fichero). Éste es un código que identifica la versión del bytecode con el que se intenta evitar que un intérprete ejecute versiones de bytecode que no le corresponda. Recompilas y obtendrás un python "exclusivo" para tu uso. From aerd en retemail.es Tue Mar 16 20:36:44 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Tue, 16 Mar 2004 20:36:44 +0100 Subject: Python vs Java C C++ References: <200403161033.10230.pepe@diselpro.com> <4056F0DA.6000309@ch3m4.org> Message-ID: <001e01c40b8e$0a3fc730$0100a8c0@servidor> Hola, Quiero dar mi punto de vista, pero realmente apenas he trabajado con Java. Mucho se ha escrito sobre Java y Python. Desde luego, el 'write once, run everywhere' se ha cumplido relativamente. Las implementaciones de las máquinas virtuales tienen ligeras diferencias que hace que algunas veces los programas no se ejecutan exáctamente igual. Sólo hay una implementación (bueno, creo que con stackless 2) de interpretes de Python en C. Pero funcionan bien en la mayoría de plataformas. Como no hay ese soporte y patrocinio que hay para Java, veo los siguientes inconvenientes para Python: * los entornos de desarrollo no son tan buenos, especialmente para proyectos más grandes. Hoy por hoy no estamos usando entornos comerciales como Pythonware o WingIDE. Yo uso Pythonwin que depura bien, tiene code-folding y algunas otras cositas bastante bonitas (como el ctrl-espacio para word completion, tan necesario para escribir identificadores largos aclarando así el código fuente). Mi compañero trabaja en Linux con emacs, que tb tiene coloreo y word completion (Alt - /, problema para los teclados españoles). Hecho de menos un buen gestor de proyectos y la integración con subversion (fácil de hacer, realmente, porque sólo hay que llamar a la línea de comandos) y quizá algo para ampliar el ChangeLog, como tiene emacs). * las librerías gráficas. Java tiene Swing y AWT. Swing apenas era usable hasta hace poco (2-3 años), porque los ordenadores no eran lo suficientemente rápido, pero es UNA GUI estándar. Python tiene tkinter, que en muchos casos es insuficiente. Después se le plantea la pregunta qué usar. Y allí empieza el cacao mental. PyQT (comercial bajo Windows), wxWindows, Tkinter con megawidgets, PyGTK o usando python con Mozilla y usando archivos XUL. No hay una línea clara para principiantes. Gustaría tener las cosas algo más resueltas. Por cierto, no todas esas librerías funciona bien bajo Mac. * una especificación para tratamiento de BusinessLogic, à la J2EE. Muchas personas han afirmado que J2EE ha dado a Java una gran utilidad en lado del servidor. Hacerlo en Python no es especialmente difícil, pero falta consenso. Después de ver el persistence-sig, no he podido apreciar una línea clara para crear una especificación. la gente está más bien trabajando en una implementación: ZODB4, y después crear diferentes back-ends de almacenamiento. No sé lo que finalmente será. * sobre jython: me parece un producto extraordinaria. Cuando lo estuve viendo, busqué información sobre cómo programar Swing de jython. La programación no es igual que Java. Quizá ya haya más documentación. Cuando estuve en Europython, me sorprendió (y creo que tb a otra gente) que detrás de Python sólo había una (o dos) personas. No entiendo, como detrás de un producto tan valioso sólo hay un desarrollador. Concluyendo de nuevo: * a python le falta apoyo de empresas importantes. Sabemos que empresas como RedHat, HP, IBM y otros están usando en gran medida Python, pero realmente no se perciben (al menos yo) grandes aportaciones. * el modelo de seguridad de Java es bastante completo. Python no lo tiene. En postgres, los triggers pueden escribirse con Python (tb con Perl, y otros). Python aparece como 'untrusted' porque es difícil garantizar que la gente haga cosas 'raras'. Solución:... usar jython, que está sujeto al modelo de seguridad de Java, aunque que creo que Postgres todavía no admite java como lenguaje back-end. * cosas técnicas que no me gustan de python: * la redefinición de una clase requiere, en general, crear de nuevo los objetos que usan la clase. Sé que se pueden usar trucos para evitar eso, pero siguen siendo trucos. El problema es que cuando estás corrigiendo código que corre dentro de un servidor de aplicaciones tienes que rearrancar el servidor de aplicaciones con esas nuevas definciones. Eso es bastante molesto, especialmente si tienes 50 personas conectados al servidor de aplicaciones. Hay otros lenguajes, como PHP (y Ruby?) donde creo que ese no es el caso. En Java no sé cómo se resuelve esto. * el modelo de la 'precompilación' hace que no se pueden escribir depuradores con los cuales se puede desplazar el punto de ejecución simplemente hacia otra posición. No sé del todo si eso es verdad, pero en VB estaba acostum- brado cambiar el código sobre la marcha y ejecutarlo desplazando el punto de ejecución hacia adelante y hacia atrás (con nuevo código) según mis necesidades. Python parece como el camino 'independiente' de las grandes marcas. Java es de Sun, C# de Microsoft y ambos están en guerras comerciales. Quizá eso justo sea lo bonito. El camino de la 'independencia' nunca ha sido el camino más fácil. Hay cosas que cuestas sustancialmente más esfuerzo. En todo caso, actitudes como la Univers. Jaume I, que usan Python en los primeros cursos de Programación consolidan esta plataforma. Lo bueno está resumido en muchos otros sitios, pero destacaría de nuevo: * es fácil de aprender y de leer, y con eso de mantener. Importante: usar tests automatizados, para garantizar la calidad del resultado (cosa que yo mismo debería hacer más). * hay buen soporte para usar todo tipo de estándares populares, como XML. Digo populares, porque hay otros estándares que no tienen las implementaciones correspondientes en Python, por falta de empresas que soportan este lenguaje. Resumiendo: quizá Python no sea mi lenguaje óptimo, pero ahora mismo me gusta bastante, y el día que venga otro lenguaje que me gusta más, cambiaré. Volviendo a la pregunta inicial: ¿Cuándo usar Java? Cuándo te lo exigen. Algunas administraciones públicas te lo exigen. Cuando usas determinados marcos empresariales, como J2EE (que por cierto, podría usarse desde jython) Java en muchas operaciones es más rápido ¿Jython es estable? Creo que sí. El problema, ¿cuál es el futuro de Jython? Los implementadores tenían dificultades al implementar la nueva funcionalidad de Python 2.2: unión de clases y tipos, cambio del modelo de metaclases, ya algunas cosas más. El problema veo que no hay suficientes personas que ayuden con el avance del proyecto, es decir, problemas con la gestión del proyecto (a menudo, no son los informáticos que mejor gestionen los proyectos. Quizá podría resolverse con una política de donaciones y las personas adecuadas en la gestión del proyecto). ¿que sentido tiene hacer aplicaciones grandes completamente en C,C++? Depende en mayor grado de las herramientas que dispongas y evidentemente, por el tema de la eficiencia. C++ puede ser bastante abstracto, y puedes disponer de buenas herramientas. El problema es que te tienes que ocupar de liberar la memoria manualmente, cosa que a esta altura me parece inaceptable para muchos de los proyectos. Con C es más difícil, porque cuesta abstraer. Resumiendo: depende para qué proyectos. Me parece mucho más acertado, usar Python, después correr el profiler y optimizar los procedimientos que más tiempo consumen, con Pyrex (C) o escribir pequeños módulos externos. De momento, nada más... pero a lo mejor, algunos podéis indicarme cómo corregir código sin tener que reiniciar un servidor de aplicaciones entero. (Mi idea actual es hacer un pickling de las clases empresariales, y recargarlos todos.) Saludos, Erny ----- Original Message ----- From: "Chema Cortes" To: "La lista de python en castellano" Sent: Tuesday, March 16, 2004 1:19 PM Subject: Re: [Python-es] Python vs Java C C++ Pepe Aracil escribió: > ¿ En que situaciones java resuelve mejor la papeleta que python ? Creo que en cuanto a lenguajes, java posee más herramientas y entornos de desarrollo profesionales, apropiados para grandes proyectos y trabajo en equipos de desarrollo. Esto, dicho así, puede ser tanto una ventaja como un incoveniente, ya que hace que sea muy duro trabajar con java para pequeños proyectos. Con python, la gente se divierte más ;-) (como estás comprobando :-D) > ¿ Es jython una solución valida y estable para la plataforma java ? Muchos entendidos de java recomiendan jython como lenguaje de "script" (algunos IDEs para java ya utilizan jython para sus extensiones). Jython ofrece algunas características de las que java carece, como la "instrospección" y una sintaxis "declarativa" muy valorada para trabajos con XML. Por otro lado, jython puede usar y ser usado desde java, así como poder utilizar cualquier toolkit gráfico (AWT, swing, SWT,...) para hacer aplicaciones gráficas en jython. La única pega que se puede decir del jython es que todavía está por la versión 2.1 del lenguaje, aunque pronto se actualizará a la última. _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From danilistas en micorreo.cai.es Tue Mar 16 23:35:45 2004 From: danilistas en micorreo.cai.es (dani) Date: Tue, 16 Mar 2004 23:35:45 +0100 Subject: socket.listen In-Reply-To: <4056FF97.7000602@ch3m4.org> References: <200403161007.27351.pepe@diselpro.com> <4056EBAF.6030100@ch3m4.org> <200403161257.41600.pepe@diselpro.com> <4056FF97.7000602@ch3m4.org> Message-ID: <200403162335450906.005CC014@smtp.micorreo.cai.es> una pregunta sobre sockets... me he estado mirando un tutorial y he visto ya en varios sitios q en sock.listen(x) la x como maximo siempre es 5. Pq solo se admiten 5 conexiones como maximo?? Es asi? Gracias de antemano. From cescd en yahoo.com.mx Wed Mar 17 02:09:39 2004 From: cescd en yahoo.com.mx (=?iso-8859-1?q?Cesar=20Cardenas=20Desales?=) Date: Tue, 16 Mar 2004 19:09:39 -0600 (CST) Subject: socket.listen In-Reply-To: <200403162335450906.005CC014@smtp.micorreo.cai.es> References: <200403162335450906.005CC014@smtp.micorreo.cai.es> Message-ID: <20040317010939.720.qmail@web13908.mail.yahoo.com> Usando el sentido común tenemos: a) Por lo general es una mala idea codificar en el programa cantidades definidas (los famosos número mágicos), de las que después nadie sabe por qué se pusieron allí. Lo mejor es que eso se configure a través de un parámetro, se lea de un archivo o algo así. b) Supongo que ese 5 no es un límite definido. Se pone así porque es un ejemplo que viene desde el libro Programming Python. c) Tampoco es una gran idea poner un servidor que acepte una enorme cantidad de conexiones, porque esto a la larga vendría en detrimento del rendimiento del servidor. --- dani escribió: > una pregunta sobre sockets... me he estado mirando > un tutorial y he visto ya en varios sitios q en > > sock.listen(x) > > la x como maximo siempre es 5. Pq solo se admiten 5 > conexiones como maximo?? Es asi? > > > Gracias de antemano. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es _________________________________________________________ Do You Yahoo!? La mejor conexión a internet y 25MB extra a tu correo por $100 al mes. http://net.yahoo.com.mx From oziko en fusiondementes.com Wed Mar 17 02:57:40 2004 From: oziko en fusiondementes.com (oziko en fusiondementes.com) Date: Tue, 16 Mar 2004 19:57:40 -0600 (CST) Subject: Leyendo archivos de configuracion Message-ID: <1122.201.129.229.114.1079488660.squirrel@www.fusiondementes.com> Me gustaria saber que tecnicas han utilizado y consideran mejores para leer archivos de configuracion. Cheque el codigo de pebrot, y para leer el pebrotrc donde esta toda la configuracion, abre el archivo y lo analiza linea por linea para importar los valores, pero se me hace mucho codigo, utiliza muchos if para asignar los valores, se me ocurrio a mi poner en un archivo.py poner los valores como asignaciones y luego en el programa importarlos, desgraciadamente no puedo hacer un "from modulo import *" asi que debo importar variable por variable from conf import dato1, dato2, dato3 ... etc . Que tecnicas utilizan ustedes para leer archivos de configuracion? From ruben_nett en hotmail.com Wed Mar 17 03:37:29 2004 From: ruben_nett en hotmail.com (Ruben P) Date: Wed, 17 Mar 2004 02:37:29 +0000 Subject: Como me desuscribo de esta lista de Python Message-ID: Hola a todos como me puedo desuscribir de esta listas amigos????? _________________________________________________________________ Charla con tus amigos en línea mediante MSN Messenger: http://messenger.latam.msn.com/ From markus_jais en yahoo.de Wed Mar 17 08:38:52 2004 From: markus_jais en yahoo.de (=?iso-8859-1?q?Markus=20Jais?=) Date: Wed, 17 Mar 2004 08:38:52 +0100 (CET) Subject: Como me desuscribo de esta lista de Python In-Reply-To: References: Message-ID: <20040317073852.22269.qmail@web25210.mail.ukl.yahoo.com> hola alli http://listas.aditel.org/listinfo/python-es markus --- Ruben P schrieb: > Hola a todos > como me puedo desuscribir de esta listas amigos????? > > _________________________________________________________________ > Charla con tus amigos en línea mediante MSN > Messenger: > http://messenger.latam.msn.com/ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es Mit schönen Grüßen von Yahoo! Mail - http://mail.yahoo.de From jesus en roncero.org Wed Mar 17 08:44:09 2004 From: jesus en roncero.org (=?iso-8859-1?q?Jes=FAs_Roncero_Franco?=) Date: Wed, 17 Mar 2004 08:44:09 +0100 Subject: Como me desuscribo de esta lista de Python In-Reply-To: References: Message-ID: <200403170844.10064.jesus@roncero.org> On Wednesday 17 March 2004 03:37, Ruben P wrote: > Hola a todos > como me puedo desuscribir de esta listas amigos????? Aquí: > http://listas.aditel.org/listinfo/python-es -- jabber: golan [@] bulmalug.net Out: 13.31 ºC -- In: 20.88 ºC From pepe en diselpro.com Wed Mar 17 09:24:55 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Wed, 17 Mar 2004 09:24:55 +0100 Subject: socket.listen In-Reply-To: <200403162335450906.005CC014@smtp.micorreo.cai.es> References: <200403161007.27351.pepe@diselpro.com> <4056FF97.7000602@ch3m4.org> <200403162335450906.005CC014@smtp.micorreo.cai.es> Message-ID: <200403170924.56097.pepe@diselpro.com> Hola. Los sockets de tipo listen solo se encargan de recibir las peticiones de conexión, si esta se acepta, entonces se utiliza un nuevo socket para abrir el canal de comunicación, por lo cual el valor de sock.listen(x) indica el numero máximo de peticiones simultáneas de conexion aceptadas, pero no tiene nada que ver con el numero maximo de conexiones que se pueden establecer. Saludos. El Martes, 16 de Marzo de 2004 23:35, dani escribió: > una pregunta sobre sockets... me he estado mirando un tutorial y he visto > ya en varios sitios q en > > sock.listen(x) > > la x como maximo siempre es 5. Pq solo se admiten 5 conexiones como > maximo?? Es asi? > > > Gracias de antemano. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From morillas en posta.unizar.es Wed Mar 17 11:10:49 2004 From: morillas en posta.unizar.es (luis miguel) Date: Wed, 17 Mar 2004 11:10:49 +0100 Subject: socket.listen In-Reply-To: <200403170924.56097.pepe@diselpro.com> References: <200403161007.27351.pepe@diselpro.com> <4056FF97.7000602@ch3m4.org> <200403162335450906.005CC014@smtp.micorreo.cai.es> <200403170924.56097.pepe@diselpro.com> Message-ID: <1079518249.671.10.camel@guadalinex> El mié, 17-03-2004 a las 09:24, Pepe Aracil escribió: > Hola. > > Los sockets de tipo listen solo se encargan de recibir las peticiones de > conexión, si esta se acepta, entonces se utiliza un nuevo socket para abrir > el canal de comunicación, por lo cual el valor de sock.listen(x) indica el > numero máximo de peticiones simultáneas de conexion aceptadas, pero no tiene > nada que ver con el numero maximo de conexiones que se pueden establecer. > socket.listen() hace referencia a la cola de espera del socket, no a conexiones simultáneas realmente. Si una petición no puede ser atendida cuando accede al servidor, pasa a la cola de espera. Si la cola está llena, es rechazada. -- lm From pepe en diselpro.com Wed Mar 17 11:28:05 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Wed, 17 Mar 2004 11:28:05 +0100 Subject: socket.listen In-Reply-To: <1079518249.671.10.camel@guadalinex> References: <200403161007.27351.pepe@diselpro.com> <200403170924.56097.pepe@diselpro.com> <1079518249.671.10.camel@guadalinex> Message-ID: <200403171128.05090.pepe@diselpro.com> Ok. Tienes razón. Saludos. El Miércoles, 17 de Marzo de 2004 11:10, luis miguel escribió: > El mié, 17-03-2004 a las 09:24, Pepe Aracil escribió: > > Hola. > > > > Los sockets de tipo listen solo se encargan de recibir las peticiones de > > conexión, si esta se acepta, entonces se utiliza un nuevo socket para > > abrir el canal de comunicación, por lo cual el valor de sock.listen(x) > > indica el numero máximo de peticiones simultáneas de conexion aceptadas, > > pero no tiene nada que ver con el numero maximo de conexiones que se > > pueden establecer. > > socket.listen() hace referencia a la cola de espera del socket, no a > conexiones simultáneas realmente. Si una petición no puede ser atendida > cuando accede al servidor, pasa a la cola de espera. Si la cola está > llena, es rechazada. > > -- lm > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From acastro en ciberdroide.com Wed Mar 17 12:59:00 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Wed, 17 Mar 2004 12:59:00 +0100 (CET) Subject: =?iso-8859-1?q?python_para_ni=F1os?= Message-ID: He visto más de una vez la recomendación de python como primer lenguaje de programación. En principio parece buena idea pero tampoco conozco las razones didácticas a favor de esto si alguien las conoce me interesan. Estoy considerando en iniciar a mi hijo de 11 años en la programación y hacerlo con python pero solo conozco python de hace un par de meses y lo que tengo es un subidón de entusiasmo por este lenguaje y no quisiera equivocarme.. Supongo que los pequeños ejemplos de juegos resultarían apropiados. Porque a esta edad no es facil que se motiven con otras cosas. Acabo de mirar el modulo turtle y no vi la forma de obtener la posición y orientación de la tortuga. Mirando en el fuente parece que los atributos no son públicos. No es un problema grave, se puede modificar el fuente facilmente añadiendo una función para consultar estos atributos pero ignoro si exite alguna razón por la cual esta funcion trivial no se implementó. Concretamenta acabo de añadir en turtle.py una función que devuelve una serie de cosas. def status(self): return (self._position, self._angle, self._drawing, self._width, self._color) Es mucho más facil memorizar una determinada situación para referirse a ella, que ir llevando la cuenta de los movimientos. Por otra parte si alguien ya tiene ejemplitos didácticos adecuados para niños o me puede orientar sobre algo de esto se lo agradecería. -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From py en ch3m4.org Wed Mar 17 13:18:30 2004 From: py en ch3m4.org (Chema Cortes) Date: Wed, 17 Mar 2004 13:18:30 +0100 Subject: Python vs Java C C++ In-Reply-To: <001e01c40b8e$0a3fc730$0100a8c0@servidor> References: <200403161033.10230.pepe@diselpro.com> <4056F0DA.6000309@ch3m4.org> <001e01c40b8e$0a3fc730$0100a8c0@servidor> Message-ID: <40584216.8020704@ch3m4.org> Ernesto Revilla escribió: > Quiero dar mi punto de vista, pero realmente apenas he trabajado con Java. >... Muy interesante tu punto de vista sobre el tema. Su extensión hace imposible responderte punto por punto, así que seré concreto: > Hecho de menos un buen gestor de proyectos y la integración con subversion ¿Has probado el Kdevelop3? Gestiona "proyectos" y puede conectarse a varios gestores de versiones, subversion incluído. > * las librerías gráficas... Se puede hablar mucho del tema. Tkinter tiene la ventaja de estar siempre disponible y ser suficiente para bastantes cosas. Del resto, son muy similares en herramientas y posibilidades, aunque hay que destacar wxPython (wxWidgets) por número de proyectos de desarrollo, y herramientas como boa-constructor ó pythoncard. > * una especificación para tratamiento de BusinessLogic, à la J2EE. Como bien dices, aquí se echa en falta una empresa fuerte detrás. Pero no considero que python tenga que competir con J2EE. La ventaja de python es su facilidad para integrarse en cualquier sistema, y J2EE no es una excepción. A parte de ésto, tienes zope como plataforma "alternativa" (no equivalente) de J2EE. Muchas veces se usa la complejidad de J2EE para cosas mucho más sencillas que se pueden hacer fácilmente con zope. > * el modelo de seguridad de Java es bastante completo. Python no lo tiene. El zope posee un modelo de seguridad bastante bueno, y es sin duda una de las mejores plataformas para crear aplicaciones empresariales y de gestión para python. > * la redefinición de una clase requiere, en general, > crear de nuevo los objetos que usan la clase. Normalmente, se usan las clases como "plantillas" para crear a partir de ellas los objetos. Existe otra técnica más dinámica en la que unas clases "delegan" en otras la creación de los objetos (mírate los ensayos sobre "metaclases"). > * el modelo de la 'precompilación' hace que no se pueden > escribir depuradores con los cuales se puede desplazar el > punto de ejecución simplemente hacia otra posición. Reconozco que es bastante filosófico entenderlo así, pero en python desaparece el concepto de "línea temporal". El sistema no pasa por diferentes estados hasta llegar al actual; siempre es el mismo, variando únicamente el "concepto" que teníamos formado de él, nuestra "representación" del sistema. Lo que entendemos ir para "atrás" ó "adelante" es cambiar una "representación" por otra, y para depurar ha de hacerse por "instrospección". Por ejemplo, el depurador de pythoncard es un shell al que le vas haciendo preguntas sobre las propiedades de los componentes del sistema. >C++ puede ser bastante abstracto, y puedes disponer de buenas >herramientas. El problema es que te tienes que ocupar de liberar la >memoria manualmente, cosa que a esta altura me parece inaceptable para >muchos de los proyectos. Con C es más difícil, porque cuesta abstraer. Existe una evolución del C/C++ llamada D que promete mucho. Entre otras cosas, no es obligatorio liberar manualmente la memoria (tiene una especie de recolector de basura): http://www.digitalmars.com/d/ From rapto en arrakis.es Wed Mar 17 13:20:48 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Wed, 17 Mar 2004 13:20:48 +0100 Subject: python para =?ISO-8859-1?Q?ni=F1os?= In-Reply-To: References: Message-ID: <405842A0.1070802@arrakis.es> Si dispones de MS Windows, no dejes de mirar Alice http://www.alice.org/ Es un sistema para aprender a programar, usando objetos 3d. Antonio Castro wrote: >He visto más de una vez la recomendación de python como >primer lenguaje de programación. En principio parece buena >idea pero tampoco conozco las razones didácticas a favor de >esto si alguien las conoce me interesan. > >Estoy considerando en iniciar a mi hijo de 11 años en la >programación y hacerlo con python pero solo conozco python >de hace un par de meses y lo que tengo es un subidón de >entusiasmo por este lenguaje y no quisiera equivocarme.. > >Supongo que los pequeños ejemplos de juegos resultarían >apropiados. Porque a esta edad no es facil que se motiven >con otras cosas. > >Acabo de mirar el modulo turtle y no vi la forma de obtener >la posición y orientación de la tortuga. > >Mirando en el fuente parece que los atributos no son públicos. >No es un problema grave, se puede modificar el fuente facilmente >añadiendo una función para consultar estos atributos pero >ignoro si exite alguna razón por la cual esta funcion trivial >no se implementó. Concretamenta acabo de añadir en turtle.py >una función que devuelve una serie de cosas. > > def status(self): > return (self._position, self._angle, self._drawing, > self._width, self._color) > >Es mucho más facil memorizar una determinada situación para referirse >a ella, que ir llevando la cuenta de los movimientos. > >Por otra parte si alguien ya tiene ejemplitos didácticos adecuados >para niños o me puede orientar sobre algo de esto se lo agradecería. > > > From morillas en posta.unizar.es Wed Mar 17 14:11:02 2004 From: morillas en posta.unizar.es (luis miguel) Date: Wed, 17 Mar 2004 14:11:02 +0100 Subject: python para =?ISO-8859-1?Q?ni=F1os?= In-Reply-To: References: Message-ID: <1079529062.1139.13.camel@guadalinex> El mié, 17-03-2004 a las 12:59, Antonio Castro escribió: > He visto más de una vez la recomendación de python como > primer lenguaje de programación. En principio parece buena > idea pero tampoco conozco las razones didácticas a favor de > esto si alguien las conoce me interesan. > > Estoy considerando en iniciar a mi hijo de 11 años en la > programación y hacerlo con python pero solo conozco python > de hace un par de meses y lo que tengo es un subidón de > entusiasmo por este lenguaje y no quisiera equivocarme.. > > Supongo que los pequeños ejemplos de juegos resultarían > apropiados. Porque a esta edad no es facil que se motiven > con otras cosas. > > Acabo de mirar el modulo turtle y no vi la forma de obtener > la posición y orientación de la tortuga. > > Mirando en el fuente parece que los atributos no son públicos. > No es un problema grave, se puede modificar el fuente facilmente > añadiendo una función para consultar estos atributos pero > ignoro si exite alguna razón por la cual esta funcion trivial > no se implementó. Concretamenta acabo de añadir en turtle.py > una función que devuelve una serie de cosas. > > def status(self): > return (self._position, self._angle, self._drawing, > self._width, self._color) > > Es mucho más facil memorizar una determinada situación para referirse > a ella, que ir llevando la cuenta de los movimientos. > > Por otra parte si alguien ya tiene ejemplitos didácticos adecuados > para niños o me puede orientar sobre algo de esto se lo agradecería. Puedes mirar por http://www.python.org/cp4e/ y http://www.python.org/sigs/edu-sig/ Sobre logo sí que tienes mucho material para enseñar a programar a niños. -- lm From py en ch3m4.org Wed Mar 17 13:23:30 2004 From: py en ch3m4.org (Chema Cortes) Date: Wed, 17 Mar 2004 13:23:30 +0100 Subject: Leyendo archivos de configuracion In-Reply-To: <1122.201.129.229.114.1079488660.squirrel@www.fusiondementes.com> References: <1122.201.129.229.114.1079488660.squirrel@www.fusiondementes.com> Message-ID: <40584342.7060006@ch3m4.org> oziko en fusiondementes.com escribió: > from conf import dato1, dato2, dato3 ... etc . Que tecnicas utilizan > ustedes para leer archivos de configuracion? ¿has probado el módulo 'ConfigParser'? From jaime en iaa.es Wed Mar 17 13:30:52 2004 From: jaime en iaa.es (Jaime Perea) Date: Wed, 17 Mar 2004 13:30:52 +0100 Subject: python para =?iso-8859-1?q?ni=F1os?= In-Reply-To: <405842A0.1070802@arrakis.es> References: <405842A0.1070802@arrakis.es> Message-ID: <200403171330.52459.jaime@iaa.es> El Miércoles, 17 de Marzo de 2004 13:20, Marcos Sánchez Provencio escribió: > Si dispones de MS Windows, no dejes de mirar Alice > http://www.alice.org/ > > Es un sistema para aprender a programar, usando objetos 3d. > > Antonio Castro wrote: > >He visto más de una vez la recomendación de python como > >primer lenguaje de programación. En principio parece buena > >idea pero tampoco conozco las razones didácticas a favor de > >esto si alguien las conoce me interesan. > > > >Estoy considerando en iniciar a mi hijo de 11 años en la ............... Al hilo de esto y reconociendo que hablo del enemigo, Me gustaría saber de los que sois muy informáticos si teneis alguna idea de squeak (http://www.squeak.org/) que tiene pinta de ser una herramienta muy potente para lo del aprendizaje. Está escrito en smalltalk y yo no tengo ni idea de lo que eso significa aparte de que es oo del todo. Yo también había pensado en python para mi hija de 11 años, pero me gustaría algo que fuera divertido, ya que en esa edad eso es importante..... bueno, no sólo para esa edad. Un saludo -- Jaime D. Perea Duarte. Linux registered user #10472 Dep. Astrofisica Extragalactica. Instituto de Astrofisica de Andalucia (CSIC) Apdo. 3004, 18080 Granada, Spain. From jaime en iaa.es Wed Mar 17 13:38:42 2004 From: jaime en iaa.es (Jaime Perea) Date: Wed, 17 Mar 2004 13:38:42 +0100 Subject: Leyendo archivos de configuracion In-Reply-To: <1122.201.129.229.114.1079488660.squirrel@www.fusiondementes.com> References: <1122.201.129.229.114.1079488660.squirrel@www.fusiondementes.com> Message-ID: <200403171338.42573.jaime@iaa.es> El Miércoles, 17 de Marzo de 2004 02:57, oziko en fusiondementes.com escribió: > Me gustaria saber que tecnicas han utilizado y consideran mejores para > leer archivos de configuracion. > > Cheque el codigo de pebrot, y para leer el pebrotrc donde esta toda la > configuracion, abre el archivo y lo analiza linea por linea para importar > los valores, pero se me hace mucho codigo, utiliza muchos if para asignar > los valores, se me ocurrio a mi poner en un archivo.py poner los valores > como asignaciones y luego en el programa importarlos, desgraciadamente no > puedo hacer un "from modulo import *" asi que debo importar variable por > variable > from conf import dato1, dato2, dato3 ... etc . Que tecnicas utilizan > ustedes para leer archivos de configuracion? > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ¿Has mirado el módulo imp? Yo lo uso de la siguiente manera import imp config = imp.load_source('config','config.dat') así puedes acceder a config.loquesea config.dat es básicamente un pedazo de program python. De hecho es divertido ya que se compila a bytecode y te genera un config.datc -- Jaime D. Perea Duarte. Linux registered user #10472 Dep. Astrofisica Extragalactica. Instituto de Astrofisica de Andalucia (CSIC) Apdo. 3004, 18080 Granada, Spain. From py en ch3m4.org Wed Mar 17 13:44:55 2004 From: py en ch3m4.org (Chema Cortes) Date: Wed, 17 Mar 2004 13:44:55 +0100 Subject: python para =?ISO-8859-1?Q?ni=F1os?= In-Reply-To: References: Message-ID: <40584847.70701@ch3m4.org> Antonio Castro escribió: > He visto más de una vez la recomendación de python como > primer lenguaje de programación. En principio parece buena > idea pero tampoco conozco las razones didácticas a favor de > esto si alguien las conoce me interesan. Hay un curso de python pensado para "críos": http://www.livewires.org.uk/python En castellano, puedes pasarte por la web de T.Javier que tienes bastante ejemplos y tutoriales, y donde encontrarás cosillas para el turtle: http://milugar.tk También puedes echarle una ojeada a la web de "Aprendiendo a programar", aunque mezcla python y qbasic, y es algo anticuado: http://www.freenetpages.co.uk/hp/alan.gauld/spanish/ > Acabo de mirar el modulo turtle y no vi la forma de obtener > la posición y orientación de la tortuga. Hay una variable oculta llamada '_pen' from turtle import _pen as turtle_position From fheredero en topmusic.ch Wed Mar 17 13:47:08 2004 From: fheredero en topmusic.ch (=?iso-8859-1?Q?Fran=E7ois_Heredero_-_Top_Music_SA?=) Date: Wed, 17 Mar 2004 13:47:08 +0100 Subject: Leyendo archivos de configuracion In-Reply-To: <40584342.7060006@ch3m4.org> References: <40584342.7060006@ch3m4.org> Message-ID: > > from conf import dato1, dato2, dato3 ... etc . Que tecnicas utilizan > > ustedes para leer archivos de configuracion? > > ¿has probado el módulo 'ConfigParser'? Confirmo, yo lo utilizo y va muy bien. François mp3.ini ------- [mp3] dir = S:\programmation\mp3 bak = c:\radio.bak [general] log = off [colores] titulo = (0,0,255) lectura : ------- import ConfigParser c = ConfigParser.ConfigParser() c.read(["mp3.ini"]) camino = c.get("mp3","dir") color_titulo = eval(c.get("colores","titulo")) con_log = c.getboolean("general","log") From aerd en retemail.es Wed Mar 17 14:31:03 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Wed, 17 Mar 2004 14:31:03 +0100 Subject: Python vs Java C C++ References: <200403161033.10230.pepe@diselpro.com> <4056F0DA.6000309@ch3m4.org><001e01c40b8e$0a3fc730$0100a8c0@servidor> <40584216.8020704@ch3m4.org> Message-ID: <002401c40c24$1c062fe0$0100a8c0@servidor> Hola, ----- Original Message ----- From: "Chema Cortes" To: "La lista de python en castellano" ... >> * la redefinición de una clase requiere, en general, >> crear de nuevo los objetos que usan la clase. >Normalmente, se usan las clases como "plantillas" para crear a partir de >ellas los objetos. Existe otra técnica más dinámica en la que unas >clases "delegan" en otras la creación de los objetos (mírate los ensayos >sobre "metaclases"). Me interesaba cambiar el código y que las instancias ya existentes tengan en cuenta las modificaciones del código, es decir, métodos modificados, nuevos métodos, métodos que ya no existen e incluso nuevos atributos de clase. Erny From rapto en arrakis.es Wed Mar 17 14:34:28 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Wed, 17 Mar 2004 14:34:28 +0100 Subject: Python vs Java C C++ In-Reply-To: <002401c40c24$1c062fe0$0100a8c0@servidor> References: <200403161033.10230.pepe@diselpro.com> <4056F0DA.6000309@ch3m4.org><001e01c40b8e$0a3fc730$0100a8c0@servidor> <40584216.8020704@ch3m4.org> <002401c40c24$1c062fe0$0100a8c0@servidor> Message-ID: <405853E4.4030903@arrakis.es> Entonces lo más parecido es la mutación (cambiar el atributo __class__) y llamar a __init__ a manubrio. -- "¿Qué sois ahora? ¡Mutantes, mutantes, mutantes!" Álex de la Iglesia, Acción mutante Ernesto Revilla wrote: >Hola, > >----- Original Message ----- >From: "Chema Cortes" >To: "La lista de python en castellano" >... > > >>> * la redefinición de una clase requiere, en general, >>> crear de nuevo los objetos que usan la clase. >>> >>> > > > >>Normalmente, se usan las clases como "plantillas" para crear a partir de >>ellas los objetos. Existe otra técnica más dinámica en la que unas >>clases "delegan" en otras la creación de los objetos (mírate los ensayos >>sobre "metaclases"). >> >> > >Me interesaba cambiar el código y que las instancias ya existentes >tengan en cuenta las modificaciones del código, es decir, >métodos modificados, nuevos métodos, métodos que ya >no existen e incluso nuevos atributos de clase. > >Erny > > > From Andres.Moya en hispalinux.es Wed Mar 17 15:32:12 2004 From: Andres.Moya en hispalinux.es (Andres Moya) Date: Wed, 17 Mar 2004 15:32:12 +0100 Subject: python para =?ISO-8859-1?Q?ni=F1os?= In-Reply-To: References: Message-ID: <1079533931.2765.112.camel@cebollino.micasa.es> El mié, 17-03-2004 a las 12:59, Antonio Castro escribió: > He visto más de una vez la recomendación de python como > primer lenguaje de programación. En principio parece buena > idea pero tampoco conozco las razones didácticas a favor de > esto si alguien las conoce me interesan. Los profesores de la universidad Jaume I de Castellón comparten también esa opinión. Aquí tienen un documento explicando por qué Python es un lenguaje muy bueno para aprender a programar: http://es.tldp.org/Presentaciones/200309hispalinux/15/15.pdf No sólo eso, han creado un curso de iniciación a la programación, y una herramienta muy maja con gráficos sencillos y potentes: http://marmota.act.uji.es/MTP/teoria.shtml (ver "Apuntes de Python") http://www3.uji.es/~dllorens/PythonG/ El curso empieza sumando 2 + 2 y termina dibujando fractales y haciendo videojuegos 3D. > Estoy considerando en iniciar a mi hijo de 11 años en la > programación y hacerlo con python pero solo conozco python > de hace un par de meses y lo que tengo es un subidón de > entusiasmo por este lenguaje y no quisiera equivocarme.. El curso está pensado para chicos más mayores, pero seguro que algo se podrá sacar. > Supongo que los pequeños ejemplos de juegos resultarían > apropiados. Porque a esta edad no es facil que se motiven > con otras cosas. > > Acabo de mirar el modulo turtle [...] Yo también tengo un nene de esa edad, y he empezado a trastear con ese módulo. Si no he progresado mucho es básicamente por falta de tiempo mío :( El módulo turtle de python es poco más que un ejemplo de código, pero es tan sencillito que es muy fácil de ampliar. A mí se me ocurrió escribir un fichero tortuga.py con todos los nombres de funciones en español, que se limitan a llamar al equivalente en inglés. Así el niño no tiene el inconveniente adicional del idioma. Tal que: def avanza(p): forward(p) def av(p): forward(p) Y así con todas. El PythonCard trae otro módulo tortuga, que creo que es más completo, pero no lo he probado. Sobre el logo y metodologías de enseñanza para niños, echa un ojillo aquí: http://roble.pntic.mec.es/~apantoja/ Por cierto, cuando tenga un rato echaré un vistazo al Alice ese. No es python pero también tiene una pinta... (a ver si rula con el WineX). -- Andres Moya Ni una víctima sin apoyo. Ni un sólo muerto más, nunca más. Y eso, también depende de tí. Ni violencia, ni miedo, ni conformismo. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Wed Mar 17 16:28:20 2004 From: rapto en arrakis.es (=?ISO-8859-15?Q?Marcos_S=E1nchez_Provencio?=) Date: Wed, 17 Mar 2004 16:28:20 +0100 Subject: python para =?ISO-8859-15?Q?ni=F1os?= In-Reply-To: <1079533931.2765.112.camel@cebollino.micasa.es> References: <1079533931.2765.112.camel@cebollino.micasa.es> Message-ID: <40586E94.2080208@arrakis.es> Un par de puntualizaciones aleatorias... Andres Moya wrote: >un fichero tortuga.py con todos los nombres de funciones en español, que >se limitan a llamar al equivalente en inglés. Así el niño no tiene el >inconveniente adicional del idioma. Tal que: > > def avanza(p): > forward(p) > > def av(p): > forward(p) > > Mucho más fácil (de hecho, más rápido en ejecución, pero en el caso de una tortuga...): avanza=av=forward >Y así con todas. > > >Por cierto, cuando tenga un rato echaré un vistazo al Alice ese. No es >python pero también tiene una pinta... (a ver si rula con el WineX). > > > Alice no está hecho por completo en Python, pero el lenguaje de programación que se usa/aprende sí es Python :-) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From hirunatan en hammo.org Wed Mar 17 16:33:34 2004 From: hirunatan en hammo.org (Andres Moya) Date: Wed, 17 Mar 2004 16:33:34 +0100 Subject: python para =?ISO-8859-1?Q?ni=F1os?= In-Reply-To: <40586E94.2080208@arrakis.es> References: <1079533931.2765.112.camel@cebollino.micasa.es> <40586E94.2080208@arrakis.es> Message-ID: <1079537614.2766.115.camel@cebollino.micasa.es> El mié, 17-03-2004 a las 16:28, Marcos Sánchez Provencio escribió: > Mucho más fácil (de hecho, más rápido en ejecución, pero en el caso de > una tortuga...): > avanza=av=forward Pues también es verdad. Esto del python mola :) > >Por cierto, cuando tenga un rato echaré un vistazo al Alice ese. No es > >python pero también tiene una pinta... (a ver si rula con el WineX). > > > Alice no está hecho por completo en Python, pero el lenguaje de > programación que se usa/aprende sí es Python :-) Caray, pues por lo que veo me parece que está hecho con Java y Jython (:-) Y dicen también en el FAQ que están trabajando en conseguir que funcione en Linux y Mac. -- Andrés Moya Ni una víctima sin apoyo. Ni un sólo muerto más, nunca más. Y eso, también depende de tí. Ni violencia, ni miedo, ni conformismo. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From hernan en orgmf.com.ar Wed Mar 17 17:15:00 2004 From: hernan en orgmf.com.ar (Hernan Foffani) Date: Wed, 17 Mar 2004 17:15:00 +0100 Subject: Python vs Java C C++ In-Reply-To: <002401c40c24$1c062fe0$0100a8c0@servidor> References: <002401c40c24$1c062fe0$0100a8c0@servidor> Message-ID: >>> * la redefinición de una clase requiere, en general, >>> crear de nuevo los objetos que usan la clase. > >> Normalmente, se usan las clases como "plantillas" para crear a >> partir de ellas los objetos. Existe otra técnica más dinámica en la >> que unas clases "delegan" en otras la creación de los objetos >> (mírate los ensayos sobre "metaclases"). > > Me interesaba cambiar el código y que las instancias ya existentes > tengan en cuenta las modificaciones del código, es decir, > métodos modificados, nuevos métodos, métodos que ya > no existen e incluso nuevos atributos de clase. Aparte de CLOS, no conozco otro lenguaje (lo que no significa que no haya) que provea un mecanismo para hacerlo mas o menos bien. Ni siquiera DYLAN (y eso que se llama asi por DYnamic LANguage). Para lo que quieres no alcanza con un rebinding de __class__. Los atributos de una instancia pueden tener otro tipo para lo que haría falta una conversion o peor aun otros objetos por lo que el cambio debe ser recursivo. Reinicializar la instancia implicaría que todos los objetos que son atributos de la instancia serían creados nuevamente. Si la instancia en cuestion incluyera un atributo de tipo list, reinicializar la instancia provocaría que los, digamos, 100 items de la lista se liberen y se recreen nuevamente. Para eso borra la instancia original y recreala nuevamente (solo *uno* mas de los 100 que ya tenías) De todas formas ¿Cómo evitarías las violaciones de contratos, interfaces e invariantes? Saludos, -H. From acastro en ciberdroide.com Wed Mar 17 17:38:41 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Wed, 17 Mar 2004 17:38:41 +0100 (CET) Subject: python para =?iso-8859-1?q?ni=F1os?= In-Reply-To: <200403171330.52459.jaime@iaa.es> References: <200403171330.52459.jaime@iaa.es> Message-ID: On Wed, 17 Mar 2004, Jaime Perea wrote: > El Miércoles, 17 de Marzo de 2004 13:20, Marcos Sánchez Provencio escribió: > > Si dispones de MS Windows, no dejes de mirar Alice > > http://www.alice.org/ > > > > Es un sistema para aprender a programar, usando objetos 3d. > > > > Antonio Castro wrote: > > >He visto más de una vez la recomendación de python como > > >primer lenguaje de programación. En principio parece buena > > >idea pero tampoco conozco las razones didácticas a favor de > > >esto si alguien las conoce me interesan. > > > > > >Estoy considerando en iniciar a mi hijo de 11 años en la > ............... > > Al hilo de esto y reconociendo que hablo del enemigo, > Me gustaría saber de los que sois muy informáticos si teneis > alguna idea de squeak (http://www.squeak.org/) que tiene > pinta de ser una herramienta muy potente para lo del > aprendizaje. Yo lo probé en CD-Live de linux. 'pequelin' http://www.expartakus.com/metadistro-pequelin Se puede decir que es programación visual y que es muy espectacular pero no es un lenguaje de programación. Me gustó, pero para mi gusto prefiero un buen lenguaje de programación como Python con sus librerías. > Está escrito en smalltalk y yo no tengo ni idea de lo que > eso significa aparte de que es oo del todo. > > Yo también había pensado en python para mi hija de > 11 años, pero me gustaría algo que fuera divertido, > ya que en esa edad eso es importante..... bueno, no > sólo para esa edad. Yo tengo pensado introducir unos pocos conceptos y dejarle que juege con turtle y con cosas así. Faciles y visuales. -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From py en ch3m4.org Wed Mar 17 19:40:48 2004 From: py en ch3m4.org (Chema Cortes) Date: Wed, 17 Mar 2004 19:40:48 +0100 Subject: Python vs Java C C++ In-Reply-To: <002401c40c24$1c062fe0$0100a8c0@servidor> References: <200403161033.10230.pepe@diselpro.com> <4056F0DA.6000309@ch3m4.org><001e01c40b8e$0a3fc730$0100a8c0@servidor> <40584216.8020704@ch3m4.org> <002401c40c24$1c062fe0$0100a8c0@servidor> Message-ID: <40589BB0.5020707@ch3m4.org> Ernesto Revilla escribió: > Me interesaba cambiar el código y que las instancias ya existentes > tengan en cuenta las modificaciones del código, es decir, > métodos modificados, nuevos métodos, métodos que ya > no existen e incluso nuevos atributos de clase. El problema que cuentas se debe a que las clases no se "redefinen", se "suplantan". Al redefinir una clase, lo que haces en realidad es crear una nueva clase que tiene el mismo nombre. El objeto aún conserva la referencia de la clase con la que fue creada, que habría que actualizar con la "transmutación" que tanto dice Marcos. Pero hay otra solución. Mira este ejemplo, por si te sirve de algo: class P1: def info(self): print "Instancia de P1" p=P() p.info() # --> "Instancia de P1" class P2: def info(self): print "Instancia de P2" def valor(self,val=10): self.dato=val ### Some kind of magic P1.__dict__.update(P2.__dict__) ### p.info() #--> "Instancia de P2" p.valor(100) print p.dato #--> 100 Y a partir de aquí puedes complicarlo todo lo que quieras, como utilizar las metaclases ó el atributo __new__ para construir una "factoría" de clases. From zoso en demiurgo.org Wed Mar 17 21:10:29 2004 From: zoso en demiurgo.org (Esteban Manchado =?iso-8859-1?Q?Vel=E1zquez?=) Date: Wed, 17 Mar 2004 20:10:29 +0000 Subject: Python vs Java C C++ In-Reply-To: References: <002401c40c24$1c062fe0$0100a8c0@servidor> Message-ID: <20040317201029.GA1177@velutha> Holas, sólo un comentario: On Wed, Mar 17, 2004 at 05:15:00PM +0100, Hernan Foffani wrote: > [...] > > Me interesaba cambiar el código y que las instancias ya existentes > > tengan en cuenta las modificaciones del código, es decir, > > métodos modificados, nuevos métodos, métodos que ya > > no existen e incluso nuevos atributos de clase. > > Aparte de CLOS, no conozco otro lenguaje (lo que no significa que > no haya) que provea un mecanismo para hacerlo mas o menos bien. > Ni siquiera DYLAN (y eso que se llama asi por DYnamic LANguage). Por lo menos en cuanto a los métodos, en Ruby se puede de manera muy sencilla; nuevos métodos, por supuesto; borrar métodos no sé si se puede; añadir atributos, no estoy seguro (¿con qué valor quedarían en cada objeto?). En el siguiente ejemplito lo hago con una de las clases base del lenguaje («String»), para más cachondeo: ------------------------------------ 8< ------------------------------------ s = "Literal de caracteres" puts s.to_i # Conversión a entero class String alias :old_to_i :to_i def to_i puts "Redefino el método «to_i»" old_to_i end end puts s.to_i ------------------------------------ >8 ------------------------------------ Supongo que es bastante obvio lo que hace. La salida es, por supuesto: ------------------------------------ 8< ------------------------------------ 0 Redefino el método «to_i» 0 ------------------------------------ >8 ------------------------------------ Saludos, -- Esteban Manchado Velázquez - http://www.demiurgo.org No software patents in Europe! - eurolinux.org - proinnova.hispalinux.es Join Amnesty International - http://www.amnesty.org/actnow From darvinavelar en yahoo.com Wed Mar 17 23:08:54 2004 From: darvinavelar en yahoo.com (=?iso-8859-1?q?Darvin=20Avelar?=) Date: Wed, 17 Mar 2004 16:08:54 -0600 (CST) Subject: tecnicas de Simulacion en python In-Reply-To: <4055B0E7.7050802@ch3m4.org> References: <4055B0E7.7050802@ch3m4.org> Message-ID: <20040317220854.40781.qmail@web21004.mail.yahoo.com> Hola a todos!! Me preguntaba si tienen algo de inf sobre tecnicas de simulacion en python: simulacion montecarlo; o librerias; ejemplos; o cualquier cosa que me pueada servir; recomendaciones; devido a que llevo una asignatura llamada "tecnicas de Simulacion" y quire realizar y mijar todas las tareas y proyectos a python. ASI QUE!!! ENTREMOLE!!! --------------------------------- Do You Yahoo!? Todo lo que quieres saber de Estados Unidos, América Latina y el resto del Mundo. Visíta Yahoo! Noticias. From aerd en retemail.es Thu Mar 18 00:02:59 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Thu, 18 Mar 2004 00:02:59 +0100 Subject: Python vs Java C C++ References: <200403161033.10230.pepe@diselpro.com> <4056F0DA.6000309@ch3m4.org><001e01c40b8e$0a3fc730$0100a8c0@servidor> <40584216.8020704@ch3m4.org><002401c40c24$1c062fe0$0100a8c0@servidor> <40589BB0.5020707@ch3m4.org> Message-ID: <004d01c40c73$ff700400$0100a8c0@servidor> Hola pues me parece extraordinariamente interesante, lo de "P1.__dict__.update(P2.__dict__)" Quizá es lo que necesito. Todo esto lo necesito para mi servidor de aplicaciones, como he dicho, que cuando haya una pila de personas conectadas y tengo que corregir código (normalmente para 1 ó 2 personas) no tenga que echar todo el mundo y reiniciar el servidor de aplicaciones. Pronto lo probaré! Muchas gracias, Erny Ernesto Revilla escribió: >> Me interesaba cambiar el código y que las instancias ya existentes >> tengan en cuenta las modificaciones del código, es decir, >> métodos modificados, nuevos métodos, métodos que ya >> no existen e incluso nuevos atributos de clase. >El problema que cuentas se debe a que las clases no se "redefinen", se >"suplantan". Al redefinir una clase, lo que haces en realidad es crear >una nueva clase que tiene el mismo nombre. El objeto aún conserva la >referencia de la clase con la que fue creada, que habría que actualizar >con la "transmutación" que tanto dice Marcos. >Pero hay otra solución. Mira este ejemplo, por si te sirve de algo: >class P1: > def info(self): > print "Instancia de P1" >p=P() >p.info() # --> "Instancia de P1" >class P2: > def info(self): > print "Instancia de P2" > def valor(self,val=10): > self.dato=val >### Some kind of magic >P1.__dict__.update(P2.__dict__) >### >p.info() #--> "Instancia de P2" >p.valor(100) >print p.dato #--> 100 >Y a partir de aquí puedes complicarlo todo lo que quieras, como utilizar >las metaclases ó el atributo __new__ para construir una "factoría" de >clases. From aerd en retemail.es Thu Mar 18 00:07:10 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Thu, 18 Mar 2004 00:07:10 +0100 Subject: tecnicas de Simulacion en python References: <20040317220854.40781.qmail@web21004.mail.yahoo.com> Message-ID: <005201c40c74$950a33f0$0100a8c0@servidor> Hay una librería para simulación http://simpy.sourceforge.net/ que permite simulación de eventos discretos. La verdad es que todavía no la he usado, pero tendrá como todos, una cola de eventos, un temporizador y todo eso. Erny ----- Original Message ----- From: "Darvin Avelar" To: "La lista de python en castellano" Sent: Wednesday, March 17, 2004 11:08 PM Subject: [Python-es] tecnicas de Simulacion en python > > Hola a todos!! > > Me preguntaba si tienen algo de inf sobre tecnicas de simulacion en > > python: simulacion montecarlo; o librerias; ejemplos; o cualquier > > cosa que me pueada servir; recomendaciones; devido a que llevo una > > asignatura llamada "tecnicas de Simulacion" y quire realizar y mijar > > todas las tareas y proyectos a python. > > ASI QUE!!! ENTREMOLE!!! > > > > --------------------------------- > Do You Yahoo!? > Todo lo que quieres saber de Estados Unidos, América Latina y el resto del Mundo. > Visíta Yahoo! Noticias. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Thu Mar 18 00:04:00 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Thu, 18 Mar 2004 00:04:00 +0100 Subject: Python vs Java C C++ In-Reply-To: <004d01c40c73$ff700400$0100a8c0@servidor> References: <200403161033.10230.pepe@diselpro.com> <4056F0DA.6000309@ch3m4.org><001e01c40b8e$0a3fc730$0100a8c0@servidor> <40584216.8020704@ch3m4.org><002401c40c24$1c062fe0$0100a8c0@servidor> <40589BB0.5020707@ch3m4.org> <004d01c40c73$ff700400$0100a8c0@servidor> Message-ID: <4058D960.8000202@arrakis.es> Webware permite parar y arrancar los servicios para hacer exactamente esto. Sólo hay que hacer que las clases sean almacenables con pickle, lo que no resulta demasiado complicado. Me imagino que otros servidores harán algo parecido. Ernesto Revilla escribió: >Hola > >pues me parece extraordinariamente interesante, lo de "P1.__dict__.update(P2.__dict__)" > >Quizá es lo que necesito. Todo esto lo necesito para mi servidor de aplicaciones, como he dicho, que cuando haya una pila de personas conectadas y tengo que corregir código (normalmente para 1 ó 2 personas) no tenga que echar todo el mundo y reiniciar el servidor de aplicaciones. > >Pronto lo probaré! > >Muchas gracias, >Erny > > >Ernesto Revilla escribió: > > > >>>Me interesaba cambiar el código y que las instancias ya existentes >>>tengan en cuenta las modificaciones del código, es decir, >>>métodos modificados, nuevos métodos, métodos que ya >>>no existen e incluso nuevos atributos de clase. >>> >>> > > > >>El problema que cuentas se debe a que las clases no se "redefinen", se >>"suplantan". Al redefinir una clase, lo que haces en realidad es crear >>una nueva clase que tiene el mismo nombre. El objeto aún conserva la >>referencia de la clase con la que fue creada, que habría que actualizar >>con la "transmutación" que tanto dice Marcos. >> >> > > > >>Pero hay otra solución. Mira este ejemplo, por si te sirve de algo: >> >> > > > >>class P1: >> def info(self): >> print "Instancia de P1" >> >> > > > >>p=P() >>p.info() # --> "Instancia de P1" >> >> > > > >>class P2: >> def info(self): >> print "Instancia de P2" >> def valor(self,val=10): >> self.dato=val >> >> > > > >>### Some kind of magic >>P1.__dict__.update(P2.__dict__) >>### >> >> > > > >>p.info() #--> "Instancia de P2" >>p.valor(100) >>print p.dato #--> 100 >> >> > > > > >>Y a partir de aquí puedes complicarlo todo lo que quieras, como utilizar >>las metaclases ó el atributo __new__ para construir una "factoría" de >>clases. >> >> > > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > From aerd en retemail.es Thu Mar 18 00:25:12 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Thu, 18 Mar 2004 00:25:12 +0100 Subject: Python vs Java C C++ References: <200403161033.10230.pepe@diselpro.com> <4056F0DA.6000309@ch3m4.org><001e01c40b8e$0a3fc730$0100a8c0@servidor> <40584216.8020704@ch3m4.org><002401c40c24$1c062fe0$0100a8c0@servidor> <40589BB0.5020707@ch3m4.org><004d01c40c73$ff700400$0100a8c0@servidor> <4058D960.8000202@arrakis.es> Message-ID: <006b01c40c7c$a5324670$0100a8c0@servidor> Sí, en el pickling he pensado también. Lo estudiaré poco a poco, pero es más complicado. Webware hace cosas de manera un poco más simples. Los clientes (softwares cliente) mantienen vínculos a los objetos en el servidor. Tengo que ver cómo lo haré. Saludos. Erny ----- Original Message ----- From: "Marcos Sánchez Provencio" To: "La lista de python en castellano" Sent: Thursday, March 18, 2004 12:04 AM Subject: Re: [Python-es] Python vs Java C C++ > Webware permite parar y arrancar los servicios para hacer exactamente > esto. Sólo hay que hacer que las clases sean almacenables con pickle, lo > que no resulta demasiado complicado. Me imagino que otros servidores > harán algo parecido. > > Ernesto Revilla escribió: > > >Hola > > > >pues me parece extraordinariamente interesante, lo de "P1.__dict__.update(P2.__dict__)" > > > >Quizá es lo que necesito. Todo esto lo necesito para mi servidor de aplicaciones, como he dicho, que cuando haya una pila de personas conectadas y tengo que corregir código (normalmente para 1 ó 2 personas) no tenga que echar todo el mundo y reiniciar el servidor de aplicaciones. > > > >Pronto lo probaré! > > > >Muchas gracias, > >Erny > > > > > >Ernesto Revilla escribió: > > > > > > > >>>Me interesaba cambiar el código y que las instancias ya existentes > >>>tengan en cuenta las modificaciones del código, es decir, > >>>métodos modificados, nuevos métodos, métodos que ya > >>>no existen e incluso nuevos atributos de clase. > >>> > >>> > > > > > > > >>El problema que cuentas se debe a que las clases no se "redefinen", se > >>"suplantan". Al redefinir una clase, lo que haces en realidad es crear > >>una nueva clase que tiene el mismo nombre. El objeto aún conserva la > >>referencia de la clase con la que fue creada, que habría que actualizar > >>con la "transmutación" que tanto dice Marcos. > >> > >> > > > > > > > >>Pero hay otra solución. Mira este ejemplo, por si te sirve de algo: > >> > >> > > > > > > > >>class P1: > >> def info(self): > >> print "Instancia de P1" > >> > >> > > > > > > > >>p=P() > >>p.info() # --> "Instancia de P1" > >> > >> > > > > > > > >>class P2: > >> def info(self): > >> print "Instancia de P2" > >> def valor(self,val=10): > >> self.dato=val > >> > >> > > > > > > > >>### Some kind of magic > >>P1.__dict__.update(P2.__dict__) > >>### > >> > >> > > > > > > > >>p.info() #--> "Instancia de P2" > >>p.valor(100) > >>print p.dato #--> 100 > >> > >> > > > > > > > > > >>Y a partir de aquí puedes complicarlo todo lo que quieras, como utilizar > >>las metaclases ó el atributo __new__ para construir una "factoría" de > >>clases. > >> > >> > > > > > >_______________________________________________ > >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 hernan en orgmf.com.ar Thu Mar 18 10:45:19 2004 From: hernan en orgmf.com.ar (Hernan Foffani) Date: Thu, 18 Mar 2004 10:45:19 +0100 Subject: Python vs Java C C++ In-Reply-To: <004d01c40c73$ff700400$0100a8c0@servidor> References: <004d01c40c73$ff700400$0100a8c0@servidor> Message-ID: Ernesto Revilla escribio: > pues me parece extraordinariamente interesante, lo de > "P1.__dict__.update(P2.__dict__)" > Quizá es lo que necesito. ¿Y si al redifinir la clase uno de los atributos existentes de la instancia cambia de tipo? ¿como lo resolverias? ¿cómo aplicarías los cambios si debes actualizar mas de una clase? > ....Todo esto lo necesito para mi servidor de > aplicaciones, como he dicho, que cuando haya una pila de personas > conectadas y tengo que corregir código (normalmente para 1 ó 2 > personas) no tenga que echar todo el mundo y reiniciar el servidor de > aplicaciones. ¿Es *necesario* para tu servidor de aplicaciones que los objetos tengan larga duración? Mas sano sería "suplantar" (como dice Chema) la clase anterior y así las nuevas instancias quedarán actualizadas dejando que las viejas el tiempo se las lleve. Creo que mas "estable" aún es implementar algun mecanismo para que *ciertas* clases sean instalables en tiempo de ejecucion. -H. From fonso en aturuxo.net Thu Mar 18 10:58:57 2004 From: fonso en aturuxo.net (=?iso-8859-1?Q?Afonso_Fern=E1ndez_Nogueira?=) Date: Thu, 18 Mar 2004 10:58:57 +0100 Subject: tecnicas de Simulacion en python References: <20040317220854.40781.qmail@web21004.mail.yahoo.com> <005201c40c74$950a33f0$0100a8c0@servidor> Message-ID: <006a01c40ccf$a16c7620$0201a8c0@colesterol> > Hay una librería para simulación http://simpy.sourceforge.net/ que permite simulación de eventos discretos. La verdad es que todavía no la he usado, pero tendrá como todos, una cola de eventos, un temporizador y todo eso. > Erny Y además David Mertz escribió un artículo sobre la librería en IBM DeveloperWorks: http://www-106.ibm.com/developerworks/linux/library/l-simpy.html Un saludo, Fonso From lcatalin en siadv.com Thu Mar 18 12:32:54 2004 From: lcatalin en siadv.com (Catalin Lungu) Date: Thu, 18 Mar 2004 12:32:54 +0100 Subject: wxWindows -- ShowCellEditControl() Message-ID: <001001c40cdc$c3710940$c800a8c0@catalin> Hola, Tengo el siguiente problema: Uso un wxGrid en un formulario y al dar click con el ratón en una celda para editarla no se edita. Pues, le tengo que dar un click para seleccionarla y otro para editarla. He intentado en el evento click izq. darle grid.ShowCellEditControl() y pasa de esto. Hay alguna solución? Un saludo, Catalin Lungu www.siadv.com From lcatalin en siadv.com Thu Mar 18 12:34:25 2004 From: lcatalin en siadv.com (Catalin Lungu) Date: Thu, 18 Mar 2004 12:34:25 +0100 Subject: CellEditor multilinea Message-ID: <001901c40cdc$f92dc000$c800a8c0@catalin> Hola, Existe en los wx algún editor de celda multilínea? Un saludo, Catalin Lungu www.siadv.com From py en ch3m4.org Thu Mar 18 13:43:35 2004 From: py en ch3m4.org (Chema Cortes) Date: Thu, 18 Mar 2004 13:43:35 +0100 Subject: Python vs Java C C++ In-Reply-To: References: Message-ID: <40599977.7040908@ch3m4.org> [Debería cambiar el "asunto", pero no sabría qué poner :-P] Hernan Foffani escribió: > ¿Y si al redifinir la clase uno de los atributos existentes > de la instancia cambia de tipo? ¿como lo resolverias? Se podría apañar creando "accesores" (sólo posible con __get__ ó __getattribute___) o creando "propiedades" (property()). Pero me temo que se complicaría todo mucho. :-( Y con las nuevas clases me temo que ya no se pueden hacer tantas barbaridades como las "transmutaciones", etc. Mejor olvidarse de intentarlo. > ¿cómo aplicarías los cambios si debes actualizar mas > de una clase? > ¿Es *necesario* para tu servidor de aplicaciones que los > objetos tengan larga duración? Desde luego que estaría todo solucionado si con cada petición del cliente se crearan de nuevo los objetos. El problema está en el rendimiento, ya que esta práctica aumenta considerablemente el tráfico de objetos entre cliente y servidor "siempre" (no sólo cuando se producen cambios en la definición). Habría que buscar un compromiso intermedio que sólo actualize los objetos cuando sea necesario. Por ejemplo, para las nuevas clases de python, donde no es posible hacer el truco de cambiar los diccionarios de la clase ó "transmutar" un objeto en otro (son atributos de sólo lectura), tenemos que recrear los objetos según la nueva definición de la clase. Supongamos que tenemos un módulo "MyModule" que redefine varias clases y queremos actualizar los objetos que tenemos creados con esas clases: reload(MyModule) #clases (tipos) que define 'MyModule' clsDict=dict([(k,v) for k,v in vars(MyModulo).items() if type(v) is type]) #conversión de tipo de los objetos (module scope) for k,v in vars().items(): if v.__class__.__name__ in clsDict.keys(): obj=vars()[k] #este objeto usa una clase antigüa cls=clsDict[v.__class__.__name__] #clase nueva vars()[k]=cls(obj) #recreamos el objeto con la clase nueva Como idea sirve (no la he probado), pero supongo que se puede hacer más elegante y fiable. Ya que se ha hablado de webware, el cherrypy también posee un mecanismo similar llamado "hotreload" por el que se avisa al servidor para que "recargue" las nuevas clases y recree las instancias a partir de ellas. Eso sí, hay que tener en cuenta que estamos hablando de un sistema muy simple en el que cada clase tiene una y sólo una intancia. From hernan en orgmf.com.ar Thu Mar 18 18:00:28 2004 From: hernan en orgmf.com.ar (Hernan Foffani) Date: Thu, 18 Mar 2004 18:00:28 +0100 Subject: digresiones (era: Python vs Java C C++) In-Reply-To: <40599977.7040908@ch3m4.org> References: <40599977.7040908@ch3m4.org> Message-ID: Chema escribio: > [Debería cambiar el "asunto", pero no sabría qué poner :-P] ya esta. :-) >> ¿Y si al redifinir la clase uno de los atributos existentes >> de la instancia cambia de tipo? ¿como lo resolverias? > > Se podría apañar creando "accesores" (sólo posible con __get__ ó > __getattribute___) o creando "propiedades" (property()). mis preguntas eran algo retoricas. no me refería tanto al problema técnico en sí (que ya es bastante complejo) si no mas bien al hecho de mantener toda la aplicación en un estado estable. por ej, puede darse el caso que la nueva clase C cambie un determinado atributo "coleccion" de list a dict. todas las instancias de C deberían recrear el atributo "coleccion" como dict con el contenido de las list anteriores. o si la nueva clase Cuenta cambia el atributo "titular" de la clase Persona a la clase Cliente, todas las instancias de Persona que sean atributos de instancias de la clase Cuenta deben cambiar de clase a Cliente aún cuando tanto Cliente como Persona no se hayan modificado per se. todo esto dejando la semántica a un lado. no hay forma de hacer un mecanismo "automatico" que, por ejemplo, cambie el atributo "logging" de tipo string a file (o viceversa) porque a partir de ahora decidimos mantener abierto el archivo de log para mejorar la performance. ¿como automatizar la acción aplicar ante cada cambio de cada atributo de cada instancia de cada clase? > ... > Ya que se ha hablado de webware, el cherrypy también posee un > mecanismo similar llamado "hotreload" por el que se avisa al servidor > para que "recargue" las nuevas clases y recree las instancias a > partir de ellas. Esto es mas terrenal. Me parece factible implementar un core que sea el que se ocupe del "hotreload" de las clases que implementan la lógica del negocio quedando el core de este mecanismo. (no invento nada nuevo...) -H. From aerd en retemail.es Fri Mar 19 15:24:16 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Fri, 19 Mar 2004 15:24:16 +0100 Subject: Python vs Java C C++ References: Message-ID: <004101c40dbd$de9e41b0$0100a8c0@servidor> Hola, esta técnica la quiero usar sólo para ligeras correciones del código, lo que van a ser la mayoría, creo una vez que el software está en producción. Así que no me planteo si cambia de tipo o no. Las intancias mantienen sus datos. Opcionalmente, meteré procedimientos de conversión en un momento dado. De todos modos, espero que los unittests me eviten mucho de esas pequeñas correciones. A menudo, esos cambios son provocados, porque no se tienen los requisitos funcionales del todo correcto, bien por no haber realizado correctamente el análisis, bien porque los usuarios no lo han especificado correctamente, o no lo han validado (cosa que pasa bastante a menudo). El evitar tener que rearrancar el software lo hace realmente más escalable. En vez de empresas con 5 puestos puedo ponerselo a los que tengan 20 ó 30. Con J2EE no sé cómo se resuelve. (En BD relacionales con triggers, todo se mete en una transacción y se aplica al sistema en vivo.) Saludos, Erny ----- Original Message ----- From: "Hernan Foffani" To: "La lista de python en castellano" Sent: Thursday, March 18, 2004 10:45 AM Subject: RE: [Python-es] Python vs Java C C++ > Ernesto Revilla escribio: > > pues me parece extraordinariamente interesante, lo de > > "P1.__dict__.update(P2.__dict__)" > > Quizá es lo que necesito. > > ¿Y si al redifinir la clase uno de los atributos existentes > de la instancia cambia de tipo? ¿como lo resolverias? > ¿cómo aplicarías los cambios si debes actualizar mas > de una clase? > > > ....Todo esto lo necesito para mi servidor de > > aplicaciones, como he dicho, que cuando haya una pila de personas > > conectadas y tengo que corregir código (normalmente para 1 ó 2 > > personas) no tenga que echar todo el mundo y reiniciar el servidor de > > aplicaciones. > > ¿Es *necesario* para tu servidor de aplicaciones que los > objetos tengan larga duración? > Mas sano sería "suplantar" (como dice Chema) la clase anterior > y así las nuevas instancias quedarán actualizadas dejando > que las viejas el tiempo se las lleve. > Creo que mas "estable" aún es implementar algun mecanismo para > que *ciertas* clases sean instalables en tiempo de ejecucion. > > -H. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From FBatista en uniFON.com.ar Fri Mar 19 18:14:54 2004 From: FBatista en uniFON.com.ar (Batista, Facundo) Date: Fri, 19 Mar 2004 14:14:54 -0300 Subject: =?iso-8859-1?q?FAQ_en_espa=F1ol?= Message-ID: Gente: Trduje la FAQ General de Python. La misma está en: http://www.taniquetil.com.ar/facundo/python/index.html Estoy viendo de que la hosteen en python.org, si luego cambia de lugar, les aviso. ¡Que la disfruten! Slds. . Facundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ADVERTENCIA La información contenida en este mensaje y cualquier archivo anexo al mismo, son para uso exclusivo del destinatario y pueden contener información confidencial o propietaria, cuya divulgación es sancionada por la ley. Si Ud. No es uno de los destinatarios consignados o la persona responsable de hacer llegar este mensaje a los destinatarios consignados, no está autorizado a divulgar, copiar, distribuir o retener información (o parte de ella) contenida en este mensaje. Por favor notifíquenos respondiendo al remitente, borre el mensaje original y borre las copias (impresas o grabadas en cualquier medio magnético) que pueda haber realizado del mismo. Todas las opiniones contenidas en este mail son propias del autor del mensaje y no necesariamente coinciden con las de Telefónica Comunicaciones Personales S.A. o alguna empresa asociada. Los mensajes electrónicos pueden ser alterados, motivo por el cual Telefónica Comunicaciones Personales S.A. no aceptará ninguna obligación cualquiera sea el resultante de este mensaje. Muchas Gracias. From rapto en arrakis.es Fri Mar 19 18:27:07 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Fri, 19 Mar 2004 18:27:07 +0100 Subject: FAQ en =?ISO-8859-1?Q?espa=F1ol?= In-Reply-To: References: Message-ID: <405B2D6B.2060806@arrakis.es> Bueno, te lo agradezco, como todos los de la lista, me imagino. Te aseguro que aprecio el curro de traducir documentación. ¿Cuántos usuarios castellanoparlantes de Python habrá? Ahora hay 512 suscriptores a la lista; con esfuerzos como el tuyo, llegaremos pronto a 1000 :-) Batista, Facundo escribió: >Gente: > >Trduje la FAQ General de Python. > >La misma está en: http://www.taniquetil.com.ar/facundo/python/index.html > >Estoy viendo de que la hosteen en python.org, si luego cambia de lugar, les >aviso. > >¡Que la disfruten! > >Slds. > >. Facundo > > > From FBatista en uniFON.com.ar Fri Mar 19 18:38:03 2004 From: FBatista en uniFON.com.ar (Batista, Facundo) Date: Fri, 19 Mar 2004 14:38:03 -0300 Subject: =?iso-8859-1?Q?RE=3A_=5BPython-es=5D_FAQ_en_espa=F1ol?= Message-ID: #- Bueno, te lo agradezco, como todos los de la lista, me imagino. Te #- aseguro que aprecio el curro de traducir documentación. De nadasssss. #- ¿Cuántos usuarios castellanoparlantes de Python habrá? Ufff, no lo se. Por lo pronto, en Argentina hay pocos. Ojalá en algún momento lleguemos a la masa crítica suficiente como para armar, no te dgo una Conferencia, pero por lo menos una ronda de cervezas en algún bar, ;) #- Ahora hay 512 suscriptores a la lista; con esfuerzos como el tuyo, #- llegaremos pronto a 1000 :-) El otro día entré a #python-es de irc.freenode.net y habían poooooocos. . Facundo From rapto en arrakis.es Fri Mar 19 18:51:13 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Fri, 19 Mar 2004 18:51:13 +0100 Subject: FAQ en =?ISO-8859-1?Q?espa=F1ol?= In-Reply-To: References: Message-ID: <405B3311.5020107@arrakis.es> Batista, Facundo escribió: >#- Ahora hay 512 suscriptores a la lista; con esfuerzos como el tuyo, >#- llegaremos pronto a 1000 :-) > >El otro día entré a #python-es de irc.freenode.net y habían poooooocos. > > Yo igual me apunto si hay un canal en soulseek :-) De hecho, voy a darlo de alta. python-es en soulseek/yo ya estoy dentro. From fheredero en topmusic.ch Fri Mar 19 18:54:26 2004 From: fheredero en topmusic.ch (=?iso-8859-1?Q?Fran=E7ois_Heredero_-_Top_Music_SA?=) Date: Fri, 19 Mar 2004 18:54:26 +0100 Subject: =?iso-8859-1?Q?RE:_=5BPython-es=5D_FAQ_en_espa=F1ol?= In-Reply-To: References: Message-ID: > #- ¿Cuántos usuarios castellanoparlantes de Python habrá? > (...) > Por lo pronto, en Argentina hay pocos. > (...) > #- Ahora hay 512 suscriptores a la lista Tambien hay que vienen de Suiza, como yo :-) Si quereis comparar, tambien estoy en la lista de python en frances [1], y actualmente hay 748 suscriptores. François [1] http://www.aful.org/wws/arc/python From FBatista en uniFON.com.ar Fri Mar 19 18:54:58 2004 From: FBatista en uniFON.com.ar (Batista, Facundo) Date: Fri, 19 Mar 2004 14:54:58 -0300 Subject: =?iso-8859-1?Q?RE=3A_=5BPython-es=5D_FAQ_en_espa=F1ol?= Message-ID: #- python-es en soulseek/yo ya estoy dentro. ¿soulseek? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ADVERTENCIA La información contenida en este mensaje y cualquier archivo anexo al mismo, son para uso exclusivo del destinatario y pueden contener información confidencial o propietaria, cuya divulgación es sancionada por la ley. Si Ud. No es uno de los destinatarios consignados o la persona responsable de hacer llegar este mensaje a los destinatarios consignados, no está autorizado a divulgar, copiar, distribuir o retener información (o parte de ella) contenida en este mensaje. Por favor notifíquenos respondiendo al remitente, borre el mensaje original y borre las copias (impresas o grabadas en cualquier medio magnético) que pueda haber realizado del mismo. Todas las opiniones contenidas en este mail son propias del autor del mensaje y no necesariamente coinciden con las de Telefónica Comunicaciones Personales S.A. o alguna empresa asociada. Los mensajes electrónicos pueden ser alterados, motivo por el cual Telefónica Comunicaciones Personales S.A. no aceptará ninguna obligación cualquiera sea el resultante de este mensaje. Muchas Gracias. From rglm en montevideo.com.uy Fri Mar 19 19:03:19 2004 From: rglm en montevideo.com.uy (Raul Lopez) Date: Fri, 19 Mar 2004 15:03:19 -0300 Subject: FAQ en =?ISO-8859-1?Q?espa=F1ol?= In-Reply-To: References: Message-ID: <20040319150319.6e6b4f54.rglm@montevideo.com.uy> On Fri, 19 Mar 2004 14:38:03 -0300 "Batista, Facundo" wrote: > #- Bueno, te lo agradezco, como todos los de la lista, me imagino. Te > #- aseguro que aprecio el curro de traducir documentación. > > De nadasssss. > > > #- ¿Cuántos usuarios castellanoparlantes de Python habrá? > > Ufff, no lo se. > > Por lo pronto, en Argentina hay pocos. Ojalá en algún momento > lleguemos a la masa crítica suficiente como para armar, no te dgo una > Conferencia, pero por lo menos una ronda de cervezas en algún bar, ;) > > > #- Ahora hay 512 suscriptores a la lista; con esfuerzos como el tuyo, > #- llegaremos pronto a 1000 :-) > > El otro día entré a #python-es de irc.freenode.net y habían > poooooocos. > > > . Facundo Hola a todos: Este es mi primer dia en la lista, y realmente me alegra encontrar gente con tan buena onda. Tengo experiencia en programacion en c++, PHP y Delphi, pero recien estoy empezando con python, asi que espero me tengais paciencia. Les mando un afectuoso saludo a todos desde Montevideo, Uruguay. -- Raul Lopez Moffa ICQ #288495059 Debian GNU/Linux Usuario Linux #315991 From rapto en arrakis.es Fri Mar 19 19:17:34 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Fri, 19 Mar 2004 19:17:34 +0100 Subject: FAQ en =?ISO-8859-1?Q?espa=F1ol?= In-Reply-To: References: Message-ID: <405B393E.8030604@arrakis.es> Batista, Facundo escribió: >#- python-es en soulseek/yo ya estoy dentro. > >¿soulseek? > > > > Una red de intercambio de música, la heredera de Napster. Era un poco de guasa, pero es cierto que he creado el canal. From hernan en orgmf.com.ar Sat Mar 20 18:09:29 2004 From: hernan en orgmf.com.ar (Hernan Foffani) Date: Sat, 20 Mar 2004 18:09:29 +0100 Subject: Python vs Java C C++ In-Reply-To: <004101c40dbd$de9e41b0$0100a8c0@servidor> References: <004101c40dbd$de9e41b0$0100a8c0@servidor> Message-ID: Erny escribio: > esta técnica la quiero usar sólo para ligeras correciones del código, > lo que van a ser la mayoría, creo una vez que el software está en > producción. Entiendo tu necesidad. Solo digo que cambiar la clase de instancias en tiempo real y mantener la consistencia de todo el sistema... como que no lo veo... > A menudo, esos cambios son provocados, porque no se tienen > los requisitos funcionales del todo correcto, bien por no > haber realizado correctamente el análisis, bien porque los > usuarios no lo han especificado correctamente, o no lo han validado > (cosa que pasa bastante a menudo) jejeje.... también lo he visto a menudo. lo que no he visto casi nunca es que esos cambios sean "pequeños". jajaja! debo haber tenido mala suerte con los usuarios... recuerdo una vez que un usuario pedía: "solo se trata de agregar un botoncito que abra una ventanita." "¿y en la ventana que habría?" "deberia mostrar todos los expedientes" je... vaya con el "botoncito". dejando a un lado el hecho que el concepto de expediente nunca se habia mencionado anteriormente, sorprendía ver al cliente tan convencido que el tamaño del cambio (y por consiguiente el presupuesto del mismo) debía ser unicamente proporcional al tamaño del "botoncito". > ... El evitar tener que rearrancar el software lo > hace realmente más escalable. En vez de empresas con 5 puestos puedo > ponerselo a los que tengan 20 ó 30. Concuerdo contigo. Pero en ese caso ¿es necesario que TODO el servidor de aplicacion sea actualizable en tiempo real? (por TODO me refiero a todos los modulos del sistema.) ¿no te sería mas fácil reducir la capacidad de hacer modificaciones en caliente a solo una parte del mismo? (la que da servicios a usuarios) > ... Con J2EE no sé cómo se resuelve. > (En BD relacionales con triggers, todo se mete en una transacción y > se aplica al sistema en vivo.) Que yo sepa, ningun sistema te permite modificar cualquier parte del codigo sin bajar el servicio. No es posible actualizar de Oracle 8 a 9i sin bajar el motor, ni cambiar de version de WebLogic, etc. Que se pueda actualizar "ciertos" servicios (ya sean triggers, procediemientos almacenados, servicios J2EE) no implica que CUALQUIER parte del sistema se pueda actualizar. Saludos, -H. From aerd en retemail.es Sun Mar 21 16:32:26 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Sun, 21 Mar 2004 16:32:26 +0100 Subject: Python vs Java C C++ References: Message-ID: <002801c40f5a$32e29580$0100a8c0@servidor> ----- Original Message ----- From: "Hernan Foffani" ... > > ... El evitar tener que rearrancar el software lo > > hace realmente más escalable. En vez de empresas con 5 puestos puedo > > ponerselo a los que tengan 20 ó 30. > > Concuerdo contigo. Pero en ese caso ¿es necesario que TODO el > servidor de aplicacion sea actualizable en tiempo real? (por TODO me > refiero a todos los modulos del sistema.) > ¿no te sería mas fácil reducir la capacidad de hacer modificaciones > en caliente a solo una parte del mismo? (la que da servicios a > usuarios) sí, en principio sólo se reduce a una parte pequeña de la aplicación, que son las clases de negocio, pero de los cuales puede haber 60 ó 70 y que viven normalmente en el mismo directorio y que además siempre van a ser 'from NombreEntidad import NombreEntidad'. Acabo de probar: >>> class MiObjeto(object): def metodo(self): print "implementación 1" >>> mo=MiObjeto() >>> class MiObjeto(object): def metodo(self): print "implementación 2" >>> mo.__class__=MiObjeto >>> mo.metodo() implementación 2 bajo Python 2.2 y 2.3 y me funciona bien, lo que me puede servir. Lo que no funciona (en Python 2.3) es: >>> class MiObjeto(object): def metodo(self): print "implementación 1" >>> mo=MiObjeto() >>> class MiObjeto(object): def metodo(self): print "implementación 2" >>> mo.__class__.__dict__.update(MiObjeto.__dict__) Traceback (most recent call last): File "", line 1, in -toplevel- mo.__class__.__dict__.update(MiObjeto.__dict__) AttributeError: 'dictproxy' object has no attribute 'update' ni me deja actualizar cambiar el atributo __dict__ (reemplazarlo por otra copi) Erny From rapto en arrakis.es Sun Mar 21 17:19:35 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Sun, 21 Mar 2004 17:19:35 +0100 Subject: Python vs Java C C++ In-Reply-To: <002801c40f5a$32e29580$0100a8c0@servidor> References: <002801c40f5a$32e29580$0100a8c0@servidor> Message-ID: <405DC097.90501@arrakis.es> A mí me parece que deberías desacoplar el comportamiento previsiblemente variable en otro atributo, de manera que: De empresa.hazesto() pasarías a empresa.reglas.hazEsto() y para migrar empresa.reglas=otrasReglas los atributos que no variaran seguirían en el mismo sitio; los que cambien, la migración de versión no te la quita nadie. Ernesto Revilla escribió: >----- Original Message ----- >From: "Hernan Foffani" >... > > >>>... El evitar tener que rearrancar el software lo >>>hace realmente más escalable. En vez de empresas con 5 puestos puedo >>>ponerselo a los que tengan 20 ó 30. >>> >>> >>Concuerdo contigo. Pero en ese caso ¿es necesario que TODO el >>servidor de aplicacion sea actualizable en tiempo real? (por TODO me >>refiero a todos los modulos del sistema.) >>¿no te sería mas fácil reducir la capacidad de hacer modificaciones >>en caliente a solo una parte del mismo? (la que da servicios a >>usuarios) >> >> > >sí, en principio sólo se reduce a una parte pequeña de la aplicación, >que son las clases de negocio, pero de los cuales puede haber >60 ó 70 y que viven normalmente en el mismo directorio y que >además siempre van a ser 'from NombreEntidad import NombreEntidad'. > >Acabo de probar: > > >>>>class MiObjeto(object): >>>> >>>> > def metodo(self): > print "implementación 1" > > >>>>mo=MiObjeto() >>>>class MiObjeto(object): >>>> >>>> > def metodo(self): > print "implementación 2" > > >>>>mo.__class__=MiObjeto >>>>mo.metodo() >>>> >>>> >implementación 2 > >bajo Python 2.2 y 2.3 y me funciona bien, lo que me puede servir. Lo que no funciona (en Python 2.3) es: > > >>>>class MiObjeto(object): >>>> >>>> > def metodo(self): > print "implementación 1" > > >>>>mo=MiObjeto() >>>>class MiObjeto(object): >>>> >>>> > def metodo(self): > print "implementación 2" > > >>>>mo.__class__.__dict__.update(MiObjeto.__dict__) >>>> >>>> >Traceback (most recent call last): > File "", line 1, in -toplevel- > mo.__class__.__dict__.update(MiObjeto.__dict__) >AttributeError: 'dictproxy' object has no attribute 'update' > >ni me deja actualizar cambiar el atributo __dict__ (reemplazarlo por otra copi) > >Erny > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > From acastro en ciberdroide.com Sun Mar 21 19:00:51 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Sun, 21 Mar 2004 19:00:51 +0100 (CET) Subject: Pseudo valor inf Message-ID: Llevo solo un par de meses con python y he visto que por defecto existe una gestión muy extraña de ciertos desbordamientos con valores reales. Evidentemente dejar que el interprete de python pase un dato real a un pseudo valor infinito de forma automática, transparente y sin mensaje de error alguno a mi no me parece una gran idea. x=9.9e999 if 5.5 + x == x: print 'OK: 5.5 + x == x' print 'x=', x ¿ Supongo que este error se puede gestionar de alguna manera no ? -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From rapto en arrakis.es Sun Mar 21 19:35:39 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Sun, 21 Mar 2004 19:35:39 +0100 Subject: Pseudo valor inf In-Reply-To: References: Message-ID: <405DE07B.3010204@arrakis.es> Antonio Castro escribió: >Llevo solo un par de meses con python y he visto que por defecto >existe una gestión muy extraña de ciertos desbordamientos con >valores reales. > >Evidentemente dejar que el interprete de python >pase un dato real a un pseudo valor infinito de forma >automática, transparente y sin mensaje de error alguno >a mi no me parece una gran idea. > > x=9.9e999 > if 5.5 + x == x: > print 'OK: 5.5 + x == x' > print 'x=', x > >¿ Supongo que este error se puede gestionar de alguna >manera no ? > > > Este problema viene explicado en http://cielito.sindominio.net/~rapto/python/tut/node14.html ¿Te has encontrado el problema de verdad? Existe un módulo FixedPoint para estas cosas. http://fixedpoint.sourceforge.net/ From rapto en arrakis.es Sun Mar 21 19:52:43 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Sun, 21 Mar 2004 19:52:43 +0100 Subject: Pseudo valor inf In-Reply-To: <405DE07B.3010204@arrakis.es> References: <405DE07B.3010204@arrakis.es> Message-ID: <405DE47B.1080706@arrakis.es> Marcos Sánchez Provencio escribió: > Antonio Castro escribió: > >> Llevo solo un par de meses con python y he visto que por defecto >> existe una gestión muy extraña de ciertos desbordamientos con >> valores reales. >> >> Evidentemente dejar que el interprete de python >> pase un dato real a un pseudo valor infinito de forma >> automática, transparente y sin mensaje de error alguno >> a mi no me parece una gran idea. >> >> x=9.9e999 >> if 5.5 + x == x: >> print 'OK: 5.5 + x == x' >> print 'x=', x >> >> ¿ Supongo que este error se puede gestionar de alguna >> manera no ? >> >> >> > Este problema viene explicado en > http://cielito.sindominio.net/~rapto/python/tut/node14.html > > ¿Te has encontrado el problema de verdad? Existe un módulo FixedPoint > para estas cosas. > http://fixedpoint.sourceforge.net/ > Bueno, no es del todo adecuado (lo del salto al hiperespa^W infinito no tiene que ver con el redondeo de coma flotante), pero esto va >>> import fixedpoint as fp >>> a=fp.FixedPoint('3e999') >>> a+0.5==a False >>> a+0.5 FixedPoint('3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.50', 2) From gsa en softhome.net Sun Mar 21 14:48:25 2004 From: gsa en softhome.net (Germán S. Arduino) Date: Sun, 21 Mar 2004 10:48:25 -0300 Subject: Python vs Java C C++ References: <200403161033.10230.pepe@diselpro.com> <4056F0DA.6000309@ch3m4.org> <001e01c40b8e$0a3fc730$0100a8c0@servidor> Message-ID: Hola: Muy interesantes tus notas, agrego algún bocadillo intermedio: > * cosas técnicas que no me gustan de python: > * la redefinición de una clase requiere, en general, > crear de nuevo los objetos que usan la clase. > Sé que se pueden usar trucos para evitar eso, pero siguen > siendo trucos. El problema es que cuando estás corrigiendo > código que corre dentro de un servidor de aplicaciones > tienes que rearrancar el servidor de aplicaciones con esas > nuevas definciones. Eso es bastante molesto, especialmente > si tienes 50 personas conectados al servidor de aplicaciones. > Hay otros lenguajes, como PHP (y Ruby?) donde creo que > ese no es el caso. En Java no sé cómo se resuelve esto. Si bien se habla de Python y Java no puedo menos que mencionar uno de mis grandes amores: Smalltalk. El hecho de la existencia de un ambiente de objetos (mucho más que un lenguaje) permite estas cosas, esta corrección de código al vuelo, sin necesidad de reiniciar el servidor. Saludos. Germán S. Arduino http://www.arsol.biz ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From malotor en telefonica.net Sun Mar 21 21:24:26 2004 From: malotor en telefonica.net (Manuel =?ISO-8859-1?Q?L=F3pez?= Torrent) Date: Sun, 21 Mar 2004 21:24:26 +0100 Subject: Referencia controles wxPython Message-ID: <1079900666.4417.7.camel@Zeus> Hace poco que he empezado a programar con python ( ya tenia experiencia con otros lenguajes como C++ o PHP ) y debo confesar que me esta "enamorando" este lenguaje. He estado recopilando información y pequeños tutoriales pero lo que que no he encontrado es una referencia completa a las librerías wxPython, explicando todos los controles y sus parámetros. Si alguien conoce alguna web donde conseguir esta documentación le quedaría muy agradecido que me la enviase. Gracias y saludos a todos los miembros de la lista. Soul ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From ch3m4 en ch3m4.org Mon Mar 22 04:14:08 2004 From: ch3m4 en ch3m4.org (Chema =?iso-8859-1?b?Q29ydOlz?=) Date: Sun, 21 Mar 2004 19:14:08 -0800 Subject: Pseudo valor inf In-Reply-To: References: Message-ID: <1079925248.405e5a007f047@ch3m4.org> Mensaje citado por Antonio Castro : > Llevo solo un par de meses con python y he visto que por defecto > existe una gestión muy extraña de ciertos desbordamientos con > valores reales. > > Evidentemente dejar que el interprete de python > pase un dato real a un pseudo valor infinito de forma > automática, transparente y sin mensaje de error alguno > a mi no me parece una gran idea. Puede que no te parezca bien, pero en python se sigue la normalización IEEE-754: http://babbage.cs.qc.edu/courses/cs341/IEEE-754references.html Resultan especialmente adecuados para representar ciertas funciones matemáticas (pe: tan(x)). Están aceptados por la norma tanto +infinito como -infinito aceptados por la norma, y son números con los que puedes operar como cualquier número real: >>> a=1e3000 #infinito >>> math.atan(a) == math.pi/2.0 True Pero ¿realmente es tanto el problema? Donde veas que da infinito, ya sabes que has tenido un desbordamiento. El problema es que no está todavía muy conseguido el manejo de estos valores. Hay un PEP dedicado a ello: http://www.python.org/peps/pep-0754.html From acastro en ciberdroide.com Mon Mar 22 08:08:07 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Mon, 22 Mar 2004 08:08:07 +0100 (CET) Subject: Pseudo valor inf In-Reply-To: <405DE07B.3010204@arrakis.es> References: <405DE07B.3010204@arrakis.es> Message-ID: On Sun, 21 Mar 2004, Marcos Sánchez Provencio wrote: > Antonio Castro escribió: > > >Llevo solo un par de meses con python y he visto que por defecto > >existe una gestión muy extraña de ciertos desbordamientos con > >valores reales. > > > >Evidentemente dejar que el interprete de python > >pase un dato real a un pseudo valor infinito de forma > >automática, transparente y sin mensaje de error alguno > >a mi no me parece una gran idea. > > > > x=9.9e999 > > if 5.5 + x == x: > > print 'OK: 5.5 + x == x' > > print 'x=', x > > > >¿ Supongo que este error se puede gestionar de alguna > >manera no ? > > > > > > > Este problema viene explicado en > http://cielito.sindominio.net/~rapto/python/tut/node14.html Pero lo que viene comentado es el problema clásico que presentan los numeros reales en todos los lenguajes. Quizás he puesto un mal ejemplo para ilustrar el problema o quizás precisamente por las limitaciones de los números reales se puede considerar menos grave la anomalía que a mi juicio introduce el pseudovalor pero en cualquier caso se percibe muy claramente un anomalía en el comportamiento de estos números porque superado cierto valor máximo se convierte repentinamente en inf cosa que evidentemente puede ser tenida en cuenta en la programación. Se trata de una gestion diferente a la tradicional. > > ¿Te has encontrado el problema de verdad? Se trataba de un tutorial. Pretendía ir duplicando un número en un bucle infinito hasta que diera error pero jamás da error. > Existe un módulo FixedPoint > para estas cosas. > http://fixedpoint.sourceforge.net/ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From acastro en ciberdroide.com Mon Mar 22 08:34:15 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Mon, 22 Mar 2004 08:34:15 +0100 (CET) Subject: Pseudo valor inf In-Reply-To: <1079925248.405e5a007f047@ch3m4.org> References: <1079925248.405e5a007f047@ch3m4.org> Message-ID: On Sun, 21 Mar 2004, Chema Cortés wrote: > Mensaje citado por Antonio Castro : > > > Llevo solo un par de meses con python y he visto que por defecto > > existe una gestión muy extraña de ciertos desbordamientos con > > valores reales. > > > > Evidentemente dejar que el interprete de python > > pase un dato real a un pseudo valor infinito de forma > > automática, transparente y sin mensaje de error alguno > > a mi no me parece una gran idea. > > Puede que no te parezca bien, pero en python se sigue la normalización > IEEE-754: > http://babbage.cs.qc.edu/courses/cs341/IEEE-754references.html > > Resultan especialmente adecuados para representar ciertas funciones matemáticas > (pe: tan(x)). Están aceptados por la norma tanto +infinito como -infinito > aceptados por la norma, y son números con los que puedes operar como cualquier > número real: > > >>> a=1e3000 #infinito > >>> math.atan(a) == math.pi/2.0 > True > > Pero ¿realmente es tanto el problema? Donde veas que da infinito, ya sabes que > has tenido un desbordamiento. El problema es que no está todavía muy conseguido > el manejo de estos valores. Hay un PEP dedicado a ello: > http://www.python.org/peps/pep-0754.html Mira una cosa: >>> 1.0/0.0 Traceback (most recent call last): File "", line 1, in ? ZeroDivisionError: float division El resultado podría ser infinito pero da un error y no deja de resultar una decisión arbitraria y caprichosa considerar unas veces inf y otras provocar el error. El probñema es que se pueden producir situaciones indeterminadas las cuales ahora veo que figuran como nan. >>> a=1.0e999 >>> a*0 nan Por cierto acabo de ver otra cosa sorprendente: >>> math.tan(math.pi/2.0) 16331778728383844.0 Y otra cosa más >>> import math >>> dir(math) ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'sin', 'sinh', 'sqrt', 'tan', 'tanh'] Se podría haber puesto math.inf y math.nan Los números reales siempre han sido un quebradero de cabeza y personalmente creo que si se puede usar inf para ciertas cosas. El punto que yo considero conflictivo es que una cantidad finita tal que a=1.0e999 sea considerada infinito. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From py en ch3m4.org Mon Mar 22 09:58:12 2004 From: py en ch3m4.org (Chema Cortes) Date: Mon, 22 Mar 2004 09:58:12 +0100 Subject: Pseudo valor inf In-Reply-To: References: Message-ID: <405EAAA4.4070601@ch3m4.org> Antonio Castro escribió: > Mira una cosa: > > >>>>1.0/0.0 > > Traceback (most recent call last): > File "", line 1, in ? > ZeroDivisionError: float division > > El resultado podría ser infinito pero da un error y no deja > de resultar una decisión arbitraria y caprichosa considerar unas > veces inf y otras provocar el error. Siendo precisos, podría ser tanto +infinito cómo -infinito, según cómo tiendas asintóticamente a 0. En realidad se considera una indeterminación, y no hay posibilidad de seguir operando con el resultado. > Por cierto acabo de ver otra cosa sorprendente: > >>>>math.tan(math.pi/2.0) > > 16331778728383844.0 Es un resultado correcto, teniendo en cuenta cómo está definido pi (que justamente es como está definido por la librería math de C). Es un problema de precisión del cálculo. Hasta la versión 2.3 había un módulo llamado 'mpz' para cálculo multiprecisión, pero se quitó por ser dependiente de la plataforma (creo). > Y otra cosa más > > >>>>import math >>>>dir(math) > > ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 'atan2', > 'ceil', 'cos', 'cosh', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', > 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'sin', 'sinh', > 'sqrt', 'tan', 'tanh'] > > Se podría haber puesto math.inf y math.nan Mira el PEP 754 que te puse. La idea es crear un módulo llamado 'fpconst' con estas entidades y otras utilidades. > Los números reales siempre han sido un quebradero de cabeza y > personalmente creo que si se puede usar inf para ciertas cosas. > > El punto que yo considero conflictivo es que una cantidad finita tal que > a=1.0e999 sea considerada infinito. Matemáticamente hablando, es una cantidad finita; pero si hablamos de cálculo, ésta una cantidad que puede considerarse "no computable". ¿Hay álguien realmente capaz de hacerse una idea de la dimensión de esta cantidad? (No estaría mal recomendar aquí el libro "El hombre anumérico" de la colección Metatemas). Creo que es mucho peor el problema de la precisión. From py en ch3m4.org Mon Mar 22 10:03:59 2004 From: py en ch3m4.org (Chema Cortes) Date: Mon, 22 Mar 2004 10:03:59 +0100 Subject: Referencia controles wxPython In-Reply-To: <1079900666.4417.7.camel@Zeus> References: <1079900666.4417.7.camel@Zeus> Message-ID: <405EABFF.3050004@ch3m4.org> Manuel López Torrent escribió: > Hace poco que he empezado a programar con python ( ya tenia experiencia > con otros lenguajes como C++ o PHP ) y debo confesar que me esta > "enamorando" este lenguaje. He estado recopilando información y pequeños > tutoriales pero lo que que no he encontrado es una referencia completa a > las librerías wxPython, explicando todos los controles y sus parámetros. > Si alguien conoce alguna web donde conseguir esta documentación le > quedaría muy agradecido que me la enviase. Han considerado que es suficiente con la documentación que trae el wxWidgets (wxWindows). Pero si quieres algo más adaptado a wxPython, pásate por el wiki: http://wiki.wxpython.org ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From hernan en orgmf.com.ar Mon Mar 22 10:07:34 2004 From: hernan en orgmf.com.ar (Hernan Foffani) Date: Mon, 22 Mar 2004 10:07:34 +0100 Subject: Pseudo valor inf In-Reply-To: References: Message-ID: Antonio Castro escribio: > El resultado podría ser infinito pero da un error y no deja > de resultar una decisión arbitraria y caprichosa considerar unas > veces inf y otras provocar el error. El probñema es que se > pueden producir situaciones indeterminadas las cuales ahora > veo que figuran como nan. > >>>> a=1.0e999 >>>> a*0 > nan y en windows 2.3.2 da: >>> a=1.0e999 >>> a 1.#INF >>> a*0 -1.#IND >>> en algunos sistemas operativos se puede hacer float("NaN") para crear un nan. no en windows. > ... sobre el package math... > Se podría haber puesto math.inf y math.nan para mi no pertenecerían al modulo math. a lo sumo podrían ser constantes en el tipo float (float.inf, float.nan, etc.) > Los números reales siempre han sido un quebradero de cabeza y > personalmente creo que si se puede usar inf para ciertas cosas. > > El punto que yo considero conflictivo es que una cantidad finita tal > que a=1.0e999 sea considerada infinito. Hay un buen articulo en la doc de python "Floating Point Arithmetic", te dará un buen comienzo para entender el problema. Lo unico que hace python es exponer la implementacion de la IEEE-754 de la biblioteca estandar de C del compilador usado en cada plataforma. Como ves, el comportamiento es muy diferente en windows que en linux. Es mas, es MUY posible que un mismo programa python mostrara distintas salidas en un runtime de python compilado con el gnu cc comparado con otro runtime compilado con otro cc (el nativo de HP, etc.) -H. From py en ch3m4.org Mon Mar 22 10:29:35 2004 From: py en ch3m4.org (Chema Cortes) Date: Mon, 22 Mar 2004 10:29:35 +0100 Subject: Python vs Java C C++ In-Reply-To: <002801c40f5a$32e29580$0100a8c0@servidor> References: <002801c40f5a$32e29580$0100a8c0@servidor> Message-ID: <405EB1FF.1040003@ch3m4.org> Ernesto Revilla escribió: > Lo que no funciona (en Python 2.3) es: > >>>>class MiObjeto(object): > > def metodo(self): > print "implementación 1" > >>>>mo=MiObjeto() >>>>class MiObjeto(object): > > def metodo(self): > print "implementación 2" > >>>>mo.__class__.__dict__.update(MiObjeto.__dict__) > > Traceback (most recent call last): > File "", line 1, in -toplevel- > mo.__class__.__dict__.update(MiObjeto.__dict__) > AttributeError: 'dictproxy' object has no attribute 'update' > > ni me deja actualizar cambiar el atributo __dict__ (reemplazarlo por otra copi) Como dije en un mensaje anterior, con la nuevas clases de python estos atributos son considerados de "sólo lectura". Puedes optar por utilizar la definición de clases vieja (no heredando de la clase 'object'), o puedes volver a crear las instancias tal como apunté en el mensaje al que me refería. From py en ch3m4.org Mon Mar 22 10:50:50 2004 From: py en ch3m4.org (Chema Cortes) Date: Mon, 22 Mar 2004 10:50:50 +0100 Subject: digresiones (era: Python vs Java C C++) In-Reply-To: References: Message-ID: <405EB6FA.7090005@ch3m4.org> Hernan Foffani escribió: > mis preguntas eran algo retoricas. no me refería tanto > al problema técnico en sí (que ya es bastante complejo) si no mas > bien al hecho de mantener toda la aplicación en un estado estable. > > por ej, puede darse el caso que la nueva clase C cambie un > determinado atributo "coleccion" de list a dict. todas las > instancias de C deberían recrear el atributo "coleccion" como dict > con el contenido de las list anteriores. > o si la nueva clase Cuenta cambia el atributo "titular" de la > clase Persona a la clase Cliente, todas las instancias de Persona > que sean atributos de instancias de la clase Cuenta deben > cambiar de clase a Cliente aún cuando tanto Cliente como Persona > no se hayan modificado per se. Me parece que no tienes enfocado correctamente el problema. Los atributos son referencias, sin importar el tipo de dato. Me da igual que titular sea una instancia de Cliente ó una instancia de Persona, puesto que ambas clases coinciden en estructura: .... def SetTitular(self,titular): self.titular=titular def GetNombre(self): return self.titular.nombre Incluso daría igual el cambiar una lista por un diccionario: def __init__(self,coleccion): self.coleccion=coleccion def get(self,id_): return self.coleccion[id_] Si está bien diseñado, bastaría con una actualización de los atributos. Más problemáticos son los cambios en las reglas de negocio. Aún así se puede minimizar los problemas si se emplea un buen diseño multicapa ("multi-tier"), de modo que los cambios en las reglas de negocio no influyan tanto en el resto de la aplicación. From hernan en orgmf.com.ar Mon Mar 22 12:32:19 2004 From: hernan en orgmf.com.ar (Hernan Foffani) Date: Mon, 22 Mar 2004 12:32:19 +0100 Subject: digresiones (era: Python vs Java C C++) In-Reply-To: <405EB6FA.7090005@ch3m4.org> References: <405EB6FA.7090005@ch3m4.org> Message-ID: Chema Cortes escribio: > Hernan Foffani escribió: > >> mis preguntas eran algo retoricas. no me refería tanto >> al problema técnico en sí (que ya es bastante complejo) si no mas >> bien al hecho de mantener toda la aplicación en un estado estable. >> >> por ej, puede darse el caso que la nueva clase C cambie un >> determinado atributo "coleccion" de list a dict. todas las >> instancias de C deberían recrear el atributo "coleccion" como dict >> con el contenido de las list anteriores. >> o si la nueva clase Cuenta cambia el atributo "titular" de la >> clase Persona a la clase Cliente, todas las instancias de Persona >> que sean atributos de instancias de la clase Cuenta deben >> cambiar de clase a Cliente aún cuando tanto Cliente como Persona >> no se hayan modificado per se. > > Me parece que no tienes enfocado correctamente el problema. Los > atributos son referencias, sin importar el tipo de dato. Me da igual > que titular sea una instancia de Cliente ó una instancia de Persona, > puesto que ambas clases coinciden en estructura: ¡Pero por supuesto que los atributos son referencias! ¿Por qué presupones que ambas clases (Cliente y Persona) coincidirían en su estructura? ¿Que sentido que el progrmador pase a utilizar una clase en vez de otra en el atributo titular de la clase Cuenta en ese caso? Si solo cambia la implementación de algun metodo no voy a renombrar la clase por eso. (aun en este ultimo caso habría problemas) Es razonable suponer que si el atributo titular de Cuenta cambia de Cliente a Persona o viceversa es porque en el resto de la aplicacion se harán invocaciones a metodos o atributos diferentes. > .... > def SetTitular(self,titular): > self.titular=titular > def GetNombre(self): > return self.titular.nombre GetNombre estaria implementada en ambas clases. ese no es el problema al que me refiero. (e incluso ahi...) el problema surge si a partir de la actualizacion necesito GetNumCliente (está en Cliente pero no en Persona). Entonces, - o cambio de clase a todas las instancias que son atributos de Cuenta. - o uso try/except por NameError antes de acceder a GetNumCliente en TODA la aplicacion. - o cualquier otra tecnica parecida a esta ultima. ¿y que se supone que haría la aplicacion si no encuentra el metodo? Algun tiempo despues de la actualización de Cuenta, si se crearon nuevas instancias de esa clase, habrá algunas instancias (las viejas) que tendran como atributo titular objetos Persona y otras (las nuevas) atributo titular objetos Cliente. Listados, estadisticas, o lo que sea, que barra esas instancias darían inconsistencias (imaginemos un listado mal formateado.) ¡El error no se podría reproducir! Reinicias el servidor y ¡ala! todo funciona (ahora todos los atributo titular son instancias de Cliente.) > Incluso daría igual el cambiar una lista por un diccionario: > > def __init__(self,coleccion): > self.coleccion=coleccion > def get(self,id_): > return self.coleccion[id_] pero el que usa el get debe saber que hay instancias a las que debe pasar un entero (las viejas, las que son listas) y otras (las nuevas, dict) a las que debe pasar un string o lo que el programador haya decidido usar como indice. No me parece razonable escribir codigo de mas que nunca se ejecutará luego del primer reinicio del sistema. > Si está bien diseñado, bastaría con una actualización de los > atributos. repito, mis objeciones no son sobre la programación en python. no creo que la forma de resolver el problema de las actualizaciones de versiones en caliente sea cambiando la clase de instancias en ejecucion. > Más problemáticos son los cambios en las reglas de > negocio. Aún así se puede minimizar los problemas si se emplea un > buen diseño multicapa ("multi-tier"), de modo que los cambios en las > reglas de negocio no influyan tanto en el resto de la aplicación. Esto ya es otra cosa. From rapto en arrakis.es Mon Mar 22 12:49:51 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Mon, 22 Mar 2004 12:49:51 +0100 Subject: =?ISO-8859-1?Q?Migraci=F3n_en_caliente_=28?= =?ISO-8859-1?Q?era=3A_Python_vs_Java_C_C++=29?= In-Reply-To: References: Message-ID: <405ED2DF.6060001@arrakis.es> Sólo quiero recordar la técnica que usa webware para permitir parar/rearrancar la aplicación para obtener las nuevas definiciones de manera prácticamente transparente, sin más que definir los métodos necesarios para que pickle/unpickle funcione. En cualquier caso, me parece imprescindible tener un mecanismo parecido para poder migrar de servidor, parar/rearrancar por cualquier otro motivo, etc. en una aplicación así de seria. Hernan Foffani wrote: >Chema Cortes escribio: > > >>Hernan Foffani escribió: >> >> >> >>>mis preguntas eran algo retoricas. no me refería tanto >>>al problema técnico en sí (que ya es bastante complejo) si no mas >>>bien al hecho de mantener toda la aplicación en un estado estable. >>> >>>por ej, puede darse el caso que la nueva clase C cambie un >>>determinado atributo "coleccion" de list a dict. todas las >>>instancias de C deberían recrear el atributo "coleccion" como dict >>>con el contenido de las list anteriores. >>>o si la nueva clase Cuenta cambia el atributo "titular" de la >>>clase Persona a la clase Cliente, todas las instancias de Persona >>>que sean atributos de instancias de la clase Cuenta deben >>>cambiar de clase a Cliente aún cuando tanto Cliente como Persona >>>no se hayan modificado per se. >>> >>> >>Me parece que no tienes enfocado correctamente el problema. Los >>atributos son referencias, sin importar el tipo de dato. Me da igual >>que titular sea una instancia de Cliente ó una instancia de Persona, >>puesto que ambas clases coinciden en estructura: >> >> > >¡Pero por supuesto que los atributos son referencias! >¿Por qué presupones que ambas clases (Cliente y Persona) >coincidirían en su estructura? ¿Que sentido que el progrmador >pase a utilizar una clase en vez de otra en el atributo >titular de la clase Cuenta en ese caso? >Si solo cambia la implementación de algun metodo no voy a >renombrar la clase por eso. (aun en este ultimo caso habría >problemas) > >Es razonable suponer que si el atributo titular de Cuenta >cambia de Cliente a Persona o viceversa es porque en el resto >de la aplicacion se harán invocaciones a metodos o atributos >diferentes. > > > >>.... >> def SetTitular(self,titular): >> self.titular=titular >> def GetNombre(self): >> return self.titular.nombre >> >> > >GetNombre estaria implementada en ambas clases. ese no es >el problema al que me refiero. (e incluso ahi...) > >el problema surge si a partir de la actualizacion necesito >GetNumCliente (está en Cliente pero no en Persona). Entonces, > - o cambio de clase a todas las instancias que son atributos > de Cuenta. > - o uso try/except por NameError antes de acceder a > GetNumCliente en TODA la aplicacion. > - o cualquier otra tecnica parecida a esta ultima. > ¿y que se supone que haría la aplicacion si no encuentra > el metodo? > >Algun tiempo despues de la actualización de Cuenta, si se >crearon nuevas instancias de esa clase, habrá algunas instancias >(las viejas) que tendran como atributo titular objetos Persona >y otras (las nuevas) atributo titular objetos Cliente. >Listados, estadisticas, o lo que sea, que barra esas instancias >darían inconsistencias (imaginemos un listado mal formateado.) >¡El error no se podría reproducir! >Reinicias el servidor y ¡ala! todo funciona (ahora todos >los atributo titular son instancias de Cliente.) > > > >>Incluso daría igual el cambiar una lista por un diccionario: >> >> def __init__(self,coleccion): >> self.coleccion=coleccion >> def get(self,id_): >> return self.coleccion[id_] >> >> > >pero el que usa el get debe saber que hay instancias a las >que debe pasar un entero (las viejas, las que son listas) >y otras (las nuevas, dict) a las que debe pasar un string >o lo que el programador haya decidido usar como indice. > >No me parece razonable escribir codigo de mas que nunca >se ejecutará luego del primer reinicio del sistema. > > > >>Si está bien diseñado, bastaría con una actualización de los >>atributos. >> >> > >repito, mis objeciones no son sobre la programación en python. >no creo que la forma de resolver el problema de las >actualizaciones de versiones en caliente sea cambiando >la clase de instancias en ejecucion. > > > >>Más problemáticos son los cambios en las reglas de >>negocio. Aún así se puede minimizar los problemas si se emplea un >>buen diseño multicapa ("multi-tier"), de modo que los cambios en las >>reglas de negocio no influyan tanto en el resto de la aplicación. >> >> > >Esto ya es otra cosa. > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > From soulkiller en teleline.es Mon Mar 22 19:30:38 2004 From: soulkiller en teleline.es (Soul) Date: Mon, 22 Mar 2004 19:30:38 +0100 Subject: Buscando tutoriales wxPython Message-ID: <1079980238.4817.3.camel@Zeus> Alguien me podría indicar algunas web donde encontrar buenos tutoriales de wxPython, a ser posible en castellano (si son en inglés también me valen :-) ). Busco también un referencia donde se encuentren todos los objetos de las wxPython así como sus atributos y funciones. Gracias pos adelantado. Soul ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From ch3m4 en ch3m4.org Wed Mar 24 12:15:12 2004 From: ch3m4 en ch3m4.org (Chema Cortes) Date: Wed, 24 Mar 2004 12:15:12 +0100 Subject: GIL e hyperthreading Message-ID: <40616DC0.8080002@ch3m4.org> Estas preguntas son demasiado técnicas, y son más un "devaneo" mental que otra cosa. No comprendo del todo bien el mecanismo del GIL (Global Interpreter Lock) para los procesos multihilo (en CPython). Sé que se hace por conservar el contaje de las referencias a variables, pero no entiendo porqué bloquear todo el intérprete. ¿No sería factible bloquear sólo el acceso a una determinada zona "compartida" en lugar de bloquear todo el intérprete? ¿Realmente es tan complicado eliminar este lock? (Por ejemplo jython no lo tiene). Otra pregunta es respecto al hyperthreading del pentium4. Se supone que engaña al software para que piense que hay dos procesadores, cuando en realidad sólo hay uno. ¿Pierde rendimiento el intérprete de CPython en los cambios de estados en hyperthreading a causa del GIL? ¿Cómo habría que recompilar python para hyperthreading y linux [0]? Y como "escape", entiendo que va a resultar mejor utilizar "forking" en linux en sistemas multiprocesador pero, ¿qué método sería el más apropiado para intercambiar información entre los procesos sin tener que echar mano de las bases de datos? Referencias: [0] http://www.zaralinux.org/modules.php?name=News&file=article&sid=648 ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Wed Mar 24 13:24:37 2004 From: py en ch3m4.org (Chema Cortes) Date: Wed, 24 Mar 2004 13:24:37 +0100 Subject: GIL e hyperthreading Message-ID: <40617E05.3040507@ch3m4.org> No comprendo del todo bien el mecanismo del "Global Interpreter Lock" (GIL) para los procesos multihilo (en CPython). Sé que se hace por conservar el contaje de las referencias a variables, pero no entiendo porqué bloquear todo el intérprete. ¿No sería factible bloquear sólo el acceso a una determinada zona "compartida" en lugar de bloquear todo el intérprete? ¿Realmente es tan complicado eliminar este lock? (Por ejemplo jython no lo tiene). Otra pregunta es respecto al hyperthreading del pentium4. Se supone que engaña al software para que piense que hay dos procesadores, cuando en realidad sólo hay uno. ¿Pierde rendimiento el intérprete de CPythonen los cambios de estados en hyperthreading a causa del GIL? ¿Cómo habría que recompilar python para hyperthreading y linux [0]? Y como "escape", entiendo que va a resultar mejor utilizar "forking" en linux en sistemas multiprocesador pero, ¿qué método sería el más apropiado para intercambiar información entre los procesos sin tener que echar mano de las bases de datos? Referencias: [0] http://www.zaralinux.org/modules.php?name=News&file=article&sid=648 ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gema_alf en yahoo.es Wed Mar 24 17:24:30 2004 From: gema_alf en yahoo.es (=?iso-8859-1?q?Gema=20N=FA=F1ez=20Bl=E1zquez?=) Date: Wed, 24 Mar 2004 17:24:30 +0100 (CET) Subject: Buscando tutoriales wxPython In-Reply-To: <1079980238.4817.3.camel@Zeus> References: <1079980238.4817.3.camel@Zeus> Message-ID: <20040324162430.20283.qmail@web60205.mail.yahoo.com> Hola, yo me instale la version 2.4.12 de wxPython y en ella venia una demo con muchos ejemplos y una ayuda con lo que estas buscando, prueba en http://heanet.dl.sourceforge.net/sourceforge/wxpython/wxPythonWIN32-2.4.1.2-Py23.exe pero hay mas mirror de donde poder bajartelo. Un saludo Soul wrote: Alguien me podría indicar algunas web donde encontrar buenos tutoriales de wxPython, a ser posible en castellano (si son en inglés también me valen :-) ). Busco también un referencia donde se encuentren todos los objetos de las wxPython así como sus atributos y funciones. Gracias pos adelantado. Soul _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es ---------------------------------     Antivirus • Filtros antispam • 6 MB gratis     ¿Todavía no tienes un correo inteligente? From javierm en aditel.org Wed Mar 24 18:14:36 2004 From: javierm en aditel.org (Javier =?ISO-8859-1?Q?Mu=F1oz?= Ferrara) Date: Wed, 24 Mar 2004 18:14:36 +0100 Subject: sobre boa-constructor In-Reply-To: <20040324162430.20283.qmail@web60205.mail.yahoo.com> References: <20040324162430.20283.qmail@web60205.mail.yahoo.com> Message-ID: <1080148476.25425.1.camel@gibson.dsic.upv.es> El mié, 24-03-2004 a las 17:24, Gema Núñez Blázquez escribió: > Hola, yo me instale la version 2.4.12 de wxPython y en ella venia una demo con muchos ejemplos y una ayuda con lo que estas buscando, > prueba en http://heanet.dl.sourceforge.net/sourceforge/wxpython/wxPythonWIN32-2.4.1.2-Py23.exe > pero hay mas mirror de donde poder bajartelo. > Un saludo > > Soul wrote: > Alguien me podría indicar algunas web donde encontrar buenos tutoriales > de wxPython, a ser posible en castellano (si son en inglés también me > valen :-) ). Busco también un referencia donde se encuentren todos los > objetos de las wxPython así como sus atributos y funciones. > > Gracias pos adelantado. Hablando de wxPython...la última release de boa-constructor es de hace más de un año, si no me equivoco. Y por el cvs no ha habido movimiento en los últimos meses. ¿Sabéis que pasa con este interesante proyecto? ¿Está abandonado? Sería una pena. Saludos! ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rosendo.martinez en valdisme.com Wed Mar 24 19:27:07 2004 From: rosendo.martinez en valdisme.com (rosendo) Date: Wed, 24 Mar 2004 19:27:07 +0100 Subject: GIL e hyperthreading In-Reply-To: <40617E05.3040507@ch3m4.org> References: <40617E05.3040507@ch3m4.org> Message-ID: <20040324182535.9D9C93145B8@marti.uji.es> Buenas, Chema, la verdad que tampoco soy un experto en el tema.....pero como he tenido algunos 'problemas' de esos teóricos con python(que a la hora de la implementación no fueron determinantes), pues he leido un poquillo al respecto del GIL y el porque no multithreading de la 'maquina virtual' de python. Creo que la pregunta a ¿Realmente es tan complicado eliminar este lock?, la respuesta es parece que sí, si quieres conservar la opción de multiplataforma. Por ejemplo(esto cojido con pinzas, si alguien puede dar un poco de luz), java en unix(solaris) tiene lo que se llama greenthreads, lo hace que en si la maquina pueda ejecutar distintos threads, pero sólo en un procesador. Solaris(digo Solaris, porque el problema lo tuve en ese OS) para que una aplicación se pueda ejecutar en distintas CPU ha de tener distintos procesos(fork), sinó no hay tu tia. Como todo el mundo sabe, eso en java tiene una solución y es la ejecución de procesos en distintas máquinas virtuales....etc..(cosa que existe en python pero de una forma un poco más manual). En python existe otra distribución stackless, que surge a raiz de una discusión entre Christian Tismer y Guido Van Rossum, en la que no se ponen de acuerdo. Total es una escisión de python, que funciona mejor para ciertas aplicaciones que necesitan ejecutarse en entornos multithread(implementa en concepto de threds ligeros, los greenthreds, que no se xq se llaman así). Con respecto a jython, no lo tiene xq es java el que ejecuta los threads, aunque con la salvedad esa que he comentado. Lo del hyperthreading.....uhmmmmm, pues no lo sé,.....el rendimiento nunca ha sido un de las premisas de Guido a la hora de implementar el python y menos, según sus palabras en entornos multithreading(aunque si es así, xq tiene la lib thread?...hay no estoy de acuerdo con Guido). Desde luego no hay un metodo mejor, pero yo lo haria usando objetos compartidos, e implementando una estructura de servidor-consumidor,...aunque eso puede variar mucho en función de lo que tengas que implementar. Bueno, espero haber ayudado, aunque me da la impresión de que he sembrado más dudas que otra cosa. Un saludo. Rosendo. -----Mensaje original----- De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org] En nombre de Chema Cortes Enviado el: miércoles, 24 de marzo de 2004 13:25 Para: Python-es en aditel.org Asunto: [Python-es] GIL e hyperthreading No comprendo del todo bien el mecanismo del "Global Interpreter Lock" (GIL) para los procesos multihilo (en CPython). Sé que se hace por conservar el contaje de las referencias a variables, pero no entiendo porqué bloquear todo el intérprete. ¿No sería factible bloquear sólo el acceso a una determinada zona "compartida" en lugar de bloquear todo el intérprete? ¿Realmente es tan complicado eliminar este lock? (Por ejemplo jython no lo tiene). Otra pregunta es respecto al hyperthreading del pentium4. Se supone que engaña al software para que piense que hay dos procesadores, cuando en realidad sólo hay uno. ¿Pierde rendimiento el intérprete de CPythonen los cambios de estados en hyperthreading a causa del GIL? ¿Cómo habría que recompilar python para hyperthreading y linux [0]? Y como "escape", entiendo que va a resultar mejor utilizar "forking" en linux en sistemas multiprocesador pero, ¿qué método sería el más apropiado para intercambiar información entre los procesos sin tener que echar mano de las bases de datos? Referencias: [0] http://www.zaralinux.org/modules.php?name=News&file=article&sid=648 From falted en pytables.org Wed Mar 24 20:46:22 2004 From: falted en pytables.org (Francesc Alted) Date: Wed, 24 Mar 2004 20:46:22 +0100 Subject: GIL e hyperthreading Message-ID: <200403242046.22605.falted@pytables.org> A Wednesday 24 March 2004 12:15, Chema Cortes va escriure: > No comprendo del todo bien el mecanismo del GIL (Global Interpreter > Lock) para los procesos multihilo (en CPython). Sé que se hace por > conservar el contaje de las referencias a variables, pero no entiendo > porqué bloquear todo el intérprete. ¿No sería factible bloquear sólo el > acceso a una determinada zona "compartida" en lugar de bloquear todo el > intérprete? ¿Realmente es tan complicado eliminar este lock? (Por > ejemplo jython no lo tiene). Pues yo lo intenté comprender una vez, y reconozco que lo tuve que dejar, porque me perdía. > Y como "escape", entiendo que va a resultar mejor utilizar "forking" en > linux en sistemas multiprocesador pero, ¿qué método sería el más > apropiado para intercambiar información entre los procesos sin tener que > echar mano de las bases de datos? Hay varios métodos. Para sistemas multiprocesador con memoria compartida (SMP), tradicionalmente, uno de los mejores sistemas ha sido el IPC (Inter-Process Communication), que realmente es una mezcla de diferentes subsistemas para intercambio de datos entre los diferentes procesadores. En Python, se puede acceder a los servicios de compartición de memoria IPC mediante el módulo mmap. Sin embargo, creo que hay pequeños problemas de portabilidad entre plataformas UNIX y Windows debido a las diferentes implementaciones de IPC que hacen los fabricantes. La sincronización de procesos la puedes llevar a cabo de múltiples maneras, como por ejemplo, con los módulos signal (manejadores para eventos asíncronos), Queue (manejadores de colas LIFO), threading (para usar threads), select (para disparar eventos al acabar una operación de I/O) o incluso socket, por nombrar sólo unos cuantos. Últimamente se está intentando estandarizar una API que agrupe de manera sensata todo el tema de comunicaciones en sistemas SMP. Se llama OpenMP [0], pero parece que todavia no hay una implementación para python. No obstante, existe otra gama de servicios de comunicación más general que las anteriores: los llamados sistemas de paso de mensajes. Éstos son válidos para conjuntos completamente generales de procesadores, conocidos como sistemas de memoria distribuida (DMS), como son por ejemplo un cluster de PC's o un BeoWulf. El primero que adquirió fama y se usó con relativa asiduidad se llamaba PVM (Parallel Virtual Machine). Más tarde apareció otro sistema llamado MPI (Message Passing Interface) que venia a solucionar ciertos problemas de PVM y que ha pasado a ser el estándar "de facto" para sistemas DMS. De hecho, existen implementaciones de MPI que están optimizadas para sistemas de memoria compartida (SMP), como LAM MPI o MPICH, aparte de unas cuantas implementaciones propietarias para grandes sistemas SMP, cada una optimizada para su propio hardware de intercambio de memoria, como las que Sun, SGI, HP o IBM hacen para sus monstruitos de varias decenas (o centenas) de procesadores. Una buena implementación de MPI para Python la puedes encontrar en el paquete Scientific Python [1]. La ventaja que tiene MPI sobre IPC es que se trata de una API estándar y sobre OpenMP es que se puede aplicar a todos los paradigmas de comunicación (sea memoria distribuida o compartida), com bastante aprovechameniento de recursos, es decir, sólo tienes que hacer tu programa una vez, después lo puedes correr en la configuración que gustes (sea SMP o DMS). La desventaja, sin embargo, es que es muuuucho más difícil programar con MPI que con IPC (e incluso que con threads) o OpenMP. Por otra parte, muchos fabricantes hacen uso de optimizaciones de la capa TCP/IP para sus plataformas, de modo y manera que te puedes encontrar con la paradoja de que, si usas sockets 'a pelo', puedes llegar a tener casi las mismas prestaciones que con servicios IPC o MPI y, aunque ya sabes que la programación con sockets es la más jodida de todas (incluso que MPI, claro está), para aplicaciones simples puede ser la más sencilla y portable. Estoy convencido de que, con las nueva serie de kernels de Linux 2.6.x, las diferencias de velocidad en la comunicación usando mmap o sockets seran más bien escasas. Finalmente, existe una via que no he explorado personalmente, pero que presiento bastante potente y que se llama el BSP, de sus siglas Bulk Synchronous Parallel programming [2]. Se trata de un modelo que permite simplificar la programación de sistemas de memoria distribuida mediante la división del flujo de ejecución de un programa paralelo en fases de cálculo y de comunicación. Esto, que parece ser una limitación muy grande comparado con los sistemas de paso de mensaje (donde cada procesador puede estar en la fase que quiera en cualquier momento), pues parece que no lo es tanto cuando te enfrentas a problemas reales (sobretodo con paradigmas SPMD o Simple Program-Multiple Data)). La gran ventaja de BSP es que eliminas las situaciones de punto muerto (o como coño se traduzca dead-lock), que, como sabes, es la gran putada que tienen las aplicaciones paralelas. En palablas de Konrand Kinsen, el autor del paquete Scientific Python así como de una implementación de BSP para Python, la combinación de Python y BSP puede cambiar el panorama de relativa poca implantación de aplicaciones paralelas por parte de la comunidad [3]. Pues eso. Referencias: [0] http://www.openmp.org/ [1] http://starship.python.net/~hinsen/ScientificPython/ [2] http://www.bsp-worldwide.org/ [3] http://starship.python.net/~hinsen/ScientificPython/BSP_Tutorial.pdf Saludos, -- Francesc Alted ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From hernan en orgmf.com.ar Thu Mar 25 01:23:48 2004 From: hernan en orgmf.com.ar (=?iso-8859-1?Q?Hernan_Mart=EDnez_Foffani?=) Date: Thu, 25 Mar 2004 01:23:48 +0100 Subject: GIL e hyperthreading In-Reply-To: <20040324182535.9D9C93145B8@marti.uji.es> References: <20040324182535.9D9C93145B8@marti.uji.es> Message-ID: [rosendo] > ... > ¿Realmente es tan complicado eliminar este lock?, la > respuesta es parece que sí, si quieres conservar la opción de > multiplataforma. No es solo por eso, hay mas. - el multithread en pyhton usa la implementación nativa de cada plataforma, como bien dices. - python es extensible y embebible. - en python todos los objetos son GLOBALES. Dado que python usa el threading del S.O. los cambios de contexto se pueden producir *en cualquier momento* de la ejecución de codigo C. Sin el GIL cualquiera que haga una extensión debería preveer la programación en multihilos aunque ni siquiera la necesite (puede que otra extension o el mismo python, sí lo hagan.) El GIL facilita hacer extensiones, supongo que no habría tantas de otro modo. Aun dentro de python la situación no es mejor. Evidentemente como no se puede quitar el lock --siempre será necesario algun mecanismo de contencion-- lo que se podría hacer es que la granularidad sea menor. El problema es que todos los objetos en python son globales, por lo que habría que proteger casi todos los accesos. Lo logico es esperar que se pierda performance en vez de ganarla. Los lenguajes que tienen mecanismos de privilegios de acceso lo tienen mas fácil: no es necesario poner y quitar locks en variables privadas. [Chema] >> ¿No sería factible bloquear sólo el acceso a una >> determinada zona "compartida" en lugar de bloquear >> todo el intérprete? ¿Realmente es tan complicado eliminar >> este lock? (Por ejemplo jython no lo tiene). Para bien y para mal está todo compartido en python. java no lo tiene por el nivel de protección nativa al lenguaje. Desconozco cómo se ha implementado en jython la "globalidad" de los objetos, si esa es tu pregunta. Tampoco hay problemas con las extensiones porque el multithread no es del S.O., es el del propio JVM. Una vez fuera del entorno java, con JNI, estás fuera del entorno multihilos (o la propia extensión debería implementar el suyo propio.) > Y como "escape", entiendo que va a resultar mejor utilizar "forking" > en linux en sistemas multiprocesador pero, ¿qué método sería el más > apropiado para intercambiar información entre los procesos sin tener > que echar mano de las bases de datos? Supongo que lo apropiado dependerá de la aplicación, de la portabilidad. Hay montones de tecnologías para eso. Es una de las cosas donde las distintas versiones de Unix empezaron a diverger mas y mas. Tienes (o tenías porque es casi prehistoria) pipes, sockets AF_UNIX, los IPC de SystemV (memoria compartida, semaforos y mensajes), pipes como dispositivos, archivos mmap y vaya a saber cuantas cosas mas. Lo que menciono Francesc es muy moderno y cientifico. A mi me superado porque yo soy viejito y me he quedado en mmap que no da muchos problemas y es mas o menos portable. ;-) Saludos, -H. From ecrespo en cantv.net Tue Mar 23 01:16:58 2004 From: ecrespo en cantv.net (Ernesto Nadir Crespo Avila) Date: Mon, 22 Mar 2004 20:16:58 -0400 Subject: Problemas con pexpect. Message-ID: <405F81FA.3000504@cantv.net> Saludos a todos!! #!/usr/bin/python2.2 from MySQLdb import * import md5crypt,string,random, commands,pexpect,getpass,time def modclave(usuario): #Subprograma que realiza el cambio de la clave comando = 'passwd %s' %usuario[1] print comando clave = '%s' %usuario[2] print clave child = pexpect.spawn(comando) fout = file('/var/log/expect.log','w') child.setlog(fout) r1 = child.expect_exact('New password:', timeout=120) print 'r1',r1 s1 = child.sendline(clave)# Hasta aquí funciona perfecto el script. print 's1',s1 time.sleep(0.1) r2 = child.expect_exact('Retype new password:', timeout=120)####Aquí se genera el timeout print 'r2',r2 s2 = child.sendline(clave) print 's2',s2 time.sleep(0.1) r3 = child.expect_exact('passwd: all authentication tokens updated successfully.') print 'r3', r3 time.sleep(0.1) child.close() return 1 Cuando seejecuta esa parte del programa, el logra colocar la clave la primera vez, pero en la segunda se genera un timeout. Cual puede ser el problema? Gracias. Ernesto Crespo From raullopez en adinet.com.uy Wed Mar 24 21:38:25 2004 From: raullopez en adinet.com.uy (Raul Lopez) Date: Wed, 24 Mar 2004 17:38:25 -0300 Subject: tk basico en windows In-Reply-To: <405DC097.90501@arrakis.es> References: <002801c40f5a$32e29580$0100a8c0@servidor> <405DC097.90501@arrakis.es> Message-ID: <20040324173825.392776ab.raullopez@adinet.com.uy> Hola lista: Recien estoy haciendo mis primeras experiencias con python. Uno de los primeros scripts que probe fue un ejemplo de un libro, que usando Tkinter, simplemente presenta una ventana con un boton, que al ser pulsado finaliza la ejecucion. Lo probe en linux y funcionó, pero en windows, el mismo script, si bien funciona, ademas, abre una ventana d.o.s. donde aparece un mensaje que dice: _el valor del parametro no esta dentro del intervalo permitido_ . Este es el script: from Tkinter import * w = Button(text='hola', command='exit') w.pack() w.mainloop() Desde ya les agradezco cualquier orientacion. Saludos -- Raul Lopez Moffa ICQ #288495059 Debian GNU/Linux Usuario Linux #315991 From aerd en retemail.es Thu Mar 25 11:05:44 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Thu, 25 Mar 2004 11:05:44 +0100 Subject: tk basico en windows References: <002801c40f5a$32e29580$0100a8c0@servidor><405DC097.90501@arrakis.es> <20040324173825.392776ab.raullopez@adinet.com.uy> Message-ID: <001501c41250$be4f7ae0$0100a8c0@servidor> Por favor, cuando tengas problemas de versiones, dinos la versión Python que estés usando. Te recomiendo que te leas los manuales, aunque estén en inglés que encuentras al respecto en www.hispapython.org A mi, ese ejemplo desde el intérprete interactivo en Python 2.2 / Win me funciona bien. Erny ----- Original Message ----- From: "Raul Lopez" To: "La lista de python en castellano" Sent: Wednesday, March 24, 2004 9:38 PM Subject: [Python-es] tk basico en windows Hola lista: Recien estoy haciendo mis primeras experiencias con python. Uno de los primeros scripts que probe fue un ejemplo de un libro, que usando Tkinter, simplemente presenta una ventana con un boton, que al ser pulsado finaliza la ejecucion. Lo probe en linux y funcionó, pero en windows, el mismo script, si bien funciona, ademas, abre una ventana d.o.s. donde aparece un mensaje que dice: _el valor del parametro no esta dentro del intervalo permitido_ . Este es el script: from Tkinter import * w = Button(text='hola', command='exit') w.pack() w.mainloop() Desde ya les agradezco cualquier orientacion. Saludos -- Raul Lopez Moffa ICQ #288495059 Debian GNU/Linux Usuario Linux #315991 _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jcanto en hispasec.com Thu Mar 25 11:06:55 2004 From: jcanto en hispasec.com (Julio Canto) Date: Thu, 25 Mar 2004 11:06:55 +0100 Subject: XML-RPC In-Reply-To: <001501c41250$be4f7ae0$0100a8c0@servidor> References: <002801c40f5a$32e29580$0100a8c0@servidor><405DC097.90501@arrakis.es> <20040324173825.392776ab.raullopez@adinet.com.uy> <001501c41250$be4f7ae0$0100a8c0@servidor> Message-ID: <4062AF3F.3070001@hispasec.com> Buenas, He cacharreado un poco con el SimpleXMLRPCServer (gracias al documento de Ernesto Revilla :), y me preguntaba si sabiais de algun mecanismo propio para filtrar la respuesta a peticiones. He comprobado que visualiza por pantalla una traza de ips y demas, y no se si dejaria por ejemplo rechazar ciertas ips o si habria que hacerlo en plan zoping, validando con usuario y clave :? La documentacion incluida en python es bastante escueta.. tiene alguien alguna pista al respecto? Un saludo, JC From py en ch3m4.org Thu Mar 25 12:28:01 2004 From: py en ch3m4.org (Chema Cortes) Date: Thu, 25 Mar 2004 12:28:01 +0100 Subject: GIL e hyperthreading In-Reply-To: <40617E05.3040507@ch3m4.org> References: <40617E05.3040507@ch3m4.org> Message-ID: <4062C241.8030904@ch3m4.org> Ante todo, agradecer todas vuestras respuestas que me sido bastante esclarecedoras. Se ve que hay buen nivel por esta lista ;-) De los comentarios sobre el multihilo de java, recuerdo ahora algo que leí sobre metaclases que en su momento no entendí bien, pero que creo que está relacionado con este tema del multihilo. Álguien comentaba que había conseguido emular el "syncronized" de java con metaclases python. No soy nada experto en java, pero entiendo que el "syncronized" implementa una especie de bloqueo de acceso a datos para ejecución multihilo. ¿No podría ser verse como una solución para no tener que usar el GIL en python? ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From falted en pytables.org Thu Mar 25 12:47:06 2004 From: falted en pytables.org (Francesc Alted) Date: Thu, 25 Mar 2004 12:47:06 +0100 Subject: GIL e hyperthreading In-Reply-To: References: Message-ID: <200403251247.06183.falted@pytables.org> A Thursday 25 March 2004 01:23, Hernan Martínez Foffani va escriure: > Lo que menciono Francesc es muy moderno y cientifico. > A mi me superado porque yo soy viejito y me he quedado en mmap > que no da muchos problemas y es mas o menos portable. ;-) Pues hombre muy moderno no es, porque lo de PVM yo empecé a usarlo allá sobre el 93, y probablemente es de antes. MPI debe ser del 93 o 94, asi que ya tiene sus añitos. BSP también debió aparecer sobre esa época, aunque en plan experimental. Lo que es nuevo de BSP es su implementación para Python, que debe tener no más de un par de años. Lo de científico lo paso, porque ellos deben ser los únicos "peludos" que se atreven con semejantes barbaridades ;-). -- Francesc Alted From FBatista en uniFON.com.ar Thu Mar 25 13:08:38 2004 From: FBatista en uniFON.com.ar (Batista, Facundo) Date: Thu, 25 Mar 2004 09:08:38 -0300 Subject: tk basico en windows Message-ID: #- Este es el script: #- #- from Tkinter import * #- w = Button(text='hola', command='exit') #- w.pack() #- w.mainloop() ¿Estás usando IDLE? Algunas consideraciones respecto al código deben tomarse cuando usás IDLE. Luego de algunos intercambios en c.l.p, el acuerdo general es que lo mejor para salir es: root.destroy() y que soamente se haga el mainloop() si no estás usándolo desde IDLE: if "idlelib" not in sys.modules: root.mainloop() . Facundo From couto.bastos en ig.com.br Thu Mar 25 13:15:42 2004 From: couto.bastos en ig.com.br (Matheus Couto) Date: Thu, 25 Mar 2004 09:15:42 -0300 Subject: Tkinter Message-ID: <20040325121543.30E2A41C5D1@dns2.uji.es> Comecei a estudar Tkinter agora e estou com umas duvidas. Tento pegar o conteudo de um Entry para usá-lo em uma funcao. Ex: entrada_senha=StringVar() entrada_usuario=StringVar() usuario = Entry(principal,textvariable=entrada_usuario).grid(row=x,column=y) senha = Entry(principal,textvariable=entrada_senha).grid(row=x,column=y) Para fazer referência as strings do Entry eu uso entrada_usuario.get() e entrada_senha.get(). Como faço para jogar esses valores (entrada_usuario.get() e entrada_senha.get()) para outras variáveis. Tentei fazer: us = entrada_usuario.get() sen = entrada_senha.get() mas as variáveis nao recebem os valores. _________________________________________________________ Voce quer um iGMail protegido contra vírus e spams? Clique aqui: http://www.igmailseguro.ig.com.br Ofertas imperdíveis! Link: http://www.americanas.com.br/ig/ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From i02orroj en uco.es Thu Mar 25 13:48:46 2004 From: i02orroj en uco.es (JOSE LUIS ORTEGA ROMERO) Date: Thu, 25 Mar 2004 13:48:46 +0100 (MET) Subject: py2exe Message-ID: Hola! Uso python2.3 y me he bajado el py2exe-0.5, agradeceria que alguien me dijera como se usa para hacer ejecutbles. Gracias. ------------ 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 25 14:18:14 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Thu, 25 Mar 2004 14:18:14 +0100 Subject: py2exe In-Reply-To: References: Message-ID: <4062DC16.5080708@arrakis.es> http://listas.aditel.org/archivos/python-es/2003-November/003498.html JOSE LUIS ORTEGA ROMERO wrote: >Hola! > >Uso python2.3 y me he bajado el py2exe-0.5, agradeceria que alguien me >dijera como se usa para hacer ejecutbles. > >Gracias. > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From i02orroj en uco.es Thu Mar 25 14:34:13 2004 From: i02orroj en uco.es (JOSE LUIS ORTEGA ROMERO) Date: Thu, 25 Mar 2004 14:34:13 +0100 (MET) Subject: py2exe In-Reply-To: <4062DC16.5080708@arrakis.es> References: <4062DC16.5080708@arrakis.es> Message-ID: Marcos, he visto lo que me has puesto y me va bien, ¨pero donde se guarda el archivo .exe? On Thu, 25 Mar 2004, Marcos Sánchez Provencio wrote: > http://listas.aditel.org/archivos/python-es/2003-November/003498.html > > JOSE LUIS ORTEGA ROMERO wrote: > > >Hola! > > > >Uso python2.3 y me he bajado el py2exe-0.5, agradeceria que alguien me > >dijera como se usa para hacer ejecutbles. > > > >Gracias. > > > > > > From rapto en arrakis.es Thu Mar 25 14:38:44 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Thu, 25 Mar 2004 14:38:44 +0100 Subject: py2exe In-Reply-To: References: Message-ID: <4062E0E4.2050806@arrakis.es> Se genera un directorio dist, que es el que hay que pasarle al cliente. El directorio se puede renombrar, pero es necesario pasar el contenido completo. Dentro de este directorio hay un ejecutable y los ficheros (dlls, etc) de apoyo (el runtime, vaya). JOSE LUIS ORTEGA ROMERO wrote: >Marcos, he visto lo que me has puesto y me va bien, ¨pero donde se guarda >el archivo .exe? > >On Thu, 25 Mar 2004, Marcos Sánchez Provencio wrote: > > > >>http://listas.aditel.org/archivos/python-es/2003-November/003498.html >> >>JOSE LUIS ORTEGA ROMERO wrote: >> >> >> >>>Hola! >>> >>>Uso python2.3 y me he bajado el py2exe-0.5, agradeceria que alguien me >>>dijera como se usa para hacer ejecutbles. >>> >>>Gracias. >>> >>> >>> From py en ch3m4.org Thu Mar 25 14:42:33 2004 From: py en ch3m4.org (Chema Cortes) Date: Thu, 25 Mar 2004 14:42:33 +0100 Subject: Tkinter In-Reply-To: <20040325121543.30E2A41C5D1@dns2.uji.es> References: <20040325121543.30E2A41C5D1@dns2.uji.es> Message-ID: <4062E1C9.2090507@ch3m4.org> Matheus Couto escribió: > Como faço para jogar esses valores (entrada_usuario.get() e > entrada_senha.get()) para outras variáveis. > > Tentei fazer: us = entrada_usuario.get() > sen = entrada_senha.get() > > mas as variáveis nao recebem os valores. Así funciona correctamente. El error posiblemente lo tengas en el resto del código. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From i02orroj en uco.es Thu Mar 25 14:51:01 2004 From: i02orroj en uco.es (i02orroj en uco.es) Date: Thu, 25 Mar 2004 14:51:01 +0100 (MET) Subject: py2exe In-Reply-To: <4062E0E4.2050806@arrakis.es> References: <4062E0E4.2050806@arrakis.es> Message-ID: <1080222661.4062e3c57417e@www.uco.es> Si, se me crean dos directorios, uno es el build y otro el dist, y dentro del dist tengo un archivo .pyd otro .zip y otro .dll. Pero el ejecutable no esta por ningun lado. Mensaje citado por: Marcos Sánchez Provencio : > Se genera un directorio dist, que es el que hay que pasarle al cliente. > > El directorio se puede renombrar, pero es necesario pasar el contenido > completo. > > Dentro de este directorio hay un ejecutable y los ficheros (dlls, etc) > de apoyo (el runtime, vaya). > > JOSE LUIS ORTEGA ROMERO wrote: > > >Marcos, he visto lo que me has puesto y me va bien, ¨pero donde se > guarda > >el archivo .exe? > > > >On Thu, 25 Mar 2004, Marcos Sánchez Provencio wrote: > > > > > > > >>http://listas.aditel.org/archivos/python-es/2003-November/003498.html > >> > >>JOSE LUIS ORTEGA ROMERO wrote: > >> > >> > >> > >>>Hola! > >>> > >>>Uso python2.3 y me he bajado el py2exe-0.5, agradeceria que alguien > me > >>>dijera como se usa para hacer ejecutbles. > >>> > >>>Gracias. > >>> > >>> > >>> > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From rglm en montevideo.com.uy Thu Mar 25 15:39:53 2004 From: rglm en montevideo.com.uy (Raul Lopez) Date: Thu, 25 Mar 2004 11:39:53 -0300 Subject: tk basico en windows In-Reply-To: References: Message-ID: <20040325113953.507b0349.rglm@montevideo.com.uy> On Thu, 25 Mar 2004 09:08:38 -0300 "Batista, Facundo" wrote: > > #- Este es el script: > #- > #- from Tkinter import * > #- w = Button(text='hola', command='exit') > #- w.pack() > #- w.mainloop() > > ¿Estás usando IDLE? > Instale el paquete para win version 2.3 y el IDLE está, pero este script lo generé en linux y simplemente lo copie a la maqina windows, luego le hice doble click y se ejecuta. Pero el tema es que antes de abrir la ventana de mi programa, se abre esa otra ventana de d.o.s. En linux tambien estoy usando la version 2.3 (debian sarge) y cuando ejecuto el script desde el kde, anda bien. Saludos -- Raul Lopez Moffa ICQ #288495059 Debian GNU/Linux Usuario Linux #315991 From hernan en orgmf.com.ar Thu Mar 25 15:48:48 2004 From: hernan en orgmf.com.ar (Hernan Foffani) Date: Thu, 25 Mar 2004 15:48:48 +0100 Subject: GIL e hyperthreading In-Reply-To: <4062C241.8030904@ch3m4.org> References: <4062C241.8030904@ch3m4.org> Message-ID: [Chema Cortes] > De los comentarios sobre el multihilo de java, recuerdo ahora algo que > leí sobre metaclases que en su momento no entendí bien, pero que creo > que está relacionado con este tema del multihilo. Álguien comentaba > que había conseguido emular el "syncronized" de java con metaclases > python. No soy nada experto en java, pero entiendo que el > "syncronized" implementa una especie de bloqueo de acceso a datos > para ejecución multihilo. ¿No podría ser verse como una solución para > no tener que usar el GIL en python? No se exactamente qué es lo que se ha emulado con metaclases. Conociendo java me imagino que lo que hizo es una forma de evitar que el programador de python llame .acquire() y .release() a mano. La instruccion synchronized de java es el equivalente a nuestro .acquire() y .release(). Internamente hará uso de los mecanismos de contención propios del JVM. Estos ultimos son los equivalentes a nuestro GIL. Mas detalles sobre synchronized. Lo que hace es declarar una sección critica. Se puede usar de dos formas: - como atributo de metodo (todo el metodo es seccion critica) class Cuenta { ... public synchronized Deposito(float cantidad) { this.saldo += cantidad; if (this.saldo > muchoDinero) this.saldo += intereses; } public synchronized Retiro(float cantidad) { if (this.saldo > cantidad) this.saldo -= cantidad; } } - como declaracion de bloque de codigo anonimo (la seccion critica es el bloque que abarca) synchronized (objeto) { // hago cosas peligrosas con objeto. } Solo un thread Java crea el "lock" automaticamente. En el primer caso cualquier clase que tenga metodos "synchronized", java se encarga de agregar el lock correspondiente. Lo mismo para el segundo caso. Python no crea objetos lock automaticamente, eso debe estar implementado en cada clase. El equivalente en python del codigo anterior sería, para el primer caso, algo así: class Cuenta: def __init__(self): self._Cuenta_lock = new Lock() self.saldo = 0 def deposito(self, cantidad): self._Cuenta_lock.acquire() self.saldo += cantidad if (self.saldo > mucho_dinero): self.saldo += intereses self._Cuenta_lock.release() def retiro(self, cantidad): self._Cuenta_lock.acquire() if (self.saldo > cantidad): self.saldo -= cantidad self._Cuenta_lock.release() y para el segundo: objeto._lock_de_objeto.acquire() ... # seccion critica objeto._lock_de_objeto.release() Por eso creo que lo que hizo el autor es una metaclase que cree el objeto lock al inicializarse y que llame a .acquire() y .release() antes y despues de la llamada a cada metodo. Quizas tambien implemento algun mecanismo para que la sincronizacion se haga sobre los metodos que el programador decida y no en todos. (No me imagino como se podría hacer para bloques de codigo anonimos) El caso de uso de esa metaclase podría ser algo así: class Cuenta(object): __metaclass__ = autolock def retiro(self, cantidad): if (self.saldo > cantidad): self.saldo -= cantidad retiro.synchronized = True No está mal, no? Paso de implementar autolock. Se lo dejo a alguno que le apasionen las metaclases y que le interese el desafío...;-) Saludos, -H. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From FBatista en uniFON.com.ar Thu Mar 25 15:52:44 2004 From: FBatista en uniFON.com.ar (Batista, Facundo) Date: Thu, 25 Mar 2004 11:52:44 -0300 Subject: tk basico en windows Message-ID: #- Instale el paquete para win version 2.3 y el IDLE está, pero #- este script #- lo generé en linux y simplemente lo copie a la maqina #- windows, luego le #- hice doble click y se ejecuta. Pero el tema es que antes de abrir la #- ventana de mi programa, se abre esa otra ventana de d.o.s. #- En linux tambien estoy usando la version 2.3 (debian sarge) y cuando #- ejecuto el script desde el kde, anda bien. Para encontrar en que momento se sucede el problema, podés ir probando cada linea en el IDLE. De esa manera, vas ejecutando uno por uno y vas a poder acotar el momento en que se abre la ventana a una linea del código. También podés hacer eso con el debuger, pero al ser pocas lineas es más fácil con el IDLE. . Facundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ADVERTENCIA La información contenida en este mensaje y cualquier archivo anexo al mismo, son para uso exclusivo del destinatario y pueden contener información confidencial o propietaria, cuya divulgación es sancionada por la ley. Si Ud. No es uno de los destinatarios consignados o la persona responsable de hacer llegar este mensaje a los destinatarios consignados, no está autorizado a divulgar, copiar, distribuir o retener información (o parte de ella) contenida en este mensaje. Por favor notifíquenos respondiendo al remitente, borre el mensaje original y borre las copias (impresas o grabadas en cualquier medio magnético) que pueda haber realizado del mismo. Todas las opiniones contenidas en este mail son propias del autor del mensaje y no necesariamente coinciden con las de Telefónica Comunicaciones Personales S.A. o alguna empresa asociada. Los mensajes electrónicos pueden ser alterados, motivo por el cual Telefónica Comunicaciones Personales S.A. no aceptará ninguna obligación cualquiera sea el resultante de este mensaje. Muchas Gracias. From rapto en arrakis.es Thu Mar 25 16:20:01 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Thu, 25 Mar 2004 16:20:01 +0100 Subject: py2exe In-Reply-To: <1080222661.4062e3c57417e@www.uco.es> References: <4062E0E4.2050806@arrakis.es> <1080222661.4062e3c57417e@www.uco.es> Message-ID: <4062F8A1.1000507@arrakis.es> Qué raro. ¿No estarás generando un servidor ActiveX ni nada raro, no? Repasa los mensajes, a ver si te da cualquier error. Mándalos a la lista, a ver si alguno vemos algo raro. i02orroj en uco.es wrote: >Si, se me crean dos directorios, uno es el build y otro el dist, y dentro del >dist tengo un archivo .pyd otro .zip y otro .dll. Pero el ejecutable no esta >por ningun lado. > >Mensaje citado por: Marcos Sánchez Provencio : > > > >>Se genera un directorio dist, que es el que hay que pasarle al cliente. >> >>El directorio se puede renombrar, pero es necesario pasar el contenido >>completo. >> >>Dentro de este directorio hay un ejecutable y los ficheros (dlls, etc) >>de apoyo (el runtime, vaya). >> >>JOSE LUIS ORTEGA ROMERO wrote: >> >> >> >>>Marcos, he visto lo que me has puesto y me va bien, ¨pero donde se >>> >>> >>guarda >> >> >>>el archivo .exe? >>> >>>On Thu, 25 Mar 2004, Marcos Sánchez Provencio wrote: >>> >>> >>> >>> >>> >>>>http://listas.aditel.org/archivos/python-es/2003-November/003498.html >>>> >>>>JOSE LUIS ORTEGA ROMERO wrote: >>>> >>>> >>>> >>>> >>>> >>>>>Hola! >>>>> >>>>>Uso python2.3 y me he bajado el py2exe-0.5, agradeceria que alguien >>>>> >>>>> >>me >> >> >>>>>dijera como se usa para hacer ejecutbles. >>>>> >>>>>Gracias. >>>>> >>>>> >>>>> >>>>> >>>>> From pachi en mmn-arquitectos.com Thu Mar 25 18:08:26 2004 From: pachi en mmn-arquitectos.com (Rafael Villar Burke) Date: Thu, 25 Mar 2004 18:08:26 +0100 Subject: tk basico en windows In-Reply-To: <20040325113953.507b0349.rglm@montevideo.com.uy> References: <20040325113953.507b0349.rglm@montevideo.com.uy> Message-ID: <4063120A.8060603@mmn-arquitectos.com> Raul Lopez wrote: >On Thu, 25 Mar 2004 09:08:38 -0300 >"Batista, Facundo" wrote: > > > >>#- Este es el script: >>#- >>#- from Tkinter import * >>#- w = Button(text='hola', command='exit') >>#- w.pack() >>#- w.mainloop() >> >>¿Estás usando IDLE? >> >> >> > >Instale el paquete para win version 2.3 y el IDLE está, pero este script >lo generé en linux y simplemente lo copie a la maqina windows, luego le >hice doble click y se ejecuta. Pero el tema es que antes de abrir la >ventana de mi programa, se abre esa otra ventana de d.o.s. >En linux tambien estoy usando la version 2.3 (debian sarge) y cuando >ejecuto el script desde el kde, anda bien. > >Saludos > > Esa segunda ventana (tipo DOS, como dices) seguramente es la que lanza el intérprete de python y muestra los códigos de salida del programa. El valor incorrecto que menciona tal vez sea el de salida del bucle principal del TkInter, que "DOS" interpreta como valor de salida de la aplicación. Si no quieres que aparezca puedes cambiar la extensión de .py a .pyw de manera que la ventana quede minimizada. -- Un saludo, Pachi From i02orroj en uco.es Thu Mar 25 18:53:11 2004 From: i02orroj en uco.es (i02orroj en uco.es) Date: Thu, 25 Mar 2004 18:53:11 +0100 (MET) Subject: py2exe In-Reply-To: <4062F8A1.1000507@arrakis.es> References: <4062E0E4.2050806@arrakis.es> <1080222661.4062e3c57417e@www.uco.es> <4062F8A1.1000507@arrakis.es> Message-ID: <1080237191.40631c8772396@www.uco.es> Que va, si solo es un script muy simple, y no me da ningun error, pero en el directorio dist, me genera los siguientes archivos: _sre.pyd library.zip python23.dll Mensaje citado por: Marcos Sánchez Provencio : > Qué raro. ¿No estarás generando un servidor ActiveX ni nada raro, no? > Repasa los mensajes, a ver si te da cualquier error. Mándalos a la > lista, a ver si alguno vemos algo raro. > > i02orroj en uco.es wrote: > > >Si, se me crean dos directorios, uno es el build y otro el dist, y > dentro del > >dist tengo un archivo .pyd otro .zip y otro .dll. Pero el ejecutable no > esta > >por ningun lado. > > > >Mensaje citado por: Marcos Sánchez Provencio : > > > > > > > >>Se genera un directorio dist, que es el que hay que pasarle al > cliente. > >> > >>El directorio se puede renombrar, pero es necesario pasar el contenido > > >>completo. > >> > >>Dentro de este directorio hay un ejecutable y los ficheros (dlls, etc) > > >>de apoyo (el runtime, vaya). > >> > >>JOSE LUIS ORTEGA ROMERO wrote: > >> > >> > >> > >>>Marcos, he visto lo que me has puesto y me va bien, ¨pero donde se > >>> > >>> > >>guarda > >> > >> > >>>el archivo .exe? > >>> > >>>On Thu, 25 Mar 2004, Marcos Sánchez Provencio wrote: > >>> > >>> > >>> > >>> > >>> > >>>>http://listas.aditel.org/archivos/python-es/2003-November/003498.html > >>>> > >>>>JOSE LUIS ORTEGA ROMERO wrote: > >>>> > >>>> > >>>> > >>>> > >>>> > >>>>>Hola! > >>>>> > >>>>>Uso python2.3 y me he bajado el py2exe-0.5, agradeceria que > alguien > >>>>> > >>>>> > >>me > >> > >> > >>>>>dijera como se usa para hacer ejecutbles. > >>>>> > >>>>>Gracias. > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From rglm en montevideo.com.uy Thu Mar 25 21:25:17 2004 From: rglm en montevideo.com.uy (Raul Lopez) Date: Thu, 25 Mar 2004 17:25:17 -0300 Subject: tk basico en windows In-Reply-To: <4063120A.8060603@mmn-arquitectos.com> References: <20040325113953.507b0349.rglm@montevideo.com.uy> <4063120A.8060603@mmn-arquitectos.com> Message-ID: <20040325172517.16cdb8bb.rglm@montevideo.com.uy> On Thu, 25 Mar 2004 18:08:26 +0100 Rafael Villar Burke wrote: > Raul Lopez wrote: > > >On Thu, 25 Mar 2004 09:08:38 -0300 > >"Batista, Facundo" wrote: > > > > > > > >>#- Este es el script: > >>#- > >>#- from Tkinter import * > >>#- w = Button(text='hola', command='exit') > >>#- w.pack() > >>#- w.mainloop() > >> > >>¿Estás usando IDLE? > >> > >> > >> > > > >Instale el paquete para win version 2.3 y el IDLE está, pero este script > >lo generé en linux y simplemente lo copie a la maqina windows, luego le > >hice doble click y se ejecuta. Pero el tema es que antes de abrir la > >ventana de mi programa, se abre esa otra ventana de d.o.s. > >En linux tambien estoy usando la version 2.3 (debian sarge) y cuando > >ejecuto el script desde el kde, anda bien. > > > >Saludos > > > > > Esa segunda ventana (tipo DOS, como dices) seguramente es la que lanza > el intérprete de python y muestra los códigos de salida del programa. El > valor incorrecto que menciona tal vez sea el de salida del bucle > principal del TkInter, que "DOS" interpreta como valor de salida de la > aplicación. > Si no quieres que aparezca puedes cambiar la extensión de .py a .pyw de > manera que la ventana quede minimizada. > Era eso!!! Muchas gracias Saludos -- Raul Lopez Moffa ICQ #288495059 Debian GNU/Linux Usuario Linux #315991 From cesar en eureka-sistemas.com Fri Mar 26 01:00:30 2004 From: cesar en eureka-sistemas.com (=?iso-8859-1?q?C=E9sar_Gonz=E1lez?=) Date: Fri, 26 Mar 2004 01:00:30 +0100 Subject: XML-RPC In-Reply-To: <4062AF3F.3070001@hispasec.com> References: <001501c41250$be4f7ae0$0100a8c0@servidor> <4062AF3F.3070001@hispasec.com> Message-ID: <200403260100.30531.cesar@eureka-sistemas.com> Con twisted (www.twistedmatrix.com) es bastante facil. Te adjunto un ejemplo a ver si te sirve. Es un servidor XMLRPC con ssl y http auth basic, el truco es extender xmlrpc.XMLRPC y sobreescribir el metodo render. Desde ahí puedes acceder a las cabeceras HTTP de la petición. Te pongo también el cliente para el ejemplo: import xmlrpclib server = xmlrpclib.Server(uri='https://admin:admin en 127.0.0.1:8668') server.ping() Saludos ;) El Thursday 25 March 2004 11:06, Julio Canto escribió: > Buenas, > He cacharreado un poco con el SimpleXMLRPCServer (gracias al documento > de Ernesto Revilla :), y me preguntaba si sabiais de algun mecanismo > propio para filtrar la respuesta a peticiones. He comprobado que > visualiza por pantalla una traza de ips y demas, y no se si dejaria por > ejemplo rechazar ciertas ips o si habria que hacerlo en plan zoping, > validando con usuario y clave :? La documentacion incluida en python es > bastante escueta.. tiene alguien alguna pista al respecto? > Un saludo, > JC > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es -- César González Revilla http://www.eureka-sistemas.com/ Gnupg Public Key http://www.eureka-sistemas.com/keys/cesar.asc ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From cesar en eureka-sistemas.com Fri Mar 26 01:06:31 2004 From: cesar en eureka-sistemas.com (=?iso-8859-15?q?C=E9sar_Gonz=E1lez?=) Date: Fri, 26 Mar 2004 01:06:31 +0100 Subject: XML-RPC In-Reply-To: <200403260100.30531.cesar@eureka-sistemas.com> References: <4062AF3F.3070001@hispasec.com> <200403260100.30531.cesar@eureka-sistemas.com> Message-ID: <200403260106.31431.cesar@eureka-sistemas.com> Pues parece que la lista no permite adjuntos. Ahi va : #/usr/bin/env python # -*- coding: ISO-8859-15 -*- from twisted.web import xmlrpc, server from twisted.python import log, reflect from twisted.internet import ssl, reactor from OpenSSL import SSL import sys import xmlrpclib import base64 import string class SSLServerFactory: def getContext(self): ctx = SSL.Context(SSL.SSLv23_METHOD) ctx.use_certificate_file('cacert.pem') ctx.use_privatekey_file('cakey.pem') return ctx class netDispacher(xmlrpc.XMLRPC): def addObject(self, name, obj): self.putSubHandler(name, obj) def xmlrpc_ping(self): return "pong" def render(self, request): headers = request.getAllHeaders() args, functionPath = xmlrpclib.loads(request.content.read()) if headers.has_key("authorization"): real_auth = '%s:%s' % ("admin", "admin") auth = headers["authorization"] auth = auth.replace("Basic ","") decoded_auth = base64.decodestring(auth) if decoded_auth == real_auth: user=string.split(real_auth, ":") log.err("XML-RPCServer: Usuario - %s - ha ejecutado %s" % (user[0], functionPath)) return xmlrpc.XMLRPC.render(self, request) log.err("XML-RPCServer: Usuario no Autorizado - %s queria ejecutar %s" % (decoded_auth, functionPath)) request.setResponseCode(401) self._cbRender( xmlrpc.Fault(401, "Usuario no Autorizado == Donde vas sin frenos"), request ) if __name__ == "__main__": log.startLogging(sys.stdout) i_netDispatcher=netDispacher() reactor.listenSSL(8668, server.Site(i_netDispatcher), SSLServerFactory()) #Si no quieres ssl usa listenTCP en lugar de listenSSL : #reactor.listenTCP(7080, server.Site(i_netDispatcher)) reactor.run() ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jcanto en hispasec.com Fri Mar 26 08:33:53 2004 From: jcanto en hispasec.com (Julio Canto) Date: Fri, 26 Mar 2004 08:33:53 +0100 Subject: XML-RPC In-Reply-To: <200403260106.31431.cesar@eureka-sistemas.com> References: <4062AF3F.3070001@hispasec.com> <200403260100.30531.cesar@eureka-sistemas.com> <200403260106.31431.cesar@eureka-sistemas.com> Message-ID: <4063DCE1.60001@hispasec.com> César González wrote: >Pues parece que la lista no permite adjuntos. Ahi va : > >#/usr/bin/env python ># -*- coding: ISO-8859-15 -*- > >from twisted.web import xmlrpc, server >from twisted.python import log, reflect >from twisted.internet import ssl, reactor >from OpenSSL import SSL >import sys >import xmlrpclib >import base64 >import string > > > [...] >if __name__ == "__main__": > log.startLogging(sys.stdout) > i_netDispatcher=netDispacher() > reactor.listenSSL(8668, server.Site(i_netDispatcher), >SSLServerFactory()) > #Si no quieres ssl usa listenTCP en lugar de listenSSL : > #reactor.listenTCP(7080, server.Site(i_netDispatcher)) > reactor.run() > > Muchas zenkiusss :) JC From morillas en posta.unizar.es Fri Mar 26 09:12:28 2004 From: morillas en posta.unizar.es (luis miguel morillas) Date: Fri, 26 Mar 2004 09:12:28 +0100 Subject: Desbordamiento de =?iso-8859-1?q?b=FAfer?= en versiones no actualizadas de Python Message-ID: <20040326081227.GA1044@marmota> Leo en hispasec la noticia de Jesús Cea http://www.hispasec.com/unaaldia/1978 -- Luis Miguel No a las patentes de software en Europa EuropeSwPatentFree http://EuropeSwPatentFree.hispalinux.es From py en ch3m4.org Fri Mar 26 10:05:39 2004 From: py en ch3m4.org (Chema Cortes) Date: Fri, 26 Mar 2004 10:05:39 +0100 Subject: GIL e hyperthreading In-Reply-To: References: Message-ID: <4063F263.8060400@ch3m4.org> Hernan Foffani escribió: > El caso de uso de esa metaclase podría ser algo así: > > class Cuenta(object): > __metaclass__ = autolock > > def retiro(self, cantidad): > if (self.saldo > cantidad): > self.saldo -= cantidad > > retiro.synchronized = True > > No está mal, no? De aquel artículo recuerdo que hablaba de crear un "wrapper" para los atributos, así que supongo que la metaclase empleaba el método __getattribute__ para que quedara más "transparente". > Paso de implementar autolock. Se lo dejo a alguno que le > apasionen las metaclases y que le interese el desafío...;-) Es un tema apasionante que habrá que seguir estudiando. Lástima que falte tiempo para dedicarse a ello. Muchas gracias por las explicaciones. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From o.merchan en bussitel.es Fri Mar 26 10:13:07 2004 From: o.merchan en bussitel.es (Oscar Merchan) Date: Fri, 26 Mar 2004 10:13:07 +0100 Subject: wxListBox Message-ID: <20040326101307.02ce235b.o.merchan@bussitel.es> Buenas a todos. Tengo una duda, estoy haciendo un programita simple de gestion de cobros, algo simplon con la informacion necesaria, o sea nombre cliente, importa a cobrar, forma de cobro, importe ya cobrado, y poco mas. Pero a la hora de mostrar los datos recogidos de MySQL, no se como mostrarlos, queria que fuese typo wxListBox, realmente por como queda, solo que nunca he utilizado este componente, os pongo aqui el codigo generado por el boa ( si utilizo el boa, me encanta el poder hacer un programa y encima con gui y de una forma realmente rapida ). def _init_coll_ventana_lista_Columns(self, parent): # generated method, don't edit parent.InsertColumn(col=0, format=wxLIST_FORMAT_LEFT, heading='Nombre', width=215) parent.InsertColumn(col=1, format=wxLIST_FORMAT_LEFT, heading='Importe', width=70) parent.InsertColumn(col=2, format=wxLIST_FORMAT_LEFT, heading='Cobrado', width=70) parent.InsertColumn(col=3, format=wxLIST_FORMAT_LEFT, heading='Fecha Inicio', width=90) parent.InsertColumn(col=4, format=wxLIST_FORMAT_LEFT, heading='Fecha siguiente cobro', width=139) def _init_ctrls(self, prnt): self.ventana_lista = wxListCtrl(id=wxID_WXCOBROSVENTANA_LISTA, name='ventana_lista', parent=self.panel3, pos=wxPoint(104, 8), size=wxSize(584, 232), style=wxLC_REPORT | wxLC_VIRTUAL | wxLC_ICON, validator=wxDefaultValidator) self._init_coll_ventana_lista_Columns(self.ventana_lista) Pues nada si alguien tiene esperiencia con las wxpython y me puede hechar un capote, para decirme como mostrar ahi los datos recogidos por MySQL se lo agradeceria mucho, aunque despues me tocara pelearme con el para saber como seleccionar un componente de la lista que resulte por si el usuario quiere modificarlo. Espero haberme esplicado bien. Gracias de antemano, Oscar Merchan. P.D .- Si para esto veis una opcion mejor, agradezco cualquier sugerencia. ------------ 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 26 10:14:12 2004 From: py en ch3m4.org (Chema Cortes) Date: Fri, 26 Mar 2004 10:14:12 +0100 Subject: Desbordamiento de =?ISO-8859-1?Q?b=FAfer_en_?= =?ISO-8859-1?Q?versiones_no_actualizadas_de_Python?= In-Reply-To: <20040326081227.GA1044@marmota> References: <20040326081227.GA1044@marmota> Message-ID: <4063F464.4030205@ch3m4.org> luis miguel morillas escribió: > Leo en hispasec la noticia de Jesús Cea > http://www.hispasec.com/unaaldia/1978 > Leo que.... """ Esta vulnerabilidad solo afecta a las versiones 2.2.* de Python, y solo si se han compilado sin soporte IPv6. """ Nunca he comprendido porqué alguien iba a necesitar quitar el soporte ip6 del python, pero hay que decir que esta vulnerabilidad no se presenta en la instalación python directa de los binarios (ya que siempre están compilados con soporte ip6 activado). From urko en gestionet.net Fri Mar 26 11:10:03 2004 From: urko en gestionet.net (Urko Valverde) Date: Fri, 26 Mar 2004 11:10:03 +0100 Subject: Desbordamiento de =?ISO-8859-1?Q?b=FAfer_en_?= =?ISO-8859-1?Q?versiones_no_actualizadas_de_Python?= In-Reply-To: <4063F464.4030205@ch3m4.org> References: <20040326081227.GA1044@marmota> <4063F464.4030205@ch3m4.org> Message-ID: <4064017B.3000308@gestionet.net> Interesante. ¿Alguien sabe como sé si mi python se instaló con o sin ip6 activado? Es un servidor Red Hat Linux que tiene la versión 2.2.1 de python. Pero como es un servidor dedicado, lo traía por defecto. Chema Cortes(e)k dio: > luis miguel morillas escribió: > >> Leo en hispasec la noticia de Jesús Cea >> http://www.hispasec.com/unaaldia/1978 >> > > Leo que.... > """ > Esta vulnerabilidad solo afecta a las versiones 2.2.* de Python, y solo > si se han compilado sin soporte IPv6. > """ > > Nunca he comprendido porqué alguien iba a necesitar quitar el soporte > ip6 del python, pero hay que decir que esta vulnerabilidad no se > presenta en la instalación python directa de los binarios (ya que > siempre están compilados con soporte ip6 activado). > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From rapto en arrakis.es Fri Mar 26 11:26:10 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Fri, 26 Mar 2004 11:26:10 +0100 Subject: py2exe In-Reply-To: <1080237191.40631c8772396@www.uco.es> References: <4062E0E4.2050806@arrakis.es> <1080222661.4062e3c57417e@www.uco.es> <4062F8A1.1000507@arrakis.es> <1080237191.40631c8772396@www.uco.es> Message-ID: <40640542.5080403@arrakis.es> ¿Te ha llegado a funcionar con un 'hola, mundo'? ¿Puedes poner los mensajes que te da (sobre todo, los del final)? Intenta borrar todos los ficheros generados anteriormente. Por cierto, que esta versión no la he probado nunca. Intentar tb con alguna versión más antigua. Si has encontrado un bug de la nueva, mándalo al autor. Chao i02orroj en uco.es wrote: >Que va, si solo es un script muy simple, y no me da ningun error, pero en el >directorio dist, me genera los siguientes archivos: > _sre.pyd > library.zip > python23.dll > > > >Mensaje citado por: Marcos Sánchez Provencio : > > > >>Qué raro. ¿No estarás generando un servidor ActiveX ni nada raro, no? >>Repasa los mensajes, a ver si te da cualquier error. Mándalos a la >>lista, a ver si alguno vemos algo raro. >> >>i02orroj en uco.es wrote: >> >> >> >>>Si, se me crean dos directorios, uno es el build y otro el dist, y >>> >>> >>dentro del >> >> >>>dist tengo un archivo .pyd otro .zip y otro .dll. Pero el ejecutable no >>> >>> >>esta >> >> >>>por ningun lado. >>> >>>Mensaje citado por: Marcos Sánchez Provencio : >>> >>> >>> >>> >>> >>>>Se genera un directorio dist, que es el que hay que pasarle al >>>> >>>> >>cliente. >> >> >>>>El directorio se puede renombrar, pero es necesario pasar el contenido >>>> >>>> >>>>completo. >>>> >>>>Dentro de este directorio hay un ejecutable y los ficheros (dlls, etc) >>>> >>>> >>>>de apoyo (el runtime, vaya). >>>> >>>>JOSE LUIS ORTEGA ROMERO wrote: >>>> >>>> >>>> >>>> >>>> >>>>>Marcos, he visto lo que me has puesto y me va bien, ¨pero donde se >>>>> >>>>> >>>>> >>>>> >>>>guarda >>>> >>>> >>>> >>>> >>>>>el archivo .exe? >>>>> >>>>>On Thu, 25 Mar 2004, Marcos Sánchez Provencio wrote: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>>http://listas.aditel.org/archivos/python-es/2003-November/003498.html >>>>>> >>>>>>JOSE LUIS ORTEGA ROMERO wrote: >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>>Hola! >>>>>>> >>>>>>>Uso python2.3 y me he bajado el py2exe-0.5, agradeceria que >>>>>>> >>>>>>> >>alguien >> >> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>me >>>> >>>> >>>> >>>> >>>>>>>dijera como se usa para hacer ejecutbles. >>>>>>> >>>>>>>Gracias. >>>>>>> >>>>>>> >>>>>>> From lcatalin en siadv.com Fri Mar 26 15:00:03 2004 From: lcatalin en siadv.com (Catalin Lungu) Date: Fri, 26 Mar 2004 15:00:03 +0100 Subject: wx & EVT_TEXT_ENTER Message-ID: <001101c4133a$a4369d10$c800a8c0@catalin> Hola, Tengo un problema y es el siguiente. He sobrescrito la clase wxGridCellTextEditor para meterle mas eventos que necesito y ahora no me puedo enterar cuando pulso ENTER. El keydown me salta para cualquier tecla, menos para ENTER. Hay un evento EVT_TEXT_ENTER que debería saltar pero no salta. En un proyecto separado con una caja de texto salta sin ningún problema. Será que el grid se encarga de esconder el evento. Muchas gracias por adelantado, Catalin Lungu www.siadv.com From rapto en arrakis.es Sun Mar 28 23:32:32 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Sun, 28 Mar 2004 23:32:32 +0200 Subject: python-cd Message-ID: <40674470.7060407@arrakis.es> Bueno, hay un par de propuestas de logo (con tipografía original y todo): http://cielito.sindominio.net/~rapto/python-cd_logo/ Se abre la veda. From pepe en diselpro.com Mon Mar 29 14:03:06 2004 From: pepe en diselpro.com (Pepe Aracil) Date: Mon, 29 Mar 2004 14:03:06 +0200 Subject: python-cd In-Reply-To: <40674470.7060407@arrakis.es> References: <40674470.7060407@arrakis.es> Message-ID: <200403291403.06732.pepe@diselpro.com> A mi me gusta mas el pythoncd2.gif Saludos. El Domingo, 28 de Marzo de 2004 23:32, Marcos Sánchez Provencio escribió: > Bueno, hay un par de propuestas de logo (con tipografía original y todo): > > http://cielito.sindominio.net/~rapto/python-cd_logo/ > > Se abre la veda. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From pbaldanta en yahoo.com Mon Mar 29 13:48:49 2004 From: pbaldanta en yahoo.com (=?iso-8859-1?q?Pedro=20Baldanta?=) Date: Mon, 29 Mar 2004 13:48:49 +0200 (CEST) Subject: Desarrollo Web. Message-ID: <20040329114849.18227.qmail@web40912.mail.yahoo.com> Saludos: Estoy pensando en realizar una aplicación de gestion típica (facturas, albaranes, clientes, etc) pero la novedad es que la quiero desarrollar para hacerla accesible por el navegador web. Para ello, mi acercamiento ha sido por descarte: he descartado tecnologías de pago. He pasado unos días informándome sobre los distintos lenguajes de programación que me pudiesen permitir realizar este trabajo: java, python, perl, php y ruby. Me gustaría un lenguaje orientado a objetos ya que mi manera de pensar me hace más fácil pensar en objetos. También me gustaría un lenguaje te tenga un buen soporte de la comunidad y que esté maduro. Ruby lo he descartado por este motivo (poca documentación, soporte, módulos, etc). Así que me queda Java y Python. Ciertamente me gusta más Python porque me parece más claro y sencillo. Ahora lo que me interesaría es que me informen del modelo a seguir para realizar la aplicación en python. Tengo claro que quiero separar la lógica del negocio de la lógica de la presentación. He oido una serie de terminos que pueden ser interesantes y me gustaría que me explicasen someramente su uso: Webware mod_python vs CGI cheetah ¿Qué base de datos tiene buen enlace con Python? ¿Sistema de plantillas? Saludos y gracias. Pedro Baldanta. ___________________________________________________ Yahoo! Messenger - Nueva versión GRATIS Super Webcam, voz, caritas animadas, y más... http://messenger.yahoo.es From rapto en arrakis.es Mon Mar 29 14:58:23 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Mon, 29 Mar 2004 14:58:23 +0200 Subject: Desarrollo Web. In-Reply-To: <20040329114849.18227.qmail@web40912.mail.yahoo.com> References: <20040329114849.18227.qmail@web40912.mail.yahoo.com> Message-ID: <40681D6F.5050208@arrakis.es> Pedro Baldanta wrote: >Saludos: > >Estoy pensando en realizar una aplicación de gestion >típica (facturas, albaranes, clientes, etc) pero la >novedad es que la quiero desarrollar para hacerla >accesible por el navegador web. > > No dejes de mirar lo que se ha hecho en http://www.gnuenterprise.org/ Aunque es un proyecto que nunca llega a arrancar. >[...] >Tengo claro que quiero separar la lógica del negocio >de la lógica de la presentación. He oido una serie de >terminos que pueden ser interesantes y me gustaría que >me explicasen someramente su uso: > >Webware > > Es un servidor de aplicaciones del estilo del Tomcat y similares. Se mantienen dos servidores, el servidor web que recibe las peticiones desde la red y el servidor de aplicaciones que desmenuza la petición y le devuelve los resultados al serv web. Webware, además, aglutina otras tecnologías, de plantillas (tb es compatible cheetah), gestión de sesiones... >mod_python vs CGI > > mod_python hace que el apache entienda directamente python, por lo que para aplicaciones sencillas es seguramente la mejor opción. CGI es muy robusto, aunque muy lento. >cheetah > > Es un gestor de plantillas. Si separas la lógica de la presentación las plantillas no tienen que ser muy potentes. >¿Qué base de datos tiene buen enlace con Python? > > Más o menos todas. >¿Sistema de plantillas? > > ¿Cuál es la pregunta? :-) Hay que tener en cuenta, si vas a poner tu apli en un servidor público, qué servicio tienes (igual es php o php). >Saludos y gracias. > >Pedro Baldanta. > > Chao From Andres.Moya en hispalinux.es Mon Mar 29 15:10:10 2004 From: Andres.Moya en hispalinux.es (Andres Moya) Date: Mon, 29 Mar 2004 15:10:10 +0200 Subject: Desarrollo Web. In-Reply-To: <20040329114849.18227.qmail@web40912.mail.yahoo.com> References: <20040329114849.18227.qmail@web40912.mail.yahoo.com> Message-ID: <1080565810.3897.8.camel@cebollino.micasa.es> El lun, 29-03-2004 a las 13:48, Pedro Baldanta escribió: > Estoy pensando en realizar una aplicación de gestion > típica (facturas, albaranes, clientes, etc) pero la > novedad es que la quiero desarrollar para hacerla > accesible por el navegador web. Ante la pregunta python + web + bases de datos + objetos, la respuesta empieza siempre por Zope (http://www.zope.org). Aunque para temas de gestión conviene mirar también GNU Enterprise, tal como ha dicho Marcos, y puede ser interesante, para algunas cosas, echar un vistazo a Rekall, ahora que es libre (http://www.rekallrevealed.org). -- Andres Moya Contra la guerra global permanente. Foro Social Mundial - Otro mundo es posible. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rvr en infoastro.com Mon Mar 29 15:15:14 2004 From: rvr en infoastro.com (=?iso-8859-1?q?V=EDctor_R=2E?= Ruiz) Date: Mon, 29 Mar 2004 14:15:14 +0100 Subject: Desarrollo Web. In-Reply-To: <40681D6F.5050208@arrakis.es> References: <20040329114849.18227.qmail@web40912.mail.yahoo.com> <40681D6F.5050208@arrakis.es> Message-ID: <200403291415.14929.rvr@infoastro.com> Hola: El Lunes, 29 de Marzo de 2004 13:58, Marcos Sánchez Provencio tecleó: > >¿Sistema de plantillas? Esta plataforma no la he probado, pero lo dejé pendiente de echar un vistazo porque usan el sistema de plantillas de Zope: http://jotweb.tummy.com/ --- JOTWeb is a system for developing dynamic web applications using HTML and TAL/TALES/METAL for templating and Python for the programming. It integrates with the Apache web server using mod_python. It's goals are: Simple for a Python programmer to use. - The programming is in Python and the presentation is in HTML and TAL. Python is in .py files, presentation is in .html files, and referencing between them is easy. - Much better for maintenance, in my experience. - Cascading of objects allows sub-directories to easily inherit the look and feel of parents, while overriding directory-local parts. - All JOTWeb related data is stored in the file-system. Use familiar tools such as CVS and your favorite editor. - Good documentation. So far I've spent roughly equal amounts of time documenting and coding. --- Saludetes, -- Víctor R. Ruiz | - Todos estos momentos se perderán http://infoastro.com/rvr | como lágrimas en la lluvia From santiagodaviddelgadollopis en yahoo.es Mon Mar 29 16:40:44 2004 From: santiagodaviddelgadollopis en yahoo.es (=?iso-8859-1?q?Santiago=20Delgado?=) Date: Mon, 29 Mar 2004 16:40:44 +0200 (CEST) Subject: python-cd In-Reply-To: <40674470.7060407@arrakis.es> References: <40674470.7060407@arrakis.es> Message-ID: <20040329144044.68043.qmail@web41901.mail.yahoo.com> A mi tb me gusta mas pythoncd2... --- Marcos_Sánchez_Provencio escribió: > Bueno, hay un par de propuestas de logo (con > tipografía original y todo): > > http://cielito.sindominio.net/~rapto/python-cd_logo/ > > Se abre la veda. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ===== _______________________________ Santiago David Delgado Llopis santiagodaviddelgadollopis en yahoo.es ___________________________________________________ Yahoo! Messenger - Nueva versión GRATIS Super Webcam, voz, caritas animadas, y más... http://messenger.yahoo.es From lcatalin en siadv.com Mon Mar 29 08:41:03 2004 From: lcatalin en siadv.com (Catalin Lungu) Date: Mon, 29 Mar 2004 08:41:03 +0200 Subject: wxListBox References: <20040326101307.02ce235b.o.merchan@bussitel.es> Message-ID: <006c01c41558$cf6785b0$c800a8c0@catalin> La demo de wxPython trae un montón de ejemplos. Si lo tienes instalado en la ruta por defecto busca en "Python23\Lib\site-packages\wxPython\demo". Para modificar en la lista hay una lista editable (wxEditableListBox). De todas formas si quieres recoger datos de una BD mejor utilizarías un wxGrid. A propósito si alguien sabe si hay alguna lista para wx le agradecería mucho. En esta lista he puesto ya 2 mensajes y nadie se cansó contestarme. Un saludo, Catalin www.siadv.com ----- Original Message ----- From: "Oscar Merchan" To: "Lista de Python" Sent: Friday, March 26, 2004 11:13 AM Subject: [Python-es] wxListBox > > Buenas a todos. > > Tengo una duda, estoy haciendo un programita simple de gestion de cobros, algo simplon con la informacion necesaria, o sea nombre cliente, importa a cobrar, forma de cobro, importe ya cobrado, y poco mas. > > Pero a la hora de mostrar los datos recogidos de MySQL, no se como mostrarlos, queria que fuese typo wxListBox, realmente por como queda, solo que nunca he utilizado este componente, os pongo aqui el codigo generado por el boa ( si utilizo el boa, me encanta el poder hacer un programa y encima con gui y de una forma realmente rapida ). > > def _init_coll_ventana_lista_Columns(self, parent): > # generated method, don't edit > > parent.InsertColumn(col=0, format=wxLIST_FORMAT_LEFT, heading='Nombre', > width=215) > parent.InsertColumn(col=1, format=wxLIST_FORMAT_LEFT, heading='Importe', > width=70) > parent.InsertColumn(col=2, format=wxLIST_FORMAT_LEFT, heading='Cobrado', > width=70) > parent.InsertColumn(col=3, format=wxLIST_FORMAT_LEFT, > heading='Fecha Inicio', width=90) > parent.InsertColumn(col=4, format=wxLIST_FORMAT_LEFT, > heading='Fecha siguiente cobro', width=139) > > > def _init_ctrls(self, prnt): > self.ventana_lista = wxListCtrl(id=wxID_WXCOBROSVENTANA_LISTA, > name='ventana_lista', parent=self.panel3, pos=wxPoint(104, 8), > size=wxSize(584, 232), > style=wxLC_REPORT | wxLC_VIRTUAL | wxLC_ICON, > validator=wxDefaultValidator) > self._init_coll_ventana_lista_Columns(self.ventana_lista) > > Pues nada si alguien tiene esperiencia con las wxpython y me puede hechar un capote, para decirme como mostrar ahi los datos recogidos por MySQL se lo agradeceria mucho, aunque despues me tocara pelearme con el para saber como seleccionar un componente de la lista que resulte por si el usuario quiere modificarlo. Espero haberme esplicado bien. > > > Gracias de antemano, Oscar Merchan. > > P.D .- Si para esto veis una opcion mejor, agradezco cualquier sugerencia. > ---------------------------------------------------------------------------- ---- _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From aerd en retemail.es Mon Mar 29 20:56:03 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Mon, 29 Mar 2004 20:56:03 +0200 Subject: Python sobre .NET References: <20040329114849.18227.qmail@web40912.mail.yahoo.com><40681D6F.5050208@arrakis.es> <200403291415.14929.rvr@infoastro.com> Message-ID: <004201c415bf$7d625670$0100a8c0@servidor> Hola, me acaba de dar ese enlace mi compi de curre lgs: http://www.python.org/pycon/dc2004/papers/9/IronPython_PyCon2004.html No sé si alguien ya lo envió. Saludos, Erny From py en ch3m4.org Mon Mar 29 16:53:01 2004 From: py en ch3m4.org (Chema Cortes) Date: Mon, 29 Mar 2004 16:53:01 +0200 Subject: Desarrollo Web. In-Reply-To: <20040329114849.18227.qmail@web40912.mail.yahoo.com> References: <20040329114849.18227.qmail@web40912.mail.yahoo.com> Message-ID: <4068384D.1090108@ch3m4.org> Pedro Baldanta escribió: > Ahora lo que me interesaría es que me informen del > modelo a seguir para realizar la aplicación en python. Antes de empezar, aclararte que python cuenta con una gran librería estándar suficiente para realizar aplicaciones web tanto en cliente como servidor, tanto para hacer páginas webs como servicios web. Según cuál sea tu idea, es posible combinar python con otros servidores web como apache, ó integrarse con un sistema java (si necesitas java, puedes echar un vistazo a jython (www.jython.org) como una implementación de python para JVM). En fin, que las alternativas son muchas y variadas. > Tengo claro que quiero separar la lógica del negocio > de la lógica de la presentación. He oido una serie de > terminos que pueden ser interesantes y me gustaría que > me explicasen someramente su uso: > > Webware > mod_python vs CGI > cheetah Uffff. Si empezamos con explicaciones "someras" no acabaríamos nunca. Lo mejor es que vayas a la colección de referencias más completa: http://www.python.org/cgi-bin/moinmoin/WebProgramming Ya te han hablado de webware y cheetah. Del "mod_python" decirte que, por sí mismo, no es nada intuitivo y que no está preparado para separar la lógica de la presentación. Lo mejor es utilizarlo para procesar plantillas como hace el PyHP (python empotrado en html al estilo PHP) ó el Jotweb (plantillas ZPT estilo zope). CGI es una buena alternativa, y no tan lenta como siempre se dice. Depende de qué sistema operativo y servidor web emplees. Para apache puedes utilizar fastcgi (ó algún tipo de permanentCGI) que acelera bastante la ejecución del CGI a costa de emplear más recursos de la máquina. Hay algunos sistemas CGI que separan lógica y presentación como "slither" (www.slither.info) del que puedes encontrar un libro bastante bueno ("Web programming in Python"). Aunque es dificil recomendarte un sistema, el zope es casi una obligación, sobre todo ahora que acaba de salir la versión zope2.7 bastante mejorada en rendimiento, y con gran soporte por parte de la comunidad (incluso en español). Es un sistema complemente orientado a objeto, con su propio sistema gestor, una sólida base de datos jerárquica, una colección enorme de productos utilizables, y que puede usarse tanto para construir aplicaciones web como servicios web (xmlrpc). Su sistema de plantillas (ZPT) cumple con los estándares xml, y facilita mucho la separación de lógica de presentación. Si quieres de momento algo más sencillo para iniciarte, te recomiendo que eches un vistazo a CherryPy (www.cherrypy.org). Es fácil de hacerse con él, y posee una de las mejores introducciones a la programación de aplicaciones web en python que puedes encontrar. Está orientado a objetos, permite una separación de lógica y presentación, y tiene algunas características que no se encuentran fácilmente en otros sistemas. Y lo sorprendente es que el resultado final es tan trasportable como un único fichero python que puede ejecutarse sin más en cualquier sistema (incluso desde jython). Tampoco te olvides de echar un vistazo al "twisted" (http://www.twistedmatrix.com) > ¿Qué base de datos tiene buen enlace con Python? Todas, aunque para ser justos habría que destacar postgres por permitir almacenar procedimientos escritos en python. Se puede decir que tienes asegurada la conectividad con cualquier base de datos que soporte ODBC ó JDBC. La elección de una base de datos no es un tema demasiado preocupante en python ya que su uso está unificado a través de la llamada DB-API (actualmente, en versión 2), siendo muy fácil pasar de una base de datos a otra. Zope incluye sus propios conectores a bases de datos que quedan integrados dentro del esquema general de seguridad del servidor. Como anecdótico, hay que decir que python incluye ya de serie la BerkeleyDB4, aunque no es relacional. También que existe una base de datos, 'gadfly', que está completamente implementada en python. > ¿Sistema de plantillas? ZPT (zope), y CHTL/CGTL (cherrypy) From aerd en retemail.es Fri Mar 26 11:17:03 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Fri, 26 Mar 2004 11:17:03 +0100 Subject: GIL e hyperthreading References: <4063F263.8060400@ch3m4.org> Message-ID: <008c01c4131b$986299e0$0100a8c0@servidor> Hola, me ha despertado curiosidad, pero veo difícil bloquear y desbloquear automáticamente el acceso a los atributos o variables de una clase, por la sigiuente razón: cuando accedemos leemos o accedemos referencias. En este caso, un __setattri__ podría bloquear y desbloquear automáticamente el acceso, pero en muchos casos, es una estructura, como un diccionario o una lista sobre la cual se realizan operaciones. Entiendo que en este caso, la solución podrían ser estructuras que se bloquean o desbloquean automáticamente. Más interesante, sin embargo, me parece marcar, como en Java, que determinados métodos acceden a 'información sensible'. Se fuerza entonces que toda la información sensible sea accedida a através de métodos del objeto, nunca directamente desde fuera (ej. poniendo __ ). Entonces, el call de ese método al empezar obtiene el acceso exclusivo, y cuando termine lo suelta. Suponiendo que haya: class MiClase: def __init__(self): self.__informacionSensible=[] def agregarInfoAInformacionSensible(self, masInfo): self.__informacionSensible.append(masInfo) def consumirInfoDeInformacionSensible(self): return self.__informacionSensible.pop() La metaclase podría hacer entonces: * agregar un lock a la clase * renombrar cada uno de esos metodos 'synchronized' poniendo dos __ delante * crear una funcion que realiza el acquire, despues la llamada a la funcion, y despues release: def synchronizedMethodCall(self, methodName, *args, **kwargs): self.__lock.acquire() try: res=getattr(self, "__"+methodName)(*args,**kwargs) finally: self.__lock.release() return res con lo que cada función 'synchronized' será ahora: lambda self, *args, **kwargs: self.synchronizedMethodCall(methodName='', *args, **kwargs) siempre que se desee que todos esos métodos tengan un lock común, de lo contrario podría agregarse un lock a cada método synchronized. Desde luego, me parecía una interesante extensión a Python. Quizá estaría bien tener algo como los atributos de C# y que la librería vaya implementando poco a poco una serie de esos atributos. Saludos, Erny ----- Original Message ----- From: "Chema Cortes" To: "La lista de python en castellano" Sent: Friday, March 26, 2004 10:05 AM Subject: Re: [Python-es] GIL e hyperthreading Hernan Foffani escribió: > El caso de uso de esa metaclase podría ser algo así: > > class Cuenta(object): > __metaclass__ = autolock > > def retiro(self, cantidad): > if (self.saldo > cantidad): > self.saldo -= cantidad > > retiro.synchronized = True > > No está mal, no? De aquel artículo recuerdo que hablaba de crear un "wrapper" para los atributos, así que supongo que la metaclase empleaba el método __getattribute__ para que quedara más "transparente". > Paso de implementar autolock. Se lo dejo a alguno que le > apasionen las metaclases y que le interese el desafío...;-) Es un tema apasionante que habrá que seguir estudiando. Lástima que falte tiempo para dedicarse a ello. Muchas gracias por las explicaciones. -------------------------------------------------------------------------------- _______________________________________________ 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 ch3m4 en ch3m4.org Sat Mar 27 17:45:00 2004 From: ch3m4 en ch3m4.org (Chema =?iso-8859-1?b?Q29ydOlz?=) Date: Sat, 27 Mar 2004 08:45:00 -0800 Subject: Desbordamiento de =?iso-8859-1?b?YvpmZXI=?= en versiones no actualizadas de Python In-Reply-To: <4064017B.3000308@gestionet.net> References: <20040326081227.GA1044@marmota> <4063F464.4030205@ch3m4.org> <4064017B.3000308@gestionet.net> Message-ID: <1080405900.4065af8c8b2da@ch3m4.org> Mensaje citado por Urko Valverde : > Interesante. ¿Alguien sabe como sé si mi python se instaló con o sin ip6 > activado? Es un servidor Red Hat Linux que tiene la versión 2.2.1 de > python. Pero como es un servidor dedicado, lo traía por defecto. Lo único que se me ocurre es comprobar si es usable el IPv6. Sabiendo que el sistema tiene IPv6, se podría deducir si python lo soporta o no: import socket hasIPv6=hasattr(socket,AF_INET6) if not hasIPv6: print "No hay soporte IPv6" A partir de la versión 2.3 es más fácil comprobar el valor de socket.has_ipv6 From gema_alf en yahoo.es Mon Mar 29 13:33:29 2004 From: gema_alf en yahoo.es (=?iso-8859-1?q?Gema=20N=FA=F1ez=20Bl=E1zquez?=) Date: Mon, 29 Mar 2004 13:33:29 +0200 (CEST) Subject: python-cd In-Reply-To: <40674470.7060407@arrakis.es> References: <40674470.7060407@arrakis.es> Message-ID: <20040329113329.67632.qmail@web60203.mail.yahoo.com> A mi me gusta mas el icono pythoncd2.gif Marcos_Sánchez_Provencio wrote:Bueno, hay un par de propuestas de logo (con tipografía original y todo): http://cielito.sindominio.net/~rapto/python-cd_logo/ Se abre la veda. _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es ---------------------------------     Antivirus • Filtros antispam • 6 MB gratis     ¿Todavía no tienes un correo inteligente? From pachi en mmn-arquitectos.com Mon Mar 29 15:29:02 2004 From: pachi en mmn-arquitectos.com (Rafael Villar Burke) Date: Mon, 29 Mar 2004 15:29:02 +0200 Subject: Desarrollo Web. In-Reply-To: <20040329114849.18227.qmail@web40912.mail.yahoo.com> References: <20040329114849.18227.qmail@web40912.mail.yahoo.com> Message-ID: <4068249E.5060203@mmn-arquitectos.com> Pedro Baldanta wrote: >¿Sistema de plantillas? > > Yo he usado Cheetah, aunque para generar páginas estáticas, y está bastante bien. Seguro que usándolo para generar contenidos dinámicos tiene bastante más gracia. El método de funcionamiento es: - bien mediante marcas insertadas en línea en el HTML - creando clases que generan la página. Estas clases pueden llamar a cualquier código de python, importar módulos y además se crean habitualmente heredando de una clase base ya dada. Elegir un sistema u otro depende de la cantidad de lógica o de presentación que requiera lo que vayas a hacer. Personalmente me pareció relativamente sencillo y con unas posibilidades tremendas para mezclar con cualquier cosa que se te ocurra hacer en python. -- Un saludo, Pachi From aerd en retemail.es Fri Mar 26 00:02:13 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Fri, 26 Mar 2004 00:02:13 +0100 Subject: XML-RPC References: <002801c40f5a$32e29580$0100a8c0@servidor><405DC097.90501@arrakis.es> <20040324173825.392776ab.raullopez@adinet.com.uy><001501c41250$be4f7ae0$0100a8c0@servidor> <4062AF3F.3070001@hispasec.com> Message-ID: <005001c41315$78a9a040$0100a8c0@servidor> Hola, Puedes usar el atributo client_address del RequestHandler, eso lo encuentras en la ayuda de BaseHTTPServer de la librería estándar, aunque no me parece gran idea para proteger cierto código. Tienes varias posibilidades para controlar el acceso: * el usuario ejecuta inicialmente una funición remota de inio de sesión, el servidor le devuelve una clave (si la validación ha sido positiva) y después, el cliente manda esa clave cada vez que quiera ejecutar una función remota. Eso es lo que básicamente hacen los navegadores Web, en este caso, el trozo de datos que manda el navegador con cada solicitud se llama cookie (o lo manda como parte del la URL). Creo que explico eso con Zope en el documento y las transparencias. Así podrías usar ese mecanismo. Para poder recuperarlo en el servidor, desde el requestHandler, que tiene un atributo headers. * si no te quieres complicar, manda nombre de usuario y contraseña en cada solicitud. Después puedes optar por usar canales HTTPS para proteger las comunicaciones, cosa que por cierto no he hecho y que no lo expliqué en los apuntes, pero necesitas OpenSSL. Erny ----- Original Message ----- From: "Julio Canto" To: "La lista de python en castellano" Sent: Thursday, March 25, 2004 11:06 AM Subject: [Python-es] XML-RPC > Buenas, > He cacharreado un poco con el SimpleXMLRPCServer (gracias al documento > de Ernesto Revilla :), y me preguntaba si sabiais de algun mecanismo > propio para filtrar la respuesta a peticiones. He comprobado que > visualiza por pantalla una traza de ips y demas, y no se si dejaria por > ejemplo rechazar ciertas ips o si habria que hacerlo en plan zoping, > validando con usuario y clave :? La documentacion incluida en python es > bastante escueta.. tiene alguien alguna pista al respecto? > Un saludo, > JC > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From ecastro en dbbf.ulpgc.es Sat Mar 27 20:23:31 2004 From: ecastro en dbbf.ulpgc.es (Enrique) Date: Sat, 27 Mar 2004 19:23:31 +0000 Subject: sobre boa-constructor In-Reply-To: <1080148476.25425.1.camel@gibson.dsic.upv.es> References: <20040324162430.20283.qmail@web60205.mail.yahoo.com> <1080148476.25425.1.camel@gibson.dsic.upv.es> Message-ID: Javier Muñoz Ferrara wrote: > Hablando de wxPython...la última release de boa-constructor es de hace > más de un año, si no me equivoco. Y por el cvs no ha habido movimiento > en los últimos meses. ¿Sabéis que pasa con este interesante proyecto? > ¿Está abandonado? Sería una pena. > Hola, no está para nada abandonado. Consulta la lista de correo de Boa y verás que tiene un tráfico decente. Boa es un magnífico IDE y "GUI designer" Es una costumbre al menos "curiosa" de Ryaan, el desarrollador principal, el no actualizar la versión. Ya va por la 0.2.8, directamente del cvs. Enrique ------------ 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 26 11:27:59 2004 From: py en ch3m4.org (Chema Cortes) Date: Fri, 26 Mar 2004 11:27:59 +0100 Subject: Desbordamiento de =?ISO-8859-1?Q?b=FAfer_en_?= =?ISO-8859-1?Q?versiones_no_actualizadas_de_Python?= In-Reply-To: <4064017B.3000308@gestionet.net> References: <20040326081227.GA1044@marmota> <4063F464.4030205@ch3m4.org> <4064017B.3000308@gestionet.net> Message-ID: <406405AF.1070301@ch3m4.org> Urko Valverde escribió: > Interesante. ¿Alguien sabe como sé si mi python se instaló con o sin ip6 > activado? Es un servidor Red Hat Linux que tiene la versión 2.2.1 de > python. Pero como es un servidor dedicado, lo traía por defecto. $ python -c "import socket;print socket.has_ipv6" From lcatalin en siadv.com Mon Mar 29 17:17:27 2004 From: lcatalin en siadv.com (Catalin Lungu) Date: Mon, 29 Mar 2004 17:17:27 +0200 Subject: wxListBox Message-ID: <004901c415a0$f2dc48d0$c800a8c0@catalin> La demo de wxPython trae un montón de ejemplos. Si lo tienes instalado en la ruta por defecto busca en "Python23\Lib\site-packages\wxPython\demo". Para modificar en la lista hay una lista editable (wxEditableListBox). De todas formas si quieres recoger datos de una BD mejor utilizarías un wxGrid. A propósito si alguien sabe si hay alguna lista para wx le agradecería mucho. En esta lista he puesto ya 2 mensajes pero nadie me contestó. Un saludo, Catalin www.siadv.com ----- Original Message ----- From: "Oscar Merchan" To: "Lista de Python" Sent: Friday, March 26, 2004 11:13 AM Subject: [Python-es] wxListBox > > Buenas a todos. > > Tengo una duda, estoy haciendo un programita simple de gestion de cobros, algo simplon con la informacion necesaria, o sea nombre cliente, importa a cobrar, forma de cobro, importe ya cobrado, y poco mas. > > Pero a la hora de mostrar los datos recogidos de MySQL, no se como mostrarlos, queria que fuese typo wxListBox, realmente por como queda, solo que nunca he utilizado este componente, os pongo aqui el codigo generado por el boa ( si utilizo el boa, me encanta el poder hacer un programa y encima con gui y de una forma realmente rapida ). > > def _init_coll_ventana_lista_Columns(self, parent): > # generated method, don't edit > > parent.InsertColumn(col=0, format=wxLIST_FORMAT_LEFT, heading='Nombre', > width=215) > parent.InsertColumn(col=1, format=wxLIST_FORMAT_LEFT, heading='Importe', > width=70) > parent.InsertColumn(col=2, format=wxLIST_FORMAT_LEFT, heading='Cobrado', > width=70) > parent.InsertColumn(col=3, format=wxLIST_FORMAT_LEFT, > heading='Fecha Inicio', width=90) > parent.InsertColumn(col=4, format=wxLIST_FORMAT_LEFT, > heading='Fecha siguiente cobro', width=139) > > > def _init_ctrls(self, prnt): > self.ventana_lista = wxListCtrl(id=wxID_WXCOBROSVENTANA_LISTA, > name='ventana_lista', parent=self.panel3, pos=wxPoint(104, 8), > size=wxSize(584, 232), > style=wxLC_REPORT | wxLC_VIRTUAL | wxLC_ICON, > validator=wxDefaultValidator) > self._init_coll_ventana_lista_Columns(self.ventana_lista) > > Pues nada si alguien tiene esperiencia con las wxpython y me puede hechar un capote, para decirme como mostrar ahi los datos recogidos por MySQL se lo agradeceria mucho, aunque despues me tocara pelearme con el para saber como seleccionar un componente de la lista que resulte por si el usuario quiere modificarlo. Espero haberme esplicado bien. > > > Gracias de antemano, Oscar Merchan. > > P.D .- Si para esto veis una opcion mejor, agradezco cualquier sugerencia. > ---------------------------------------------------------------------------- ---- _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From soulkiller en teleline.es Mon Mar 29 23:44:34 2004 From: soulkiller en teleline.es (Soul) Date: Mon, 29 Mar 2004 23:44:34 +0200 Subject: Enviar archivos adjuntos con un email Message-ID: <1080596673.5194.4.camel@Zeus> Quiero crear un pequeño script que me permita enviar un archivo por email,como un adjunto. Estuve mirando la lib smtplib y no pone nada de adjuntos. Si alguien me puede mostrar algún ejemplo de como hacerlo estaré muy agradecido Soul ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Mon Mar 29 23:51:09 2004 From: rapto en arrakis.es (=?ISO-8859-15?Q?Marcos_S=E1nchez_Provencio?=) Date: Mon, 29 Mar 2004 23:51:09 +0200 Subject: Enviar archivos adjuntos con un email In-Reply-To: <1080596673.5194.4.camel@Zeus> References: <1080596673.5194.4.camel@Zeus> Message-ID: <40689A4D.9090803@arrakis.es> http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52243 Soul wrote: >Quiero crear un pequeño script que me permita enviar un archivo por >email,como un adjunto. Estuve mirando la lib smtplib y no pone nada de >adjuntos. Si alguien me puede mostrar algún ejemplo de como hacerlo >estaré muy agradecido > >Soul > > > > >------------------------------------------------------------------------ > >_______________________________________________ >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 aerd en retemail.es Tue Mar 30 02:53:29 2004 From: aerd en retemail.es (Ernesto Revilla) Date: Tue, 30 Mar 2004 02:53:29 +0200 Subject: Enviar archivos adjuntos con un email References: <1080596673.5194.4.camel@Zeus> <40689A4D.9090803@arrakis.es> Message-ID: <004401c415f1$6c1343c0$0100a8c0@servidor> Hola, yo he definido una función en http://www.sicem.biz/personal/erny/python/recetaEnviarMailConAttachments Encantado si alguien lo cuelga en un sitio de recetas o agregue validación SMTP. Erny ----- Original Message ----- From: "Marcos Sánchez Provencio" To: "La lista de python en castellano" Sent: Monday, March 29, 2004 11:51 PM Subject: Re: [Python-es] Enviar archivos adjuntos con un email > > http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52243 > > Soul wrote: > > >Quiero crear un pequeño script que me permita enviar un archivo por > >email,como un adjunto. Estuve mirando la lib smtplib y no pone nada de > >adjuntos. Si alguien me puede mostrar algún ejemplo de como hacerlo > >estaré muy agradecido > > > >Soul > > > > > > > > > >------------------------------------------------------------------------ > > > >_______________________________________________ > >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 jcanto en hispasec.com Tue Mar 30 08:37:41 2004 From: jcanto en hispasec.com (Julio Canto) Date: Tue, 30 Mar 2004 08:37:41 +0200 Subject: XML-RPC References: <002801c40f5a$32e29580$0100a8c0@servidor><405DC097.90501@arrakis.es> <20040324173825.392776ab.raullopez@adinet.com.uy><001501c41250$be4f7ae0$0100a8c0@servidor><4062AF3F.3070001@hispasec.com> <005001c41315$78a9a040$0100a8c0@servidor> Message-ID: <02f401c41621$80a5ae10$050010ac@VEGA2400> Buenas, Okis, voy a ver como me lo implemento... Ya he estado haciendo experimentos con diffie-hellman y blowfish para la conversacion :) Un saludo y gracias, Julio Canto ----- Original Message ----- From: "Ernesto Revilla" To: "La lista de python en castellano" Sent: Friday, March 26, 2004 1:02 AM Subject: Re: [Python-es] XML-RPC Hola, Puedes usar el atributo client_address del RequestHandler, eso lo encuentras en la ayuda de BaseHTTPServer de la librería estándar, aunque no me parece gran idea para proteger cierto código. Tienes varias posibilidades para controlar el acceso: * el usuario ejecuta inicialmente una funición remota de inio de sesión, el servidor le devuelve una clave (si la validación ha sido positiva) y después, el cliente manda esa clave cada vez que quiera ejecutar una función remota. Eso es lo que básicamente hacen los navegadores Web, en este caso, el trozo de datos que manda el navegador con cada solicitud se llama cookie (o lo manda como parte del la URL). Creo que explico eso con Zope en el documento y las transparencias. Así podrías usar ese mecanismo. Para poder recuperarlo en el servidor, desde el requestHandler, que tiene un atributo headers. * si no te quieres complicar, manda nombre de usuario y contraseña en cada solicitud. Después puedes optar por usar canales HTTPS para proteger las comunicaciones, cosa que por cierto no he hecho y que no lo expliqué en los apuntes, pero necesitas OpenSSL. Erny From o.merchan en bussitel.es Tue Mar 30 09:25:53 2004 From: o.merchan en bussitel.es (Oscar Merchan) Date: Tue, 30 Mar 2004 09:25:53 +0200 Subject: wxListBox In-Reply-To: <004901c415a0$f2dc48d0$c800a8c0@catalin> References: <004901c415a0$f2dc48d0$c800a8c0@catalin> Message-ID: <20040330092553.24b320bc.o.merchan@bussitel.es> On Mon, 29 Mar 2004 17:17:27 +0200 "Catalin Lungu" wrote: Muchas gracias Catalin por la respuesta, ya consigo mostrar los datos que recojo en el wxListCtrl. Con respecto a lo que te pasa con las wx, a mi tambien me ha pasado a menudo. Si sabes de alguna lista o algo que sirva de apoyo por favor no dudes en decirmela. Gracias, Oscar Merchan. > La demo de wxPython trae un montón de ejemplos. Si lo tienes instalado en la > ruta por defecto busca en "Python23\Lib\site-packages\wxPython\demo". Para > modificar en la lista hay una lista editable (wxEditableListBox). De todas > formas si quieres recoger datos de una BD mejor utilizarías un wxGrid. A > propósito si alguien sabe si hay alguna lista para wx le agradecería mucho. > En esta lista he puesto ya 2 mensajes pero nadie me contestó. > > Un saludo, > Catalin > www.siadv.com > > ----- Original Message ----- > From: "Oscar Merchan" > To: "Lista de Python" > Sent: Friday, March 26, 2004 11:13 AM > Subject: [Python-es] wxListBox > > > > > > Buenas a todos. > > > > Tengo una duda, estoy haciendo un programita simple de gestion de cobros, > algo simplon con la informacion necesaria, o sea nombre cliente, importa a > cobrar, forma de cobro, importe ya cobrado, y poco mas. > > > > Pero a la hora de mostrar los datos recogidos de MySQL, no se como > mostrarlos, queria que fuese typo wxListBox, realmente por como queda, solo > que nunca he utilizado este componente, os pongo aqui el codigo generado por > el boa ( si utilizo el boa, me encanta el poder hacer un programa y encima > con gui y de una forma realmente rapida ). > > > > def _init_coll_ventana_lista_Columns(self, parent): > > # generated method, don't edit > > > > parent.InsertColumn(col=0, format=wxLIST_FORMAT_LEFT, > heading='Nombre', > > width=215) > > parent.InsertColumn(col=1, format=wxLIST_FORMAT_LEFT, > heading='Importe', > > width=70) > > parent.InsertColumn(col=2, format=wxLIST_FORMAT_LEFT, > heading='Cobrado', > > width=70) > > parent.InsertColumn(col=3, format=wxLIST_FORMAT_LEFT, > > heading='Fecha Inicio', width=90) > > parent.InsertColumn(col=4, format=wxLIST_FORMAT_LEFT, > > heading='Fecha siguiente cobro', width=139) > > > > > > def _init_ctrls(self, prnt): > > self.ventana_lista = wxListCtrl(id=wxID_WXCOBROSVENTANA_LISTA, > > name='ventana_lista', parent=self.panel3, pos=wxPoint(104, > 8), > > size=wxSize(584, 232), > > style=wxLC_REPORT | wxLC_VIRTUAL | wxLC_ICON, > > validator=wxDefaultValidator) > > self._init_coll_ventana_lista_Columns(self.ventana_lista) > > > > Pues nada si alguien tiene esperiencia con las wxpython y me puede hechar > un capote, para decirme como mostrar ahi los datos recogidos por MySQL se lo > agradeceria mucho, aunque despues me tocara pelearme con el para saber como > seleccionar un componente de la lista que resulte por si el usuario quiere > modificarlo. Espero haberme esplicado bien. > > > > > > Gracias de antemano, Oscar Merchan. > > > > P.D .- Si para esto veis una opcion mejor, agradezco cualquier sugerencia. > > > > > ---------------------------------------------------------------------------- > ---- > > > _______________________________________________ > 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 py en ch3m4.org Tue Mar 30 09:43:46 2004 From: py en ch3m4.org (Chema Cortes) Date: Tue, 30 Mar 2004 09:43:46 +0200 Subject: GIL e hyperthreading In-Reply-To: <008c01c4131b$986299e0$0100a8c0@servidor> References: <4063F263.8060400@ch3m4.org> <008c01c4131b$986299e0$0100a8c0@servidor> Message-ID: <40692532.4000201@ch3m4.org> Ernesto Revilla escribió: > Entiendo que en este caso, la solución podrían ser estructuras que se bloquean o desbloquean automáticamente. Más interesante, sin embargo, me parece marcar, como en Java, que determinados métodos acceden a 'información sensible'. Se fuerza entonces que toda la información sensible sea accedida a através de métodos del objeto, nunca directamente desde fuera (ej. poniendo __ ). Entonces, el call de ese método al empezar obtiene el acceso exclusivo, y cuando termine lo suelta. El problema sigue siendo que los objetos son "globales", y no puedes restrigir su acceso (mejor dicho, sus "accesores"). Aunque ocultes atributos, sólo tendrá efecto para los accesos por parte de objetos de esa clase. Sería necesario contar con objetos realmente privados, fuera del universo de objetos comunes de la aplicación, de los que pudieras estar seguro que no se acceden de otro modo que los accesores de clase. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From hernan en orgmf.com.ar Tue Mar 30 11:32:06 2004 From: hernan en orgmf.com.ar (Hernan Foffani) Date: Tue, 30 Mar 2004 11:32:06 +0200 Subject: GIL e hyperthreading In-Reply-To: <008c01c4131b$986299e0$0100a8c0@servidor> References: <008c01c4131b$986299e0$0100a8c0@servidor> Message-ID: Erny escribio: > me ha despertado curiosidad, pero veo difícil bloquear y desbloquear > automáticamente el acceso a los atributos o variables de una clase, > por la sigiuente razón: > cuando accedemos leemos o accedemos referencias. En este caso, un > __setattri__ podría bloquear y desbloquear automáticamente el acceso, > pero en muchos casos, es una estructura, como un diccionario o una > lista sobre la cual se realizan operaciones. Entiendo que en este > caso, la solución podrían ser estructuras que se bloquean o > desbloquean automáticamente. Puedo equivocarme pero dudo mucho que se implemente algo así en el lenguaje. > ... Más interesante, sin embargo, me parece > marcar, como en Java, que determinados métodos acceden a 'información > sensible'. Se fuerza entonces que toda la información sensible sea > accedida a através de métodos del objeto, nunca directamente desde > fuera (ej. poniendo __ ). Entonces, el call de ese método al empezar > obtiene el acceso exclusivo, y cuando termine lo suelta. Claro. Por supuesto que *siempre* será posible acceder desde ``afuera'' a esos atributos, pero ya sabemos que aqui la politica es "cosechas lo que siembras". > siempre que se desee que todos esos métodos tengan un lock común, de > lo contrario podría agregarse un lock a cada método synchronized. Lo lógico sería que al menos dos métodos compartan un lock, no? ;-) > Desde luego, me parecía una interesante extensión a Python. Quizá > estaría bien tener algo como los atributos de C# y que la librería > vaya implementando poco a poco una serie de esos atributos. Eso mismo ya ha sido propuesto en http://www.python.org/peps/pep-0318.html y con buenas posibilidades de ser incluido en python 2.4 http://www.python.org/peps/pep-0320.html Saludos, -Hernán ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From danilistas en micorreo.cai.es Tue Mar 30 15:51:20 2004 From: danilistas en micorreo.cai.es (dani) Date: Tue, 30 Mar 2004 15:51:20 +0200 Subject: codigo de INTRO References: <004901c415a0$f2dc48d0$c800a8c0@catalin> <20040330092553.24b320bc.o.merchan@bussitel.es> <200403301539360580.01508FAB@smtp.micorreo.cai.es> Message-ID: <200403301551200740.015B4E47@smtp.micorreo.cai.es> Saludos, una pregunta sencilla: en una comparacion, como saber si una variable contiene el codigo obtenido al pulsar INTRO. He probado con '\n' pero no me ha funcionado. En Visual Basic esto se representaba con "VbCrLf". Gracias. From danilistas en micorreo.cai.es Tue Mar 30 15:56:58 2004 From: danilistas en micorreo.cai.es (dani) Date: Tue, 30 Mar 2004 15:56:58 +0200 Subject: codigo de INTRO (SOLUCIONADO) In-Reply-To: <200403301551200740.015B4E47@smtp.micorreo.cai.es> References: <004901c415a0$f2dc48d0$c800a8c0@catalin> <20040330092553.24b320bc.o.merchan@bussitel.es> <200403301539360580.01508FAB@smtp.micorreo.cai.es> <200403301551200740.015B4E47@smtp.micorreo.cai.es> Message-ID: <200403301556580711.01607678@smtp.micorreo.cai.es> SOLUCIONADO! Con "\r\n" Saludos. *********** REPLY SEPARATOR *********** On 30/03/2004 at 15:51 dani wrote: >Saludos, > >una pregunta sencilla: en una comparacion, como saber si una variable >contiene el codigo obtenido al pulsar INTRO. He probado con '\n' pero no >me ha funcionado. En Visual Basic esto se representaba con "VbCrLf". > >Gracias. > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es From santiagodaviddelgadollopis en yahoo.es Tue Mar 30 17:05:15 2004 From: santiagodaviddelgadollopis en yahoo.es (=?iso-8859-1?q?Santiago=20Delgado?=) Date: Tue, 30 Mar 2004 17:05:15 +0200 (CEST) Subject: =?iso-8859-1?q?Python-CD_-_Recopilacion_de_C=F3digos?= =?iso-8859-1?q?_fuente?= Message-ID: <20040330150515.71078.qmail@web41901.mail.yahoo.com> Hola a tod en s: La fase de recopilación de programas de Python-CD http://www.red-sur.com/~python-cd está bastante avanzada. En las próximas semanas comenzaremos la fase de revisión. Nos gustaría incluir una colección más o menos amplia de programas realizados en Python, englobados de manera independiente a los que ya se desarrollan a modo de proyectos. En fin, que desde aquí hago un llamamiento a tod en s lo que os apetezca colaborar con esos programas que tenéis hechos, aunque sean sencillos, ya que el objeto de esta sección será que la gente pueda echarles un vistazo para aprender más. Los que lo deseeis, enviad un archivo ZIP con los ficheros fuente, una documentación sobre el programa (qué hace, cómo ejecutarlo, librerías necesarias, etc) y una breve nota sobre el/la/los/las programador en s. Podeis enviar vuestras colaboraciones a python-cd en red-sur.com Un saludo ===== _______________________________ Santiago David Delgado Llopis santiagodaviddelgadollopis en yahoo.es ___________________________________________________ Yahoo! Messenger - Nueva versión GRATIS Super Webcam, voz, caritas animadas, y más... http://messenger.yahoo.es From FBatista en uniFON.com.ar Tue Mar 30 19:31:32 2004 From: FBatista en uniFON.com.ar (Batista, Facundo) Date: Tue, 30 Mar 2004 14:31:32 -0300 Subject: FAQ de Python en castellano Message-ID: Gente: Ya está publicada en www.python.org la FAQ General de Python en castellano: http://www.python.org/doc/faq/es/ Que la disfruten. . Facundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ADVERTENCIA La información contenida en este mensaje y cualquier archivo anexo al mismo, son para uso exclusivo del destinatario y pueden contener información confidencial o propietaria, cuya divulgación es sancionada por la ley. Si Ud. No es uno de los destinatarios consignados o la persona responsable de hacer llegar este mensaje a los destinatarios consignados, no está autorizado a divulgar, copiar, distribuir o retener información (o parte de ella) contenida en este mensaje. Por favor notifíquenos respondiendo al remitente, borre el mensaje original y borre las copias (impresas o grabadas en cualquier medio magnético) que pueda haber realizado del mismo. Todas las opiniones contenidas en este mail son propias del autor del mensaje y no necesariamente coinciden con las de Telefónica Comunicaciones Personales S.A. o alguna empresa asociada. Los mensajes electrónicos pueden ser alterados, motivo por el cual Telefónica Comunicaciones Personales S.A. no aceptará ninguna obligación cualquiera sea el resultante de este mensaje. Muchas Gracias. From soulkiller en teleline.es Tue Mar 30 19:39:52 2004 From: soulkiller en teleline.es (Soul) Date: Tue, 30 Mar 2004 19:39:52 +0200 Subject: =?iso-8859-1?q?=BFCrear?= scripts para nautilus(gnome) con python? Message-ID: <1080668391.3787.5.camel@Zeus> Me podria decir como capturar las variables de shell que se le pasan al script para poder usar scripts en python como guiones del explorador de archivos nautilus. La variables son: NAUTILUS_SCRIPT_SELECTED_FILE_PATHS: rutas delimitadas para los archivos seleccionados (solo si es local) NAUTILUS_SCRIPT_SELECTED_URIS: URIs delimitadas por saltos de línea para los archivos seleccionados. NAUTILUS_SCRIPT_CURRENT_URI: La URI de la ubicación actual NAUTILUS_SCRIPT_WINDOW_GEOMETRY: posición y tamaño de la ventana actual Gracias. Soul ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rapto en arrakis.es Tue Mar 30 21:35:18 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Tue, 30 Mar 2004 21:35:18 +0200 Subject: FAQ de Python en castellano In-Reply-To: References: Message-ID: <4069CBF6.2020305@arrakis.es> ¡Enhorabuena! A ver si logramos poner en hora al menos el 'Tutorial' para la versión 2.3. Batista, Facundo wrote: >Gente: > >Ya está publicada en www.python.org la FAQ General de Python en castellano: > >http://www.python.org/doc/faq/es/ > >Que la disfruten. > >. Facundo > > > > > >. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >. . . . . . . . . . . . . . . >ADVERTENCIA > >La información contenida en este mensaje y cualquier archivo anexo al mismo, >son para uso exclusivo del destinatario y pueden contener información >confidencial o propietaria, cuya divulgación es sancionada por la ley. > >Si Ud. No es uno de los destinatarios consignados o la persona responsable >de hacer llegar este mensaje a los destinatarios consignados, no está >autorizado a divulgar, copiar, distribuir o retener información (o parte de >ella) contenida en este mensaje. Por favor notifíquenos respondiendo al >remitente, borre el mensaje original y borre las copias (impresas o grabadas >en cualquier medio magnético) que pueda haber realizado del mismo. > >Todas las opiniones contenidas en este mail son propias del autor del >mensaje y no necesariamente coinciden con las de Telefónica Comunicaciones >Personales S.A. o alguna empresa asociada. > >Los mensajes electrónicos pueden ser alterados, motivo por el cual >Telefónica Comunicaciones Personales S.A. no aceptará ninguna obligación >cualquiera sea el resultante de este mensaje. > >Muchas Gracias. >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > From rapto en arrakis.es Tue Mar 30 21:47:13 2004 From: rapto en arrakis.es (=?ISO-8859-15?Q?Marcos_S=E1nchez_Provencio?=) Date: Tue, 30 Mar 2004 21:47:13 +0200 Subject: =?ISO-8859-15?Q?=BFCrear_scripts_para_naut?= =?ISO-8859-15?Q?ilus=28gnome=29_con_python=3F?= In-Reply-To: <1080668391.3787.5.camel@Zeus> References: <1080668391.3787.5.camel@Zeus> Message-ID: <4069CEC1.6040606@arrakis.es> ¡Qué chuli! Nunca me había animado #!/usr/bin/env python import gtk import os w=gtk.Window() w.connect("destroy", gtk.mainquit) l=gtk.Label(os.environ['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS']) w.add(l) w.show_all() gtk.mainloop() PS: La respuesta corta es: os.environ http://pyspanishdoc.sourceforge.net/lib/os-procinfo.html Soul wrote: >Me podria decir como capturar las variables de shell que se le pasan al >script para poder usar scripts en python como guiones del explorador de >archivos nautilus. La variables son: > > NAUTILUS_SCRIPT_SELECTED_FILE_PATHS: rutas delimitadas para los >archivos seleccionados (solo si es local) > > NAUTILUS_SCRIPT_SELECTED_URIS: URIs delimitadas por saltos de línea >para los archivos seleccionados. > > NAUTILUS_SCRIPT_CURRENT_URI: La URI de la ubicación actual > > NAUTILUS_SCRIPT_WINDOW_GEOMETRY: posición y tamaño de la ventana actual > >Gracias. >Soul > > >------------------------------------------------------------------------ > >_______________________________________________ >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 drg_alvaro en yahoo.com Wed Mar 31 07:27:51 2004 From: drg_alvaro en yahoo.com (=?iso-8859-1?q?Alvaro=20Abraham=20Colunga=20Rodriguez?=) Date: Tue, 30 Mar 2004 23:27:51 -0600 (CST) Subject: browser en python Message-ID: <20040331052751.32383.qmail@web10301.mail.yahoo.com> Saludos, estoy haciendo un programa en python que requiere la ejecucion de una pagina que tiene applets de java, pero no se como haerlo. Encontre que existe un widget llamado wxMozilla pero estoy teniendo muchos problemas al tratar de compilarlo en linux. Alguien conoce alguna otra manera de hacerlo, se los agradecere bastande. En realidad lo que tiene que hacer el programa es cargar una pagina html dentro de un programa de python pero esta pagina ejecuta unos applets de java. Gracias. _________________________________________________________ Do You Yahoo!? Información de Estados Unidos y América Latina, en Yahoo! Noticias. Visítanos en http://noticias.espanol.yahoo.com From rapto en arrakis.es Wed Mar 31 10:54:28 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Wed, 31 Mar 2004 10:54:28 +0200 Subject: browser en python In-Reply-To: <20040331052751.32383.qmail@web10301.mail.yahoo.com> References: <20040331052751.32383.qmail@web10301.mail.yahoo.com> Message-ID: <406A8744.5090105@arrakis.es> ¿Has mirado pyxpcom? http://aspn.activestate.com/ASPN/Downloads/Komodo/PyXPCOM/ Alvaro Abraham Colunga Rodriguez wrote: >Saludos, estoy haciendo un programa en python que >requiere la ejecucion de una pagina que tiene applets >de java, pero no se como haerlo. > >Encontre que existe un widget llamado wxMozilla pero >estoy teniendo muchos problemas al tratar de >compilarlo en linux. Alguien conoce alguna otra manera >de hacerlo, se los agradecere bastande. > >En realidad lo que tiene que hacer el programa es >cargar una pagina html dentro de un programa de python >pero esta pagina ejecuta unos applets de java. > >Gracias. > > > From rapto en arrakis.es Wed Mar 31 12:05:09 2004 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Wed, 31 Mar 2004 12:05:09 +0200 Subject: python-cd In-Reply-To: <40674470.7060407@arrakis.es> References: <40674470.7060407@arrakis.es> Message-ID: <406A97D5.70205@arrakis.es> No se vayan, aún hay más :-) http://cielito.sindominio.net/~rapto/python-cd_logo/ Me cuentan que la tipografía no es original en los nuevos Marcos Sánchez Provencio wrote: > Bueno, hay un par de propuestas de logo (con tipografía original y todo): > > http://cielito.sindominio.net/~rapto/python-cd_logo/ > > Se abre la veda. > From py en ch3m4.org Wed Mar 31 12:38:05 2004 From: py en ch3m4.org (Chema Cortes) Date: Wed, 31 Mar 2004 12:38:05 +0200 Subject: browser en python In-Reply-To: <20040331052751.32383.qmail@web10301.mail.yahoo.com> References: <20040331052751.32383.qmail@web10301.mail.yahoo.com> Message-ID: <406A9F8D.4080200@ch3m4.org> Alvaro Abraham Colunga Rodriguez escribió: > Saludos, estoy haciendo un programa en python que > requiere la ejecucion de una pagina que tiene applets > de java, pero no se como haerlo. > > Encontre que existe un widget llamado wxMozilla pero > estoy teniendo muchos problemas al tratar de > compilarlo en linux. Alguien conoce alguna otra manera > de hacerlo, se los agradecere bastande. > > En realidad lo que tiene que hacer el programa es > cargar una pagina html dentro de un programa de python > pero esta pagina ejecuta unos applets de java. Lo veo muy dificil. Necesitas empotrar el navegador completo en tu aplicación. En windows aún podrías hacerlo empotrando IE con activeX; en linux lo más simple que veo es utilizar KParts con PyQt/PyKDE (de hecho, resulta trivial), ó incluso puedes usar jython para empotrar el navegador java de Sun, pero siempre tendrías que reconvertir todo el resto del código del programa. ¿Qué necesitas controlar desde python que no sea suficiente con lanzar el navegador como una aplicación independiente? From acastro en ciberdroide.com Wed Mar 31 13:14:29 2004 From: acastro en ciberdroide.com (Antonio Castro) Date: Wed, 31 Mar 2004 13:14:29 +0200 (CEST) Subject: python-cd In-Reply-To: <406A97D5.70205@arrakis.es> References: <406A97D5.70205@arrakis.es> Message-ID: On Wed, 31 Mar 2004, Marcos Sánchez Provencio wrote: > No se vayan, aún hay más :-) > > http://cielito.sindominio.net/~rapto/python-cd_logo/ > Me cuentan que la tipografía no es original en los nuevos ¿ Es una selección de software libre ? ¿ Está esa selección de fuentes disponible en Internet ? -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . acastro en ciberdroide.com | +()()()---------()()()--------------------+ From management en aditel.org Wed Mar 31 15:55:44 2004 From: management en aditel.org (management en aditel.org) Date: Wed, 31 Mar 2004 07:55:44 -0600 Subject: Important notify about your e-mail account. Message-ID: ----------------- VIRUS ENCONTRADO Y ELIMINADO Found virus WORM_BAGLE.J in file Info.pif The file is deleted. --------------------------------------------------------- ------------ próxima parte ------------ Hello user of Aditel.org e-mail server, Our antivirus software has detected a large ammount of viruses outgoing from your email account, you may use our free anti-virus tool to clean up your computer software. For further details see the attach. Cheers, The Aditel.org team http://www.aditel.org ------------ próxima parte ------------ ----------------- VIRUS ENCONTRADO Y ELIMINADO Info.pif is removed from here because it contains a virus. --------------------------------------------------------- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From management en aditel.org Wed Mar 31 15:57:00 2004 From: management en aditel.org (management en aditel.org) Date: Wed, 31 Mar 2004 07:57:00 -0600 Subject: Notify about using the e-mail account. Message-ID: ----------------- VIRUS ENCONTRADO Y ELIMINADO Found virus WORM_BAGLE.J in file Attach.pif The file is deleted. --------------------------------------------------------- ------------ próxima parte ------------ Dear user of Aditel.org gateway e-mail server, Our main mailing server will be temporary unavaible for next two days, to continue receiving mail in these days you have to configure our free auto-forwarding service. Further details can be obtained from attached file. Have a good day, The Aditel.org team http://www.aditel.org ------------ próxima parte ------------ ----------------- VIRUS ENCONTRADO Y ELIMINADO Attach.pif is removed from here because it contains a virus. --------------------------------------------------------- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pylorca en yahoo.com.ar Wed Mar 31 19:49:36 2004 From: pylorca en yahoo.com.ar (lorca) Date: Wed, 31 Mar 2004 14:49:36 -0300 Subject: Notify about using the e-mail account. In-Reply-To: References: Message-ID: <20040331144936.24844877@localhost> On Wed, 31 Mar 2004 07:57:00 -0600 management en aditel.org wrote: > ----------------- VIRUS ENCONTRADO Y ELIMINADO > > Found virus WORM_BAGLE.J in file Attach.pif > The file is deleted. > > --------------------------------------------------------- > Que es esto? no entiendo... -- l o r c a Homepage: http://lorca.homelinux.com plasma: http://lorca.homelinux.com/plasma ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jsemari en terra.es Wed Mar 31 19:54:21 2004 From: jsemari en terra.es (Josemari) Date: Wed, 31 Mar 2004 19:54:21 +0200 Subject: Notify about using the e-mail account. In-Reply-To: <20040331144936.24844877@localhost> References: <20040331144936.24844877@localhost> Message-ID: <406B05CD.3000100@terra.es> Yo tampoco lo entiendo lorca wrote: >On Wed, 31 Mar 2004 07:57:00 -0600 >management en aditel.org wrote: > > > >>----------------- VIRUS ENCONTRADO Y ELIMINADO >> >>Found virus WORM_BAGLE.J in file Attach.pif >>The file is deleted. >> >>--------------------------------------------------------- >> >> >> > >Que es esto? no entiendo... > > > > >------------------------------------------------------------------------ > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo/python-es > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jcea en argo.es Wed Mar 31 20:08:46 2004 From: jcea en argo.es (Jesus Cea Avion) Date: Wed, 31 Mar 2004 19:08:46 +0100 Subject: GIL e hyperthreading References: <4063F263.8060400@ch3m4.org> <008c01c4131b$986299e0$0100a8c0@servidor> <40692532.4000201@ch3m4.org> Message-ID: <406B092E.1886A5@argo.es> Chema Cortes wrote: > El problema sigue siendo que los objetos son "globales", y no puedes > restrigir su acceso (mejor dicho, sus "accesores"). Aunque ocultes > atributos, sólo tendrá efecto para los accesos por parte de objetos de > esa clase. En vez de tener un GIL global, podrías tener un lock lectura/escritura por objeto. O un "pool" de locks compartidos por todos los objetos (por ejemplo, 1024 locks y a cada objeto python le corresponde un lock en función de su "hash()"). El problema de este esquema es: a) Pérdida de eficiencia en entornos mono CPU, aunque en entornos multicpu la ganancia sería lineal. b) Complejidad. c) Problemas con las extensiones. Habría que reprogramar la mayoría. d) Habría que detectar "deadlocks" y decidir qué hacer en ese caso. Sería preferible emplear un sistema de prevención de "deadlocks", no de "resolución" de "deadlocks" a posteriori. Es decir, no es algo trivial, pero opino que Python debería planteárselo en serio. Con máquinas SMP cada vez más populares, el no poner aprovechar la mitad de los recursos no solo es un crimen, sino que resulta una desventaja competitiva importante. PS: Los esquemas multiproceso ayudan cuando ayudan, pero no son aplicables en todos los casos. -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/_/_/_/ PGP Key Available at KeyServ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz From jcea en argo.es Wed Mar 31 20:23:14 2004 From: jcea en argo.es (Jesus Cea Avion) Date: Wed, 31 Mar 2004 19:23:14 +0100 Subject: XML-RPC References: <002801c40f5a$32e29580$0100a8c0@servidor><405DC097.90501@arrakis.es> <20040324173825.392776ab.raullopez@adinet.com.uy> <001501c41250$be4f7ae0$0100a8c0@servidor> <4062AF3F.3070001@hispasec.com> Message-ID: <406B0C92.3FDCBDCD@argo.es> Julio Canto wrote: > > Buenas, > He cacharreado un poco con el SimpleXMLRPCServer (gracias al documento > de Ernesto Revilla :), y me preguntaba si sabiais de algun mecanismo > propio para filtrar la respuesta a peticiones. He comprobado que > visualiza por pantalla una traza de ips y demas, y no se si dejaria > por ejemplo rechazar ciertas ips o si habria que hacerlo en plan > zoping, validando con usuario y clave :? La documentacion incluida en > python es bastante escueta.. tiene alguien alguna pista al respecto? Échale un vistazo a la librería, que es Python 100%. Estoy seguro de que puedes heredarla y especializarla con facilidad. -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/_/_/_/ PGP Key Available at KeyServ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz From visualnex en tutopia.com Wed Mar 31 21:45:11 2004 From: visualnex en tutopia.com (visualnex) Date: Wed, 31 Mar 2004 16:45:11 -0300 Subject: python-cd References: <20040331181342.55AD3145BA56@devnull.aditel.org> Message-ID: <001801c41758$b3ba2be0$0100a8c0@marcelo> >Date: Wed, 31 Mar 2004 12:05:09 +0200 >From: Marcos Sánchez Provencio >No se vayan, aún hay más :-) >http://cielito.sindominio.net/~rapto/python-cd_logo/ >Me cuentan que la tipografía no es original en los nuevos >Marcos Sánchez Provencio wrote: >> Bueno, hay un par de propuestas de logo (con tipografía original y todo): >> >> http://cielito.sindominio.net/~rapto/python-cd_logo/ >> >> Se abre la veda. >>> Me gusto el Logo y la Caja !... Aunque no le veo el precio ;)) Adelante MarceloA - visualnex From javierm en aditel.org Wed Mar 31 22:25:15 2004 From: javierm en aditel.org (Javier Munoz Ferrara) Date: Wed, 31 Mar 2004 22:25:15 +0200 Subject: Tarde Python/Zope en la iParty de =?iso-8859-1?q?Castell=F3n?= Message-ID: <1080764714.1478.5.camel@terminus> Hola! Los próximos días 15, 16, 17 y 18 de Abril en la Universitat Jaume I de Castellón. La iParty es una party informática dedicada exclusivamente al Software Libre, y organizada por ADITEL. Gracias a la colaboracion de conocidos participantes de estas listas, el viernes 16 hemos preparado una tarde Python/Zope. El programa es: 16:00 Conferencia: "Application Development Framework (Zope)" (Santi Camps). 17:00 Conferencia: "Introducción a Pythoncard" (Chema Cortes). 18:00 Foro de usuarios de Python y Zope Esperemos que sirva como punto de encuentro físico de la comunidad pythonera/zopera de españa (lo siento por los amigos de otras partes del mundo). Os esperamos. Más información en http://iparty.aditel.org Saludos! ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From ripolles en aditel.org Wed Mar 31 22:26:38 2004 From: ripolles en aditel.org (Daniel Ripolles) Date: Wed, 31 Mar 2004 22:26:38 +0200 Subject: Notify about using the e-mail account. In-Reply-To: <406B05CD.3000100@terra.es> References: <20040331144936.24844877@localhost> <406B05CD.3000100@terra.es> Message-ID: <1080764798.883.2.camel@pezon> El mié, 31-03-2004 a las 19:54, Josemari escribió: > Yo tampoco lo entiendo > Me temo que un spammer se hace pasar (repito SE HACE PASAR) por el mantenedor de la lista para enviar virus/troyanos/a saber qué. Me temo que en aditel necesitamos mejores filtros para estas cosas, ultimanente nos llega mucha basura :( Supongo que el responsable de la lista ya habrá visto esto y hará lo posible por arreglarlo; de todas formas intentaré averiguar como va la cosa (si puedo y no resulta ser una intromisión) Mientras tanto, borrad esa mierda!! xD > lorca wrote: > > >On Wed, 31 Mar 2004 07:57:00 -0600 > >management en aditel.org wrote: > > > > > > > >>----------------- VIRUS ENCONTRADO Y ELIMINADO > >> > >>Found virus WORM_BAGLE.J in file Attach.pif > >>The file is deleted. > >> > >>--------------------------------------------------------- > >> > >> > >> > > > >Que es esto? no entiendo... > > > > > > > > > >------------------------------------------------------------------------ > > > >_______________________________________________ > >Python-es mailing list > >Python-es en aditel.org > >http://listas.aditel.org/listinfo/python-es > > > > > > > ______________________________________________________________________ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es -- Daniel Ripolles ( Eru ) Make Source, Not War ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es